Skip to content

Instantly share code, notes, and snippets.

@xinbenlv
Created September 16, 2021 00:11
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save xinbenlv/8f3c43b1a944903549d67a282c138f3d to your computer and use it in GitHub Desktop.
Save xinbenlv/8f3c43b1a944903549d67a282c138f3d to your computer and use it in GitHub Desktop.
Created using remix-ide: Realtime Ethereum Contract Compiler and Runtime. Load this file by pasting this gists URL or ID at https://remix.ethereum.org/#version=soljson-v0.8.7+commit.e28d00a7.js&optimize=false&runs=200&gist=
A project for ERC1202 and sample code.
{
"deploy": {
"VM:-": {
"linkReferences": {},
"autoDeployLib": true
},
"main:1": {
"linkReferences": {},
"autoDeployLib": true
},
"ropsten:3": {
"linkReferences": {},
"autoDeployLib": true
},
"rinkeby:4": {
"linkReferences": {},
"autoDeployLib": true
},
"kovan:42": {
"linkReferences": {},
"autoDeployLib": true
},
"görli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"functionDebugData": {},
"generatedSources": [],
"linkReferences": {},
"object": "",
"opcodes": "",
"sourceMap": ""
},
"deployedBytecode": {
"functionDebugData": {},
"generatedSources": [],
"immutableReferences": {},
"linkReferences": {},
"object": "",
"opcodes": "",
"sourceMap": ""
},
"gasEstimates": null,
"methodIdentifiers": {
"availableOptions(uint256)": "c36fff2d",
"ballotOf(uint256,address)": "32ec991c",
"getStatus(uint256)": "5c622a0e",
"issueDescription(uint256)": "1e01a172",
"optionDescription(uint256,uint256)": "ea2bc862",
"setStatus(uint256,bool)": "8719e8ac",
"topOptions(uint256,uint256)": "aff9e954",
"vote(uint256,uint256)": "b384abef",
"weightOf(uint256,address)": "8935ced5",
"weightedVoteCountsOf(uint256,uint256)": "6e6a1dc3"
}
},
"abi": [
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "issueId",
"type": "uint256"
},
{
"indexed": false,
"internalType": "bool",
"name": "newIsOpen",
"type": "bool"
}
],
"name": "OnStatusChange",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "issueId",
"type": "uint256"
},
{
"indexed": true,
"internalType": "address",
"name": "_from",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "_value",
"type": "uint256"
}
],
"name": "OnVote",
"type": "event"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "issueId",
"type": "uint256"
}
],
"name": "availableOptions",
"outputs": [
{
"internalType": "uint256[]",
"name": "options",
"type": "uint256[]"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "issueId",
"type": "uint256"
},
{
"internalType": "address",
"name": "addr",
"type": "address"
}
],
"name": "ballotOf",
"outputs": [
{
"internalType": "uint256",
"name": "option",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "issueId",
"type": "uint256"
}
],
"name": "getStatus",
"outputs": [
{
"internalType": "bool",
"name": "isOpen",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "issueId",
"type": "uint256"
}
],
"name": "issueDescription",
"outputs": [
{
"internalType": "string",
"name": "desc",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "issueId",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "option",
"type": "uint256"
}
],
"name": "optionDescription",
"outputs": [
{
"internalType": "string",
"name": "desc",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "issueId",
"type": "uint256"
},
{
"internalType": "bool",
"name": "isOpen",
"type": "bool"
}
],
"name": "setStatus",
"outputs": [
{
"internalType": "bool",
"name": "success",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "issueId",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "limit",
"type": "uint256"
}
],
"name": "topOptions",
"outputs": [
{
"internalType": "uint256[]",
"name": "topOptions_",
"type": "uint256[]"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "issueId",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "option",
"type": "uint256"
}
],
"name": "vote",
"outputs": [
{
"internalType": "bool",
"name": "success",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "issueId",
"type": "uint256"
},
{
"internalType": "address",
"name": "addr",
"type": "address"
}
],
"name": "weightOf",
"outputs": [
{
"internalType": "uint256",
"name": "weight",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "issueId",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "option",
"type": "uint256"
}
],
"name": "weightedVoteCountsOf",
"outputs": [
{
"internalType": "uint256",
"name": "count",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.8.7+commit.e28d00a7"
},
"language": "Solidity",
"output": {
"abi": [
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "issueId",
"type": "uint256"
},
{
"indexed": false,
"internalType": "bool",
"name": "newIsOpen",
"type": "bool"
}
],
"name": "OnStatusChange",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "issueId",
"type": "uint256"
},
{
"indexed": true,
"internalType": "address",
"name": "_from",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "_value",
"type": "uint256"
}
],
"name": "OnVote",
"type": "event"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "issueId",
"type": "uint256"
}
],
"name": "availableOptions",
"outputs": [
{
"internalType": "uint256[]",
"name": "options",
"type": "uint256[]"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "issueId",
"type": "uint256"
},
{
"internalType": "address",
"name": "addr",
"type": "address"
}
],
"name": "ballotOf",
"outputs": [
{
"internalType": "uint256",
"name": "option",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "issueId",
"type": "uint256"
}
],
"name": "getStatus",
"outputs": [
{
"internalType": "bool",
"name": "isOpen",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "issueId",
"type": "uint256"
}
],
"name": "issueDescription",
"outputs": [
{
"internalType": "string",
"name": "desc",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "issueId",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "option",
"type": "uint256"
}
],
"name": "optionDescription",
"outputs": [
{
"internalType": "string",
"name": "desc",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "issueId",
"type": "uint256"
},
{
"internalType": "bool",
"name": "isOpen",
"type": "bool"
}
],
"name": "setStatus",
"outputs": [
{
"internalType": "bool",
"name": "success",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "issueId",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "limit",
"type": "uint256"
}
],
"name": "topOptions",
"outputs": [
{
"internalType": "uint256[]",
"name": "topOptions_",
"type": "uint256[]"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "issueId",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "option",
"type": "uint256"
}
],
"name": "vote",
"outputs": [
{
"internalType": "bool",
"name": "success",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "issueId",
"type": "uint256"
},
{
"internalType": "address",
"name": "addr",
"type": "address"
}
],
"name": "weightOf",
"outputs": [
{
"internalType": "uint256",
"name": "weight",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "issueId",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "option",
"type": "uint256"
}
],
"name": "weightedVoteCountsOf",
"outputs": [
{
"internalType": "uint256",
"name": "count",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
}
],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"notice": "- Multiple issue - Multiple selection - Ordered multiple result Discussion: 1. Each address has a weight determined by other input decided by the actual implementation which is suggested to be set upon the initialization 2. Is there certain naming convention to follow?",
"version": 1
}
},
"settings": {
"compilationTarget": {
"contracts/4_ERC1202.sol": "ERC1202"
},
"evmVersion": "london",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"contracts/4_ERC1202.sol": {
"keccak256": "0x72b8d4c6764f148f7d46f3f53a62053746e6d9ad43c77a78896fc4c430d1cdc7",
"license": "GPL-3.0",
"urls": [
"bzz-raw://697f9d8508629e12dc7b4a1ea1eb03d742dfa36eb06aa56aea01f17315fc2432",
"dweb:/ipfs/Qmay1uDdih4y2wDbkbVKkFFJrdyGkHZqzzWk38j4m1mvbb"
]
}
},
"version": 1
}
{
"deploy": {
"VM:-": {
"linkReferences": {},
"autoDeployLib": true
},
"main:1": {
"linkReferences": {},
"autoDeployLib": true
},
"ropsten:3": {
"linkReferences": {},
"autoDeployLib": true
},
"rinkeby:4": {
"linkReferences": {},
"autoDeployLib": true
},
"kovan:42": {
"linkReferences": {},
"autoDeployLib": true
},
"görli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"functionDebugData": {},
"generatedSources": [],
"linkReferences": {},
"object": "",
"opcodes": "",
"sourceMap": ""
},
"deployedBytecode": {
"functionDebugData": {},
"generatedSources": [],
"immutableReferences": {},
"linkReferences": {},
"object": "",
"opcodes": "",
"sourceMap": ""
},
"gasEstimates": null,
"methodIdentifiers": {
"topOptions(uint256,uint256)": "aff9e954",
"vote(uint256,uint256[])": "7055d368"
}
},
"abi": [
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "uint256",
"name": "issueId",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256[]",
"name": "optionIds",
"type": "uint256[]"
},
{
"indexed": true,
"internalType": "address",
"name": "voter",
"type": "address"
}
],
"name": "OnVote",
"type": "event"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_issueId",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "_limit",
"type": "uint256"
}
],
"name": "topOptions",
"outputs": [
{
"internalType": "uint256[]",
"name": "",
"type": "uint256[]"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_issueId",
"type": "uint256"
},
{
"internalType": "uint256[]",
"name": "_optionIds",
"type": "uint256[]"
}
],
"name": "vote",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.8.7+commit.e28d00a7"
},
"language": "Solidity",
"output": {
"abi": [
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "uint256",
"name": "issueId",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256[]",
"name": "optionIds",
"type": "uint256[]"
},
{
"indexed": true,
"internalType": "address",
"name": "voter",
"type": "address"
}
],
"name": "OnVote",
"type": "event"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_issueId",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "_limit",
"type": "uint256"
}
],
"name": "topOptions",
"outputs": [
{
"internalType": "uint256[]",
"name": "",
"type": "uint256[]"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_issueId",
"type": "uint256"
},
{
"internalType": "uint256[]",
"name": "_optionIds",
"type": "uint256[]"
}
],
"name": "vote",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
}
],
"devdoc": {
"author": "Zainan Victor Zhou <zzn@zzn.im> ",
"details": "Each ERC1202 contract is a cluster of issues being voted on, or done voted. Any contract of ERC1202 **MUST** implement ALL the following methods and events. Each *issue* is identified with an `issueId`, For any given `issue`, each availalbe option in that issue is identified wtih an `optionId`.",
"events": {
"OnVote(uint256,uint256[],address)": {
"details": "This event is emitted when a vote has been casted.",
"params": {
"issueId": "the issue the vote is being cased on.",
"optionIds": "an ordered list of the options the vote is casting for. "
}
}
},
"kind": "dev",
"methods": {
"topOptions(uint256,uint256)": {
"details": "Query the top ranked options of an issue given issueId and a limit of max number of top options.",
"params": {
"_issueId": ": the issue being queried for the top options.",
"_limit": ": the max number of top options the caller expect to return."
},
"returns": {
"_0": "an ordered list of the top options for given issueId and limit, where the first in array is the most favorite one, and the last in array is the least favorite one among the list. Specifically, WHEN limit = 0, returns the default length of winning options in their ranking in an issue. "
}
},
"vote(uint256,uint256[])": {
"details": "Cast a vote for an issue with `issueId` for option with `optionId`",
"params": {
"_issueId": ": the issue this vote is casting on.",
"_optionIds": ": an *ordered* array of the options being casted for the issue. Whenever referring to the options as a whole, the order MUST be maintained."
},
"returns": {
"_0": "a boolean if TRUE means the vote is casted successfully. "
}
}
},
"title": "Core interface of ERC1202 :A list of *REQUIRED* methods and events for a contract to be considered conforming to ERC1202. ",
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"compilationTarget": {
"contracts/IERC1202.sol": "ERC1202Core"
},
"evmVersion": "london",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"contracts/IERC1202.sol": {
"keccak256": "0x24853da59d8640e9e3c201cd7728460096c17f894d9924f67a9bfe3351e0da0e",
"license": "GPL-3.0",
"urls": [
"bzz-raw://76d3c90a57576ae6b6bcc5bc0b2cf02bb72e85bcdcf9041f7d4293fa250243de",
"dweb:/ipfs/QmVJCHsbCXimmmP2VN6YbCoGQV139fSEaX1B2BjY6Aqhrr"
]
}
},
"version": 1
}
{
"deploy": {
"VM:-": {
"linkReferences": {},
"autoDeployLib": true
},
"main:1": {
"linkReferences": {},
"autoDeployLib": true
},
"ropsten:3": {
"linkReferences": {},
"autoDeployLib": true
},
"rinkeby:4": {
"linkReferences": {},
"autoDeployLib": true
},
"kovan:42": {
"linkReferences": {},
"autoDeployLib": true
},
"görli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"functionDebugData": {},
"generatedSources": [],
"linkReferences": {},
"object": "",
"opcodes": "",
"sourceMap": ""
},
"deployedBytecode": {
"functionDebugData": {},
"generatedSources": [],
"immutableReferences": {},
"linkReferences": {},
"object": "",
"opcodes": "",
"sourceMap": ""
},
"gasEstimates": null,
"methodIdentifiers": {
"availableOptions(uint256)": "c36fff2d",
"issueDescription(uint256)": "1e01a172",
"optionDescription(uint256,uint256)": "ea2bc862"
}
},
"abi": [
{
"inputs": [
{
"internalType": "uint256",
"name": "issueId",
"type": "uint256"
}
],
"name": "availableOptions",
"outputs": [
{
"internalType": "uint256[]",
"name": "options",
"type": "uint256[]"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "issueId",
"type": "uint256"
}
],
"name": "issueDescription",
"outputs": [
{
"internalType": "string",
"name": "desc",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "issueId",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "option",
"type": "uint256"
}
],
"name": "optionDescription",
"outputs": [
{
"internalType": "string",
"name": "desc",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.8.7+commit.e28d00a7"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [
{
"internalType": "uint256",
"name": "issueId",
"type": "uint256"
}
],
"name": "availableOptions",
"outputs": [
{
"internalType": "uint256[]",
"name": "options",
"type": "uint256[]"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "issueId",
"type": "uint256"
}
],
"name": "issueDescription",
"outputs": [
{
"internalType": "string",
"name": "desc",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "issueId",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "option",
"type": "uint256"
}
],
"name": "optionDescription",
"outputs": [
{
"internalType": "string",
"name": "desc",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
}
],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"compilationTarget": {
"contracts/4_ERC1202.sol": "ERC1202Meta"
},
"evmVersion": "london",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"contracts/4_ERC1202.sol": {
"keccak256": "0x9a34e345ddf8e36760851909640fe549d7f94b95f7cec96392e5fd92f659abf1",
"license": "GPL-3.0",
"urls": [
"bzz-raw://cb2416551bd6f1105e193f2036eb2e399137d3e2cefd2b5b4a44c5f7804b8765",
"dweb:/ipfs/QmVHsY9RXFSHhMopGpG2f4kJBq6coWpoxDQA1ehk3wwWjk"
]
}
},
"version": 1
}
{
"deploy": {
"VM:-": {
"linkReferences": {},
"autoDeployLib": true
},
"main:1": {
"linkReferences": {},
"autoDeployLib": true
},
"ropsten:3": {
"linkReferences": {},
"autoDeployLib": true
},
"rinkeby:4": {
"linkReferences": {},
"autoDeployLib": true
},
"kovan:42": {
"linkReferences": {},
"autoDeployLib": true
},
"görli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"functionDebugData": {},
"generatedSources": [],
"linkReferences": {},
"object": "",
"opcodes": "",
"sourceMap": ""
},
"deployedBytecode": {
"functionDebugData": {},
"generatedSources": [],
"immutableReferences": {},
"linkReferences": {},
"object": "",
"opcodes": "",
"sourceMap": ""
},
"gasEstimates": null,
"methodIdentifiers": {
"issueText()": "30033555",
"issueURI(uint256)": "7ce19edd",
"optionText(uint256,uint256)": "42004f93",
"optionURI(uint256,uint256)": "438f051f"
}
},
"abi": [
{
"inputs": [],
"name": "issueText",
"outputs": [
{
"internalType": "string",
"name": "_text",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_issueId",
"type": "uint256"
}
],
"name": "issueURI",
"outputs": [
{
"internalType": "string",
"name": "_uri",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_issueId",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "_optionId",
"type": "uint256"
}
],
"name": "optionText",
"outputs": [
{
"internalType": "string",
"name": "_text",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_issueId",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "_optionId",
"type": "uint256"
}
],
"name": "optionURI",
"outputs": [
{
"internalType": "string",
"name": "_uri",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.8.7+commit.e28d00a7"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [],
"name": "issueText",
"outputs": [
{
"internalType": "string",
"name": "_text",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_issueId",
"type": "uint256"
}
],
"name": "issueURI",
"outputs": [
{
"internalType": "string",
"name": "_uri",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_issueId",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "_optionId",
"type": "uint256"
}
],
"name": "optionText",
"outputs": [
{
"internalType": "string",
"name": "_text",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_issueId",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "_optionId",
"type": "uint256"
}
],
"name": "optionURI",
"outputs": [
{
"internalType": "string",
"name": "_uri",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
}
],
"devdoc": {
"kind": "dev",
"methods": {
"issueURI(uint256)": {
"details": "Throws if `_issueId` is not a valid issue; URIs are defined in RFC 3986. "
},
"optionURI(uint256,uint256)": {
"details": "Throws if `_issueId` is not a valid option-issue combination; URIs are defined in RFC 3986. "
}
},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {
"issueText()": {
"notice": "A descriptive text for an issue in this contract."
},
"issueURI(uint256)": {
"notice": "A distinct Uniform Resource Identifier (URI) for a given issue."
},
"optionText(uint256,uint256)": {
"notice": "A descriptive text for an option in an issue in this contract."
},
"optionURI(uint256,uint256)": {
"notice": "A distinct Uniform Resource Identifier (URI) for a given option in a given issue."
}
},
"notice": "Metadata interface for ERC1202.",
"version": 1
}
},
"settings": {
"compilationTarget": {
"contracts/IERC1202.sol": "ERC1202Metadata"
},
"evmVersion": "london",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"contracts/IERC1202.sol": {
"keccak256": "0x24853da59d8640e9e3c201cd7728460096c17f894d9924f67a9bfe3351e0da0e",
"license": "GPL-3.0",
"urls": [
"bzz-raw://76d3c90a57576ae6b6bcc5bc0b2cf02bb72e85bcdcf9041f7d4293fa250243de",
"dweb:/ipfs/QmVJCHsbCXimmmP2VN6YbCoGQV139fSEaX1B2BjY6Aqhrr"
]
}
},
"version": 1
}
{
"deploy": {
"VM:-": {
"linkReferences": {},
"autoDeployLib": true
},
"main:1": {
"linkReferences": {},
"autoDeployLib": true
},
"ropsten:3": {
"linkReferences": {},
"autoDeployLib": true
},
"rinkeby:4": {
"linkReferences": {},
"autoDeployLib": true
},
"kovan:42": {
"linkReferences": {},
"autoDeployLib": true
},
"görli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"functionDebugData": {},
"generatedSources": [],
"linkReferences": {},
"object": "",
"opcodes": "",
"sourceMap": ""
},
"deployedBytecode": {
"functionDebugData": {},
"generatedSources": [],
"immutableReferences": {},
"linkReferences": {},
"object": "",
"opcodes": "",
"sourceMap": ""
},
"gasEstimates": null,
"methodIdentifiers": {
"retriveVote(uint256,address)": "c68654fb",
"weightOf(uint256,address)": "8935ced5",
"weightedVoteCountsOf(uint256,uint256)": "6e6a1dc3"
}
},
"abi": [
{
"inputs": [
{
"internalType": "uint256",
"name": "issueId",
"type": "uint256"
},
{
"internalType": "address",
"name": "addr",
"type": "address"
}
],
"name": "retriveVote",
"outputs": [
{
"internalType": "uint256",
"name": "option",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "issueId",
"type": "uint256"
},
{
"internalType": "address",
"name": "addr",
"type": "address"
}
],
"name": "weightOf",
"outputs": [
{
"internalType": "uint256",
"name": "weight",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "issueId",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "option",
"type": "uint256"
}
],
"name": "weightedVoteCountsOf",
"outputs": [
{
"internalType": "uint256",
"name": "count",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.8.7+commit.e28d00a7"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [
{
"internalType": "uint256",
"name": "issueId",
"type": "uint256"
},
{
"internalType": "address",
"name": "addr",
"type": "address"
}
],
"name": "retriveVote",
"outputs": [
{
"internalType": "uint256",
"name": "option",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "issueId",
"type": "uint256"
},
{
"internalType": "address",
"name": "addr",
"type": "address"
}
],
"name": "weightOf",
"outputs": [
{
"internalType": "uint256",
"name": "weight",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "issueId",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "option",
"type": "uint256"
}
],
"name": "weightedVoteCountsOf",
"outputs": [
{
"internalType": "uint256",
"name": "count",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
}
],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"notice": "Optional methods",
"version": 1
}
},
"settings": {
"compilationTarget": {
"contracts/IERC1202.sol": "ERC1202Query"
},
"evmVersion": "london",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"contracts/IERC1202.sol": {
"keccak256": "0x452b3e1034f8fa888890e64ebdd3e9983d87f074092542fced877e3eb5435029",
"license": "GPL-3.0",
"urls": [
"bzz-raw://7fdb8f31bc27b9859e75bdbb12084a8d16a0f92bb5b3991deb9ff40fa365b45d",
"dweb:/ipfs/QmQhFWeuBUUBSrK4qYjgs3LoomeFAxxUokv4HP8xqzQUh1"
]
}
},
"version": 1
}
{
"deploy": {
"VM:-": {
"linkReferences": {},
"autoDeployLib": true
},
"main:1": {
"linkReferences": {},
"autoDeployLib": true
},
"ropsten:3": {
"linkReferences": {},
"autoDeployLib": true
},
"rinkeby:4": {
"linkReferences": {},
"autoDeployLib": true
},
"kovan:42": {
"linkReferences": {},
"autoDeployLib": true
},
"görli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"functionDebugData": {},
"generatedSources": [],
"linkReferences": {},
"object": "",
"opcodes": "",
"sourceMap": ""
},
"deployedBytecode": {
"functionDebugData": {},
"generatedSources": [],
"immutableReferences": {},
"linkReferences": {},
"object": "",
"opcodes": "",
"sourceMap": ""
},
"gasEstimates": null,
"methodIdentifiers": {
"getStatus(uint256)": "5c622a0e",
"getVote(uint256,address)": "bc3f931f",
"setStatus(uint256,bool)": "8719e8ac"
}
},
"abi": [
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "issueId",
"type": "uint256"
},
{
"indexed": false,
"internalType": "bool",
"name": "newIsOpen",
"type": "bool"
}
],
"name": "OnStatusChange",
"type": "event"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "issueId",
"type": "uint256"
}
],
"name": "getStatus",
"outputs": [
{
"internalType": "bool",
"name": "isOpen",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "issueId",
"type": "uint256"
},
{
"internalType": "address",
"name": "_voter",
"type": "address"
}
],
"name": "getVote",
"outputs": [
{
"internalType": "uint256[]",
"name": "_optionIds",
"type": "uint256[]"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "issueId",
"type": "uint256"
},
{
"internalType": "bool",
"name": "isOpen",
"type": "bool"
}
],
"name": "setStatus",
"outputs": [
{
"internalType": "bool",
"name": "success",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.8.7+commit.e28d00a7"
},
"language": "Solidity",
"output": {
"abi": [
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "issueId",
"type": "uint256"
},
{
"indexed": false,
"internalType": "bool",
"name": "newIsOpen",
"type": "bool"
}
],
"name": "OnStatusChange",
"type": "event"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "issueId",
"type": "uint256"
}
],
"name": "getStatus",
"outputs": [
{
"internalType": "bool",
"name": "isOpen",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "issueId",
"type": "uint256"
},
{
"internalType": "address",
"name": "_voter",
"type": "address"
}
],
"name": "getVote",
"outputs": [
{
"internalType": "uint256[]",
"name": "_optionIds",
"type": "uint256[]"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "issueId",
"type": "uint256"
},
{
"internalType": "bool",
"name": "isOpen",
"type": "bool"
}
],
"name": "setStatus",
"outputs": [
{
"internalType": "bool",
"name": "success",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
}
],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"notice": "Status interface for ERC1202.",
"version": 1
}
},
"settings": {
"compilationTarget": {
"contracts/IERC1202.sol": "ERC1202Status"
},
"evmVersion": "london",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"contracts/IERC1202.sol": {
"keccak256": "0x24853da59d8640e9e3c201cd7728460096c17f894d9924f67a9bfe3351e0da0e",
"license": "GPL-3.0",
"urls": [
"bzz-raw://76d3c90a57576ae6b6bcc5bc0b2cf02bb72e85bcdcf9041f7d4293fa250243de",
"dweb:/ipfs/QmVJCHsbCXimmmP2VN6YbCoGQV139fSEaX1B2BjY6Aqhrr"
]
}
},
"version": 1
}
{
"deploy": {
"VM:-": {
"linkReferences": {},
"autoDeployLib": true
},
"main:1": {
"linkReferences": {},
"autoDeployLib": true
},
"ropsten:3": {
"linkReferences": {},
"autoDeployLib": true
},
"rinkeby:4": {
"linkReferences": {},
"autoDeployLib": true
},
"kovan:42": {
"linkReferences": {},
"autoDeployLib": true
},
"görli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"functionDebugData": {},
"generatedSources": [],
"linkReferences": {},
"object": "608060405234801561001057600080fd5b50610998806100206000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c80637055d36814610051578063aff9e95414610081578063d23254b4146100b1578063d70c6f4e146100e1575b600080fd5b61006b60048036038101906100669190610546565b610111565b60405161007891906106a7565b60405180910390f35b61009b600480360381019061009691906105a2565b610303565b6040516100a89190610685565b60405180910390f35b6100cb60048036038101906100c69190610506565b6103f4565b6040516100d891906106c2565b60405180910390f35b6100fb60048036038101906100f691906105a2565b610419565b60405161010891906106c2565b60405180910390f35b6000600182511461012557610124610853565b5b60088260008151811061013b5761013a6108b1565b5b60200260200101511061015157610150610853565b5b600082600081518110610167576101666108b1565b5b60200260200101519050600080600086815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060016000868152602001908152602001600020600082815260200190815260200160002060008154809291906101fa906107af565b919050555060016000868152602001908152602001600020600083815260200190815260200160002060008154809291906102349061080a565b91905055508360008151811061024d5761024c6108b1565b5b602002602001015160008087815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16857f9d77f9480ebb76e61c50c6d0b4913d773e971c600d4ee011b7d9d4aa01882cbb866040516102ef9190610685565b60405180910390a360019250505092915050565b60606000805b60088110156103795760016000868152602001908152602001600020600083815260200190815260200160002054600160008781526020019081526020016000206000838152602001908152602001600020541115610366578091505b80806103719061080a565b915050610309565b506000600167ffffffffffffffff811115610397576103966108e0565b5b6040519080825280602002602001820160405280156103c55781602001602082028036833780820191505090505b50905081816000815181106103dd576103dc6108b1565b5b602002602001018181525050809250505092915050565b6000602052816000526040600020602052806000526040600020600091509150505481565b6001602052816000526040600020602052806000526040600020600091509150505481565b600061045161044c84610702565b6106dd565b9050808382526020820190508285602086028201111561047457610473610914565b5b60005b858110156104a4578161048a88826104f1565b845260208401935060208301925050600181019050610477565b5050509392505050565b6000813590506104bd81610934565b92915050565b600082601f8301126104d8576104d761090f565b5b81356104e884826020860161043e565b91505092915050565b6000813590506105008161094b565b92915050565b6000806040838503121561051d5761051c61091e565b5b600061052b858286016104f1565b925050602061053c858286016104ae565b9150509250929050565b6000806040838503121561055d5761055c61091e565b5b600061056b858286016104f1565b925050602083013567ffffffffffffffff81111561058c5761058b610919565b5b610598858286016104c3565b9150509250929050565b600080604083850312156105b9576105b861091e565b5b60006105c7858286016104f1565b92505060206105d8858286016104f1565b9150509250929050565b60006105ee8383610667565b60208301905092915050565b60006106058261073e565b61060f8185610756565b935061061a8361072e565b8060005b8381101561064b57815161063288826105e2565b975061063d83610749565b92505060018101905061061e565b5085935050505092915050565b61066181610779565b82525050565b610670816107a5565b82525050565b61067f816107a5565b82525050565b6000602082019050818103600083015261069f81846105fa565b905092915050565b60006020820190506106bc6000830184610658565b92915050565b60006020820190506106d76000830184610676565b92915050565b60006106e76106f8565b90506106f382826107d9565b919050565b6000604051905090565b600067ffffffffffffffff82111561071d5761071c6108e0565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600061077282610785565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60006107ba826107a5565b915060008214156107ce576107cd610882565b5b600182039050919050565b6107e282610923565b810181811067ffffffffffffffff82111715610801576108006108e0565b5b80604052505050565b6000610815826107a5565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561084857610847610882565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b61093d81610767565b811461094857600080fd5b50565b610954816107a5565b811461095f57600080fd5b5056fea264697066735822122000b08d14dfc08aa246a5578bac655529344d58b7963b1a7eae0d6134e147728764736f6c63430008070033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x998 DUP1 PUSH2 0x20 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 0x4C JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x7055D368 EQ PUSH2 0x51 JUMPI DUP1 PUSH4 0xAFF9E954 EQ PUSH2 0x81 JUMPI DUP1 PUSH4 0xD23254B4 EQ PUSH2 0xB1 JUMPI DUP1 PUSH4 0xD70C6F4E EQ PUSH2 0xE1 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x6B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x66 SWAP2 SWAP1 PUSH2 0x546 JUMP JUMPDEST PUSH2 0x111 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x78 SWAP2 SWAP1 PUSH2 0x6A7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x9B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x96 SWAP2 SWAP1 PUSH2 0x5A2 JUMP JUMPDEST PUSH2 0x303 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xA8 SWAP2 SWAP1 PUSH2 0x685 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xCB PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xC6 SWAP2 SWAP1 PUSH2 0x506 JUMP JUMPDEST PUSH2 0x3F4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xD8 SWAP2 SWAP1 PUSH2 0x6C2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xFB PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xF6 SWAP2 SWAP1 PUSH2 0x5A2 JUMP JUMPDEST PUSH2 0x419 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x108 SWAP2 SWAP1 PUSH2 0x6C2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP3 MLOAD EQ PUSH2 0x125 JUMPI PUSH2 0x124 PUSH2 0x853 JUMP JUMPDEST JUMPDEST PUSH1 0x8 DUP3 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x13B JUMPI PUSH2 0x13A PUSH2 0x8B1 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD LT PUSH2 0x151 JUMPI PUSH2 0x150 PUSH2 0x853 JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x167 JUMPI PUSH2 0x166 PUSH2 0x8B1 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP1 POP PUSH1 0x0 DUP1 PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP PUSH1 0x1 PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP2 SLOAD DUP1 SWAP3 SWAP2 SWAP1 PUSH2 0x1FA SWAP1 PUSH2 0x7AF JUMP JUMPDEST SWAP2 SWAP1 POP SSTORE POP PUSH1 0x1 PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP2 SLOAD DUP1 SWAP3 SWAP2 SWAP1 PUSH2 0x234 SWAP1 PUSH2 0x80A JUMP JUMPDEST SWAP2 SWAP1 POP SSTORE POP DUP4 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x24D JUMPI PUSH2 0x24C PUSH2 0x8B1 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x0 DUP1 DUP8 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH32 0x9D77F9480EBB76E61C50C6D0B4913D773E971C600D4EE011B7D9D4AA01882CBB DUP7 PUSH1 0x40 MLOAD PUSH2 0x2EF SWAP2 SWAP1 PUSH2 0x685 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH1 0x1 SWAP3 POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 JUMPDEST PUSH1 0x8 DUP2 LT ISZERO PUSH2 0x379 JUMPI PUSH1 0x1 PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD GT ISZERO PUSH2 0x366 JUMPI DUP1 SWAP2 POP JUMPDEST DUP1 DUP1 PUSH2 0x371 SWAP1 PUSH2 0x80A JUMP JUMPDEST SWAP2 POP POP PUSH2 0x309 JUMP JUMPDEST POP PUSH1 0x0 PUSH1 0x1 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x397 JUMPI PUSH2 0x396 PUSH2 0x8E0 JUMP JUMPDEST JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x3C5 JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY DUP1 DUP3 ADD SWAP2 POP POP SWAP1 POP JUMPDEST POP SWAP1 POP DUP2 DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x3DD JUMPI PUSH2 0x3DC PUSH2 0x8B1 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP DUP1 SWAP3 POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 MSTORE DUP2 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SWAP2 POP POP SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE DUP2 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SWAP2 POP POP SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x451 PUSH2 0x44C DUP5 PUSH2 0x702 JUMP JUMPDEST PUSH2 0x6DD JUMP JUMPDEST SWAP1 POP DUP1 DUP4 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP DUP3 DUP6 PUSH1 0x20 DUP7 MUL DUP3 ADD GT ISZERO PUSH2 0x474 JUMPI PUSH2 0x473 PUSH2 0x914 JUMP JUMPDEST JUMPDEST PUSH1 0x0 JUMPDEST DUP6 DUP2 LT ISZERO PUSH2 0x4A4 JUMPI DUP2 PUSH2 0x48A DUP9 DUP3 PUSH2 0x4F1 JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH1 0x20 DUP4 ADD SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x477 JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x4BD DUP2 PUSH2 0x934 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x4D8 JUMPI PUSH2 0x4D7 PUSH2 0x90F JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x4E8 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x43E JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x500 DUP2 PUSH2 0x94B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x51D JUMPI PUSH2 0x51C PUSH2 0x91E JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x52B DUP6 DUP3 DUP7 ADD PUSH2 0x4F1 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x53C DUP6 DUP3 DUP7 ADD PUSH2 0x4AE JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x55D JUMPI PUSH2 0x55C PUSH2 0x91E JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x56B DUP6 DUP3 DUP7 ADD PUSH2 0x4F1 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x58C JUMPI PUSH2 0x58B PUSH2 0x919 JUMP JUMPDEST JUMPDEST PUSH2 0x598 DUP6 DUP3 DUP7 ADD PUSH2 0x4C3 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x5B9 JUMPI PUSH2 0x5B8 PUSH2 0x91E JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x5C7 DUP6 DUP3 DUP7 ADD PUSH2 0x4F1 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x5D8 DUP6 DUP3 DUP7 ADD PUSH2 0x4F1 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5EE DUP4 DUP4 PUSH2 0x667 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x605 DUP3 PUSH2 0x73E JUMP JUMPDEST PUSH2 0x60F DUP2 DUP6 PUSH2 0x756 JUMP JUMPDEST SWAP4 POP PUSH2 0x61A DUP4 PUSH2 0x72E JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x64B JUMPI DUP2 MLOAD PUSH2 0x632 DUP9 DUP3 PUSH2 0x5E2 JUMP JUMPDEST SWAP8 POP PUSH2 0x63D DUP4 PUSH2 0x749 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x61E JUMP JUMPDEST POP DUP6 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x661 DUP2 PUSH2 0x779 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x670 DUP2 PUSH2 0x7A5 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x67F DUP2 PUSH2 0x7A5 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x69F DUP2 DUP5 PUSH2 0x5FA JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x6BC PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x658 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x6D7 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x676 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6E7 PUSH2 0x6F8 JUMP JUMPDEST SWAP1 POP PUSH2 0x6F3 DUP3 DUP3 PUSH2 0x7D9 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x71D JUMPI PUSH2 0x71C PUSH2 0x8E0 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD 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 0x772 DUP3 PUSH2 0x785 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 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 0x7BA DUP3 PUSH2 0x7A5 JUMP JUMPDEST SWAP2 POP PUSH1 0x0 DUP3 EQ ISZERO PUSH2 0x7CE JUMPI PUSH2 0x7CD PUSH2 0x882 JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 SUB SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x7E2 DUP3 PUSH2 0x923 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x801 JUMPI PUSH2 0x800 PUSH2 0x8E0 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x815 DUP3 PUSH2 0x7A5 JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 EQ ISZERO PUSH2 0x848 JUMPI PUSH2 0x847 PUSH2 0x882 JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x1 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT 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 PUSH2 0x93D DUP2 PUSH2 0x767 JUMP JUMPDEST DUP2 EQ PUSH2 0x948 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x954 DUP2 PUSH2 0x7A5 JUMP JUMPDEST DUP2 EQ PUSH2 0x95F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 STOP 0xB0 DUP14 EQ 0xDF 0xC0 DUP11 LOG2 CHAINID 0xA5 JUMPI DUP12 0xAC PUSH6 0x5529344D58B7 SWAP7 EXTCODESIZE BYTE PUSH31 0xAE0D6134E147728764736F6C63430008070033000000000000000000000000 ",
"sourceMap": "616:1282:0:-:0;;;;;;;;;;;;;;;;;;;"
},
"deployedBytecode": {
"functionDebugData": {
"@results_20": {
"entryPoint": 1049,
"id": 20,
"parameterSlots": 0,
"returnSlots": 0
},
"@topOptions_160": {
"entryPoint": 771,
"id": 160,
"parameterSlots": 2,
"returnSlots": 1
},
"@vote_96": {
"entryPoint": 273,
"id": 96,
"parameterSlots": 2,
"returnSlots": 1
},
"@votes_14": {
"entryPoint": 1012,
"id": 14,
"parameterSlots": 0,
"returnSlots": 0
},
"abi_decode_available_length_t_array$_t_uint256_$dyn_memory_ptr": {
"entryPoint": 1086,
"id": null,
"parameterSlots": 3,
"returnSlots": 1
},
"abi_decode_t_address": {
"entryPoint": 1198,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_array$_t_uint256_$dyn_memory_ptr": {
"entryPoint": 1219,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_uint256": {
"entryPoint": 1265,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_uint256t_address": {
"entryPoint": 1286,
"id": null,
"parameterSlots": 2,
"returnSlots": 2
},
"abi_decode_tuple_t_uint256t_array$_t_uint256_$dyn_memory_ptr": {
"entryPoint": 1350,
"id": null,
"parameterSlots": 2,
"returnSlots": 2
},
"abi_decode_tuple_t_uint256t_uint256": {
"entryPoint": 1442,
"id": null,
"parameterSlots": 2,
"returnSlots": 2
},
"abi_encodeUpdatedPos_t_uint256_to_t_uint256": {
"entryPoint": 1506,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack": {
"entryPoint": 1530,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_t_bool_to_t_bool_fromStack": {
"entryPoint": 1624,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_uint256_to_t_uint256": {
"entryPoint": 1639,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_uint256_to_t_uint256_fromStack": {
"entryPoint": 1654,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed": {
"entryPoint": 1669,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": {
"entryPoint": 1703,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": {
"entryPoint": 1730,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"allocate_memory": {
"entryPoint": 1757,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"allocate_unbounded": {
"entryPoint": 1784,
"id": null,
"parameterSlots": 0,
"returnSlots": 1
},
"array_allocation_size_t_array$_t_uint256_$dyn_memory_ptr": {
"entryPoint": 1794,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"array_dataslot_t_array$_t_uint256_$dyn_memory_ptr": {
"entryPoint": 1838,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"array_length_t_array$_t_uint256_$dyn_memory_ptr": {
"entryPoint": 1854,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"array_nextElement_t_array$_t_uint256_$dyn_memory_ptr": {
"entryPoint": 1865,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack": {
"entryPoint": 1878,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"cleanup_t_address": {
"entryPoint": 1895,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_bool": {
"entryPoint": 1913,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_uint160": {
"entryPoint": 1925,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_uint256": {
"entryPoint": 1957,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"decrement_t_uint256": {
"entryPoint": 1967,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"finalize_allocation": {
"entryPoint": 2009,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"increment_t_uint256": {
"entryPoint": 2058,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"panic_error_0x01": {
"entryPoint": 2131,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"panic_error_0x11": {
"entryPoint": 2178,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"panic_error_0x32": {
"entryPoint": 2225,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"panic_error_0x41": {
"entryPoint": 2272,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d": {
"entryPoint": 2319,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef": {
"entryPoint": 2324,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": {
"entryPoint": 2329,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": {
"entryPoint": 2334,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"round_up_to_mul_of_32": {
"entryPoint": 2339,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"validator_revert_t_address": {
"entryPoint": 2356,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"validator_revert_t_uint256": {
"entryPoint": 2379,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
}
},
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:9027:2",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "126:620:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "136:90:2",
"value": {
"arguments": [
{
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "218:6:2"
}
],
"functionName": {
"name": "array_allocation_size_t_array$_t_uint256_$dyn_memory_ptr",
"nodeType": "YulIdentifier",
"src": "161:56:2"
},
"nodeType": "YulFunctionCall",
"src": "161:64:2"
}
],
"functionName": {
"name": "allocate_memory",
"nodeType": "YulIdentifier",
"src": "145:15:2"
},
"nodeType": "YulFunctionCall",
"src": "145:81:2"
},
"variableNames": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "136:5:2"
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "235:16:2",
"value": {
"name": "array",
"nodeType": "YulIdentifier",
"src": "246:5:2"
},
"variables": [
{
"name": "dst",
"nodeType": "YulTypedName",
"src": "239:3:2",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "268:5:2"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "275:6:2"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "261:6:2"
},
"nodeType": "YulFunctionCall",
"src": "261:21:2"
},
"nodeType": "YulExpressionStatement",
"src": "261:21:2"
},
{
"nodeType": "YulAssignment",
"src": "291:23:2",
"value": {
"arguments": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "302:5:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "309:4:2",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "298:3:2"
},
"nodeType": "YulFunctionCall",
"src": "298:16:2"
},
"variableNames": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "291:3:2"
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "324:17:2",
"value": {
"name": "offset",
"nodeType": "YulIdentifier",
"src": "335:6:2"
},
"variables": [
{
"name": "src",
"nodeType": "YulTypedName",
"src": "328:3:2",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "390:103:2",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef",
"nodeType": "YulIdentifier",
"src": "404:77:2"
},
"nodeType": "YulFunctionCall",
"src": "404:79:2"
},
"nodeType": "YulExpressionStatement",
"src": "404:79:2"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "360:3:2"
},
{
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "369:6:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "377:4:2",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "mul",
"nodeType": "YulIdentifier",
"src": "365:3:2"
},
"nodeType": "YulFunctionCall",
"src": "365:17:2"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "356:3:2"
},
"nodeType": "YulFunctionCall",
"src": "356:27:2"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "385:3:2"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "353:2:2"
},
"nodeType": "YulFunctionCall",
"src": "353:36:2"
},
"nodeType": "YulIf",
"src": "350:143:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "562:178:2",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "577:21:2",
"value": {
"name": "src",
"nodeType": "YulIdentifier",
"src": "595:3:2"
},
"variables": [
{
"name": "elementPos",
"nodeType": "YulTypedName",
"src": "581:10:2",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "619:3:2"
},
{
"arguments": [
{
"name": "elementPos",
"nodeType": "YulIdentifier",
"src": "645:10:2"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "657:3:2"
}
],
"functionName": {
"name": "abi_decode_t_uint256",
"nodeType": "YulIdentifier",
"src": "624:20:2"
},
"nodeType": "YulFunctionCall",
"src": "624:37:2"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "612:6:2"
},
"nodeType": "YulFunctionCall",
"src": "612:50:2"
},
"nodeType": "YulExpressionStatement",
"src": "612:50:2"
},
{
"nodeType": "YulAssignment",
"src": "675:21:2",
"value": {
"arguments": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "686:3:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "691:4:2",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "682:3:2"
},
"nodeType": "YulFunctionCall",
"src": "682:14:2"
},
"variableNames": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "675:3:2"
}
]
},
{
"nodeType": "YulAssignment",
"src": "709:21:2",
"value": {
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "720:3:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "725:4:2",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "716:3:2"
},
"nodeType": "YulFunctionCall",
"src": "716:14:2"
},
"variableNames": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "709:3:2"
}
]
}
]
},
"condition": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "524:1:2"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "527:6:2"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "521:2:2"
},
"nodeType": "YulFunctionCall",
"src": "521:13:2"
},
"nodeType": "YulForLoop",
"post": {
"nodeType": "YulBlock",
"src": "535:18:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "537:14:2",
"value": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "546:1:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "549:1:2",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "542:3:2"
},
"nodeType": "YulFunctionCall",
"src": "542:9:2"
},
"variableNames": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "537:1:2"
}
]
}
]
},
"pre": {
"nodeType": "YulBlock",
"src": "506:14:2",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "508:10:2",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "517:1:2",
"type": "",
"value": "0"
},
"variables": [
{
"name": "i",
"nodeType": "YulTypedName",
"src": "512:1:2",
"type": ""
}
]
}
]
},
"src": "502:238:2"
}
]
},
"name": "abi_decode_available_length_t_array$_t_uint256_$dyn_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "96:6:2",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "104:6:2",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "112:3:2",
"type": ""
}
],
"returnVariables": [
{
"name": "array",
"nodeType": "YulTypedName",
"src": "120:5:2",
"type": ""
}
],
"src": "24:722:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "804:87:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "814:29:2",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "836:6:2"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "823:12:2"
},
"nodeType": "YulFunctionCall",
"src": "823:20:2"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "814:5:2"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "879:5:2"
}
],
"functionName": {
"name": "validator_revert_t_address",
"nodeType": "YulIdentifier",
"src": "852:26:2"
},
"nodeType": "YulFunctionCall",
"src": "852:33:2"
},
"nodeType": "YulExpressionStatement",
"src": "852:33:2"
}
]
},
"name": "abi_decode_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "782:6:2",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "790:3:2",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "798:5:2",
"type": ""
}
],
"src": "752:139:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "991:293:2",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "1040:83:2",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d",
"nodeType": "YulIdentifier",
"src": "1042:77:2"
},
"nodeType": "YulFunctionCall",
"src": "1042:79:2"
},
"nodeType": "YulExpressionStatement",
"src": "1042:79:2"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "1019:6:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1027:4:2",
"type": "",
"value": "0x1f"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1015:3:2"
},
"nodeType": "YulFunctionCall",
"src": "1015:17:2"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "1034:3:2"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "1011:3:2"
},
"nodeType": "YulFunctionCall",
"src": "1011:27:2"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "1004:6:2"
},
"nodeType": "YulFunctionCall",
"src": "1004:35:2"
},
"nodeType": "YulIf",
"src": "1001:122:2"
},
{
"nodeType": "YulVariableDeclaration",
"src": "1132:34:2",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "1159:6:2"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "1146:12:2"
},
"nodeType": "YulFunctionCall",
"src": "1146:20:2"
},
"variables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "1136:6:2",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "1175:103:2",
"value": {
"arguments": [
{
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "1251:6:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1259:4:2",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1247:3:2"
},
"nodeType": "YulFunctionCall",
"src": "1247:17:2"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1266:6:2"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "1274:3:2"
}
],
"functionName": {
"name": "abi_decode_available_length_t_array$_t_uint256_$dyn_memory_ptr",
"nodeType": "YulIdentifier",
"src": "1184:62:2"
},
"nodeType": "YulFunctionCall",
"src": "1184:94:2"
},
"variableNames": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "1175:5:2"
}
]
}
]
},
"name": "abi_decode_t_array$_t_uint256_$dyn_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "969:6:2",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "977:3:2",
"type": ""
}
],
"returnVariables": [
{
"name": "array",
"nodeType": "YulTypedName",
"src": "985:5:2",
"type": ""
}
],
"src": "914:370:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1342:87:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1352:29:2",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "1374:6:2"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "1361:12:2"
},
"nodeType": "YulFunctionCall",
"src": "1361:20:2"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1352:5:2"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1417:5:2"
}
],
"functionName": {
"name": "validator_revert_t_uint256",
"nodeType": "YulIdentifier",
"src": "1390:26:2"
},
"nodeType": "YulFunctionCall",
"src": "1390:33:2"
},
"nodeType": "YulExpressionStatement",
"src": "1390:33:2"
}
]
},
"name": "abi_decode_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "1320:6:2",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "1328:3:2",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1336:5:2",
"type": ""
}
],
"src": "1290:139:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1518:391:2",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "1564:83:2",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "1566:77:2"
},
"nodeType": "YulFunctionCall",
"src": "1566:79:2"
},
"nodeType": "YulExpressionStatement",
"src": "1566:79:2"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "1539:7:2"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1548:9:2"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "1535:3:2"
},
"nodeType": "YulFunctionCall",
"src": "1535:23:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1560:2:2",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "1531:3:2"
},
"nodeType": "YulFunctionCall",
"src": "1531:32:2"
},
"nodeType": "YulIf",
"src": "1528:119:2"
},
{
"nodeType": "YulBlock",
"src": "1657:117:2",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "1672:15:2",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "1686:1:2",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "1676:6:2",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "1701:63:2",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1736:9:2"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "1747:6:2"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1732:3:2"
},
"nodeType": "YulFunctionCall",
"src": "1732:22:2"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "1756:7:2"
}
],
"functionName": {
"name": "abi_decode_t_uint256",
"nodeType": "YulIdentifier",
"src": "1711:20:2"
},
"nodeType": "YulFunctionCall",
"src": "1711:53:2"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "1701:6:2"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "1784:118:2",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "1799:16:2",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "1813:2:2",
"type": "",
"value": "32"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "1803:6:2",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "1829:63:2",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1864:9:2"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "1875:6:2"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1860:3:2"
},
"nodeType": "YulFunctionCall",
"src": "1860:22:2"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "1884:7:2"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nodeType": "YulIdentifier",
"src": "1839:20:2"
},
"nodeType": "YulFunctionCall",
"src": "1839:53:2"
},
"variableNames": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "1829:6:2"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_uint256t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "1480:9:2",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "1491:7:2",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "1503:6:2",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "1511:6:2",
"type": ""
}
],
"src": "1435:474:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2023:576:2",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "2069:83:2",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "2071:77:2"
},
"nodeType": "YulFunctionCall",
"src": "2071:79:2"
},
"nodeType": "YulExpressionStatement",
"src": "2071:79:2"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "2044:7:2"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2053:9:2"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "2040:3:2"
},
"nodeType": "YulFunctionCall",
"src": "2040:23:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2065:2:2",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "2036:3:2"
},
"nodeType": "YulFunctionCall",
"src": "2036:32:2"
},
"nodeType": "YulIf",
"src": "2033:119:2"
},
{
"nodeType": "YulBlock",
"src": "2162:117:2",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "2177:15:2",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "2191:1:2",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "2181:6:2",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "2206:63:2",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2241:9:2"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "2252:6:2"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2237:3:2"
},
"nodeType": "YulFunctionCall",
"src": "2237:22:2"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "2261:7:2"
}
],
"functionName": {
"name": "abi_decode_t_uint256",
"nodeType": "YulIdentifier",
"src": "2216:20:2"
},
"nodeType": "YulFunctionCall",
"src": "2216:53:2"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "2206:6:2"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "2289:303:2",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "2304:46:2",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2335:9:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2346:2:2",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2331:3:2"
},
"nodeType": "YulFunctionCall",
"src": "2331:18:2"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "2318:12:2"
},
"nodeType": "YulFunctionCall",
"src": "2318:32:2"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "2308:6:2",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "2397:83:2",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nodeType": "YulIdentifier",
"src": "2399:77:2"
},
"nodeType": "YulFunctionCall",
"src": "2399:79:2"
},
"nodeType": "YulExpressionStatement",
"src": "2399:79:2"
}
]
},
"condition": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "2369:6:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2377:18:2",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "2366:2:2"
},
"nodeType": "YulFunctionCall",
"src": "2366:30:2"
},
"nodeType": "YulIf",
"src": "2363:117:2"
},
{
"nodeType": "YulAssignment",
"src": "2494:88:2",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2554:9:2"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "2565:6:2"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2550:3:2"
},
"nodeType": "YulFunctionCall",
"src": "2550:22:2"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "2574:7:2"
}
],
"functionName": {
"name": "abi_decode_t_array$_t_uint256_$dyn_memory_ptr",
"nodeType": "YulIdentifier",
"src": "2504:45:2"
},
"nodeType": "YulFunctionCall",
"src": "2504:78:2"
},
"variableNames": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "2494:6:2"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_uint256t_array$_t_uint256_$dyn_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "1985:9:2",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "1996:7:2",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "2008:6:2",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "2016:6:2",
"type": ""
}
],
"src": "1915:684:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2688:391:2",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "2734:83:2",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "2736:77:2"
},
"nodeType": "YulFunctionCall",
"src": "2736:79:2"
},
"nodeType": "YulExpressionStatement",
"src": "2736:79:2"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "2709:7:2"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2718:9:2"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "2705:3:2"
},
"nodeType": "YulFunctionCall",
"src": "2705:23:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2730:2:2",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "2701:3:2"
},
"nodeType": "YulFunctionCall",
"src": "2701:32:2"
},
"nodeType": "YulIf",
"src": "2698:119:2"
},
{
"nodeType": "YulBlock",
"src": "2827:117:2",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "2842:15:2",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "2856:1:2",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "2846:6:2",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "2871:63:2",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2906:9:2"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "2917:6:2"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2902:3:2"
},
"nodeType": "YulFunctionCall",
"src": "2902:22:2"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "2926:7:2"
}
],
"functionName": {
"name": "abi_decode_t_uint256",
"nodeType": "YulIdentifier",
"src": "2881:20:2"
},
"nodeType": "YulFunctionCall",
"src": "2881:53:2"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "2871:6:2"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "2954:118:2",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "2969:16:2",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "2983:2:2",
"type": "",
"value": "32"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "2973:6:2",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "2999:63:2",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3034:9:2"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "3045:6:2"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3030:3:2"
},
"nodeType": "YulFunctionCall",
"src": "3030:22:2"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "3054:7:2"
}
],
"functionName": {
"name": "abi_decode_t_uint256",
"nodeType": "YulIdentifier",
"src": "3009:20:2"
},
"nodeType": "YulFunctionCall",
"src": "3009:53:2"
},
"variableNames": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "2999:6:2"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_uint256t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "2650:9:2",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "2661:7:2",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "2673:6:2",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "2681:6:2",
"type": ""
}
],
"src": "2605:474:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3165:99:2",
"statements": [
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "3209:6:2"
},
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "3217:3:2"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256",
"nodeType": "YulIdentifier",
"src": "3175:33:2"
},
"nodeType": "YulFunctionCall",
"src": "3175:46:2"
},
"nodeType": "YulExpressionStatement",
"src": "3175:46:2"
},
{
"nodeType": "YulAssignment",
"src": "3230:28:2",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "3248:3:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3253:4:2",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3244:3:2"
},
"nodeType": "YulFunctionCall",
"src": "3244:14:2"
},
"variableNames": [
{
"name": "updatedPos",
"nodeType": "YulIdentifier",
"src": "3230:10:2"
}
]
}
]
},
"name": "abi_encodeUpdatedPos_t_uint256_to_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "3138:6:2",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "3146:3:2",
"type": ""
}
],
"returnVariables": [
{
"name": "updatedPos",
"nodeType": "YulTypedName",
"src": "3154:10:2",
"type": ""
}
],
"src": "3085:179:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3424:608:2",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "3434:68:2",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "3496:5:2"
}
],
"functionName": {
"name": "array_length_t_array$_t_uint256_$dyn_memory_ptr",
"nodeType": "YulIdentifier",
"src": "3448:47:2"
},
"nodeType": "YulFunctionCall",
"src": "3448:54:2"
},
"variables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "3438:6:2",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "3511:93:2",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "3592:3:2"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "3597:6:2"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "3518:73:2"
},
"nodeType": "YulFunctionCall",
"src": "3518:86:2"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "3511:3:2"
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "3613:71:2",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "3678:5:2"
}
],
"functionName": {
"name": "array_dataslot_t_array$_t_uint256_$dyn_memory_ptr",
"nodeType": "YulIdentifier",
"src": "3628:49:2"
},
"nodeType": "YulFunctionCall",
"src": "3628:56:2"
},
"variables": [
{
"name": "baseRef",
"nodeType": "YulTypedName",
"src": "3617:7:2",
"type": ""
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "3693:21:2",
"value": {
"name": "baseRef",
"nodeType": "YulIdentifier",
"src": "3707:7:2"
},
"variables": [
{
"name": "srcPtr",
"nodeType": "YulTypedName",
"src": "3697:6:2",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "3783:224:2",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "3797:34:2",
"value": {
"arguments": [
{
"name": "srcPtr",
"nodeType": "YulIdentifier",
"src": "3824:6:2"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "3818:5:2"
},
"nodeType": "YulFunctionCall",
"src": "3818:13:2"
},
"variables": [
{
"name": "elementValue0",
"nodeType": "YulTypedName",
"src": "3801:13:2",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "3844:70:2",
"value": {
"arguments": [
{
"name": "elementValue0",
"nodeType": "YulIdentifier",
"src": "3895:13:2"
},
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "3910:3:2"
}
],
"functionName": {
"name": "abi_encodeUpdatedPos_t_uint256_to_t_uint256",
"nodeType": "YulIdentifier",
"src": "3851:43:2"
},
"nodeType": "YulFunctionCall",
"src": "3851:63:2"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "3844:3:2"
}
]
},
{
"nodeType": "YulAssignment",
"src": "3927:70:2",
"value": {
"arguments": [
{
"name": "srcPtr",
"nodeType": "YulIdentifier",
"src": "3990:6:2"
}
],
"functionName": {
"name": "array_nextElement_t_array$_t_uint256_$dyn_memory_ptr",
"nodeType": "YulIdentifier",
"src": "3937:52:2"
},
"nodeType": "YulFunctionCall",
"src": "3937:60:2"
},
"variableNames": [
{
"name": "srcPtr",
"nodeType": "YulIdentifier",
"src": "3927:6:2"
}
]
}
]
},
"condition": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "3745:1:2"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "3748:6:2"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "3742:2:2"
},
"nodeType": "YulFunctionCall",
"src": "3742:13:2"
},
"nodeType": "YulForLoop",
"post": {
"nodeType": "YulBlock",
"src": "3756:18:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "3758:14:2",
"value": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "3767:1:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3770:1:2",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3763:3:2"
},
"nodeType": "YulFunctionCall",
"src": "3763:9:2"
},
"variableNames": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "3758:1:2"
}
]
}
]
},
"pre": {
"nodeType": "YulBlock",
"src": "3727:14:2",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "3729:10:2",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "3738:1:2",
"type": "",
"value": "0"
},
"variables": [
{
"name": "i",
"nodeType": "YulTypedName",
"src": "3733:1:2",
"type": ""
}
]
}
]
},
"src": "3723:284:2"
},
{
"nodeType": "YulAssignment",
"src": "4016:10:2",
"value": {
"name": "pos",
"nodeType": "YulIdentifier",
"src": "4023:3:2"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "4016:3:2"
}
]
}
]
},
"name": "abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "3403:5:2",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "3410:3:2",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "3419:3:2",
"type": ""
}
],
"src": "3300:732:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4097:50:2",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "4114:3:2"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "4134:5:2"
}
],
"functionName": {
"name": "cleanup_t_bool",
"nodeType": "YulIdentifier",
"src": "4119:14:2"
},
"nodeType": "YulFunctionCall",
"src": "4119:21:2"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "4107:6:2"
},
"nodeType": "YulFunctionCall",
"src": "4107:34:2"
},
"nodeType": "YulExpressionStatement",
"src": "4107:34:2"
}
]
},
"name": "abi_encode_t_bool_to_t_bool_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "4085:5:2",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "4092:3:2",
"type": ""
}
],
"src": "4038:109:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4208:53:2",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "4225:3:2"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "4248:5:2"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "4230:17:2"
},
"nodeType": "YulFunctionCall",
"src": "4230:24:2"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "4218:6:2"
},
"nodeType": "YulFunctionCall",
"src": "4218:37:2"
},
"nodeType": "YulExpressionStatement",
"src": "4218:37:2"
}
]
},
"name": "abi_encode_t_uint256_to_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "4196:5:2",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "4203:3:2",
"type": ""
}
],
"src": "4153:108:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4332:53:2",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "4349:3:2"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "4372:5:2"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "4354:17:2"
},
"nodeType": "YulFunctionCall",
"src": "4354:24:2"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "4342:6:2"
},
"nodeType": "YulFunctionCall",
"src": "4342:37:2"
},
"nodeType": "YulExpressionStatement",
"src": "4342:37:2"
}
]
},
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "4320:5:2",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "4327:3:2",
"type": ""
}
],
"src": "4267:118:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4539:225:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "4549:26:2",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4561:9:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4572:2:2",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4557:3:2"
},
"nodeType": "YulFunctionCall",
"src": "4557:18:2"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "4549:4:2"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4596:9:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4607:1:2",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4592:3:2"
},
"nodeType": "YulFunctionCall",
"src": "4592:17:2"
},
{
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "4615:4:2"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4621:9:2"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "4611:3:2"
},
"nodeType": "YulFunctionCall",
"src": "4611:20:2"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "4585:6:2"
},
"nodeType": "YulFunctionCall",
"src": "4585:47:2"
},
"nodeType": "YulExpressionStatement",
"src": "4585:47:2"
},
{
"nodeType": "YulAssignment",
"src": "4641:116:2",
"value": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "4743:6:2"
},
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "4752:4:2"
}
],
"functionName": {
"name": "abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "4649:93:2"
},
"nodeType": "YulFunctionCall",
"src": "4649:108:2"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "4641:4:2"
}
]
}
]
},
"name": "abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "4511:9:2",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "4523:6:2",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "4534:4:2",
"type": ""
}
],
"src": "4391:373:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4862:118:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "4872:26:2",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4884:9:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4895:2:2",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4880:3:2"
},
"nodeType": "YulFunctionCall",
"src": "4880:18:2"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "4872:4:2"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "4946:6:2"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4959:9:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4970:1:2",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4955:3:2"
},
"nodeType": "YulFunctionCall",
"src": "4955:17:2"
}
],
"functionName": {
"name": "abi_encode_t_bool_to_t_bool_fromStack",
"nodeType": "YulIdentifier",
"src": "4908:37:2"
},
"nodeType": "YulFunctionCall",
"src": "4908:65:2"
},
"nodeType": "YulExpressionStatement",
"src": "4908:65:2"
}
]
},
"name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "4834:9:2",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "4846:6:2",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "4857:4:2",
"type": ""
}
],
"src": "4770:210:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5084:124:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "5094:26:2",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5106:9:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5117:2:2",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5102:3:2"
},
"nodeType": "YulFunctionCall",
"src": "5102:18:2"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "5094:4:2"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "5174:6:2"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5187:9:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5198:1:2",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5183:3:2"
},
"nodeType": "YulFunctionCall",
"src": "5183:17:2"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulIdentifier",
"src": "5130:43:2"
},
"nodeType": "YulFunctionCall",
"src": "5130:71:2"
},
"nodeType": "YulExpressionStatement",
"src": "5130:71:2"
}
]
},
"name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "5056:9:2",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "5068:6:2",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "5079:4:2",
"type": ""
}
],
"src": "4986:222:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5255:88:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "5265:30:2",
"value": {
"arguments": [],
"functionName": {
"name": "allocate_unbounded",
"nodeType": "YulIdentifier",
"src": "5275:18:2"
},
"nodeType": "YulFunctionCall",
"src": "5275:20:2"
},
"variableNames": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "5265:6:2"
}
]
},
{
"expression": {
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "5324:6:2"
},
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "5332:4:2"
}
],
"functionName": {
"name": "finalize_allocation",
"nodeType": "YulIdentifier",
"src": "5304:19:2"
},
"nodeType": "YulFunctionCall",
"src": "5304:33:2"
},
"nodeType": "YulExpressionStatement",
"src": "5304:33:2"
}
]
},
"name": "allocate_memory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "size",
"nodeType": "YulTypedName",
"src": "5239:4:2",
"type": ""
}
],
"returnVariables": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "5248:6:2",
"type": ""
}
],
"src": "5214:129:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5389:35:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "5399:19:2",
"value": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5415:2:2",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "5409:5:2"
},
"nodeType": "YulFunctionCall",
"src": "5409:9:2"
},
"variableNames": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "5399:6:2"
}
]
}
]
},
"name": "allocate_unbounded",
"nodeType": "YulFunctionDefinition",
"returnVariables": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "5382:6:2",
"type": ""
}
],
"src": "5349:75:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5512:229:2",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "5617:22:2",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x41",
"nodeType": "YulIdentifier",
"src": "5619:16:2"
},
"nodeType": "YulFunctionCall",
"src": "5619:18:2"
},
"nodeType": "YulExpressionStatement",
"src": "5619:18:2"
}
]
},
"condition": {
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "5589:6:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5597:18:2",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "5586:2:2"
},
"nodeType": "YulFunctionCall",
"src": "5586:30:2"
},
"nodeType": "YulIf",
"src": "5583:56:2"
},
{
"nodeType": "YulAssignment",
"src": "5649:25:2",
"value": {
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "5661:6:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5669:4:2",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "mul",
"nodeType": "YulIdentifier",
"src": "5657:3:2"
},
"nodeType": "YulFunctionCall",
"src": "5657:17:2"
},
"variableNames": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "5649:4:2"
}
]
},
{
"nodeType": "YulAssignment",
"src": "5711:23:2",
"value": {
"arguments": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "5723:4:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5729:4:2",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5719:3:2"
},
"nodeType": "YulFunctionCall",
"src": "5719:15:2"
},
"variableNames": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "5711:4:2"
}
]
}
]
},
"name": "array_allocation_size_t_array$_t_uint256_$dyn_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "5496:6:2",
"type": ""
}
],
"returnVariables": [
{
"name": "size",
"nodeType": "YulTypedName",
"src": "5507:4:2",
"type": ""
}
],
"src": "5430:311:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5819:60:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "5829:11:2",
"value": {
"name": "ptr",
"nodeType": "YulIdentifier",
"src": "5837:3:2"
},
"variableNames": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "5829:4:2"
}
]
},
{
"nodeType": "YulAssignment",
"src": "5850:22:2",
"value": {
"arguments": [
{
"name": "ptr",
"nodeType": "YulIdentifier",
"src": "5862:3:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5867:4:2",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5858:3:2"
},
"nodeType": "YulFunctionCall",
"src": "5858:14:2"
},
"variableNames": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "5850:4:2"
}
]
}
]
},
"name": "array_dataslot_t_array$_t_uint256_$dyn_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "ptr",
"nodeType": "YulTypedName",
"src": "5806:3:2",
"type": ""
}
],
"returnVariables": [
{
"name": "data",
"nodeType": "YulTypedName",
"src": "5814:4:2",
"type": ""
}
],
"src": "5747:132:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5959:40:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "5970:22:2",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "5986:5:2"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "5980:5:2"
},
"nodeType": "YulFunctionCall",
"src": "5980:12:2"
},
"variableNames": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "5970:6:2"
}
]
}
]
},
"name": "array_length_t_array$_t_uint256_$dyn_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "5942:5:2",
"type": ""
}
],
"returnVariables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "5952:6:2",
"type": ""
}
],
"src": "5885:114:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "6080:38:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "6090:22:2",
"value": {
"arguments": [
{
"name": "ptr",
"nodeType": "YulIdentifier",
"src": "6102:3:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6107:4:2",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6098:3:2"
},
"nodeType": "YulFunctionCall",
"src": "6098:14:2"
},
"variableNames": [
{
"name": "next",
"nodeType": "YulIdentifier",
"src": "6090:4:2"
}
]
}
]
},
"name": "array_nextElement_t_array$_t_uint256_$dyn_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "ptr",
"nodeType": "YulTypedName",
"src": "6067:3:2",
"type": ""
}
],
"returnVariables": [
{
"name": "next",
"nodeType": "YulTypedName",
"src": "6075:4:2",
"type": ""
}
],
"src": "6005:113:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "6235:73:2",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "6252:3:2"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "6257:6:2"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "6245:6:2"
},
"nodeType": "YulFunctionCall",
"src": "6245:19:2"
},
"nodeType": "YulExpressionStatement",
"src": "6245:19:2"
},
{
"nodeType": "YulAssignment",
"src": "6273:29:2",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "6292:3:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6297:4:2",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6288:3:2"
},
"nodeType": "YulFunctionCall",
"src": "6288:14:2"
},
"variableNames": [
{
"name": "updated_pos",
"nodeType": "YulIdentifier",
"src": "6273:11:2"
}
]
}
]
},
"name": "array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "6207:3:2",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "6212:6:2",
"type": ""
}
],
"returnVariables": [
{
"name": "updated_pos",
"nodeType": "YulTypedName",
"src": "6223:11:2",
"type": ""
}
],
"src": "6124:184:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "6359:51:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "6369:35:2",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "6398:5:2"
}
],
"functionName": {
"name": "cleanup_t_uint160",
"nodeType": "YulIdentifier",
"src": "6380:17:2"
},
"nodeType": "YulFunctionCall",
"src": "6380:24:2"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "6369:7:2"
}
]
}
]
},
"name": "cleanup_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "6341:5:2",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "6351:7:2",
"type": ""
}
],
"src": "6314:96:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "6458:48:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "6468:32:2",
"value": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "6493:5:2"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "6486:6:2"
},
"nodeType": "YulFunctionCall",
"src": "6486:13:2"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "6479:6:2"
},
"nodeType": "YulFunctionCall",
"src": "6479:21:2"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "6468:7:2"
}
]
}
]
},
"name": "cleanup_t_bool",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "6440:5:2",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "6450:7:2",
"type": ""
}
],
"src": "6416:90:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "6557:81:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "6567:65:2",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "6582:5:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6589:42:2",
"type": "",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "6578:3:2"
},
"nodeType": "YulFunctionCall",
"src": "6578:54:2"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "6567:7:2"
}
]
}
]
},
"name": "cleanup_t_uint160",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "6539:5:2",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "6549:7:2",
"type": ""
}
],
"src": "6512:126:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "6689:32:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "6699:16:2",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "6710:5:2"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "6699:7:2"
}
]
}
]
},
"name": "cleanup_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "6671:5:2",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "6681:7:2",
"type": ""
}
],
"src": "6644:77:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "6770:128:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "6780:33:2",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "6807:5:2"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "6789:17:2"
},
"nodeType": "YulFunctionCall",
"src": "6789:24:2"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "6780:5:2"
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "6841:22:2",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x11",
"nodeType": "YulIdentifier",
"src": "6843:16:2"
},
"nodeType": "YulFunctionCall",
"src": "6843:18:2"
},
"nodeType": "YulExpressionStatement",
"src": "6843:18:2"
}
]
},
"condition": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "6828:5:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6835:4:2",
"type": "",
"value": "0x00"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "6825:2:2"
},
"nodeType": "YulFunctionCall",
"src": "6825:15:2"
},
"nodeType": "YulIf",
"src": "6822:41:2"
},
{
"nodeType": "YulAssignment",
"src": "6872:20:2",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "6883:5:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6890:1:2",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "6879:3:2"
},
"nodeType": "YulFunctionCall",
"src": "6879:13:2"
},
"variableNames": [
{
"name": "ret",
"nodeType": "YulIdentifier",
"src": "6872:3:2"
}
]
}
]
},
"name": "decrement_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "6756:5:2",
"type": ""
}
],
"returnVariables": [
{
"name": "ret",
"nodeType": "YulTypedName",
"src": "6766:3:2",
"type": ""
}
],
"src": "6727:171:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "6947:238:2",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "6957:58:2",
"value": {
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "6979:6:2"
},
{
"arguments": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "7009:4:2"
}
],
"functionName": {
"name": "round_up_to_mul_of_32",
"nodeType": "YulIdentifier",
"src": "6987:21:2"
},
"nodeType": "YulFunctionCall",
"src": "6987:27:2"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6975:3:2"
},
"nodeType": "YulFunctionCall",
"src": "6975:40:2"
},
"variables": [
{
"name": "newFreePtr",
"nodeType": "YulTypedName",
"src": "6961:10:2",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "7126:22:2",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x41",
"nodeType": "YulIdentifier",
"src": "7128:16:2"
},
"nodeType": "YulFunctionCall",
"src": "7128:18:2"
},
"nodeType": "YulExpressionStatement",
"src": "7128:18:2"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "newFreePtr",
"nodeType": "YulIdentifier",
"src": "7069:10:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7081:18:2",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "7066:2:2"
},
"nodeType": "YulFunctionCall",
"src": "7066:34:2"
},
{
"arguments": [
{
"name": "newFreePtr",
"nodeType": "YulIdentifier",
"src": "7105:10:2"
},
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "7117:6:2"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "7102:2:2"
},
"nodeType": "YulFunctionCall",
"src": "7102:22:2"
}
],
"functionName": {
"name": "or",
"nodeType": "YulIdentifier",
"src": "7063:2:2"
},
"nodeType": "YulFunctionCall",
"src": "7063:62:2"
},
"nodeType": "YulIf",
"src": "7060:88:2"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7164:2:2",
"type": "",
"value": "64"
},
{
"name": "newFreePtr",
"nodeType": "YulIdentifier",
"src": "7168:10:2"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "7157:6:2"
},
"nodeType": "YulFunctionCall",
"src": "7157:22:2"
},
"nodeType": "YulExpressionStatement",
"src": "7157:22:2"
}
]
},
"name": "finalize_allocation",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "6933:6:2",
"type": ""
},
{
"name": "size",
"nodeType": "YulTypedName",
"src": "6941:4:2",
"type": ""
}
],
"src": "6904:281:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "7234:190:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "7244:33:2",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "7271:5:2"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "7253:17:2"
},
"nodeType": "YulFunctionCall",
"src": "7253:24:2"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "7244:5:2"
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "7367:22:2",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x11",
"nodeType": "YulIdentifier",
"src": "7369:16:2"
},
"nodeType": "YulFunctionCall",
"src": "7369:18:2"
},
"nodeType": "YulExpressionStatement",
"src": "7369:18:2"
}
]
},
"condition": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "7292:5:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7299:66:2",
"type": "",
"value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "7289:2:2"
},
"nodeType": "YulFunctionCall",
"src": "7289:77:2"
},
"nodeType": "YulIf",
"src": "7286:103:2"
},
{
"nodeType": "YulAssignment",
"src": "7398:20:2",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "7409:5:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7416:1:2",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7405:3:2"
},
"nodeType": "YulFunctionCall",
"src": "7405:13:2"
},
"variableNames": [
{
"name": "ret",
"nodeType": "YulIdentifier",
"src": "7398:3:2"
}
]
}
]
},
"name": "increment_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "7220:5:2",
"type": ""
}
],
"returnVariables": [
{
"name": "ret",
"nodeType": "YulTypedName",
"src": "7230:3:2",
"type": ""
}
],
"src": "7191:233:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "7458:152:2",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7475:1:2",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7478:77:2",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "7468:6:2"
},
"nodeType": "YulFunctionCall",
"src": "7468:88:2"
},
"nodeType": "YulExpressionStatement",
"src": "7468:88:2"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7572:1:2",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7575:4:2",
"type": "",
"value": "0x01"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "7565:6:2"
},
"nodeType": "YulFunctionCall",
"src": "7565:15:2"
},
"nodeType": "YulExpressionStatement",
"src": "7565:15:2"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7596:1:2",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7599:4:2",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "7589:6:2"
},
"nodeType": "YulFunctionCall",
"src": "7589:15:2"
},
"nodeType": "YulExpressionStatement",
"src": "7589:15:2"
}
]
},
"name": "panic_error_0x01",
"nodeType": "YulFunctionDefinition",
"src": "7430:180:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "7644:152:2",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7661:1:2",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7664:77:2",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "7654:6:2"
},
"nodeType": "YulFunctionCall",
"src": "7654:88:2"
},
"nodeType": "YulExpressionStatement",
"src": "7654:88:2"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7758:1:2",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7761:4:2",
"type": "",
"value": "0x11"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "7751:6:2"
},
"nodeType": "YulFunctionCall",
"src": "7751:15:2"
},
"nodeType": "YulExpressionStatement",
"src": "7751:15:2"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7782:1:2",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7785:4:2",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "7775:6:2"
},
"nodeType": "YulFunctionCall",
"src": "7775:15:2"
},
"nodeType": "YulExpressionStatement",
"src": "7775:15:2"
}
]
},
"name": "panic_error_0x11",
"nodeType": "YulFunctionDefinition",
"src": "7616:180:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "7830:152:2",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7847:1:2",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7850:77:2",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "7840:6:2"
},
"nodeType": "YulFunctionCall",
"src": "7840:88:2"
},
"nodeType": "YulExpressionStatement",
"src": "7840:88:2"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7944:1:2",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7947:4:2",
"type": "",
"value": "0x32"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "7937:6:2"
},
"nodeType": "YulFunctionCall",
"src": "7937:15:2"
},
"nodeType": "YulExpressionStatement",
"src": "7937:15:2"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7968:1:2",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7971:4:2",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "7961:6:2"
},
"nodeType": "YulFunctionCall",
"src": "7961:15:2"
},
"nodeType": "YulExpressionStatement",
"src": "7961:15:2"
}
]
},
"name": "panic_error_0x32",
"nodeType": "YulFunctionDefinition",
"src": "7802:180:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "8016:152:2",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8033:1:2",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8036:77:2",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "8026:6:2"
},
"nodeType": "YulFunctionCall",
"src": "8026:88:2"
},
"nodeType": "YulExpressionStatement",
"src": "8026:88:2"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8130:1:2",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8133:4:2",
"type": "",
"value": "0x41"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "8123:6:2"
},
"nodeType": "YulFunctionCall",
"src": "8123:15:2"
},
"nodeType": "YulExpressionStatement",
"src": "8123:15:2"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8154:1:2",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8157:4:2",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "8147:6:2"
},
"nodeType": "YulFunctionCall",
"src": "8147:15:2"
},
"nodeType": "YulExpressionStatement",
"src": "8147:15:2"
}
]
},
"name": "panic_error_0x41",
"nodeType": "YulFunctionDefinition",
"src": "7988:180:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "8263:28:2",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8280:1:2",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8283:1:2",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "8273:6:2"
},
"nodeType": "YulFunctionCall",
"src": "8273:12:2"
},
"nodeType": "YulExpressionStatement",
"src": "8273:12:2"
}
]
},
"name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d",
"nodeType": "YulFunctionDefinition",
"src": "8174:117:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "8386:28:2",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8403:1:2",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8406:1:2",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "8396:6:2"
},
"nodeType": "YulFunctionCall",
"src": "8396:12:2"
},
"nodeType": "YulExpressionStatement",
"src": "8396:12:2"
}
]
},
"name": "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef",
"nodeType": "YulFunctionDefinition",
"src": "8297:117:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "8509:28:2",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8526:1:2",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8529:1:2",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "8519:6:2"
},
"nodeType": "YulFunctionCall",
"src": "8519:12:2"
},
"nodeType": "YulExpressionStatement",
"src": "8519:12:2"
}
]
},
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nodeType": "YulFunctionDefinition",
"src": "8420:117:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "8632:28:2",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8649:1:2",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8652:1:2",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "8642:6:2"
},
"nodeType": "YulFunctionCall",
"src": "8642:12:2"
},
"nodeType": "YulExpressionStatement",
"src": "8642:12:2"
}
]
},
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulFunctionDefinition",
"src": "8543:117:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "8714:54:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "8724:38:2",
"value": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "8742:5:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8749:2:2",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "8738:3:2"
},
"nodeType": "YulFunctionCall",
"src": "8738:14:2"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8758:2:2",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "not",
"nodeType": "YulIdentifier",
"src": "8754:3:2"
},
"nodeType": "YulFunctionCall",
"src": "8754:7:2"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "8734:3:2"
},
"nodeType": "YulFunctionCall",
"src": "8734:28:2"
},
"variableNames": [
{
"name": "result",
"nodeType": "YulIdentifier",
"src": "8724:6:2"
}
]
}
]
},
"name": "round_up_to_mul_of_32",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "8697:5:2",
"type": ""
}
],
"returnVariables": [
{
"name": "result",
"nodeType": "YulTypedName",
"src": "8707:6:2",
"type": ""
}
],
"src": "8666:102:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "8817:79:2",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "8874:16:2",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8883:1:2",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8886:1:2",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "8876:6:2"
},
"nodeType": "YulFunctionCall",
"src": "8876:12:2"
},
"nodeType": "YulExpressionStatement",
"src": "8876:12:2"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "8840:5:2"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "8865:5:2"
}
],
"functionName": {
"name": "cleanup_t_address",
"nodeType": "YulIdentifier",
"src": "8847:17:2"
},
"nodeType": "YulFunctionCall",
"src": "8847:24:2"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "8837:2:2"
},
"nodeType": "YulFunctionCall",
"src": "8837:35:2"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "8830:6:2"
},
"nodeType": "YulFunctionCall",
"src": "8830:43:2"
},
"nodeType": "YulIf",
"src": "8827:63:2"
}
]
},
"name": "validator_revert_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "8810:5:2",
"type": ""
}
],
"src": "8774:122:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "8945:79:2",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "9002:16:2",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9011:1:2",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9014:1:2",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "9004:6:2"
},
"nodeType": "YulFunctionCall",
"src": "9004:12:2"
},
"nodeType": "YulExpressionStatement",
"src": "9004:12:2"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "8968:5:2"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "8993:5:2"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "8975:17:2"
},
"nodeType": "YulFunctionCall",
"src": "8975:24:2"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "8965:2:2"
},
"nodeType": "YulFunctionCall",
"src": "8965:35:2"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "8958:6:2"
},
"nodeType": "YulFunctionCall",
"src": "8958:43:2"
},
"nodeType": "YulIf",
"src": "8955:63:2"
}
]
},
"name": "validator_revert_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "8938:5:2",
"type": ""
}
],
"src": "8902:122:2"
}
]
},
"contents": "{\n\n // uint256[]\n function abi_decode_available_length_t_array$_t_uint256_$dyn_memory_ptr(offset, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_array$_t_uint256_$dyn_memory_ptr(length))\n let dst := array\n\n mstore(array, length)\n dst := add(array, 0x20)\n\n let src := offset\n if gt(add(src, mul(length, 0x20)), end) {\n revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef()\n }\n for { let i := 0 } lt(i, length) { i := add(i, 1) }\n {\n\n let elementPos := src\n\n mstore(dst, abi_decode_t_uint256(elementPos, end))\n dst := add(dst, 0x20)\n src := add(src, 0x20)\n }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n // uint256[]\n function abi_decode_t_array$_t_uint256_$dyn_memory_ptr(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := calldataload(offset)\n array := abi_decode_available_length_t_array$_t_uint256_$dyn_memory_ptr(add(offset, 0x20), length, end)\n }\n\n function 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_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_uint256t_array$_t_uint256_$dyn_memory_ptr(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value1 := abi_decode_t_array$_t_uint256_$dyn_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_encodeUpdatedPos_t_uint256_to_t_uint256(value0, pos) -> updatedPos {\n abi_encode_t_uint256_to_t_uint256(value0, pos)\n updatedPos := add(pos, 0x20)\n }\n\n // uint256[] -> uint256[]\n function abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_array$_t_uint256_$dyn_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack(pos, length)\n let baseRef := array_dataslot_t_array$_t_uint256_$dyn_memory_ptr(value)\n let srcPtr := baseRef\n for { let i := 0 } lt(i, length) { i := add(i, 1) }\n {\n let elementValue0 := mload(srcPtr)\n pos := abi_encodeUpdatedPos_t_uint256_to_t_uint256(elementValue0, pos)\n srcPtr := array_nextElement_t_array$_t_uint256_$dyn_memory_ptr(srcPtr)\n }\n end := pos\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_t_uint256_to_t_uint256(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack(value0, tail)\n\n }\n\n function abi_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_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 allocate_memory(size) -> memPtr {\n memPtr := allocate_unbounded()\n finalize_allocation(memPtr, size)\n }\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function array_allocation_size_t_array$_t_uint256_$dyn_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := mul(length, 0x20)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function array_dataslot_t_array$_t_uint256_$dyn_memory_ptr(ptr) -> data {\n data := ptr\n\n data := add(ptr, 0x20)\n\n }\n\n function array_length_t_array$_t_uint256_$dyn_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_nextElement_t_array$_t_uint256_$dyn_memory_ptr(ptr) -> next {\n next := add(ptr, 0x20)\n }\n\n function array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function decrement_t_uint256(value) -> ret {\n value := cleanup_t_uint256(value)\n if eq(value, 0x00) { panic_error_0x11() }\n ret := sub(value, 1)\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 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 panic_error_0x01() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x01)\n revert(0, 0x24)\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function panic_error_0x32() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x32)\n revert(0, 0x24)\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\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 validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n}\n",
"id": 2,
"language": "Yul",
"name": "#utility.yul"
}
],
"immutableReferences": {},
"linkReferences": {},
"object": "608060405234801561001057600080fd5b506004361061004c5760003560e01c80637055d36814610051578063aff9e95414610081578063d23254b4146100b1578063d70c6f4e146100e1575b600080fd5b61006b60048036038101906100669190610546565b610111565b60405161007891906106a7565b60405180910390f35b61009b600480360381019061009691906105a2565b610303565b6040516100a89190610685565b60405180910390f35b6100cb60048036038101906100c69190610506565b6103f4565b6040516100d891906106c2565b60405180910390f35b6100fb60048036038101906100f691906105a2565b610419565b60405161010891906106c2565b60405180910390f35b6000600182511461012557610124610853565b5b60088260008151811061013b5761013a6108b1565b5b60200260200101511061015157610150610853565b5b600082600081518110610167576101666108b1565b5b60200260200101519050600080600086815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060016000868152602001908152602001600020600082815260200190815260200160002060008154809291906101fa906107af565b919050555060016000868152602001908152602001600020600083815260200190815260200160002060008154809291906102349061080a565b91905055508360008151811061024d5761024c6108b1565b5b602002602001015160008087815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16857f9d77f9480ebb76e61c50c6d0b4913d773e971c600d4ee011b7d9d4aa01882cbb866040516102ef9190610685565b60405180910390a360019250505092915050565b60606000805b60088110156103795760016000868152602001908152602001600020600083815260200190815260200160002054600160008781526020019081526020016000206000838152602001908152602001600020541115610366578091505b80806103719061080a565b915050610309565b506000600167ffffffffffffffff811115610397576103966108e0565b5b6040519080825280602002602001820160405280156103c55781602001602082028036833780820191505090505b50905081816000815181106103dd576103dc6108b1565b5b602002602001018181525050809250505092915050565b6000602052816000526040600020602052806000526040600020600091509150505481565b6001602052816000526040600020602052806000526040600020600091509150505481565b600061045161044c84610702565b6106dd565b9050808382526020820190508285602086028201111561047457610473610914565b5b60005b858110156104a4578161048a88826104f1565b845260208401935060208301925050600181019050610477565b5050509392505050565b6000813590506104bd81610934565b92915050565b600082601f8301126104d8576104d761090f565b5b81356104e884826020860161043e565b91505092915050565b6000813590506105008161094b565b92915050565b6000806040838503121561051d5761051c61091e565b5b600061052b858286016104f1565b925050602061053c858286016104ae565b9150509250929050565b6000806040838503121561055d5761055c61091e565b5b600061056b858286016104f1565b925050602083013567ffffffffffffffff81111561058c5761058b610919565b5b610598858286016104c3565b9150509250929050565b600080604083850312156105b9576105b861091e565b5b60006105c7858286016104f1565b92505060206105d8858286016104f1565b9150509250929050565b60006105ee8383610667565b60208301905092915050565b60006106058261073e565b61060f8185610756565b935061061a8361072e565b8060005b8381101561064b57815161063288826105e2565b975061063d83610749565b92505060018101905061061e565b5085935050505092915050565b61066181610779565b82525050565b610670816107a5565b82525050565b61067f816107a5565b82525050565b6000602082019050818103600083015261069f81846105fa565b905092915050565b60006020820190506106bc6000830184610658565b92915050565b60006020820190506106d76000830184610676565b92915050565b60006106e76106f8565b90506106f382826107d9565b919050565b6000604051905090565b600067ffffffffffffffff82111561071d5761071c6108e0565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600061077282610785565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60006107ba826107a5565b915060008214156107ce576107cd610882565b5b600182039050919050565b6107e282610923565b810181811067ffffffffffffffff82111715610801576108006108e0565b5b80604052505050565b6000610815826107a5565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561084857610847610882565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b61093d81610767565b811461094857600080fd5b50565b610954816107a5565b811461095f57600080fd5b5056fea264697066735822122000b08d14dfc08aa246a5578bac655529344d58b7963b1a7eae0d6134e147728764736f6c63430008070033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x4C JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x7055D368 EQ PUSH2 0x51 JUMPI DUP1 PUSH4 0xAFF9E954 EQ PUSH2 0x81 JUMPI DUP1 PUSH4 0xD23254B4 EQ PUSH2 0xB1 JUMPI DUP1 PUSH4 0xD70C6F4E EQ PUSH2 0xE1 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x6B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x66 SWAP2 SWAP1 PUSH2 0x546 JUMP JUMPDEST PUSH2 0x111 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x78 SWAP2 SWAP1 PUSH2 0x6A7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x9B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x96 SWAP2 SWAP1 PUSH2 0x5A2 JUMP JUMPDEST PUSH2 0x303 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xA8 SWAP2 SWAP1 PUSH2 0x685 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xCB PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xC6 SWAP2 SWAP1 PUSH2 0x506 JUMP JUMPDEST PUSH2 0x3F4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xD8 SWAP2 SWAP1 PUSH2 0x6C2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xFB PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xF6 SWAP2 SWAP1 PUSH2 0x5A2 JUMP JUMPDEST PUSH2 0x419 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x108 SWAP2 SWAP1 PUSH2 0x6C2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP3 MLOAD EQ PUSH2 0x125 JUMPI PUSH2 0x124 PUSH2 0x853 JUMP JUMPDEST JUMPDEST PUSH1 0x8 DUP3 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x13B JUMPI PUSH2 0x13A PUSH2 0x8B1 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD LT PUSH2 0x151 JUMPI PUSH2 0x150 PUSH2 0x853 JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x167 JUMPI PUSH2 0x166 PUSH2 0x8B1 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP1 POP PUSH1 0x0 DUP1 PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP PUSH1 0x1 PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP2 SLOAD DUP1 SWAP3 SWAP2 SWAP1 PUSH2 0x1FA SWAP1 PUSH2 0x7AF JUMP JUMPDEST SWAP2 SWAP1 POP SSTORE POP PUSH1 0x1 PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP2 SLOAD DUP1 SWAP3 SWAP2 SWAP1 PUSH2 0x234 SWAP1 PUSH2 0x80A JUMP JUMPDEST SWAP2 SWAP1 POP SSTORE POP DUP4 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x24D JUMPI PUSH2 0x24C PUSH2 0x8B1 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x0 DUP1 DUP8 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH32 0x9D77F9480EBB76E61C50C6D0B4913D773E971C600D4EE011B7D9D4AA01882CBB DUP7 PUSH1 0x40 MLOAD PUSH2 0x2EF SWAP2 SWAP1 PUSH2 0x685 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH1 0x1 SWAP3 POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 JUMPDEST PUSH1 0x8 DUP2 LT ISZERO PUSH2 0x379 JUMPI PUSH1 0x1 PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD GT ISZERO PUSH2 0x366 JUMPI DUP1 SWAP2 POP JUMPDEST DUP1 DUP1 PUSH2 0x371 SWAP1 PUSH2 0x80A JUMP JUMPDEST SWAP2 POP POP PUSH2 0x309 JUMP JUMPDEST POP PUSH1 0x0 PUSH1 0x1 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x397 JUMPI PUSH2 0x396 PUSH2 0x8E0 JUMP JUMPDEST JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x3C5 JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY DUP1 DUP3 ADD SWAP2 POP POP SWAP1 POP JUMPDEST POP SWAP1 POP DUP2 DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x3DD JUMPI PUSH2 0x3DC PUSH2 0x8B1 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP DUP1 SWAP3 POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 MSTORE DUP2 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SWAP2 POP POP SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE DUP2 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SWAP2 POP POP SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x451 PUSH2 0x44C DUP5 PUSH2 0x702 JUMP JUMPDEST PUSH2 0x6DD JUMP JUMPDEST SWAP1 POP DUP1 DUP4 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP DUP3 DUP6 PUSH1 0x20 DUP7 MUL DUP3 ADD GT ISZERO PUSH2 0x474 JUMPI PUSH2 0x473 PUSH2 0x914 JUMP JUMPDEST JUMPDEST PUSH1 0x0 JUMPDEST DUP6 DUP2 LT ISZERO PUSH2 0x4A4 JUMPI DUP2 PUSH2 0x48A DUP9 DUP3 PUSH2 0x4F1 JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH1 0x20 DUP4 ADD SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x477 JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x4BD DUP2 PUSH2 0x934 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x4D8 JUMPI PUSH2 0x4D7 PUSH2 0x90F JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x4E8 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x43E JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x500 DUP2 PUSH2 0x94B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x51D JUMPI PUSH2 0x51C PUSH2 0x91E JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x52B DUP6 DUP3 DUP7 ADD PUSH2 0x4F1 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x53C DUP6 DUP3 DUP7 ADD PUSH2 0x4AE JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x55D JUMPI PUSH2 0x55C PUSH2 0x91E JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x56B DUP6 DUP3 DUP7 ADD PUSH2 0x4F1 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x58C JUMPI PUSH2 0x58B PUSH2 0x919 JUMP JUMPDEST JUMPDEST PUSH2 0x598 DUP6 DUP3 DUP7 ADD PUSH2 0x4C3 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x5B9 JUMPI PUSH2 0x5B8 PUSH2 0x91E JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x5C7 DUP6 DUP3 DUP7 ADD PUSH2 0x4F1 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x5D8 DUP6 DUP3 DUP7 ADD PUSH2 0x4F1 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5EE DUP4 DUP4 PUSH2 0x667 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x605 DUP3 PUSH2 0x73E JUMP JUMPDEST PUSH2 0x60F DUP2 DUP6 PUSH2 0x756 JUMP JUMPDEST SWAP4 POP PUSH2 0x61A DUP4 PUSH2 0x72E JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x64B JUMPI DUP2 MLOAD PUSH2 0x632 DUP9 DUP3 PUSH2 0x5E2 JUMP JUMPDEST SWAP8 POP PUSH2 0x63D DUP4 PUSH2 0x749 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x61E JUMP JUMPDEST POP DUP6 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x661 DUP2 PUSH2 0x779 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x670 DUP2 PUSH2 0x7A5 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x67F DUP2 PUSH2 0x7A5 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x69F DUP2 DUP5 PUSH2 0x5FA JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x6BC PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x658 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x6D7 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x676 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6E7 PUSH2 0x6F8 JUMP JUMPDEST SWAP1 POP PUSH2 0x6F3 DUP3 DUP3 PUSH2 0x7D9 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x71D JUMPI PUSH2 0x71C PUSH2 0x8E0 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD 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 0x772 DUP3 PUSH2 0x785 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 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 0x7BA DUP3 PUSH2 0x7A5 JUMP JUMPDEST SWAP2 POP PUSH1 0x0 DUP3 EQ ISZERO PUSH2 0x7CE JUMPI PUSH2 0x7CD PUSH2 0x882 JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 SUB SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x7E2 DUP3 PUSH2 0x923 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x801 JUMPI PUSH2 0x800 PUSH2 0x8E0 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x815 DUP3 PUSH2 0x7A5 JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 EQ ISZERO PUSH2 0x848 JUMPI PUSH2 0x847 PUSH2 0x882 JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x1 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT 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 PUSH2 0x93D DUP2 PUSH2 0x767 JUMP JUMPDEST DUP2 EQ PUSH2 0x948 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x954 DUP2 PUSH2 0x7A5 JUMP JUMPDEST DUP2 EQ PUSH2 0x95F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 STOP 0xB0 DUP14 EQ 0xDF 0xC0 DUP11 LOG2 CHAINID 0xA5 JUMPI DUP12 0xAC PUSH6 0x5529344D58B7 SWAP7 EXTCODESIZE BYTE PUSH31 0xAE0D6134E147728764736F6C63430008070033000000000000000000000000 ",
"sourceMap": "616:1282:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;919:522;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1447:448;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;713:95;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;814:94;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;919:522;1001:4;1046:1;1025:10;:17;:22;1018:30;;;;:::i;:::-;;697:1;1065:10;1076:1;1065:13;;;;;;;;:::i;:::-;;;;;;;;:37;1058:45;;;;:::i;:::-;;1113:21;1137:10;1148:1;1137:13;;;;;;;;:::i;:::-;;;;;;;;1113:37;;1160:21;1184:5;:15;1190:8;1184:15;;;;;;;;;;;:27;1200:10;1184:27;;;;;;;;;;;;;;;;1160:51;;1221:7;:17;1229:8;1221:17;;;;;;;;;;;:35;1239:16;1221:35;;;;;;;;;;;;:37;;;;;;;;;:::i;:::-;;;;;;1268:7;:17;1276:8;1268:17;;;;;;;;;;;:35;1286:16;1268:35;;;;;;;;;;;;:37;;;;;;;;;:::i;:::-;;;;;;1345:10;1356:1;1345:13;;;;;;;;:::i;:::-;;;;;;;;1315:5;:15;1321:8;1315:15;;;;;;;;;;;:27;1331:10;1315:27;;;;;;;;;;;;;;;:43;;;;1402:10;1373:40;;1380:8;1373:40;1390:10;1373:40;;;;;;:::i;:::-;;;;;;;;1430:4;1423:11;;;;919:522;;;;:::o;1447:448::-;1549:13;1573:20;1611:6;1606:180;697:1;1621;:23;1606:180;;;1691:7;:17;1699:8;1691:17;;;;;;;;;;;:34;1709:15;1691:34;;;;;;;;;;;;1668:7;:17;1676:8;1668:17;;;;;;;;;;;:20;1686:1;1668:20;;;;;;;;;;;;:57;1664:113;;;1762:1;1744:19;;1664:113;1646:3;;;;;:::i;:::-;;;;1606:180;;;;1794:20;1828:1;1817:13;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1794:36;;1851:15;1839:6;1846:1;1839:9;;;;;;;;:::i;:::-;;;;;;;:27;;;;;1882:6;1875:13;;;;1447:448;;;;:::o;713:95::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;814:94::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;24:722:2:-;120:5;145:81;161:64;218:6;161:64;:::i;:::-;145:81;:::i;:::-;136:90;;246:5;275:6;268:5;261:21;309:4;302:5;298:16;291:23;;335:6;385:3;377:4;369:6;365:17;360:3;356:27;353:36;350:143;;;404:79;;:::i;:::-;350:143;517:1;502:238;527:6;524:1;521:13;502:238;;;595:3;624:37;657:3;645:10;624:37;:::i;:::-;619:3;612:50;691:4;686:3;682:14;675:21;;725:4;720:3;716:14;709:21;;562:178;549:1;546;542:9;537:14;;502:238;;;506:14;126:620;;24:722;;;;;:::o;752:139::-;798:5;836:6;823:20;814:29;;852:33;879:5;852:33;:::i;:::-;752:139;;;;:::o;914:370::-;985:5;1034:3;1027:4;1019:6;1015:17;1011:27;1001:122;;1042:79;;:::i;:::-;1001:122;1159:6;1146:20;1184:94;1274:3;1266:6;1259:4;1251:6;1247:17;1184:94;:::i;:::-;1175:103;;991:293;914:370;;;;:::o;1290:139::-;1336:5;1374:6;1361:20;1352:29;;1390:33;1417:5;1390:33;:::i;:::-;1290:139;;;;:::o;1435:474::-;1503:6;1511;1560:2;1548:9;1539:7;1535:23;1531:32;1528:119;;;1566:79;;:::i;:::-;1528:119;1686:1;1711:53;1756:7;1747:6;1736:9;1732:22;1711:53;:::i;:::-;1701:63;;1657:117;1813:2;1839:53;1884:7;1875:6;1864:9;1860:22;1839:53;:::i;:::-;1829:63;;1784:118;1435:474;;;;;:::o;1915:684::-;2008:6;2016;2065:2;2053:9;2044:7;2040:23;2036:32;2033:119;;;2071:79;;:::i;:::-;2033:119;2191:1;2216:53;2261:7;2252:6;2241:9;2237:22;2216:53;:::i;:::-;2206:63;;2162:117;2346:2;2335:9;2331:18;2318:32;2377:18;2369:6;2366:30;2363:117;;;2399:79;;:::i;:::-;2363:117;2504:78;2574:7;2565:6;2554:9;2550:22;2504:78;:::i;:::-;2494:88;;2289:303;1915:684;;;;;:::o;2605:474::-;2673:6;2681;2730:2;2718:9;2709:7;2705:23;2701:32;2698:119;;;2736:79;;:::i;:::-;2698:119;2856:1;2881:53;2926:7;2917:6;2906:9;2902:22;2881:53;:::i;:::-;2871:63;;2827:117;2983:2;3009:53;3054:7;3045:6;3034:9;3030:22;3009:53;:::i;:::-;2999:63;;2954:118;2605:474;;;;;:::o;3085:179::-;3154:10;3175:46;3217:3;3209:6;3175:46;:::i;:::-;3253:4;3248:3;3244:14;3230:28;;3085:179;;;;:::o;3300:732::-;3419:3;3448:54;3496:5;3448:54;:::i;:::-;3518:86;3597:6;3592:3;3518:86;:::i;:::-;3511:93;;3628:56;3678:5;3628:56;:::i;:::-;3707:7;3738:1;3723:284;3748:6;3745:1;3742:13;3723:284;;;3824:6;3818:13;3851:63;3910:3;3895:13;3851:63;:::i;:::-;3844:70;;3937:60;3990:6;3937:60;:::i;:::-;3927:70;;3783:224;3770:1;3767;3763:9;3758:14;;3723:284;;;3727:14;4023:3;4016:10;;3424:608;;;3300:732;;;;:::o;4038:109::-;4119:21;4134:5;4119:21;:::i;:::-;4114:3;4107:34;4038:109;;:::o;4153:108::-;4230:24;4248:5;4230:24;:::i;:::-;4225:3;4218:37;4153:108;;:::o;4267:118::-;4354:24;4372:5;4354:24;:::i;:::-;4349:3;4342:37;4267:118;;:::o;4391:373::-;4534:4;4572:2;4561:9;4557:18;4549:26;;4621:9;4615:4;4611:20;4607:1;4596:9;4592:17;4585:47;4649:108;4752:4;4743:6;4649:108;:::i;:::-;4641:116;;4391:373;;;;:::o;4770:210::-;4857:4;4895:2;4884:9;4880:18;4872:26;;4908:65;4970:1;4959:9;4955:17;4946:6;4908:65;:::i;:::-;4770:210;;;;:::o;4986:222::-;5079:4;5117:2;5106:9;5102:18;5094:26;;5130:71;5198:1;5187:9;5183:17;5174:6;5130:71;:::i;:::-;4986:222;;;;:::o;5214:129::-;5248:6;5275:20;;:::i;:::-;5265:30;;5304:33;5332:4;5324:6;5304:33;:::i;:::-;5214:129;;;:::o;5349:75::-;5382:6;5415:2;5409:9;5399:19;;5349:75;:::o;5430:311::-;5507:4;5597:18;5589:6;5586:30;5583:56;;;5619:18;;:::i;:::-;5583:56;5669:4;5661:6;5657:17;5649:25;;5729:4;5723;5719:15;5711:23;;5430:311;;;:::o;5747:132::-;5814:4;5837:3;5829:11;;5867:4;5862:3;5858:14;5850:22;;5747:132;;;:::o;5885:114::-;5952:6;5986:5;5980:12;5970:22;;5885:114;;;:::o;6005:113::-;6075:4;6107;6102:3;6098:14;6090:22;;6005:113;;;:::o;6124:184::-;6223:11;6257:6;6252:3;6245:19;6297:4;6292:3;6288:14;6273:29;;6124:184;;;;:::o;6314:96::-;6351:7;6380:24;6398:5;6380:24;:::i;:::-;6369:35;;6314:96;;;:::o;6416:90::-;6450:7;6493:5;6486:13;6479:21;6468:32;;6416:90;;;:::o;6512:126::-;6549:7;6589:42;6582:5;6578:54;6567:65;;6512:126;;;:::o;6644:77::-;6681:7;6710:5;6699:16;;6644:77;;;:::o;6727:171::-;6766:3;6789:24;6807:5;6789:24;:::i;:::-;6780:33;;6835:4;6828:5;6825:15;6822:41;;;6843:18;;:::i;:::-;6822:41;6890:1;6883:5;6879:13;6872:20;;6727:171;;;:::o;6904:281::-;6987:27;7009:4;6987:27;:::i;:::-;6979:6;6975:40;7117:6;7105:10;7102:22;7081:18;7069:10;7066:34;7063:62;7060:88;;;7128:18;;:::i;:::-;7060:88;7168:10;7164:2;7157:22;6947:238;6904:281;;:::o;7191:233::-;7230:3;7253:24;7271:5;7253:24;:::i;:::-;7244:33;;7299:66;7292:5;7289:77;7286:103;;;7369:18;;:::i;:::-;7286:103;7416:1;7409:5;7405:13;7398:20;;7191:233;;;:::o;7430:180::-;7478:77;7475:1;7468:88;7575:4;7572:1;7565:15;7599:4;7596:1;7589:15;7616:180;7664:77;7661:1;7654:88;7761:4;7758:1;7751:15;7785:4;7782:1;7775:15;7802:180;7850:77;7847:1;7840:88;7947:4;7944:1;7937:15;7971:4;7968:1;7961:15;7988:180;8036:77;8033:1;8026:88;8133:4;8130:1;8123:15;8157:4;8154:1;8147:15;8174:117;8283:1;8280;8273:12;8297:117;8406:1;8403;8396:12;8420:117;8529:1;8526;8519:12;8543:117;8652:1;8649;8642:12;8666:102;8707:6;8758:2;8754:7;8749:2;8742:5;8738:14;8734:28;8724:38;;8666:102;;;:::o;8774:122::-;8847:24;8865:5;8847:24;:::i;:::-;8840:5;8837:35;8827:63;;8886:1;8883;8876:12;8827:63;8774:122;:::o;8902:::-;8975:24;8993:5;8975:24;:::i;:::-;8968:5;8965:35;8955:63;;9014:1;9011;9004:12;8955:63;8902:122;:::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "491200",
"executionCost": "524",
"totalCost": "491724"
},
"external": {
"results(uint256,uint256)": "infinite",
"topOptions(uint256,uint256)": "infinite",
"vote(uint256,uint256[])": "infinite",
"votes(uint256,address)": "infinite"
}
},
"methodIdentifiers": {
"results(uint256,uint256)": "d70c6f4e",
"topOptions(uint256,uint256)": "aff9e954",
"vote(uint256,uint256[])": "7055d368",
"votes(uint256,address)": "d23254b4"
}
},
"abi": [
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "uint256",
"name": "issueId",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256[]",
"name": "optionIds",
"type": "uint256[]"
},
{
"indexed": true,
"internalType": "address",
"name": "voter",
"type": "address"
}
],
"name": "OnVote",
"type": "event"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "results",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_issueId",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "topOptions",
"outputs": [
{
"internalType": "uint256[]",
"name": "",
"type": "uint256[]"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_issueId",
"type": "uint256"
},
{
"internalType": "uint256[]",
"name": "_optionIds",
"type": "uint256[]"
}
],
"name": "vote",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
},
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "votes",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.8.7+commit.e28d00a7"
},
"language": "Solidity",
"output": {
"abi": [
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "uint256",
"name": "issueId",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256[]",
"name": "optionIds",
"type": "uint256[]"
},
{
"indexed": true,
"internalType": "address",
"name": "voter",
"type": "address"
}
],
"name": "OnVote",
"type": "event"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "results",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_issueId",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "topOptions",
"outputs": [
{
"internalType": "uint256[]",
"name": "",
"type": "uint256[]"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_issueId",
"type": "uint256"
},
{
"internalType": "uint256[]",
"name": "_optionIds",
"type": "uint256[]"
}
],
"name": "vote",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
},
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "votes",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
}
],
"devdoc": {
"kind": "dev",
"methods": {
"vote(uint256,uint256[])": {
"details": "Cast a vote for an issue with `issueId` for option with `optionId`",
"params": {
"_issueId": ": the issue this vote is casting on.",
"_optionIds": ": an *ordered* array of the options being casted for the issue. Whenever referring to the options as a whole, the order MUST be maintained."
},
"returns": {
"_0": "a boolean if TRUE means the vote is casted successfully. "
}
}
},
"title": "Type 0 voting standard of ERC1202, a cluster of **Single-Input-Single-Output Issue**: For every issue of this contract, it allows a vote with exactly 1 option from a voter. The output is only and always a signle winning option. NOTE: DO NOT USE IN PRODUCTION. This sample contract is for demonstration purpose. It has been optimized for readability. A real production should conduct security audit and optimize for gas fees. DO NOT USE IN PRODUCTION.",
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"compilationTarget": {
"contracts/ERC1202Type0.sol": "ERC1202Type0"
},
"evmVersion": "london",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"contracts/ERC1202Type0.sol": {
"keccak256": "0x1d353dcc83b58fd642f199aacdc4775e8d049b26c9d514816f5bdfb3e6258663",
"license": "GPL-3.0",
"urls": [
"bzz-raw://d6a141862d4f217d632289034350b7bab7d0b223617a84261f3c57841cadd349",
"dweb:/ipfs/QmRzCbRuegBMQ9Mzzp26EMfHYWhXSLJV79WNcupmXqVHvm"
]
},
"contracts/IERC1202.sol": {
"keccak256": "0xd5f43d75130f1950422ad408dd9996bdcad523c761a773987aafd664ce492402",
"license": "GPL-3.0",
"urls": [
"bzz-raw://c20a0515b8ee317381669037ed25919fcf07f618ff41bafe884f67fe7051baed",
"dweb:/ipfs/QmPRbn9MbuVy3vpujqXbP4KHeKgRTByrXrHH7434NyeTXz"
]
}
},
"version": 1
}
{
"deploy": {
"VM:-": {
"linkReferences": {},
"autoDeployLib": true
},
"main:1": {
"linkReferences": {},
"autoDeployLib": true
},
"ropsten:3": {
"linkReferences": {},
"autoDeployLib": true
},
"rinkeby:4": {
"linkReferences": {},
"autoDeployLib": true
},
"kovan:42": {
"linkReferences": {},
"autoDeployLib": true
},
"görli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"functionDebugData": {},
"generatedSources": [],
"linkReferences": {},
"object": "608060405234801561001057600080fd5b50610c92806100206000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c80637055d3681461005157806378310bca14610081578063aff9e954146100b1578063d70c6f4e146100e1575b600080fd5b61006b60048036038101906100669190610840565b610111565b60405161007891906109a1565b60405180910390f35b61009b600480360381019061009691906107ed565b6103c5565b6040516100a891906109bc565b60405180910390f35b6100cb60048036038101906100c6919061089c565b610403565b6040516100d8919061097f565b60405180910390f35b6100fb60048036038101906100f6919061089c565b6104fd565b60405161010891906109bc565b60405180910390f35b600060088251111561012657610125610b4d565b5b60005b825181101561017057600883828151811061014757610146610bab565b5b60200260200101511061015d5761015c610b4d565b5b808061016890610b04565b915050610129565b50600080600085815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080548060200260200160405190810160405280929190818152602001828054801561020c57602002820191906000526020600020905b8154815260200190600101908083116101f8575b5050505050905060005b815181101561028c57600082828151811061023457610233610bab565b5b60200260200101519050600160008781526020019081526020016000206000828152602001908152602001600020600081548092919061027390610aa9565b919050555050808061028490610b04565b915050610216565b5060005b83518110156103065760008482815181106102ae576102ad610bab565b5b6020026020010151905060016000878152602001908152602001600020600082815260200190815260200160002060008154809291906102ed90610b04565b91905055505080806102fe90610b04565b915050610290565b508260008086815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020908051906020019061036a9291906106bb565b503373ffffffffffffffffffffffffffffffffffffffff16847f9d77f9480ebb76e61c50c6d0b4913d773e971c600d4ee011b7d9d4aa01882cbb856040516103b2919061097f565b60405180910390a3600191505092915050565b600060205282600052604060002060205281600052604060002081815481106103ed57600080fd5b9060005260206000200160009250925050505481565b60606008821061041657610415610b4d565b5b6000808311610426576008610428565b825b905060008167ffffffffffffffff81111561044657610445610bda565b5b6040519080825280602002602001820160405280156104745781602001602082028036833780820191505090505b5090506000610496600160008881526020019081526020016000206008610522565b905060005b838110156104f0578181815181106104b6576104b5610bab565b5b60200260200101518382815181106104d1576104d0610bab565b5b60200260200101818152505080806104e890610b04565b91505061049b565b5080935050505092915050565b6001602052816000526040600020602052806000526040600020600091509150505481565b606060008267ffffffffffffffff8111156105405761053f610bda565b5b60405190808252806020026020018201604052801561056e5781602001602082028036833780820191505090505b50905060005b838110156105af57808282815181106105905761058f610bab565b5b60200260200101818152505080806105a790610b04565b915050610574565b5060005b838110156106b0576000600190505b8181101561069c5760008383815181106105df576105de610bab565b5b6020026020010151905060008483815181106105fe576105fd610bab565b5b6020026020010151905060008860008481526020019081526020016000205490506000896000858152602001908152602001600020549050808210156106855760008490508388888151811061065757610656610bab565b5b6020026020010181815250508088878151811061067757610676610bab565b5b602002602001018181525050505b50505050808061069490610b04565b9150506105c2565b5080806106a890610b04565b9150506105b3565b508091505092915050565b8280548282559060005260206000209081019282156106f7579160200282015b828111156106f65782518255916020019190600101906106db565b5b5090506107049190610708565b5090565b5b80821115610721576000816000905550600101610709565b5090565b6000610738610733846109fc565b6109d7565b9050808382526020820190508285602086028201111561075b5761075a610c0e565b5b60005b8581101561078b578161077188826107d8565b84526020840193506020830192505060018101905061075e565b5050509392505050565b6000813590506107a481610c2e565b92915050565b600082601f8301126107bf576107be610c09565b5b81356107cf848260208601610725565b91505092915050565b6000813590506107e781610c45565b92915050565b60008060006060848603121561080657610805610c18565b5b6000610814868287016107d8565b935050602061082586828701610795565b9250506040610836868287016107d8565b9150509250925092565b6000806040838503121561085757610856610c18565b5b6000610865858286016107d8565b925050602083013567ffffffffffffffff81111561088657610885610c13565b5b610892858286016107aa565b9150509250929050565b600080604083850312156108b3576108b2610c18565b5b60006108c1858286016107d8565b92505060206108d2858286016107d8565b9150509250929050565b60006108e88383610961565b60208301905092915050565b60006108ff82610a38565b6109098185610a50565b935061091483610a28565b8060005b8381101561094557815161092c88826108dc565b975061093783610a43565b925050600181019050610918565b5085935050505092915050565b61095b81610a73565b82525050565b61096a81610a9f565b82525050565b61097981610a9f565b82525050565b6000602082019050818103600083015261099981846108f4565b905092915050565b60006020820190506109b66000830184610952565b92915050565b60006020820190506109d16000830184610970565b92915050565b60006109e16109f2565b90506109ed8282610ad3565b919050565b6000604051905090565b600067ffffffffffffffff821115610a1757610a16610bda565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b6000610a6c82610a7f565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000610ab482610a9f565b91506000821415610ac857610ac7610b7c565b5b600182039050919050565b610adc82610c1d565b810181811067ffffffffffffffff82111715610afb57610afa610bda565b5b80604052505050565b6000610b0f82610a9f565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415610b4257610b41610b7c565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b610c3781610a61565b8114610c4257600080fd5b50565b610c4e81610a9f565b8114610c5957600080fd5b5056fea26469706673582212209089d2e479ed4f04fc56027e703c2dbf63341757c118dffaf7be34489ab5997064736f6c63430008070033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xC92 DUP1 PUSH2 0x20 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 0x4C JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x7055D368 EQ PUSH2 0x51 JUMPI DUP1 PUSH4 0x78310BCA EQ PUSH2 0x81 JUMPI DUP1 PUSH4 0xAFF9E954 EQ PUSH2 0xB1 JUMPI DUP1 PUSH4 0xD70C6F4E EQ PUSH2 0xE1 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x6B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x66 SWAP2 SWAP1 PUSH2 0x840 JUMP JUMPDEST PUSH2 0x111 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x78 SWAP2 SWAP1 PUSH2 0x9A1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x9B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x96 SWAP2 SWAP1 PUSH2 0x7ED JUMP JUMPDEST PUSH2 0x3C5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xA8 SWAP2 SWAP1 PUSH2 0x9BC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xCB PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xC6 SWAP2 SWAP1 PUSH2 0x89C JUMP JUMPDEST PUSH2 0x403 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xD8 SWAP2 SWAP1 PUSH2 0x97F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xFB PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xF6 SWAP2 SWAP1 PUSH2 0x89C JUMP JUMPDEST PUSH2 0x4FD JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x108 SWAP2 SWAP1 PUSH2 0x9BC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 PUSH1 0x8 DUP3 MLOAD GT ISZERO PUSH2 0x126 JUMPI PUSH2 0x125 PUSH2 0xB4D JUMP JUMPDEST JUMPDEST PUSH1 0x0 JUMPDEST DUP3 MLOAD DUP2 LT ISZERO PUSH2 0x170 JUMPI PUSH1 0x8 DUP4 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x147 JUMPI PUSH2 0x146 PUSH2 0xBAB JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD LT PUSH2 0x15D JUMPI PUSH2 0x15C PUSH2 0xB4D JUMP JUMPDEST JUMPDEST DUP1 DUP1 PUSH2 0x168 SWAP1 PUSH2 0xB04 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x129 JUMP JUMPDEST POP PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP1 SLOAD DUP1 PUSH1 0x20 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 DUP1 ISZERO PUSH2 0x20C JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 ADD SWAP1 DUP1 DUP4 GT PUSH2 0x1F8 JUMPI JUMPDEST POP POP POP POP POP SWAP1 POP PUSH1 0x0 JUMPDEST DUP2 MLOAD DUP2 LT ISZERO PUSH2 0x28C JUMPI PUSH1 0x0 DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x234 JUMPI PUSH2 0x233 PUSH2 0xBAB JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP1 POP PUSH1 0x1 PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP2 SLOAD DUP1 SWAP3 SWAP2 SWAP1 PUSH2 0x273 SWAP1 PUSH2 0xAA9 JUMP JUMPDEST SWAP2 SWAP1 POP SSTORE POP POP DUP1 DUP1 PUSH2 0x284 SWAP1 PUSH2 0xB04 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x216 JUMP JUMPDEST POP PUSH1 0x0 JUMPDEST DUP4 MLOAD DUP2 LT ISZERO PUSH2 0x306 JUMPI PUSH1 0x0 DUP5 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x2AE JUMPI PUSH2 0x2AD PUSH2 0xBAB JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP1 POP PUSH1 0x1 PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP2 SLOAD DUP1 SWAP3 SWAP2 SWAP1 PUSH2 0x2ED SWAP1 PUSH2 0xB04 JUMP JUMPDEST SWAP2 SWAP1 POP SSTORE POP POP DUP1 DUP1 PUSH2 0x2FE SWAP1 PUSH2 0xB04 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x290 JUMP JUMPDEST POP DUP3 PUSH1 0x0 DUP1 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0x36A SWAP3 SWAP2 SWAP1 PUSH2 0x6BB JUMP JUMPDEST POP CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH32 0x9D77F9480EBB76E61C50C6D0B4913D773E971C600D4EE011B7D9D4AA01882CBB DUP6 PUSH1 0x40 MLOAD PUSH2 0x3B2 SWAP2 SWAP1 PUSH2 0x97F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 MSTORE DUP3 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x20 MSTORE DUP2 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x3ED JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP3 POP SWAP3 POP POP POP SLOAD DUP2 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x8 DUP3 LT PUSH2 0x416 JUMPI PUSH2 0x415 PUSH2 0xB4D JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP1 DUP4 GT PUSH2 0x426 JUMPI PUSH1 0x8 PUSH2 0x428 JUMP JUMPDEST DUP3 JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x446 JUMPI PUSH2 0x445 PUSH2 0xBDA JUMP JUMPDEST JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x474 JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY DUP1 DUP3 ADD SWAP2 POP POP SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 PUSH2 0x496 PUSH1 0x1 PUSH1 0x0 DUP9 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x8 PUSH2 0x522 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x4F0 JUMPI DUP2 DUP2 DUP2 MLOAD DUP2 LT PUSH2 0x4B6 JUMPI PUSH2 0x4B5 PUSH2 0xBAB JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP4 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x4D1 JUMPI PUSH2 0x4D0 PUSH2 0xBAB JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP DUP1 DUP1 PUSH2 0x4E8 SWAP1 PUSH2 0xB04 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x49B JUMP JUMPDEST POP DUP1 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE DUP2 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SWAP2 POP POP SLOAD DUP2 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP3 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x540 JUMPI PUSH2 0x53F PUSH2 0xBDA JUMP JUMPDEST JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x56E JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY DUP1 DUP3 ADD SWAP2 POP POP SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x5AF JUMPI DUP1 DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x590 JUMPI PUSH2 0x58F PUSH2 0xBAB JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP DUP1 DUP1 PUSH2 0x5A7 SWAP1 PUSH2 0xB04 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x574 JUMP JUMPDEST POP PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x6B0 JUMPI PUSH1 0x0 PUSH1 0x1 SWAP1 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x69C JUMPI PUSH1 0x0 DUP4 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x5DF JUMPI PUSH2 0x5DE PUSH2 0xBAB JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP1 POP PUSH1 0x0 DUP5 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x5FE JUMPI PUSH2 0x5FD PUSH2 0xBAB JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP1 POP PUSH1 0x0 DUP9 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP PUSH1 0x0 DUP10 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP DUP1 DUP3 LT ISZERO PUSH2 0x685 JUMPI PUSH1 0x0 DUP5 SWAP1 POP DUP4 DUP9 DUP9 DUP2 MLOAD DUP2 LT PUSH2 0x657 JUMPI PUSH2 0x656 PUSH2 0xBAB JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP DUP1 DUP9 DUP8 DUP2 MLOAD DUP2 LT PUSH2 0x677 JUMPI PUSH2 0x676 PUSH2 0xBAB JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP POP JUMPDEST POP POP POP POP DUP1 DUP1 PUSH2 0x694 SWAP1 PUSH2 0xB04 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x5C2 JUMP JUMPDEST POP DUP1 DUP1 PUSH2 0x6A8 SWAP1 PUSH2 0xB04 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x5B3 JUMP JUMPDEST POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP1 SLOAD DUP3 DUP3 SSTORE SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP3 DUP3 ISZERO PUSH2 0x6F7 JUMPI SWAP2 PUSH1 0x20 MUL DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x6F6 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x6DB JUMP JUMPDEST JUMPDEST POP SWAP1 POP PUSH2 0x704 SWAP2 SWAP1 PUSH2 0x708 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x721 JUMPI PUSH1 0x0 DUP2 PUSH1 0x0 SWAP1 SSTORE POP PUSH1 0x1 ADD PUSH2 0x709 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x738 PUSH2 0x733 DUP5 PUSH2 0x9FC JUMP JUMPDEST PUSH2 0x9D7 JUMP JUMPDEST SWAP1 POP DUP1 DUP4 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP DUP3 DUP6 PUSH1 0x20 DUP7 MUL DUP3 ADD GT ISZERO PUSH2 0x75B JUMPI PUSH2 0x75A PUSH2 0xC0E JUMP JUMPDEST JUMPDEST PUSH1 0x0 JUMPDEST DUP6 DUP2 LT ISZERO PUSH2 0x78B JUMPI DUP2 PUSH2 0x771 DUP9 DUP3 PUSH2 0x7D8 JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH1 0x20 DUP4 ADD SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x75E JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x7A4 DUP2 PUSH2 0xC2E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x7BF JUMPI PUSH2 0x7BE PUSH2 0xC09 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x7CF DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x725 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x7E7 DUP2 PUSH2 0xC45 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x806 JUMPI PUSH2 0x805 PUSH2 0xC18 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x814 DUP7 DUP3 DUP8 ADD PUSH2 0x7D8 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x825 DUP7 DUP3 DUP8 ADD PUSH2 0x795 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x836 DUP7 DUP3 DUP8 ADD PUSH2 0x7D8 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x857 JUMPI PUSH2 0x856 PUSH2 0xC18 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x865 DUP6 DUP3 DUP7 ADD PUSH2 0x7D8 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x886 JUMPI PUSH2 0x885 PUSH2 0xC13 JUMP JUMPDEST JUMPDEST PUSH2 0x892 DUP6 DUP3 DUP7 ADD PUSH2 0x7AA JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x8B3 JUMPI PUSH2 0x8B2 PUSH2 0xC18 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x8C1 DUP6 DUP3 DUP7 ADD PUSH2 0x7D8 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x8D2 DUP6 DUP3 DUP7 ADD PUSH2 0x7D8 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x8E8 DUP4 DUP4 PUSH2 0x961 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x8FF DUP3 PUSH2 0xA38 JUMP JUMPDEST PUSH2 0x909 DUP2 DUP6 PUSH2 0xA50 JUMP JUMPDEST SWAP4 POP PUSH2 0x914 DUP4 PUSH2 0xA28 JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x945 JUMPI DUP2 MLOAD PUSH2 0x92C DUP9 DUP3 PUSH2 0x8DC JUMP JUMPDEST SWAP8 POP PUSH2 0x937 DUP4 PUSH2 0xA43 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x918 JUMP JUMPDEST POP DUP6 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x95B DUP2 PUSH2 0xA73 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x96A DUP2 PUSH2 0xA9F JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x979 DUP2 PUSH2 0xA9F JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x999 DUP2 DUP5 PUSH2 0x8F4 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x9B6 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x952 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x9D1 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x970 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x9E1 PUSH2 0x9F2 JUMP JUMPDEST SWAP1 POP PUSH2 0x9ED DUP3 DUP3 PUSH2 0xAD3 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0xA17 JUMPI PUSH2 0xA16 PUSH2 0xBDA JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD 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 0xA6C DUP3 PUSH2 0xA7F JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 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 0xAB4 DUP3 PUSH2 0xA9F JUMP JUMPDEST SWAP2 POP PUSH1 0x0 DUP3 EQ ISZERO PUSH2 0xAC8 JUMPI PUSH2 0xAC7 PUSH2 0xB7C JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 SUB SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xADC DUP3 PUSH2 0xC1D JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0xAFB JUMPI PUSH2 0xAFA PUSH2 0xBDA JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB0F DUP3 PUSH2 0xA9F JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 EQ ISZERO PUSH2 0xB42 JUMPI PUSH2 0xB41 PUSH2 0xB7C JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x1 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT 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 PUSH2 0xC37 DUP2 PUSH2 0xA61 JUMP JUMPDEST DUP2 EQ PUSH2 0xC42 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0xC4E DUP2 PUSH2 0xA9F JUMP JUMPDEST DUP2 EQ PUSH2 0xC59 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP1 DUP10 0xD2 0xE4 PUSH26 0xED4F04FC56027E703C2DBF63341757C118DFFAF7BE34489AB599 PUSH17 0x64736F6C63430008070033000000000000 ",
"sourceMap": "620:2583:0:-:0;;;;;;;;;;;;;;;;;;;"
},
"deployedBytecode": {
"functionDebugData": {
"@results_24": {
"entryPoint": 1277,
"id": 24,
"parameterSlots": 0,
"returnSlots": 0
},
"@sortKeyByValue_331": {
"entryPoint": 1314,
"id": 331,
"parameterSlots": 2,
"returnSlots": 1
},
"@topOptions_218": {
"entryPoint": 1027,
"id": 218,
"parameterSlots": 2,
"returnSlots": 1
},
"@vote_146": {
"entryPoint": 273,
"id": 146,
"parameterSlots": 2,
"returnSlots": 1
},
"@votes_18": {
"entryPoint": 965,
"id": 18,
"parameterSlots": 0,
"returnSlots": 0
},
"abi_decode_available_length_t_array$_t_uint256_$dyn_memory_ptr": {
"entryPoint": 1829,
"id": null,
"parameterSlots": 3,
"returnSlots": 1
},
"abi_decode_t_address": {
"entryPoint": 1941,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_array$_t_uint256_$dyn_memory_ptr": {
"entryPoint": 1962,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_uint256": {
"entryPoint": 2008,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_uint256t_addresst_uint256": {
"entryPoint": 2029,
"id": null,
"parameterSlots": 2,
"returnSlots": 3
},
"abi_decode_tuple_t_uint256t_array$_t_uint256_$dyn_memory_ptr": {
"entryPoint": 2112,
"id": null,
"parameterSlots": 2,
"returnSlots": 2
},
"abi_decode_tuple_t_uint256t_uint256": {
"entryPoint": 2204,
"id": null,
"parameterSlots": 2,
"returnSlots": 2
},
"abi_encodeUpdatedPos_t_uint256_to_t_uint256": {
"entryPoint": 2268,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack": {
"entryPoint": 2292,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_t_bool_to_t_bool_fromStack": {
"entryPoint": 2386,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_uint256_to_t_uint256": {
"entryPoint": 2401,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_uint256_to_t_uint256_fromStack": {
"entryPoint": 2416,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed": {
"entryPoint": 2431,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": {
"entryPoint": 2465,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": {
"entryPoint": 2492,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"allocate_memory": {
"entryPoint": 2519,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"allocate_unbounded": {
"entryPoint": 2546,
"id": null,
"parameterSlots": 0,
"returnSlots": 1
},
"array_allocation_size_t_array$_t_uint256_$dyn_memory_ptr": {
"entryPoint": 2556,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"array_dataslot_t_array$_t_uint256_$dyn_memory_ptr": {
"entryPoint": 2600,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"array_length_t_array$_t_uint256_$dyn_memory_ptr": {
"entryPoint": 2616,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"array_nextElement_t_array$_t_uint256_$dyn_memory_ptr": {
"entryPoint": 2627,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack": {
"entryPoint": 2640,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"cleanup_t_address": {
"entryPoint": 2657,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_bool": {
"entryPoint": 2675,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_uint160": {
"entryPoint": 2687,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_uint256": {
"entryPoint": 2719,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"decrement_t_uint256": {
"entryPoint": 2729,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"finalize_allocation": {
"entryPoint": 2771,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"increment_t_uint256": {
"entryPoint": 2820,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"panic_error_0x01": {
"entryPoint": 2893,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"panic_error_0x11": {
"entryPoint": 2940,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"panic_error_0x32": {
"entryPoint": 2987,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"panic_error_0x41": {
"entryPoint": 3034,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d": {
"entryPoint": 3081,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef": {
"entryPoint": 3086,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": {
"entryPoint": 3091,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": {
"entryPoint": 3096,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"round_up_to_mul_of_32": {
"entryPoint": 3101,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"validator_revert_t_address": {
"entryPoint": 3118,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"validator_revert_t_uint256": {
"entryPoint": 3141,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
}
},
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:9172:2",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "126:620:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "136:90:2",
"value": {
"arguments": [
{
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "218:6:2"
}
],
"functionName": {
"name": "array_allocation_size_t_array$_t_uint256_$dyn_memory_ptr",
"nodeType": "YulIdentifier",
"src": "161:56:2"
},
"nodeType": "YulFunctionCall",
"src": "161:64:2"
}
],
"functionName": {
"name": "allocate_memory",
"nodeType": "YulIdentifier",
"src": "145:15:2"
},
"nodeType": "YulFunctionCall",
"src": "145:81:2"
},
"variableNames": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "136:5:2"
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "235:16:2",
"value": {
"name": "array",
"nodeType": "YulIdentifier",
"src": "246:5:2"
},
"variables": [
{
"name": "dst",
"nodeType": "YulTypedName",
"src": "239:3:2",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "268:5:2"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "275:6:2"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "261:6:2"
},
"nodeType": "YulFunctionCall",
"src": "261:21:2"
},
"nodeType": "YulExpressionStatement",
"src": "261:21:2"
},
{
"nodeType": "YulAssignment",
"src": "291:23:2",
"value": {
"arguments": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "302:5:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "309:4:2",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "298:3:2"
},
"nodeType": "YulFunctionCall",
"src": "298:16:2"
},
"variableNames": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "291:3:2"
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "324:17:2",
"value": {
"name": "offset",
"nodeType": "YulIdentifier",
"src": "335:6:2"
},
"variables": [
{
"name": "src",
"nodeType": "YulTypedName",
"src": "328:3:2",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "390:103:2",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef",
"nodeType": "YulIdentifier",
"src": "404:77:2"
},
"nodeType": "YulFunctionCall",
"src": "404:79:2"
},
"nodeType": "YulExpressionStatement",
"src": "404:79:2"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "360:3:2"
},
{
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "369:6:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "377:4:2",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "mul",
"nodeType": "YulIdentifier",
"src": "365:3:2"
},
"nodeType": "YulFunctionCall",
"src": "365:17:2"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "356:3:2"
},
"nodeType": "YulFunctionCall",
"src": "356:27:2"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "385:3:2"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "353:2:2"
},
"nodeType": "YulFunctionCall",
"src": "353:36:2"
},
"nodeType": "YulIf",
"src": "350:143:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "562:178:2",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "577:21:2",
"value": {
"name": "src",
"nodeType": "YulIdentifier",
"src": "595:3:2"
},
"variables": [
{
"name": "elementPos",
"nodeType": "YulTypedName",
"src": "581:10:2",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "619:3:2"
},
{
"arguments": [
{
"name": "elementPos",
"nodeType": "YulIdentifier",
"src": "645:10:2"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "657:3:2"
}
],
"functionName": {
"name": "abi_decode_t_uint256",
"nodeType": "YulIdentifier",
"src": "624:20:2"
},
"nodeType": "YulFunctionCall",
"src": "624:37:2"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "612:6:2"
},
"nodeType": "YulFunctionCall",
"src": "612:50:2"
},
"nodeType": "YulExpressionStatement",
"src": "612:50:2"
},
{
"nodeType": "YulAssignment",
"src": "675:21:2",
"value": {
"arguments": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "686:3:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "691:4:2",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "682:3:2"
},
"nodeType": "YulFunctionCall",
"src": "682:14:2"
},
"variableNames": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "675:3:2"
}
]
},
{
"nodeType": "YulAssignment",
"src": "709:21:2",
"value": {
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "720:3:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "725:4:2",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "716:3:2"
},
"nodeType": "YulFunctionCall",
"src": "716:14:2"
},
"variableNames": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "709:3:2"
}
]
}
]
},
"condition": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "524:1:2"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "527:6:2"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "521:2:2"
},
"nodeType": "YulFunctionCall",
"src": "521:13:2"
},
"nodeType": "YulForLoop",
"post": {
"nodeType": "YulBlock",
"src": "535:18:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "537:14:2",
"value": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "546:1:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "549:1:2",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "542:3:2"
},
"nodeType": "YulFunctionCall",
"src": "542:9:2"
},
"variableNames": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "537:1:2"
}
]
}
]
},
"pre": {
"nodeType": "YulBlock",
"src": "506:14:2",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "508:10:2",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "517:1:2",
"type": "",
"value": "0"
},
"variables": [
{
"name": "i",
"nodeType": "YulTypedName",
"src": "512:1:2",
"type": ""
}
]
}
]
},
"src": "502:238:2"
}
]
},
"name": "abi_decode_available_length_t_array$_t_uint256_$dyn_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "96:6:2",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "104:6:2",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "112:3:2",
"type": ""
}
],
"returnVariables": [
{
"name": "array",
"nodeType": "YulTypedName",
"src": "120:5:2",
"type": ""
}
],
"src": "24:722:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "804:87:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "814:29:2",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "836:6:2"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "823:12:2"
},
"nodeType": "YulFunctionCall",
"src": "823:20:2"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "814:5:2"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "879:5:2"
}
],
"functionName": {
"name": "validator_revert_t_address",
"nodeType": "YulIdentifier",
"src": "852:26:2"
},
"nodeType": "YulFunctionCall",
"src": "852:33:2"
},
"nodeType": "YulExpressionStatement",
"src": "852:33:2"
}
]
},
"name": "abi_decode_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "782:6:2",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "790:3:2",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "798:5:2",
"type": ""
}
],
"src": "752:139:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "991:293:2",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "1040:83:2",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d",
"nodeType": "YulIdentifier",
"src": "1042:77:2"
},
"nodeType": "YulFunctionCall",
"src": "1042:79:2"
},
"nodeType": "YulExpressionStatement",
"src": "1042:79:2"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "1019:6:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1027:4:2",
"type": "",
"value": "0x1f"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1015:3:2"
},
"nodeType": "YulFunctionCall",
"src": "1015:17:2"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "1034:3:2"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "1011:3:2"
},
"nodeType": "YulFunctionCall",
"src": "1011:27:2"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "1004:6:2"
},
"nodeType": "YulFunctionCall",
"src": "1004:35:2"
},
"nodeType": "YulIf",
"src": "1001:122:2"
},
{
"nodeType": "YulVariableDeclaration",
"src": "1132:34:2",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "1159:6:2"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "1146:12:2"
},
"nodeType": "YulFunctionCall",
"src": "1146:20:2"
},
"variables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "1136:6:2",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "1175:103:2",
"value": {
"arguments": [
{
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "1251:6:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1259:4:2",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1247:3:2"
},
"nodeType": "YulFunctionCall",
"src": "1247:17:2"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1266:6:2"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "1274:3:2"
}
],
"functionName": {
"name": "abi_decode_available_length_t_array$_t_uint256_$dyn_memory_ptr",
"nodeType": "YulIdentifier",
"src": "1184:62:2"
},
"nodeType": "YulFunctionCall",
"src": "1184:94:2"
},
"variableNames": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "1175:5:2"
}
]
}
]
},
"name": "abi_decode_t_array$_t_uint256_$dyn_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "969:6:2",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "977:3:2",
"type": ""
}
],
"returnVariables": [
{
"name": "array",
"nodeType": "YulTypedName",
"src": "985:5:2",
"type": ""
}
],
"src": "914:370:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1342:87:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1352:29:2",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "1374:6:2"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "1361:12:2"
},
"nodeType": "YulFunctionCall",
"src": "1361:20:2"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1352:5:2"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1417:5:2"
}
],
"functionName": {
"name": "validator_revert_t_uint256",
"nodeType": "YulIdentifier",
"src": "1390:26:2"
},
"nodeType": "YulFunctionCall",
"src": "1390:33:2"
},
"nodeType": "YulExpressionStatement",
"src": "1390:33:2"
}
]
},
"name": "abi_decode_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "1320:6:2",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "1328:3:2",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1336:5:2",
"type": ""
}
],
"src": "1290:139:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1535:519:2",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "1581:83:2",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "1583:77:2"
},
"nodeType": "YulFunctionCall",
"src": "1583:79:2"
},
"nodeType": "YulExpressionStatement",
"src": "1583:79:2"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "1556:7:2"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1565:9:2"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "1552:3:2"
},
"nodeType": "YulFunctionCall",
"src": "1552:23:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1577:2:2",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "1548:3:2"
},
"nodeType": "YulFunctionCall",
"src": "1548:32:2"
},
"nodeType": "YulIf",
"src": "1545:119:2"
},
{
"nodeType": "YulBlock",
"src": "1674:117:2",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "1689:15:2",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "1703:1:2",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "1693:6:2",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "1718:63:2",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1753:9:2"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "1764:6:2"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1749:3:2"
},
"nodeType": "YulFunctionCall",
"src": "1749:22:2"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "1773:7:2"
}
],
"functionName": {
"name": "abi_decode_t_uint256",
"nodeType": "YulIdentifier",
"src": "1728:20:2"
},
"nodeType": "YulFunctionCall",
"src": "1728:53:2"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "1718:6:2"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "1801:118:2",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "1816:16:2",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "1830:2:2",
"type": "",
"value": "32"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "1820:6:2",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "1846:63:2",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1881:9:2"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "1892:6:2"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1877:3:2"
},
"nodeType": "YulFunctionCall",
"src": "1877:22:2"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "1901:7:2"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nodeType": "YulIdentifier",
"src": "1856:20:2"
},
"nodeType": "YulFunctionCall",
"src": "1856:53:2"
},
"variableNames": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "1846:6:2"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "1929:118:2",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "1944:16:2",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "1958:2:2",
"type": "",
"value": "64"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "1948:6:2",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "1974:63:2",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2009:9:2"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "2020:6:2"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2005:3:2"
},
"nodeType": "YulFunctionCall",
"src": "2005:22:2"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "2029:7:2"
}
],
"functionName": {
"name": "abi_decode_t_uint256",
"nodeType": "YulIdentifier",
"src": "1984:20:2"
},
"nodeType": "YulFunctionCall",
"src": "1984:53:2"
},
"variableNames": [
{
"name": "value2",
"nodeType": "YulIdentifier",
"src": "1974:6:2"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_uint256t_addresst_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "1489:9:2",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "1500:7:2",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "1512:6:2",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "1520:6:2",
"type": ""
},
{
"name": "value2",
"nodeType": "YulTypedName",
"src": "1528:6:2",
"type": ""
}
],
"src": "1435:619:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2168:576:2",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "2214:83:2",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "2216:77:2"
},
"nodeType": "YulFunctionCall",
"src": "2216:79:2"
},
"nodeType": "YulExpressionStatement",
"src": "2216:79:2"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "2189:7:2"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2198:9:2"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "2185:3:2"
},
"nodeType": "YulFunctionCall",
"src": "2185:23:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2210:2:2",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "2181:3:2"
},
"nodeType": "YulFunctionCall",
"src": "2181:32:2"
},
"nodeType": "YulIf",
"src": "2178:119:2"
},
{
"nodeType": "YulBlock",
"src": "2307:117:2",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "2322:15:2",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "2336:1:2",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "2326:6:2",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "2351:63:2",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2386:9:2"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "2397:6:2"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2382:3:2"
},
"nodeType": "YulFunctionCall",
"src": "2382:22:2"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "2406:7:2"
}
],
"functionName": {
"name": "abi_decode_t_uint256",
"nodeType": "YulIdentifier",
"src": "2361:20:2"
},
"nodeType": "YulFunctionCall",
"src": "2361:53:2"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "2351:6:2"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "2434:303:2",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "2449:46:2",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2480:9:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2491:2:2",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2476:3:2"
},
"nodeType": "YulFunctionCall",
"src": "2476:18:2"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "2463:12:2"
},
"nodeType": "YulFunctionCall",
"src": "2463:32:2"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "2453:6:2",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "2542:83:2",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nodeType": "YulIdentifier",
"src": "2544:77:2"
},
"nodeType": "YulFunctionCall",
"src": "2544:79:2"
},
"nodeType": "YulExpressionStatement",
"src": "2544:79:2"
}
]
},
"condition": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "2514:6:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2522:18:2",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "2511:2:2"
},
"nodeType": "YulFunctionCall",
"src": "2511:30:2"
},
"nodeType": "YulIf",
"src": "2508:117:2"
},
{
"nodeType": "YulAssignment",
"src": "2639:88:2",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2699:9:2"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "2710:6:2"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2695:3:2"
},
"nodeType": "YulFunctionCall",
"src": "2695:22:2"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "2719:7:2"
}
],
"functionName": {
"name": "abi_decode_t_array$_t_uint256_$dyn_memory_ptr",
"nodeType": "YulIdentifier",
"src": "2649:45:2"
},
"nodeType": "YulFunctionCall",
"src": "2649:78:2"
},
"variableNames": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "2639:6:2"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_uint256t_array$_t_uint256_$dyn_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "2130:9:2",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "2141:7:2",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "2153:6:2",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "2161:6:2",
"type": ""
}
],
"src": "2060:684:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2833:391:2",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "2879:83:2",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "2881:77:2"
},
"nodeType": "YulFunctionCall",
"src": "2881:79:2"
},
"nodeType": "YulExpressionStatement",
"src": "2881:79:2"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "2854:7:2"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2863:9:2"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "2850:3:2"
},
"nodeType": "YulFunctionCall",
"src": "2850:23:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2875:2:2",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "2846:3:2"
},
"nodeType": "YulFunctionCall",
"src": "2846:32:2"
},
"nodeType": "YulIf",
"src": "2843:119:2"
},
{
"nodeType": "YulBlock",
"src": "2972:117:2",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "2987:15:2",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "3001:1:2",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "2991:6:2",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "3016:63:2",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3051:9:2"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "3062:6:2"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3047:3:2"
},
"nodeType": "YulFunctionCall",
"src": "3047:22:2"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "3071:7:2"
}
],
"functionName": {
"name": "abi_decode_t_uint256",
"nodeType": "YulIdentifier",
"src": "3026:20:2"
},
"nodeType": "YulFunctionCall",
"src": "3026:53:2"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "3016:6:2"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "3099:118:2",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "3114:16:2",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "3128:2:2",
"type": "",
"value": "32"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "3118:6:2",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "3144:63:2",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3179:9:2"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "3190:6:2"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3175:3:2"
},
"nodeType": "YulFunctionCall",
"src": "3175:22:2"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "3199:7:2"
}
],
"functionName": {
"name": "abi_decode_t_uint256",
"nodeType": "YulIdentifier",
"src": "3154:20:2"
},
"nodeType": "YulFunctionCall",
"src": "3154:53:2"
},
"variableNames": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "3144:6:2"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_uint256t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "2795:9:2",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "2806:7:2",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "2818:6:2",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "2826:6:2",
"type": ""
}
],
"src": "2750:474:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3310:99:2",
"statements": [
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "3354:6:2"
},
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "3362:3:2"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256",
"nodeType": "YulIdentifier",
"src": "3320:33:2"
},
"nodeType": "YulFunctionCall",
"src": "3320:46:2"
},
"nodeType": "YulExpressionStatement",
"src": "3320:46:2"
},
{
"nodeType": "YulAssignment",
"src": "3375:28:2",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "3393:3:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3398:4:2",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3389:3:2"
},
"nodeType": "YulFunctionCall",
"src": "3389:14:2"
},
"variableNames": [
{
"name": "updatedPos",
"nodeType": "YulIdentifier",
"src": "3375:10:2"
}
]
}
]
},
"name": "abi_encodeUpdatedPos_t_uint256_to_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "3283:6:2",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "3291:3:2",
"type": ""
}
],
"returnVariables": [
{
"name": "updatedPos",
"nodeType": "YulTypedName",
"src": "3299:10:2",
"type": ""
}
],
"src": "3230:179:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3569:608:2",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "3579:68:2",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "3641:5:2"
}
],
"functionName": {
"name": "array_length_t_array$_t_uint256_$dyn_memory_ptr",
"nodeType": "YulIdentifier",
"src": "3593:47:2"
},
"nodeType": "YulFunctionCall",
"src": "3593:54:2"
},
"variables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "3583:6:2",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "3656:93:2",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "3737:3:2"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "3742:6:2"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "3663:73:2"
},
"nodeType": "YulFunctionCall",
"src": "3663:86:2"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "3656:3:2"
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "3758:71:2",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "3823:5:2"
}
],
"functionName": {
"name": "array_dataslot_t_array$_t_uint256_$dyn_memory_ptr",
"nodeType": "YulIdentifier",
"src": "3773:49:2"
},
"nodeType": "YulFunctionCall",
"src": "3773:56:2"
},
"variables": [
{
"name": "baseRef",
"nodeType": "YulTypedName",
"src": "3762:7:2",
"type": ""
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "3838:21:2",
"value": {
"name": "baseRef",
"nodeType": "YulIdentifier",
"src": "3852:7:2"
},
"variables": [
{
"name": "srcPtr",
"nodeType": "YulTypedName",
"src": "3842:6:2",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "3928:224:2",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "3942:34:2",
"value": {
"arguments": [
{
"name": "srcPtr",
"nodeType": "YulIdentifier",
"src": "3969:6:2"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "3963:5:2"
},
"nodeType": "YulFunctionCall",
"src": "3963:13:2"
},
"variables": [
{
"name": "elementValue0",
"nodeType": "YulTypedName",
"src": "3946:13:2",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "3989:70:2",
"value": {
"arguments": [
{
"name": "elementValue0",
"nodeType": "YulIdentifier",
"src": "4040:13:2"
},
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "4055:3:2"
}
],
"functionName": {
"name": "abi_encodeUpdatedPos_t_uint256_to_t_uint256",
"nodeType": "YulIdentifier",
"src": "3996:43:2"
},
"nodeType": "YulFunctionCall",
"src": "3996:63:2"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "3989:3:2"
}
]
},
{
"nodeType": "YulAssignment",
"src": "4072:70:2",
"value": {
"arguments": [
{
"name": "srcPtr",
"nodeType": "YulIdentifier",
"src": "4135:6:2"
}
],
"functionName": {
"name": "array_nextElement_t_array$_t_uint256_$dyn_memory_ptr",
"nodeType": "YulIdentifier",
"src": "4082:52:2"
},
"nodeType": "YulFunctionCall",
"src": "4082:60:2"
},
"variableNames": [
{
"name": "srcPtr",
"nodeType": "YulIdentifier",
"src": "4072:6:2"
}
]
}
]
},
"condition": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "3890:1:2"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "3893:6:2"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "3887:2:2"
},
"nodeType": "YulFunctionCall",
"src": "3887:13:2"
},
"nodeType": "YulForLoop",
"post": {
"nodeType": "YulBlock",
"src": "3901:18:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "3903:14:2",
"value": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "3912:1:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3915:1:2",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3908:3:2"
},
"nodeType": "YulFunctionCall",
"src": "3908:9:2"
},
"variableNames": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "3903:1:2"
}
]
}
]
},
"pre": {
"nodeType": "YulBlock",
"src": "3872:14:2",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "3874:10:2",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "3883:1:2",
"type": "",
"value": "0"
},
"variables": [
{
"name": "i",
"nodeType": "YulTypedName",
"src": "3878:1:2",
"type": ""
}
]
}
]
},
"src": "3868:284:2"
},
{
"nodeType": "YulAssignment",
"src": "4161:10:2",
"value": {
"name": "pos",
"nodeType": "YulIdentifier",
"src": "4168:3:2"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "4161:3:2"
}
]
}
]
},
"name": "abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "3548:5:2",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "3555:3:2",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "3564:3:2",
"type": ""
}
],
"src": "3445:732:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4242:50:2",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "4259:3:2"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "4279:5:2"
}
],
"functionName": {
"name": "cleanup_t_bool",
"nodeType": "YulIdentifier",
"src": "4264:14:2"
},
"nodeType": "YulFunctionCall",
"src": "4264:21:2"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "4252:6:2"
},
"nodeType": "YulFunctionCall",
"src": "4252:34:2"
},
"nodeType": "YulExpressionStatement",
"src": "4252:34:2"
}
]
},
"name": "abi_encode_t_bool_to_t_bool_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "4230:5:2",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "4237:3:2",
"type": ""
}
],
"src": "4183:109:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4353:53:2",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "4370:3:2"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "4393:5:2"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "4375:17:2"
},
"nodeType": "YulFunctionCall",
"src": "4375:24:2"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "4363:6:2"
},
"nodeType": "YulFunctionCall",
"src": "4363:37:2"
},
"nodeType": "YulExpressionStatement",
"src": "4363:37:2"
}
]
},
"name": "abi_encode_t_uint256_to_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "4341:5:2",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "4348:3:2",
"type": ""
}
],
"src": "4298:108:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4477:53:2",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "4494:3:2"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "4517:5:2"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "4499:17:2"
},
"nodeType": "YulFunctionCall",
"src": "4499:24:2"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "4487:6:2"
},
"nodeType": "YulFunctionCall",
"src": "4487:37:2"
},
"nodeType": "YulExpressionStatement",
"src": "4487:37:2"
}
]
},
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "4465:5:2",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "4472:3:2",
"type": ""
}
],
"src": "4412:118:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4684:225:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "4694:26:2",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4706:9:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4717:2:2",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4702:3:2"
},
"nodeType": "YulFunctionCall",
"src": "4702:18:2"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "4694:4:2"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4741:9:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4752:1:2",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4737:3:2"
},
"nodeType": "YulFunctionCall",
"src": "4737:17:2"
},
{
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "4760:4:2"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4766:9:2"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "4756:3:2"
},
"nodeType": "YulFunctionCall",
"src": "4756:20:2"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "4730:6:2"
},
"nodeType": "YulFunctionCall",
"src": "4730:47:2"
},
"nodeType": "YulExpressionStatement",
"src": "4730:47:2"
},
{
"nodeType": "YulAssignment",
"src": "4786:116:2",
"value": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "4888:6:2"
},
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "4897:4:2"
}
],
"functionName": {
"name": "abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "4794:93:2"
},
"nodeType": "YulFunctionCall",
"src": "4794:108:2"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "4786:4:2"
}
]
}
]
},
"name": "abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "4656:9:2",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "4668:6:2",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "4679:4:2",
"type": ""
}
],
"src": "4536:373:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5007:118:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "5017:26:2",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5029:9:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5040:2:2",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5025:3:2"
},
"nodeType": "YulFunctionCall",
"src": "5025:18:2"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "5017:4:2"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "5091:6:2"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5104:9:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5115:1:2",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5100:3:2"
},
"nodeType": "YulFunctionCall",
"src": "5100:17:2"
}
],
"functionName": {
"name": "abi_encode_t_bool_to_t_bool_fromStack",
"nodeType": "YulIdentifier",
"src": "5053:37:2"
},
"nodeType": "YulFunctionCall",
"src": "5053:65:2"
},
"nodeType": "YulExpressionStatement",
"src": "5053:65:2"
}
]
},
"name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "4979:9:2",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "4991:6:2",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "5002:4:2",
"type": ""
}
],
"src": "4915:210:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5229:124:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "5239:26:2",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5251:9:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5262:2:2",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5247:3:2"
},
"nodeType": "YulFunctionCall",
"src": "5247:18:2"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "5239:4:2"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "5319:6:2"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5332:9:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5343:1:2",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5328:3:2"
},
"nodeType": "YulFunctionCall",
"src": "5328:17:2"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulIdentifier",
"src": "5275:43:2"
},
"nodeType": "YulFunctionCall",
"src": "5275:71:2"
},
"nodeType": "YulExpressionStatement",
"src": "5275:71:2"
}
]
},
"name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "5201:9:2",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "5213:6:2",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "5224:4:2",
"type": ""
}
],
"src": "5131:222:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5400:88:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "5410:30:2",
"value": {
"arguments": [],
"functionName": {
"name": "allocate_unbounded",
"nodeType": "YulIdentifier",
"src": "5420:18:2"
},
"nodeType": "YulFunctionCall",
"src": "5420:20:2"
},
"variableNames": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "5410:6:2"
}
]
},
{
"expression": {
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "5469:6:2"
},
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "5477:4:2"
}
],
"functionName": {
"name": "finalize_allocation",
"nodeType": "YulIdentifier",
"src": "5449:19:2"
},
"nodeType": "YulFunctionCall",
"src": "5449:33:2"
},
"nodeType": "YulExpressionStatement",
"src": "5449:33:2"
}
]
},
"name": "allocate_memory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "size",
"nodeType": "YulTypedName",
"src": "5384:4:2",
"type": ""
}
],
"returnVariables": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "5393:6:2",
"type": ""
}
],
"src": "5359:129:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5534:35:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "5544:19:2",
"value": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5560:2:2",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "5554:5:2"
},
"nodeType": "YulFunctionCall",
"src": "5554:9:2"
},
"variableNames": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "5544:6:2"
}
]
}
]
},
"name": "allocate_unbounded",
"nodeType": "YulFunctionDefinition",
"returnVariables": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "5527:6:2",
"type": ""
}
],
"src": "5494:75:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5657:229:2",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "5762:22:2",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x41",
"nodeType": "YulIdentifier",
"src": "5764:16:2"
},
"nodeType": "YulFunctionCall",
"src": "5764:18:2"
},
"nodeType": "YulExpressionStatement",
"src": "5764:18:2"
}
]
},
"condition": {
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "5734:6:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5742:18:2",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "5731:2:2"
},
"nodeType": "YulFunctionCall",
"src": "5731:30:2"
},
"nodeType": "YulIf",
"src": "5728:56:2"
},
{
"nodeType": "YulAssignment",
"src": "5794:25:2",
"value": {
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "5806:6:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5814:4:2",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "mul",
"nodeType": "YulIdentifier",
"src": "5802:3:2"
},
"nodeType": "YulFunctionCall",
"src": "5802:17:2"
},
"variableNames": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "5794:4:2"
}
]
},
{
"nodeType": "YulAssignment",
"src": "5856:23:2",
"value": {
"arguments": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "5868:4:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5874:4:2",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5864:3:2"
},
"nodeType": "YulFunctionCall",
"src": "5864:15:2"
},
"variableNames": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "5856:4:2"
}
]
}
]
},
"name": "array_allocation_size_t_array$_t_uint256_$dyn_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "5641:6:2",
"type": ""
}
],
"returnVariables": [
{
"name": "size",
"nodeType": "YulTypedName",
"src": "5652:4:2",
"type": ""
}
],
"src": "5575:311:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5964:60:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "5974:11:2",
"value": {
"name": "ptr",
"nodeType": "YulIdentifier",
"src": "5982:3:2"
},
"variableNames": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "5974:4:2"
}
]
},
{
"nodeType": "YulAssignment",
"src": "5995:22:2",
"value": {
"arguments": [
{
"name": "ptr",
"nodeType": "YulIdentifier",
"src": "6007:3:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6012:4:2",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6003:3:2"
},
"nodeType": "YulFunctionCall",
"src": "6003:14:2"
},
"variableNames": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "5995:4:2"
}
]
}
]
},
"name": "array_dataslot_t_array$_t_uint256_$dyn_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "ptr",
"nodeType": "YulTypedName",
"src": "5951:3:2",
"type": ""
}
],
"returnVariables": [
{
"name": "data",
"nodeType": "YulTypedName",
"src": "5959:4:2",
"type": ""
}
],
"src": "5892:132:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "6104:40:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "6115:22:2",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "6131:5:2"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "6125:5:2"
},
"nodeType": "YulFunctionCall",
"src": "6125:12:2"
},
"variableNames": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "6115:6:2"
}
]
}
]
},
"name": "array_length_t_array$_t_uint256_$dyn_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "6087:5:2",
"type": ""
}
],
"returnVariables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "6097:6:2",
"type": ""
}
],
"src": "6030:114:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "6225:38:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "6235:22:2",
"value": {
"arguments": [
{
"name": "ptr",
"nodeType": "YulIdentifier",
"src": "6247:3:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6252:4:2",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6243:3:2"
},
"nodeType": "YulFunctionCall",
"src": "6243:14:2"
},
"variableNames": [
{
"name": "next",
"nodeType": "YulIdentifier",
"src": "6235:4:2"
}
]
}
]
},
"name": "array_nextElement_t_array$_t_uint256_$dyn_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "ptr",
"nodeType": "YulTypedName",
"src": "6212:3:2",
"type": ""
}
],
"returnVariables": [
{
"name": "next",
"nodeType": "YulTypedName",
"src": "6220:4:2",
"type": ""
}
],
"src": "6150:113:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "6380:73:2",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "6397:3:2"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "6402:6:2"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "6390:6:2"
},
"nodeType": "YulFunctionCall",
"src": "6390:19:2"
},
"nodeType": "YulExpressionStatement",
"src": "6390:19:2"
},
{
"nodeType": "YulAssignment",
"src": "6418:29:2",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "6437:3:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6442:4:2",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6433:3:2"
},
"nodeType": "YulFunctionCall",
"src": "6433:14:2"
},
"variableNames": [
{
"name": "updated_pos",
"nodeType": "YulIdentifier",
"src": "6418:11:2"
}
]
}
]
},
"name": "array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "6352:3:2",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "6357:6:2",
"type": ""
}
],
"returnVariables": [
{
"name": "updated_pos",
"nodeType": "YulTypedName",
"src": "6368:11:2",
"type": ""
}
],
"src": "6269:184:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "6504:51:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "6514:35:2",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "6543:5:2"
}
],
"functionName": {
"name": "cleanup_t_uint160",
"nodeType": "YulIdentifier",
"src": "6525:17:2"
},
"nodeType": "YulFunctionCall",
"src": "6525:24:2"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "6514:7:2"
}
]
}
]
},
"name": "cleanup_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "6486:5:2",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "6496:7:2",
"type": ""
}
],
"src": "6459:96:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "6603:48:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "6613:32:2",
"value": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "6638:5:2"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "6631:6:2"
},
"nodeType": "YulFunctionCall",
"src": "6631:13:2"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "6624:6:2"
},
"nodeType": "YulFunctionCall",
"src": "6624:21:2"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "6613:7:2"
}
]
}
]
},
"name": "cleanup_t_bool",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "6585:5:2",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "6595:7:2",
"type": ""
}
],
"src": "6561:90:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "6702:81:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "6712:65:2",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "6727:5:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6734:42:2",
"type": "",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "6723:3:2"
},
"nodeType": "YulFunctionCall",
"src": "6723:54:2"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "6712:7:2"
}
]
}
]
},
"name": "cleanup_t_uint160",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "6684:5:2",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "6694:7:2",
"type": ""
}
],
"src": "6657:126:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "6834:32:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "6844:16:2",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "6855:5:2"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "6844:7:2"
}
]
}
]
},
"name": "cleanup_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "6816:5:2",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "6826:7:2",
"type": ""
}
],
"src": "6789:77:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "6915:128:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "6925:33:2",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "6952:5:2"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "6934:17:2"
},
"nodeType": "YulFunctionCall",
"src": "6934:24:2"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "6925:5:2"
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "6986:22:2",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x11",
"nodeType": "YulIdentifier",
"src": "6988:16:2"
},
"nodeType": "YulFunctionCall",
"src": "6988:18:2"
},
"nodeType": "YulExpressionStatement",
"src": "6988:18:2"
}
]
},
"condition": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "6973:5:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6980:4:2",
"type": "",
"value": "0x00"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "6970:2:2"
},
"nodeType": "YulFunctionCall",
"src": "6970:15:2"
},
"nodeType": "YulIf",
"src": "6967:41:2"
},
{
"nodeType": "YulAssignment",
"src": "7017:20:2",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "7028:5:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7035:1:2",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "7024:3:2"
},
"nodeType": "YulFunctionCall",
"src": "7024:13:2"
},
"variableNames": [
{
"name": "ret",
"nodeType": "YulIdentifier",
"src": "7017:3:2"
}
]
}
]
},
"name": "decrement_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "6901:5:2",
"type": ""
}
],
"returnVariables": [
{
"name": "ret",
"nodeType": "YulTypedName",
"src": "6911:3:2",
"type": ""
}
],
"src": "6872:171:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "7092:238:2",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "7102:58:2",
"value": {
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "7124:6:2"
},
{
"arguments": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "7154:4:2"
}
],
"functionName": {
"name": "round_up_to_mul_of_32",
"nodeType": "YulIdentifier",
"src": "7132:21:2"
},
"nodeType": "YulFunctionCall",
"src": "7132:27:2"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7120:3:2"
},
"nodeType": "YulFunctionCall",
"src": "7120:40:2"
},
"variables": [
{
"name": "newFreePtr",
"nodeType": "YulTypedName",
"src": "7106:10:2",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "7271:22:2",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x41",
"nodeType": "YulIdentifier",
"src": "7273:16:2"
},
"nodeType": "YulFunctionCall",
"src": "7273:18:2"
},
"nodeType": "YulExpressionStatement",
"src": "7273:18:2"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "newFreePtr",
"nodeType": "YulIdentifier",
"src": "7214:10:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7226:18:2",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "7211:2:2"
},
"nodeType": "YulFunctionCall",
"src": "7211:34:2"
},
{
"arguments": [
{
"name": "newFreePtr",
"nodeType": "YulIdentifier",
"src": "7250:10:2"
},
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "7262:6:2"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "7247:2:2"
},
"nodeType": "YulFunctionCall",
"src": "7247:22:2"
}
],
"functionName": {
"name": "or",
"nodeType": "YulIdentifier",
"src": "7208:2:2"
},
"nodeType": "YulFunctionCall",
"src": "7208:62:2"
},
"nodeType": "YulIf",
"src": "7205:88:2"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7309:2:2",
"type": "",
"value": "64"
},
{
"name": "newFreePtr",
"nodeType": "YulIdentifier",
"src": "7313:10:2"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "7302:6:2"
},
"nodeType": "YulFunctionCall",
"src": "7302:22:2"
},
"nodeType": "YulExpressionStatement",
"src": "7302:22:2"
}
]
},
"name": "finalize_allocation",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "7078:6:2",
"type": ""
},
{
"name": "size",
"nodeType": "YulTypedName",
"src": "7086:4:2",
"type": ""
}
],
"src": "7049:281:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "7379:190:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "7389:33:2",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "7416:5:2"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "7398:17:2"
},
"nodeType": "YulFunctionCall",
"src": "7398:24:2"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "7389:5:2"
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "7512:22:2",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x11",
"nodeType": "YulIdentifier",
"src": "7514:16:2"
},
"nodeType": "YulFunctionCall",
"src": "7514:18:2"
},
"nodeType": "YulExpressionStatement",
"src": "7514:18:2"
}
]
},
"condition": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "7437:5:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7444:66:2",
"type": "",
"value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "7434:2:2"
},
"nodeType": "YulFunctionCall",
"src": "7434:77:2"
},
"nodeType": "YulIf",
"src": "7431:103:2"
},
{
"nodeType": "YulAssignment",
"src": "7543:20:2",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "7554:5:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7561:1:2",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7550:3:2"
},
"nodeType": "YulFunctionCall",
"src": "7550:13:2"
},
"variableNames": [
{
"name": "ret",
"nodeType": "YulIdentifier",
"src": "7543:3:2"
}
]
}
]
},
"name": "increment_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "7365:5:2",
"type": ""
}
],
"returnVariables": [
{
"name": "ret",
"nodeType": "YulTypedName",
"src": "7375:3:2",
"type": ""
}
],
"src": "7336:233:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "7603:152:2",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7620:1:2",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7623:77:2",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "7613:6:2"
},
"nodeType": "YulFunctionCall",
"src": "7613:88:2"
},
"nodeType": "YulExpressionStatement",
"src": "7613:88:2"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7717:1:2",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7720:4:2",
"type": "",
"value": "0x01"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "7710:6:2"
},
"nodeType": "YulFunctionCall",
"src": "7710:15:2"
},
"nodeType": "YulExpressionStatement",
"src": "7710:15:2"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7741:1:2",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7744:4:2",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "7734:6:2"
},
"nodeType": "YulFunctionCall",
"src": "7734:15:2"
},
"nodeType": "YulExpressionStatement",
"src": "7734:15:2"
}
]
},
"name": "panic_error_0x01",
"nodeType": "YulFunctionDefinition",
"src": "7575:180:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "7789:152:2",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7806:1:2",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7809:77:2",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "7799:6:2"
},
"nodeType": "YulFunctionCall",
"src": "7799:88:2"
},
"nodeType": "YulExpressionStatement",
"src": "7799:88:2"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7903:1:2",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7906:4:2",
"type": "",
"value": "0x11"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "7896:6:2"
},
"nodeType": "YulFunctionCall",
"src": "7896:15:2"
},
"nodeType": "YulExpressionStatement",
"src": "7896:15:2"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7927:1:2",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7930:4:2",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "7920:6:2"
},
"nodeType": "YulFunctionCall",
"src": "7920:15:2"
},
"nodeType": "YulExpressionStatement",
"src": "7920:15:2"
}
]
},
"name": "panic_error_0x11",
"nodeType": "YulFunctionDefinition",
"src": "7761:180:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "7975:152:2",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7992:1:2",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7995:77:2",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "7985:6:2"
},
"nodeType": "YulFunctionCall",
"src": "7985:88:2"
},
"nodeType": "YulExpressionStatement",
"src": "7985:88:2"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8089:1:2",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8092:4:2",
"type": "",
"value": "0x32"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "8082:6:2"
},
"nodeType": "YulFunctionCall",
"src": "8082:15:2"
},
"nodeType": "YulExpressionStatement",
"src": "8082:15:2"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8113:1:2",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8116:4:2",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "8106:6:2"
},
"nodeType": "YulFunctionCall",
"src": "8106:15:2"
},
"nodeType": "YulExpressionStatement",
"src": "8106:15:2"
}
]
},
"name": "panic_error_0x32",
"nodeType": "YulFunctionDefinition",
"src": "7947:180:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "8161:152:2",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8178:1:2",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8181:77:2",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "8171:6:2"
},
"nodeType": "YulFunctionCall",
"src": "8171:88:2"
},
"nodeType": "YulExpressionStatement",
"src": "8171:88:2"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8275:1:2",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8278:4:2",
"type": "",
"value": "0x41"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "8268:6:2"
},
"nodeType": "YulFunctionCall",
"src": "8268:15:2"
},
"nodeType": "YulExpressionStatement",
"src": "8268:15:2"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8299:1:2",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8302:4:2",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "8292:6:2"
},
"nodeType": "YulFunctionCall",
"src": "8292:15:2"
},
"nodeType": "YulExpressionStatement",
"src": "8292:15:2"
}
]
},
"name": "panic_error_0x41",
"nodeType": "YulFunctionDefinition",
"src": "8133:180:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "8408:28:2",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8425:1:2",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8428:1:2",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "8418:6:2"
},
"nodeType": "YulFunctionCall",
"src": "8418:12:2"
},
"nodeType": "YulExpressionStatement",
"src": "8418:12:2"
}
]
},
"name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d",
"nodeType": "YulFunctionDefinition",
"src": "8319:117:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "8531:28:2",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8548:1:2",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8551:1:2",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "8541:6:2"
},
"nodeType": "YulFunctionCall",
"src": "8541:12:2"
},
"nodeType": "YulExpressionStatement",
"src": "8541:12:2"
}
]
},
"name": "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef",
"nodeType": "YulFunctionDefinition",
"src": "8442:117:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "8654:28:2",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8671:1:2",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8674:1:2",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "8664:6:2"
},
"nodeType": "YulFunctionCall",
"src": "8664:12:2"
},
"nodeType": "YulExpressionStatement",
"src": "8664:12:2"
}
]
},
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nodeType": "YulFunctionDefinition",
"src": "8565:117:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "8777:28:2",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8794:1:2",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8797:1:2",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "8787:6:2"
},
"nodeType": "YulFunctionCall",
"src": "8787:12:2"
},
"nodeType": "YulExpressionStatement",
"src": "8787:12:2"
}
]
},
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulFunctionDefinition",
"src": "8688:117:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "8859:54:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "8869:38:2",
"value": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "8887:5:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8894:2:2",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "8883:3:2"
},
"nodeType": "YulFunctionCall",
"src": "8883:14:2"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8903:2:2",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "not",
"nodeType": "YulIdentifier",
"src": "8899:3:2"
},
"nodeType": "YulFunctionCall",
"src": "8899:7:2"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "8879:3:2"
},
"nodeType": "YulFunctionCall",
"src": "8879:28:2"
},
"variableNames": [
{
"name": "result",
"nodeType": "YulIdentifier",
"src": "8869:6:2"
}
]
}
]
},
"name": "round_up_to_mul_of_32",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "8842:5:2",
"type": ""
}
],
"returnVariables": [
{
"name": "result",
"nodeType": "YulTypedName",
"src": "8852:6:2",
"type": ""
}
],
"src": "8811:102:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "8962:79:2",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "9019:16:2",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9028:1:2",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9031:1:2",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "9021:6:2"
},
"nodeType": "YulFunctionCall",
"src": "9021:12:2"
},
"nodeType": "YulExpressionStatement",
"src": "9021:12:2"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "8985:5:2"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "9010:5:2"
}
],
"functionName": {
"name": "cleanup_t_address",
"nodeType": "YulIdentifier",
"src": "8992:17:2"
},
"nodeType": "YulFunctionCall",
"src": "8992:24:2"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "8982:2:2"
},
"nodeType": "YulFunctionCall",
"src": "8982:35:2"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "8975:6:2"
},
"nodeType": "YulFunctionCall",
"src": "8975:43:2"
},
"nodeType": "YulIf",
"src": "8972:63:2"
}
]
},
"name": "validator_revert_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "8955:5:2",
"type": ""
}
],
"src": "8919:122:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "9090:79:2",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "9147:16:2",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9156:1:2",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9159:1:2",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "9149:6:2"
},
"nodeType": "YulFunctionCall",
"src": "9149:12:2"
},
"nodeType": "YulExpressionStatement",
"src": "9149:12:2"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "9113:5:2"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "9138:5:2"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "9120:17:2"
},
"nodeType": "YulFunctionCall",
"src": "9120:24:2"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "9110:2:2"
},
"nodeType": "YulFunctionCall",
"src": "9110:35:2"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "9103:6:2"
},
"nodeType": "YulFunctionCall",
"src": "9103:43:2"
},
"nodeType": "YulIf",
"src": "9100:63:2"
}
]
},
"name": "validator_revert_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "9083:5:2",
"type": ""
}
],
"src": "9047:122:2"
}
]
},
"contents": "{\n\n // uint256[]\n function abi_decode_available_length_t_array$_t_uint256_$dyn_memory_ptr(offset, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_array$_t_uint256_$dyn_memory_ptr(length))\n let dst := array\n\n mstore(array, length)\n dst := add(array, 0x20)\n\n let src := offset\n if gt(add(src, mul(length, 0x20)), end) {\n revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef()\n }\n for { let i := 0 } lt(i, length) { i := add(i, 1) }\n {\n\n let elementPos := src\n\n mstore(dst, abi_decode_t_uint256(elementPos, end))\n dst := add(dst, 0x20)\n src := add(src, 0x20)\n }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n // uint256[]\n function abi_decode_t_array$_t_uint256_$dyn_memory_ptr(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := calldataload(offset)\n array := abi_decode_available_length_t_array$_t_uint256_$dyn_memory_ptr(add(offset, 0x20), length, end)\n }\n\n function 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_uint256t_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_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 let offset := 64\n\n value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_uint256t_array$_t_uint256_$dyn_memory_ptr(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value1 := abi_decode_t_array$_t_uint256_$dyn_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_encodeUpdatedPos_t_uint256_to_t_uint256(value0, pos) -> updatedPos {\n abi_encode_t_uint256_to_t_uint256(value0, pos)\n updatedPos := add(pos, 0x20)\n }\n\n // uint256[] -> uint256[]\n function abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_array$_t_uint256_$dyn_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack(pos, length)\n let baseRef := array_dataslot_t_array$_t_uint256_$dyn_memory_ptr(value)\n let srcPtr := baseRef\n for { let i := 0 } lt(i, length) { i := add(i, 1) }\n {\n let elementValue0 := mload(srcPtr)\n pos := abi_encodeUpdatedPos_t_uint256_to_t_uint256(elementValue0, pos)\n srcPtr := array_nextElement_t_array$_t_uint256_$dyn_memory_ptr(srcPtr)\n }\n end := pos\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_t_uint256_to_t_uint256(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack(value0, tail)\n\n }\n\n function abi_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_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 allocate_memory(size) -> memPtr {\n memPtr := allocate_unbounded()\n finalize_allocation(memPtr, size)\n }\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function array_allocation_size_t_array$_t_uint256_$dyn_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := mul(length, 0x20)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function array_dataslot_t_array$_t_uint256_$dyn_memory_ptr(ptr) -> data {\n data := ptr\n\n data := add(ptr, 0x20)\n\n }\n\n function array_length_t_array$_t_uint256_$dyn_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_nextElement_t_array$_t_uint256_$dyn_memory_ptr(ptr) -> next {\n next := add(ptr, 0x20)\n }\n\n function array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function decrement_t_uint256(value) -> ret {\n value := cleanup_t_uint256(value)\n if eq(value, 0x00) { panic_error_0x11() }\n ret := sub(value, 1)\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 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 panic_error_0x01() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x01)\n revert(0, 0x24)\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function panic_error_0x32() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x32)\n revert(0, 0x24)\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\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 validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n}\n",
"id": 2,
"language": "Yul",
"name": "#utility.yul"
}
],
"immutableReferences": {},
"linkReferences": {},
"object": "608060405234801561001057600080fd5b506004361061004c5760003560e01c80637055d3681461005157806378310bca14610081578063aff9e954146100b1578063d70c6f4e146100e1575b600080fd5b61006b60048036038101906100669190610840565b610111565b60405161007891906109a1565b60405180910390f35b61009b600480360381019061009691906107ed565b6103c5565b6040516100a891906109bc565b60405180910390f35b6100cb60048036038101906100c6919061089c565b610403565b6040516100d8919061097f565b60405180910390f35b6100fb60048036038101906100f6919061089c565b6104fd565b60405161010891906109bc565b60405180910390f35b600060088251111561012657610125610b4d565b5b60005b825181101561017057600883828151811061014757610146610bab565b5b60200260200101511061015d5761015c610b4d565b5b808061016890610b04565b915050610129565b50600080600085815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080548060200260200160405190810160405280929190818152602001828054801561020c57602002820191906000526020600020905b8154815260200190600101908083116101f8575b5050505050905060005b815181101561028c57600082828151811061023457610233610bab565b5b60200260200101519050600160008781526020019081526020016000206000828152602001908152602001600020600081548092919061027390610aa9565b919050555050808061028490610b04565b915050610216565b5060005b83518110156103065760008482815181106102ae576102ad610bab565b5b6020026020010151905060016000878152602001908152602001600020600082815260200190815260200160002060008154809291906102ed90610b04565b91905055505080806102fe90610b04565b915050610290565b508260008086815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020908051906020019061036a9291906106bb565b503373ffffffffffffffffffffffffffffffffffffffff16847f9d77f9480ebb76e61c50c6d0b4913d773e971c600d4ee011b7d9d4aa01882cbb856040516103b2919061097f565b60405180910390a3600191505092915050565b600060205282600052604060002060205281600052604060002081815481106103ed57600080fd5b9060005260206000200160009250925050505481565b60606008821061041657610415610b4d565b5b6000808311610426576008610428565b825b905060008167ffffffffffffffff81111561044657610445610bda565b5b6040519080825280602002602001820160405280156104745781602001602082028036833780820191505090505b5090506000610496600160008881526020019081526020016000206008610522565b905060005b838110156104f0578181815181106104b6576104b5610bab565b5b60200260200101518382815181106104d1576104d0610bab565b5b60200260200101818152505080806104e890610b04565b91505061049b565b5080935050505092915050565b6001602052816000526040600020602052806000526040600020600091509150505481565b606060008267ffffffffffffffff8111156105405761053f610bda565b5b60405190808252806020026020018201604052801561056e5781602001602082028036833780820191505090505b50905060005b838110156105af57808282815181106105905761058f610bab565b5b60200260200101818152505080806105a790610b04565b915050610574565b5060005b838110156106b0576000600190505b8181101561069c5760008383815181106105df576105de610bab565b5b6020026020010151905060008483815181106105fe576105fd610bab565b5b6020026020010151905060008860008481526020019081526020016000205490506000896000858152602001908152602001600020549050808210156106855760008490508388888151811061065757610656610bab565b5b6020026020010181815250508088878151811061067757610676610bab565b5b602002602001018181525050505b50505050808061069490610b04565b9150506105c2565b5080806106a890610b04565b9150506105b3565b508091505092915050565b8280548282559060005260206000209081019282156106f7579160200282015b828111156106f65782518255916020019190600101906106db565b5b5090506107049190610708565b5090565b5b80821115610721576000816000905550600101610709565b5090565b6000610738610733846109fc565b6109d7565b9050808382526020820190508285602086028201111561075b5761075a610c0e565b5b60005b8581101561078b578161077188826107d8565b84526020840193506020830192505060018101905061075e565b5050509392505050565b6000813590506107a481610c2e565b92915050565b600082601f8301126107bf576107be610c09565b5b81356107cf848260208601610725565b91505092915050565b6000813590506107e781610c45565b92915050565b60008060006060848603121561080657610805610c18565b5b6000610814868287016107d8565b935050602061082586828701610795565b9250506040610836868287016107d8565b9150509250925092565b6000806040838503121561085757610856610c18565b5b6000610865858286016107d8565b925050602083013567ffffffffffffffff81111561088657610885610c13565b5b610892858286016107aa565b9150509250929050565b600080604083850312156108b3576108b2610c18565b5b60006108c1858286016107d8565b92505060206108d2858286016107d8565b9150509250929050565b60006108e88383610961565b60208301905092915050565b60006108ff82610a38565b6109098185610a50565b935061091483610a28565b8060005b8381101561094557815161092c88826108dc565b975061093783610a43565b925050600181019050610918565b5085935050505092915050565b61095b81610a73565b82525050565b61096a81610a9f565b82525050565b61097981610a9f565b82525050565b6000602082019050818103600083015261099981846108f4565b905092915050565b60006020820190506109b66000830184610952565b92915050565b60006020820190506109d16000830184610970565b92915050565b60006109e16109f2565b90506109ed8282610ad3565b919050565b6000604051905090565b600067ffffffffffffffff821115610a1757610a16610bda565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b6000610a6c82610a7f565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000610ab482610a9f565b91506000821415610ac857610ac7610b7c565b5b600182039050919050565b610adc82610c1d565b810181811067ffffffffffffffff82111715610afb57610afa610bda565b5b80604052505050565b6000610b0f82610a9f565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415610b4257610b41610b7c565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b610c3781610a61565b8114610c4257600080fd5b50565b610c4e81610a9f565b8114610c5957600080fd5b5056fea26469706673582212209089d2e479ed4f04fc56027e703c2dbf63341757c118dffaf7be34489ab5997064736f6c63430008070033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x4C JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x7055D368 EQ PUSH2 0x51 JUMPI DUP1 PUSH4 0x78310BCA EQ PUSH2 0x81 JUMPI DUP1 PUSH4 0xAFF9E954 EQ PUSH2 0xB1 JUMPI DUP1 PUSH4 0xD70C6F4E EQ PUSH2 0xE1 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x6B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x66 SWAP2 SWAP1 PUSH2 0x840 JUMP JUMPDEST PUSH2 0x111 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x78 SWAP2 SWAP1 PUSH2 0x9A1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x9B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x96 SWAP2 SWAP1 PUSH2 0x7ED JUMP JUMPDEST PUSH2 0x3C5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xA8 SWAP2 SWAP1 PUSH2 0x9BC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xCB PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xC6 SWAP2 SWAP1 PUSH2 0x89C JUMP JUMPDEST PUSH2 0x403 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xD8 SWAP2 SWAP1 PUSH2 0x97F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xFB PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xF6 SWAP2 SWAP1 PUSH2 0x89C JUMP JUMPDEST PUSH2 0x4FD JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x108 SWAP2 SWAP1 PUSH2 0x9BC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 PUSH1 0x8 DUP3 MLOAD GT ISZERO PUSH2 0x126 JUMPI PUSH2 0x125 PUSH2 0xB4D JUMP JUMPDEST JUMPDEST PUSH1 0x0 JUMPDEST DUP3 MLOAD DUP2 LT ISZERO PUSH2 0x170 JUMPI PUSH1 0x8 DUP4 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x147 JUMPI PUSH2 0x146 PUSH2 0xBAB JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD LT PUSH2 0x15D JUMPI PUSH2 0x15C PUSH2 0xB4D JUMP JUMPDEST JUMPDEST DUP1 DUP1 PUSH2 0x168 SWAP1 PUSH2 0xB04 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x129 JUMP JUMPDEST POP PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP1 SLOAD DUP1 PUSH1 0x20 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 DUP1 ISZERO PUSH2 0x20C JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 ADD SWAP1 DUP1 DUP4 GT PUSH2 0x1F8 JUMPI JUMPDEST POP POP POP POP POP SWAP1 POP PUSH1 0x0 JUMPDEST DUP2 MLOAD DUP2 LT ISZERO PUSH2 0x28C JUMPI PUSH1 0x0 DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x234 JUMPI PUSH2 0x233 PUSH2 0xBAB JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP1 POP PUSH1 0x1 PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP2 SLOAD DUP1 SWAP3 SWAP2 SWAP1 PUSH2 0x273 SWAP1 PUSH2 0xAA9 JUMP JUMPDEST SWAP2 SWAP1 POP SSTORE POP POP DUP1 DUP1 PUSH2 0x284 SWAP1 PUSH2 0xB04 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x216 JUMP JUMPDEST POP PUSH1 0x0 JUMPDEST DUP4 MLOAD DUP2 LT ISZERO PUSH2 0x306 JUMPI PUSH1 0x0 DUP5 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x2AE JUMPI PUSH2 0x2AD PUSH2 0xBAB JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP1 POP PUSH1 0x1 PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP2 SLOAD DUP1 SWAP3 SWAP2 SWAP1 PUSH2 0x2ED SWAP1 PUSH2 0xB04 JUMP JUMPDEST SWAP2 SWAP1 POP SSTORE POP POP DUP1 DUP1 PUSH2 0x2FE SWAP1 PUSH2 0xB04 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x290 JUMP JUMPDEST POP DUP3 PUSH1 0x0 DUP1 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0x36A SWAP3 SWAP2 SWAP1 PUSH2 0x6BB JUMP JUMPDEST POP CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH32 0x9D77F9480EBB76E61C50C6D0B4913D773E971C600D4EE011B7D9D4AA01882CBB DUP6 PUSH1 0x40 MLOAD PUSH2 0x3B2 SWAP2 SWAP1 PUSH2 0x97F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 MSTORE DUP3 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x20 MSTORE DUP2 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x3ED JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP3 POP SWAP3 POP POP POP SLOAD DUP2 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x8 DUP3 LT PUSH2 0x416 JUMPI PUSH2 0x415 PUSH2 0xB4D JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP1 DUP4 GT PUSH2 0x426 JUMPI PUSH1 0x8 PUSH2 0x428 JUMP JUMPDEST DUP3 JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x446 JUMPI PUSH2 0x445 PUSH2 0xBDA JUMP JUMPDEST JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x474 JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY DUP1 DUP3 ADD SWAP2 POP POP SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 PUSH2 0x496 PUSH1 0x1 PUSH1 0x0 DUP9 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x8 PUSH2 0x522 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x4F0 JUMPI DUP2 DUP2 DUP2 MLOAD DUP2 LT PUSH2 0x4B6 JUMPI PUSH2 0x4B5 PUSH2 0xBAB JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP4 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x4D1 JUMPI PUSH2 0x4D0 PUSH2 0xBAB JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP DUP1 DUP1 PUSH2 0x4E8 SWAP1 PUSH2 0xB04 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x49B JUMP JUMPDEST POP DUP1 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE DUP2 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SWAP2 POP POP SLOAD DUP2 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP3 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x540 JUMPI PUSH2 0x53F PUSH2 0xBDA JUMP JUMPDEST JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x56E JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY DUP1 DUP3 ADD SWAP2 POP POP SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x5AF JUMPI DUP1 DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x590 JUMPI PUSH2 0x58F PUSH2 0xBAB JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP DUP1 DUP1 PUSH2 0x5A7 SWAP1 PUSH2 0xB04 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x574 JUMP JUMPDEST POP PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x6B0 JUMPI PUSH1 0x0 PUSH1 0x1 SWAP1 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x69C JUMPI PUSH1 0x0 DUP4 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x5DF JUMPI PUSH2 0x5DE PUSH2 0xBAB JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP1 POP PUSH1 0x0 DUP5 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x5FE JUMPI PUSH2 0x5FD PUSH2 0xBAB JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP1 POP PUSH1 0x0 DUP9 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP PUSH1 0x0 DUP10 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP DUP1 DUP3 LT ISZERO PUSH2 0x685 JUMPI PUSH1 0x0 DUP5 SWAP1 POP DUP4 DUP9 DUP9 DUP2 MLOAD DUP2 LT PUSH2 0x657 JUMPI PUSH2 0x656 PUSH2 0xBAB JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP DUP1 DUP9 DUP8 DUP2 MLOAD DUP2 LT PUSH2 0x677 JUMPI PUSH2 0x676 PUSH2 0xBAB JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP POP JUMPDEST POP POP POP POP DUP1 DUP1 PUSH2 0x694 SWAP1 PUSH2 0xB04 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x5C2 JUMP JUMPDEST POP DUP1 DUP1 PUSH2 0x6A8 SWAP1 PUSH2 0xB04 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x5B3 JUMP JUMPDEST POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP1 SLOAD DUP3 DUP3 SSTORE SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP3 DUP3 ISZERO PUSH2 0x6F7 JUMPI SWAP2 PUSH1 0x20 MUL DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x6F6 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x6DB JUMP JUMPDEST JUMPDEST POP SWAP1 POP PUSH2 0x704 SWAP2 SWAP1 PUSH2 0x708 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x721 JUMPI PUSH1 0x0 DUP2 PUSH1 0x0 SWAP1 SSTORE POP PUSH1 0x1 ADD PUSH2 0x709 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x738 PUSH2 0x733 DUP5 PUSH2 0x9FC JUMP JUMPDEST PUSH2 0x9D7 JUMP JUMPDEST SWAP1 POP DUP1 DUP4 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP DUP3 DUP6 PUSH1 0x20 DUP7 MUL DUP3 ADD GT ISZERO PUSH2 0x75B JUMPI PUSH2 0x75A PUSH2 0xC0E JUMP JUMPDEST JUMPDEST PUSH1 0x0 JUMPDEST DUP6 DUP2 LT ISZERO PUSH2 0x78B JUMPI DUP2 PUSH2 0x771 DUP9 DUP3 PUSH2 0x7D8 JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH1 0x20 DUP4 ADD SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x75E JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x7A4 DUP2 PUSH2 0xC2E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x7BF JUMPI PUSH2 0x7BE PUSH2 0xC09 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x7CF DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x725 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x7E7 DUP2 PUSH2 0xC45 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x806 JUMPI PUSH2 0x805 PUSH2 0xC18 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x814 DUP7 DUP3 DUP8 ADD PUSH2 0x7D8 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x825 DUP7 DUP3 DUP8 ADD PUSH2 0x795 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x836 DUP7 DUP3 DUP8 ADD PUSH2 0x7D8 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x857 JUMPI PUSH2 0x856 PUSH2 0xC18 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x865 DUP6 DUP3 DUP7 ADD PUSH2 0x7D8 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x886 JUMPI PUSH2 0x885 PUSH2 0xC13 JUMP JUMPDEST JUMPDEST PUSH2 0x892 DUP6 DUP3 DUP7 ADD PUSH2 0x7AA JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x8B3 JUMPI PUSH2 0x8B2 PUSH2 0xC18 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x8C1 DUP6 DUP3 DUP7 ADD PUSH2 0x7D8 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x8D2 DUP6 DUP3 DUP7 ADD PUSH2 0x7D8 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x8E8 DUP4 DUP4 PUSH2 0x961 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x8FF DUP3 PUSH2 0xA38 JUMP JUMPDEST PUSH2 0x909 DUP2 DUP6 PUSH2 0xA50 JUMP JUMPDEST SWAP4 POP PUSH2 0x914 DUP4 PUSH2 0xA28 JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x945 JUMPI DUP2 MLOAD PUSH2 0x92C DUP9 DUP3 PUSH2 0x8DC JUMP JUMPDEST SWAP8 POP PUSH2 0x937 DUP4 PUSH2 0xA43 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x918 JUMP JUMPDEST POP DUP6 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x95B DUP2 PUSH2 0xA73 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x96A DUP2 PUSH2 0xA9F JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x979 DUP2 PUSH2 0xA9F JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x999 DUP2 DUP5 PUSH2 0x8F4 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x9B6 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x952 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x9D1 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x970 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x9E1 PUSH2 0x9F2 JUMP JUMPDEST SWAP1 POP PUSH2 0x9ED DUP3 DUP3 PUSH2 0xAD3 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0xA17 JUMPI PUSH2 0xA16 PUSH2 0xBDA JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD 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 0xA6C DUP3 PUSH2 0xA7F JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 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 0xAB4 DUP3 PUSH2 0xA9F JUMP JUMPDEST SWAP2 POP PUSH1 0x0 DUP3 EQ ISZERO PUSH2 0xAC8 JUMPI PUSH2 0xAC7 PUSH2 0xB7C JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 SUB SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xADC DUP3 PUSH2 0xC1D JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0xAFB JUMPI PUSH2 0xAFA PUSH2 0xBDA JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB0F DUP3 PUSH2 0xA9F JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 EQ ISZERO PUSH2 0xB42 JUMPI PUSH2 0xB41 PUSH2 0xB7C JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x1 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT 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 PUSH2 0xC37 DUP2 PUSH2 0xA61 JUMP JUMPDEST DUP2 EQ PUSH2 0xC42 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0xC4E DUP2 PUSH2 0xA9F JUMP JUMPDEST DUP2 EQ PUSH2 0xC59 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP1 DUP10 0xD2 0xE4 PUSH26 0xED4F04FC56027E703C2DBF63341757C118DFFAF7BE34489AB599 PUSH17 0x64736F6C63430008070033000000000000 ",
"sourceMap": "620:2583:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;971:819;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;763:97;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1796:507;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;866:94;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;971:819;1053:4;747:1;1077:10;:17;:43;;1070:51;;;;:::i;:::-;;1138:6;1133:112;1151:10;:17;1148:1;:20;1133:112;;;701:1;1196:10;1207:1;1196:13;;;;;;;;:::i;:::-;;;;;;;;:37;1189:45;;;;:::i;:::-;;1170:3;;;;;:::i;:::-;;;;1133:112;;;;1255:31;1289:5;:15;1295:8;1289:15;;;;;;;;;;;:27;1305:10;1289:27;;;;;;;;;;;;;;;1255:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1331:6;1326:168;1343:17;:24;1341:1;:26;1326:168;;;1388:21;1412:17;1430:1;1412:20;;;;;;;;:::i;:::-;;;;;;;;1388:44;;1446:7;:17;1454:8;1446:17;;;;;;;;;;;:35;1464:16;1446:35;;;;;;;;;;;;:37;;;;;;;;;:::i;:::-;;;;;;1374:120;1369:3;;;;;:::i;:::-;;;;1326:168;;;;1508:6;1503:154;1520:10;:17;1518:1;:19;1503:154;;;1558:21;1582:10;1593:1;1582:13;;;;;;;;:::i;:::-;;;;;;;;1558:37;;1609:7;:17;1617:8;1609:17;;;;;;;;;;;:35;1627:16;1609:35;;;;;;;;;;;;:37;;;;;;;;;:::i;:::-;;;;;;1544:113;1539:3;;;;;:::i;:::-;;;;1503:154;;;;1697:10;1667:5;:15;1673:8;1667:15;;;;;;;;;;;:27;1683:10;1667:27;;;;;;;;;;;;;;;:40;;;;;;;;;;;;:::i;:::-;;1751:10;1722:40;;1729:8;1722:40;1739:10;1722:40;;;;;;:::i;:::-;;;;;;;;1779:4;1772:11;;;971:819;;;;:::o;763:97::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1796:507::-;1892:13;701:1;1923:6;:30;1916:38;;;;:::i;:::-;;1963:14;1989:1;1980:6;:10;:43;;701:1;1980:43;;;1993:6;1980:43;1963:60;;2032:20;2066:9;2055:21;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2032:44;;2085:29;2117:56;2132:7;:17;2140:8;2132:17;;;;;;;;;;;701:1;2117:14;:56::i;:::-;2085:88;;2187:6;2182:84;2198:9;2196:1;:11;2182:84;;;2238:15;2254:1;2238:18;;;;;;;;:::i;:::-;;;;;;;;2226:6;2233:1;2226:9;;;;;;;;:::i;:::-;;;;;;;:30;;;;;2208:3;;;;;:::i;:::-;;;;2182:84;;;;2281:15;2274:22;;;;;1796:507;;;;:::o;866:94::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2313:887::-;2432:24;2477;2515:13;2504:25;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2477:52;;2552:6;2548:77;2564:13;2562:1;:15;2548:77;;;2613:1;2598:10;2609:1;2598:13;;;;;;;;:::i;:::-;;;;;;;:16;;;;;2579:3;;;;;:::i;:::-;;;;2548:77;;;;2648:6;2643:524;2660:13;2658:1;:15;2643:524;;;2699:6;2706:1;2699:8;;2694:463;2711:1;2709;:3;2694:463;;;2736:9;2748:10;2759:1;2748:13;;;;;;;;:::i;:::-;;;;;;;;2736:25;;2778:9;2790:10;2801:1;2790:13;;;;;;;;:::i;:::-;;;;;;;;2778:25;;2820:11;2834:12;:18;2847:4;2834:18;;;;;;;;;;;;2820:32;;2869:11;2883:12;:18;2896:4;2883:18;;;;;;;;;;;;2869:32;;2931:6;2922;:15;2918:225;;;3027:9;3039:4;3027:16;;3080:4;3064:10;3075:1;3064:13;;;;;;;;:::i;:::-;;;;;;;:20;;;;;3121:4;3105:10;3116:1;3105:13;;;;;;;;:::i;:::-;;;;;;;:20;;;;;2939:204;2918:225;2719:438;;;;2714:3;;;;;:::i;:::-;;;;2694:463;;;;2675:3;;;;;:::i;:::-;;;;2643:524;;;;3183:10;3176:17;;;2313:887;;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;24:722:2:-;120:5;145:81;161:64;218:6;161:64;:::i;:::-;145:81;:::i;:::-;136:90;;246:5;275:6;268:5;261:21;309:4;302:5;298:16;291:23;;335:6;385:3;377:4;369:6;365:17;360:3;356:27;353:36;350:143;;;404:79;;:::i;:::-;350:143;517:1;502:238;527:6;524:1;521:13;502:238;;;595:3;624:37;657:3;645:10;624:37;:::i;:::-;619:3;612:50;691:4;686:3;682:14;675:21;;725:4;720:3;716:14;709:21;;562:178;549:1;546;542:9;537:14;;502:238;;;506:14;126:620;;24:722;;;;;:::o;752:139::-;798:5;836:6;823:20;814:29;;852:33;879:5;852:33;:::i;:::-;752:139;;;;:::o;914:370::-;985:5;1034:3;1027:4;1019:6;1015:17;1011:27;1001:122;;1042:79;;:::i;:::-;1001:122;1159:6;1146:20;1184:94;1274:3;1266:6;1259:4;1251:6;1247:17;1184:94;:::i;:::-;1175:103;;991:293;914:370;;;;:::o;1290:139::-;1336:5;1374:6;1361:20;1352:29;;1390:33;1417:5;1390:33;:::i;:::-;1290:139;;;;:::o;1435:619::-;1512:6;1520;1528;1577:2;1565:9;1556:7;1552:23;1548:32;1545:119;;;1583:79;;:::i;:::-;1545:119;1703:1;1728:53;1773:7;1764:6;1753:9;1749:22;1728:53;:::i;:::-;1718:63;;1674:117;1830:2;1856:53;1901:7;1892:6;1881:9;1877:22;1856:53;:::i;:::-;1846:63;;1801:118;1958:2;1984:53;2029:7;2020:6;2009:9;2005:22;1984:53;:::i;:::-;1974:63;;1929:118;1435:619;;;;;:::o;2060:684::-;2153:6;2161;2210:2;2198:9;2189:7;2185:23;2181:32;2178:119;;;2216:79;;:::i;:::-;2178:119;2336:1;2361:53;2406:7;2397:6;2386:9;2382:22;2361:53;:::i;:::-;2351:63;;2307:117;2491:2;2480:9;2476:18;2463:32;2522:18;2514:6;2511:30;2508:117;;;2544:79;;:::i;:::-;2508:117;2649:78;2719:7;2710:6;2699:9;2695:22;2649:78;:::i;:::-;2639:88;;2434:303;2060:684;;;;;:::o;2750:474::-;2818:6;2826;2875:2;2863:9;2854:7;2850:23;2846:32;2843:119;;;2881:79;;:::i;:::-;2843:119;3001:1;3026:53;3071:7;3062:6;3051:9;3047:22;3026:53;:::i;:::-;3016:63;;2972:117;3128:2;3154:53;3199:7;3190:6;3179:9;3175:22;3154:53;:::i;:::-;3144:63;;3099:118;2750:474;;;;;:::o;3230:179::-;3299:10;3320:46;3362:3;3354:6;3320:46;:::i;:::-;3398:4;3393:3;3389:14;3375:28;;3230:179;;;;:::o;3445:732::-;3564:3;3593:54;3641:5;3593:54;:::i;:::-;3663:86;3742:6;3737:3;3663:86;:::i;:::-;3656:93;;3773:56;3823:5;3773:56;:::i;:::-;3852:7;3883:1;3868:284;3893:6;3890:1;3887:13;3868:284;;;3969:6;3963:13;3996:63;4055:3;4040:13;3996:63;:::i;:::-;3989:70;;4082:60;4135:6;4082:60;:::i;:::-;4072:70;;3928:224;3915:1;3912;3908:9;3903:14;;3868:284;;;3872:14;4168:3;4161:10;;3569:608;;;3445:732;;;;:::o;4183:109::-;4264:21;4279:5;4264:21;:::i;:::-;4259:3;4252:34;4183:109;;:::o;4298:108::-;4375:24;4393:5;4375:24;:::i;:::-;4370:3;4363:37;4298:108;;:::o;4412:118::-;4499:24;4517:5;4499:24;:::i;:::-;4494:3;4487:37;4412:118;;:::o;4536:373::-;4679:4;4717:2;4706:9;4702:18;4694:26;;4766:9;4760:4;4756:20;4752:1;4741:9;4737:17;4730:47;4794:108;4897:4;4888:6;4794:108;:::i;:::-;4786:116;;4536:373;;;;:::o;4915:210::-;5002:4;5040:2;5029:9;5025:18;5017:26;;5053:65;5115:1;5104:9;5100:17;5091:6;5053:65;:::i;:::-;4915:210;;;;:::o;5131:222::-;5224:4;5262:2;5251:9;5247:18;5239:26;;5275:71;5343:1;5332:9;5328:17;5319:6;5275:71;:::i;:::-;5131:222;;;;:::o;5359:129::-;5393:6;5420:20;;:::i;:::-;5410:30;;5449:33;5477:4;5469:6;5449:33;:::i;:::-;5359:129;;;:::o;5494:75::-;5527:6;5560:2;5554:9;5544:19;;5494:75;:::o;5575:311::-;5652:4;5742:18;5734:6;5731:30;5728:56;;;5764:18;;:::i;:::-;5728:56;5814:4;5806:6;5802:17;5794:25;;5874:4;5868;5864:15;5856:23;;5575:311;;;:::o;5892:132::-;5959:4;5982:3;5974:11;;6012:4;6007:3;6003:14;5995:22;;5892:132;;;:::o;6030:114::-;6097:6;6131:5;6125:12;6115:22;;6030:114;;;:::o;6150:113::-;6220:4;6252;6247:3;6243:14;6235:22;;6150:113;;;:::o;6269:184::-;6368:11;6402:6;6397:3;6390:19;6442:4;6437:3;6433:14;6418:29;;6269:184;;;;:::o;6459:96::-;6496:7;6525:24;6543:5;6525:24;:::i;:::-;6514:35;;6459:96;;;:::o;6561:90::-;6595:7;6638:5;6631:13;6624:21;6613:32;;6561:90;;;:::o;6657:126::-;6694:7;6734:42;6727:5;6723:54;6712:65;;6657:126;;;:::o;6789:77::-;6826:7;6855:5;6844:16;;6789:77;;;:::o;6872:171::-;6911:3;6934:24;6952:5;6934:24;:::i;:::-;6925:33;;6980:4;6973:5;6970:15;6967:41;;;6988:18;;:::i;:::-;6967:41;7035:1;7028:5;7024:13;7017:20;;6872:171;;;:::o;7049:281::-;7132:27;7154:4;7132:27;:::i;:::-;7124:6;7120:40;7262:6;7250:10;7247:22;7226:18;7214:10;7211:34;7208:62;7205:88;;;7273:18;;:::i;:::-;7205:88;7313:10;7309:2;7302:22;7092:238;7049:281;;:::o;7336:233::-;7375:3;7398:24;7416:5;7398:24;:::i;:::-;7389:33;;7444:66;7437:5;7434:77;7431:103;;;7514:18;;:::i;:::-;7431:103;7561:1;7554:5;7550:13;7543:20;;7336:233;;;:::o;7575:180::-;7623:77;7620:1;7613:88;7720:4;7717:1;7710:15;7744:4;7741:1;7734:15;7761:180;7809:77;7806:1;7799:88;7906:4;7903:1;7896:15;7930:4;7927:1;7920:15;7947:180;7995:77;7992:1;7985:88;8092:4;8089:1;8082:15;8116:4;8113:1;8106:15;8133:180;8181:77;8178:1;8171:88;8278:4;8275:1;8268:15;8302:4;8299:1;8292:15;8319:117;8428:1;8425;8418:12;8442:117;8551:1;8548;8541:12;8565:117;8674:1;8671;8664:12;8688:117;8797:1;8794;8787:12;8811:102;8852:6;8903:2;8899:7;8894:2;8887:5;8883:14;8879:28;8869:38;;8811:102;;;:::o;8919:122::-;8992:24;9010:5;8992:24;:::i;:::-;8985:5;8982:35;8972:63;;9031:1;9028;9021:12;8972:63;8919:122;:::o;9047:::-;9120:24;9138:5;9120:24;:::i;:::-;9113:5;9110:35;9100:63;;9159:1;9156;9149:12;9100:63;9047:122;:::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "643600",
"executionCost": "676",
"totalCost": "644276"
},
"external": {
"results(uint256,uint256)": "infinite",
"topOptions(uint256,uint256)": "infinite",
"vote(uint256,uint256[])": "infinite",
"votes(uint256,address,uint256)": "infinite"
},
"internal": {
"sortKeyByValue(mapping(uint256 => uint256),uint256)": "infinite"
}
},
"methodIdentifiers": {
"results(uint256,uint256)": "d70c6f4e",
"topOptions(uint256,uint256)": "aff9e954",
"vote(uint256,uint256[])": "7055d368",
"votes(uint256,address,uint256)": "78310bca"
}
},
"abi": [
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "uint256",
"name": "issueId",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256[]",
"name": "optionIds",
"type": "uint256[]"
},
{
"indexed": true,
"internalType": "address",
"name": "voter",
"type": "address"
}
],
"name": "OnVote",
"type": "event"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "results",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_issueId",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "_limit",
"type": "uint256"
}
],
"name": "topOptions",
"outputs": [
{
"internalType": "uint256[]",
"name": "",
"type": "uint256[]"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_issueId",
"type": "uint256"
},
{
"internalType": "uint256[]",
"name": "_optionIds",
"type": "uint256[]"
}
],
"name": "vote",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
},
{
"internalType": "address",
"name": "",
"type": "address"
},
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "votes",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.8.7+commit.e28d00a7"
},
"language": "Solidity",
"output": {
"abi": [
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "uint256",
"name": "issueId",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256[]",
"name": "optionIds",
"type": "uint256[]"
},
{
"indexed": true,
"internalType": "address",
"name": "voter",
"type": "address"
}
],
"name": "OnVote",
"type": "event"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "results",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_issueId",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "_limit",
"type": "uint256"
}
],
"name": "topOptions",
"outputs": [
{
"internalType": "uint256[]",
"name": "",
"type": "uint256[]"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_issueId",
"type": "uint256"
},
{
"internalType": "uint256[]",
"name": "_optionIds",
"type": "uint256[]"
}
],
"name": "vote",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
},
{
"internalType": "address",
"name": "",
"type": "address"
},
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "votes",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
}
],
"devdoc": {
"kind": "dev",
"methods": {
"topOptions(uint256,uint256)": {
"details": "Query the top ranked options of an issue given issueId and a limit of max number of top options.",
"params": {
"_issueId": ": the issue being queried for the top options.",
"_limit": ": the max number of top options the caller expect to return."
},
"returns": {
"_0": "an ordered list of the top options for given issueId and limit, where the first in array is the most favorite one, and the last in array is the least favorite one among the list. Specifically, WHEN limit = 0, returns the default length of winning options in their ranking in an issue. "
}
},
"vote(uint256,uint256[])": {
"details": "Cast a vote for an issue with `issueId` for option with `optionId`",
"params": {
"_issueId": ": the issue this vote is casting on.",
"_optionIds": ": an *ordered* array of the options being casted for the issue. Whenever referring to the options as a whole, the order MUST be maintained."
},
"returns": {
"_0": "a boolean if TRUE means the vote is casted successfully. "
}
}
},
"title": "Type 1 voting standard of ERC1202, a cluster of **Multiple-Input-Multiple-Output Issue**: For every issue of this contract, it allows a vote with exactly 1 option from a voter. The output is only and always a signle winning option. NOTE: DO NOT USE IN PRODUCTION. This sample contract is for demonstration purpose. It has been optimized for readability. A real production should conduct security audit and optimize for gas fees. DO NOT USE IN PRODUCTION.",
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"compilationTarget": {
"contracts/ERC1202Type1.sol": "ERC1202Type1"
},
"evmVersion": "london",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"contracts/ERC1202Type1.sol": {
"keccak256": "0x8a24e9347301a79a9e058f870868db6ea9ea8e1ffe7f41c51b55e919b23e6acf",
"license": "GPL-3.0",
"urls": [
"bzz-raw://10ef6a5e556c26186fe39a5c31e9f8cdf8a86e1a005d094b89c5913afbff3e14",
"dweb:/ipfs/QmXK8jxQz7VpiqXitRedCWqkxVrMrQ4hvcUzoifDZwkfD8"
]
},
"contracts/IERC1202.sol": {
"keccak256": "0xd5f43d75130f1950422ad408dd9996bdcad523c761a773987aafd664ce492402",
"license": "GPL-3.0",
"urls": [
"bzz-raw://c20a0515b8ee317381669037ed25919fcf07f618ff41bafe884f67fe7051baed",
"dweb:/ipfs/QmPRbn9MbuVy3vpujqXbP4KHeKgRTByrXrHH7434NyeTXz"
]
}
},
"version": 1
}
// SPDX-License-Identifier: GPL-3.0
pragma solidity >=0.7.0 <0.9.0;
import "./IERC1202.sol";
/**
* @title Type 0 voting standard of ERC1202, a cluster of **Single-Input-Single-Output Issue**:
* For every issue of this contract, it allows a vote with exactly 1 option from a voter.
* The output is only and always a signle winning option.
*
* NOTE: DO NOT USE IN PRODUCTION.
* This sample contract is for demonstration purpose.
* It has been optimized for readability.
* A real production should conduct security audit and optimize for gas fees.
* DO NOT USE IN PRODUCTION.
*/
contract ERC1202Type0 is ERC1202Core {
uint constant OPTION_ID_UPPER_BOUND = 8;
mapping(uint /*issueId*/ => mapping(address /*voterAddr*/ => uint /*optionId*/ )) public votes;
mapping(uint /*issueId*/ => mapping(uint /*optionId*/ => uint /*voteCount*/ )) public results;
function vote(uint _issueId, uint[] memory _optionIds) override external returns (bool) {
assert(_optionIds.length == 1);
assert(_optionIds[0] < OPTION_ID_UPPER_BOUND);
uint newVotedOptionId = _optionIds[0];
uint oldVotedOptionId = votes[_issueId][msg.sender];
results[_issueId][oldVotedOptionId]--;
results[_issueId][newVotedOptionId]++;
votes[_issueId][msg.sender] = _optionIds[0];
emit OnVote(_issueId, _optionIds, msg.sender);
return true;
}
function topOptions(
uint _issueId, uint /*_limit*/
) override external view returns (uint[] memory) {
uint mostVotedOption = 0;
for (uint i=0; i<OPTION_ID_UPPER_BOUND; i++) {
if (results[_issueId][i] > results[_issueId][mostVotedOption]) {
mostVotedOption = i;
}
}
uint[] memory result = new uint[](1);
result[0] = mostVotedOption;
return result;
}
}
// SPDX-License-Identifier: GPL-3.0
pragma solidity >=0.7.0 <0.9.0;
import "./IERC1202.sol";
/**
* @title Type 1 voting standard of ERC1202, a cluster of **Multiple-Input-Multiple-Output Issue**:
* For every issue of this contract, it allows a vote with exactly 1 option from a voter.
* The output is only and always a signle winning option.
*
* NOTE: DO NOT USE IN PRODUCTION.
* This sample contract is for demonstration purpose.
* It has been optimized for readability.
* A real production should conduct security audit and optimize for gas fees.
* DO NOT USE IN PRODUCTION.
*/
contract ERC1202Type1 is ERC1202Core {
uint constant OPTION_ID_UPPER_BOUND = 8;
uint constant MAX_OPTIONS_PER_BALLOT = 8;
mapping(uint /*issueId*/ => mapping(address /*voterAddr*/ => uint[] /*optionId*/ )) public votes;
mapping(uint /*issueId*/ => mapping(uint /*optionId*/ => uint /*voteCount*/ )) public results;
function vote(uint _issueId, uint[] memory _optionIds) override external returns (bool) {
assert(_optionIds.length <= MAX_OPTIONS_PER_BALLOT);
for (uint i=0; i< _optionIds.length; i++) {
assert(_optionIds[i] < OPTION_ID_UPPER_BOUND);
}
uint[] memory oldVotedOptionIds = votes[_issueId][msg.sender];
for (uint i=0; i<oldVotedOptionIds.length; i++) {
uint oldVotedOptionId = oldVotedOptionIds[i];
results[_issueId][oldVotedOptionId]--;
}
for (uint i=0; i<_optionIds.length; i++) {
uint newVotedOptionId = _optionIds[i];
results[_issueId][newVotedOptionId]++;
}
votes[_issueId][msg.sender] = _optionIds;
emit OnVote(_issueId, _optionIds, msg.sender);
return true;
}
function topOptions(
uint _issueId, uint _limit
) override external view returns (uint[] memory) {
assert(_limit < OPTION_ID_UPPER_BOUND);
uint realLimit = _limit > 0 ? _limit : OPTION_ID_UPPER_BOUND;
uint[] memory result = new uint[](realLimit);
uint[] memory sortedOptionIds = sortKeyByValue(results[_issueId], OPTION_ID_UPPER_BOUND);
for (uint i=0;i<realLimit;i++) {
result[i] = sortedOptionIds[i];
}
return sortedOptionIds;
}
function sortKeyByValue(mapping(uint => uint) storage _keyValueMap, uint keyUpperBound)
private view returns (uint[] memory sortedKeys) {
uint[] memory keysToSort = new uint[](keyUpperBound);
for(uint i=0; i<keyUpperBound; i++) {
keysToSort[i]= i;
}
for (uint a=0; a<keyUpperBound; a++) {
for (uint b=1; b<a; b++) {
uint keyA = keysToSort[a];
uint keyB = keysToSort[b];
uint valueA = _keyValueMap[keyA];
uint valueB = _keyValueMap[keyA];
if (valueA < valueB) {
// swap the position of optionIdB and optionIdA
uint temp = keyA;
keysToSort[a] = keyB;
keysToSort[b] = temp;
}
}
}
return keysToSort;
}
}
// SPDX-License-Identifier: GPL-3.0
pragma solidity >=0.7.0 <0.9.0;
/// @title Core interface of ERC1202 :A list of *REQUIRED* methods and events for
/// a contract to be considered conforming to ERC1202.
///
/// @author Zainan Victor Zhou <zzn@zzn.im>
///
/// @dev Each ERC1202 contract is a cluster of issues being voted on, or done voted.
/// Any contract of ERC1202 **MUST** implement ALL the following methods and events.
///
/// Each *issue* is identified with an `issueId`,
/// For any given `issue`, each availalbe option in that issue is
/// identified wtih an `optionId`.
interface ERC1202Core {
/// @dev Cast a vote for an issue with `issueId` for option with `optionId`
/// @param _issueId: the issue this vote is casting on.
/// @param _optionIds: an *ordered* array of the options being casted for the issue.
/// Whenever referring to the options as a whole, the order MUST be maintained.
/// @return a boolean if TRUE means the vote is casted successfully.
function vote(uint _issueId, uint[] memory _optionIds) external returns (bool);
/// @dev Query the top ranked options of an issue given issueId and
/// a limit of max number of top options.
/// @param _issueId: the issue being queried for the top options.
/// @param _limit: the max number of top options the caller expect to return.
/// @return an ordered list of the top options for given issueId and limit,
/// where the first in array is the most favorite one, and the last in array is the
/// least favorite one among the list.
/// Specifically, WHEN limit = 0, returns the default length of winning options in their
/// ranking in an issue.
function topOptions(
uint _issueId, uint _limit
) external view returns (uint[] memory);
/// @dev This event is emitted when a vote has been casted.
/// @param issueId the issue the vote is being cased on.
/// @param optionIds an ordered list of the options the vote is casting for.
///
event OnVote(uint indexed issueId, uint[] optionIds, address indexed voter);
}
/**
* Metadata interface for ERC1202.
*/
interface ERC1202Metadata {
/// @notice A descriptive text for an issue in this contract.
function issueText() external view returns (string memory _text);
/// @notice A distinct Uniform Resource Identifier (URI) for a given issue.
/// @dev Throws if `_issueId` is not a valid issue;
/// URIs are defined in RFC 3986.
function issueURI(uint256 _issueId) external view returns (string memory _uri);
/// @notice A descriptive text for an option in an issue in this contract.
function optionText(uint _issueId, uint _optionId) external view returns (string memory _text);
/// @notice A distinct Uniform Resource Identifier (URI) for a given option in a given issue.
/// @dev Throws if `_issueId` is not a valid option-issue combination;
/// URIs are defined in RFC 3986.
function optionURI(uint _issueId, uint _optionId) external view returns (string memory _uri);
}
/**
* Status interface for ERC1202.
*/
interface ERC1202Status {
event OnStatusChange(uint issueId, bool newIsOpen);
function setStatus(uint issueId, bool isOpen) external returns (bool success);
function getStatus(uint issueId) external view returns (bool isOpen);
function getVote(uint issueId, address _voter) external view returns (uint[] memory _optionIds);
}
// Right click on the script name and hit "Run" to execute
(async () => {
try {
console.log('Running deployWithEthers script...')
const contractName = 'Storage' // Change this for other contract
const constructorArgs = [] // Put constructor args (if any) here for your contract
// Note that the script needs the ABI which is generated from the compilation artifact.
// Make sure contract is compiled and artifacts are generated
const artifactsPath = `browser/contracts/artifacts/${contractName}.json` // Change this for different path
const metadata = JSON.parse(await remix.call('fileManager', 'getFile', artifactsPath))
// 'web3Provider' is a remix global variable object
const signer = (new ethers.providers.Web3Provider(web3Provider)).getSigner()
let factory = new ethers.ContractFactory(metadata.abi, metadata.data.bytecode.object, signer);
let contract = await factory.deploy(...constructorArgs);
console.log('Contract Address: ', contract.address);
// The contract is NOT deployed yet; we must wait until it is mined
await contract.deployed()
console.log('Deployment successful.')
} catch (e) {
console.log(e.message)
}
})()
// Right click on the script name and hit "Run" to execute
(async () => {
try {
console.log('Running deployWithWeb3 script...')
const contractName = 'Storage' // Change this for other contract
const constructorArgs = [] // Put constructor args (if any) here for your contract
// Note that the script needs the ABI which is generated from the compilation artifact.
// Make sure contract is compiled and artifacts are generated
const artifactsPath = `browser/contracts/artifacts/${contractName}.json` // Change this for different path
const metadata = JSON.parse(await remix.call('fileManager', 'getFile', artifactsPath))
const accounts = await web3.eth.getAccounts()
let contract = new web3.eth.Contract(metadata.abi)
contract = contract.deploy({
data: metadata.data.bytecode.object,
arguments: constructorArgs
})
const newContractInstance = await contract.send({
from: accounts[0],
gas: 1500000,
gasPrice: '30000000000'
})
console.log('Contract deployed at address: ', newContractInstance.options.address)
} catch (e) {
console.log(e.message)
}
})()
// SPDX-License-Identifier: GPL-3.0
pragma solidity >=0.7.0 <0.9.0;
import "remix_tests.sol"; // this import is automatically injected by Remix.
import "../contracts/3_Ballot.sol";
contract BallotTest {
bytes32[] proposalNames;
Ballot ballotToTest;
function beforeAll () public {
proposalNames.push(bytes32("candidate1"));
ballotToTest = new Ballot(proposalNames);
}
function checkWinningProposal () public {
ballotToTest.vote(0);
Assert.equal(ballotToTest.winningProposal(), uint(0), "proposal at index 0 should be the winning proposal");
Assert.equal(ballotToTest.winnerName(), bytes32("candidate1"), "candidate1 should be the winner name");
}
function checkWinninProposalWithReturnValue () public view returns (bool) {
return ballotToTest.winningProposal() == 0;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment