@venusprotocol/governance-contracts 1.1.0-dev.1 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/artifacts/build-info/4b74a981a83b37e1de5123f7f9359ad5.json +1 -0
- package/artifacts/build-info/5ef7ba07b1e4b96d9b02042d36d229c2.json +1 -0
- package/artifacts/contracts/legacy/GovernorAlpha.sol/GovernorAlpha.dbg.json +4 -0
- package/artifacts/contracts/legacy/GovernorAlpha.sol/GovernorAlpha.json +731 -0
- package/artifacts/contracts/legacy/GovernorAlpha.sol/TimelockInterface.dbg.json +4 -0
- package/artifacts/contracts/legacy/GovernorAlpha.sol/TimelockInterface.json +188 -0
- package/artifacts/contracts/legacy/GovernorAlpha.sol/XVSInterface.dbg.json +4 -0
- package/artifacts/contracts/legacy/GovernorAlpha.sol/XVSInterface.json +37 -0
- package/artifacts/contracts/legacy/GovernorAlpha2.sol/GovernorAlpha2.dbg.json +4 -0
- package/artifacts/contracts/legacy/GovernorAlpha2.sol/GovernorAlpha2.json +736 -0
- package/artifacts/contracts/legacy/GovernorAlpha2.sol/TimelockInterface.dbg.json +4 -0
- package/artifacts/contracts/legacy/GovernorAlpha2.sol/TimelockInterface.json +188 -0
- package/artifacts/contracts/legacy/GovernorAlpha2.sol/XVSInterface.dbg.json +4 -0
- package/artifacts/contracts/legacy/GovernorAlpha2.sol/XVSInterface.json +37 -0
- package/contracts/legacy/GovernorAlpha.sol +426 -0
- package/contracts/legacy/GovernorAlpha2.sol +427 -0
- package/deployments/bscmainnet/CriticalTimelock.json +463 -0
- package/deployments/bscmainnet/FastTrackTimelock.json +463 -0
- package/deployments/bsctestnet/CriticalTimelock.json +463 -0
- package/deployments/bsctestnet/FastTrackTimelock.json +463 -0
- package/deployments/deployments.json +13981 -0
- package/dist/deploy/helpers/constants.d.ts +2 -0
- package/dist/deploy/helpers/constants.d.ts.map +1 -1
- package/dist/deploy/helpers/constants.js +1 -0
- package/dist/deploy/helpers/constants.js.map +1 -1
- package/dist/deploy/helpers/deploymentUtils.d.ts +2 -0
- package/dist/deploy/helpers/deploymentUtils.d.ts.map +1 -1
- package/dist/deploy/helpers/deploymentUtils.js +1 -0
- package/dist/deploy/helpers/deploymentUtils.js.map +1 -1
- package/package.json +1 -1
- /package/deployments/bscmainnet/{Timelock.json → NormalTimelock.json} +0 -0
- /package/deployments/bsctestnet/{Timelock.json → NormalTimelock.json} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"id":"4b74a981a83b37e1de5123f7f9359ad5","_format":"hh-sol-build-info-1","solcVersion":"0.5.16","solcLongVersion":"0.5.16+commit.9c3226ce","input":{"language":"Solidity","sources":{"contracts/legacy/GovernorAlpha.sol":{"content":"pragma solidity ^0.5.16;\npragma experimental ABIEncoderV2;\n\ncontract GovernorAlpha {\n /// @notice The name of this contract\n string public constant name = \"Venus Governor Alpha\";\n\n /// @notice The number of votes in support of a proposal required in order for a quorum to be reached and for a vote to succeed\n function quorumVotes() public pure returns (uint) {\n return 600000e18;\n } // 600,000 = 2% of XVS\n\n /// @notice The number of votes required in order for a voter to become a proposer\n function proposalThreshold() public pure returns (uint) {\n return 300000e18;\n } // 300,000 = 1% of XVS\n\n /// @notice The maximum number of actions that can be included in a proposal\n function proposalMaxOperations() public pure returns (uint) {\n return 10;\n } // 10 actions\n\n /// @notice The delay before voting on a proposal may take place, once proposed\n function votingDelay() public pure returns (uint) {\n return 1;\n } // 1 block\n\n /// @notice The duration of voting on a proposal, in blocks\n function votingPeriod() public pure returns (uint) {\n return (60 * 60 * 24 * 3) / 3;\n } // ~3 days in blocks (assuming 3s blocks)\n\n /// @notice The address of the Venus Protocol Timelock\n TimelockInterface public timelock;\n\n /// @notice The address of the Venus governance token\n XVSInterface public xvs;\n\n /// @notice The address of the Governor Guardian\n address public guardian;\n\n /// @notice The total number of proposals\n uint public proposalCount;\n\n struct Proposal {\n /// @notice Unique id for looking up a proposal\n uint id;\n /// @notice Creator of the proposal\n address proposer;\n /// @notice The timestamp that the proposal will be available for execution, set once the vote succeeds\n uint eta;\n /// @notice the ordered list of target addresses for calls to be made\n address[] targets;\n /// @notice The ordered list of values (i.e. msg.value) to be passed to the calls to be made\n uint[] values;\n /// @notice The ordered list of function signatures to be called\n string[] signatures;\n /// @notice The ordered list of calldata to be passed to each call\n bytes[] calldatas;\n /// @notice The block at which voting begins: holders must delegate their votes prior to this block\n uint startBlock;\n /// @notice The block at which voting ends: votes must be cast prior to this block\n uint endBlock;\n /// @notice Current number of votes in favor of this proposal\n uint forVotes;\n /// @notice Current number of votes in opposition to this proposal\n uint againstVotes;\n /// @notice Flag marking whether the proposal has been canceled\n bool canceled;\n /// @notice Flag marking whether the proposal has been executed\n bool executed;\n /// @notice Receipts of ballots for the entire set of voters\n mapping(address => Receipt) receipts;\n }\n\n /// @notice Ballot receipt record for a voter\n struct Receipt {\n /// @notice Whether or not a vote has been cast\n bool hasVoted;\n /// @notice Whether or not the voter supports the proposal\n bool support;\n /// @notice The number of votes the voter had, which were cast\n uint96 votes;\n }\n\n /// @notice Possible states that a proposal may be in\n enum ProposalState {\n Pending,\n Active,\n Canceled,\n Defeated,\n Succeeded,\n Queued,\n Expired,\n Executed\n }\n\n /// @notice The official record of all proposals ever proposed\n mapping(uint => Proposal) public proposals;\n\n /// @notice The latest proposal for each proposer\n mapping(address => uint) public latestProposalIds;\n\n /// @notice The EIP-712 typehash for the contract's domain\n bytes32 public constant DOMAIN_TYPEHASH =\n keccak256(\"EIP712Domain(string name,uint256 chainId,address verifyingContract)\");\n\n /// @notice The EIP-712 typehash for the ballot struct used by the contract\n bytes32 public constant BALLOT_TYPEHASH = keccak256(\"Ballot(uint256 proposalId,bool support)\");\n\n /// @notice An event emitted when a new proposal is created\n event ProposalCreated(\n uint id,\n address proposer,\n address[] targets,\n uint[] values,\n string[] signatures,\n bytes[] calldatas,\n uint startBlock,\n uint endBlock,\n string description\n );\n\n /// @notice An event emitted when a vote has been cast on a proposal\n event VoteCast(address voter, uint proposalId, bool support, uint votes);\n\n /// @notice An event emitted when a proposal has been canceled\n event ProposalCanceled(uint id);\n\n /// @notice An event emitted when a proposal has been queued in the Timelock\n event ProposalQueued(uint id, uint eta);\n\n /// @notice An event emitted when a proposal has been executed in the Timelock\n event ProposalExecuted(uint id);\n\n constructor(address timelock_, address xvs_, address guardian_) public {\n timelock = TimelockInterface(timelock_);\n xvs = XVSInterface(xvs_);\n guardian = guardian_;\n }\n\n function propose(\n address[] memory targets,\n uint[] memory values,\n string[] memory signatures,\n bytes[] memory calldatas,\n string memory description\n ) public returns (uint) {\n require(\n xvs.getPriorVotes(msg.sender, sub256(block.number, 1)) > proposalThreshold(),\n \"GovernorAlpha::propose: proposer votes below proposal threshold\"\n );\n require(\n targets.length == values.length &&\n targets.length == signatures.length &&\n targets.length == calldatas.length,\n \"GovernorAlpha::propose: proposal function information arity mismatch\"\n );\n require(targets.length != 0, \"GovernorAlpha::propose: must provide actions\");\n require(targets.length <= proposalMaxOperations(), \"GovernorAlpha::propose: too many actions\");\n\n uint latestProposalId = latestProposalIds[msg.sender];\n if (latestProposalId != 0) {\n ProposalState proposersLatestProposalState = state(latestProposalId);\n require(\n proposersLatestProposalState != ProposalState.Active,\n \"GovernorAlpha::propose: found an already active proposal\"\n );\n require(\n proposersLatestProposalState != ProposalState.Pending,\n \"GovernorAlpha::propose: found an already pending proposal\"\n );\n }\n\n uint startBlock = add256(block.number, votingDelay());\n uint endBlock = add256(startBlock, votingPeriod());\n\n proposalCount++;\n Proposal memory newProposal = Proposal({\n id: proposalCount,\n proposer: msg.sender,\n eta: 0,\n targets: targets,\n values: values,\n signatures: signatures,\n calldatas: calldatas,\n startBlock: startBlock,\n endBlock: endBlock,\n forVotes: 0,\n againstVotes: 0,\n canceled: false,\n executed: false\n });\n\n proposals[newProposal.id] = newProposal;\n latestProposalIds[newProposal.proposer] = newProposal.id;\n\n emit ProposalCreated(\n newProposal.id,\n msg.sender,\n targets,\n values,\n signatures,\n calldatas,\n startBlock,\n endBlock,\n description\n );\n return newProposal.id;\n }\n\n function queue(uint proposalId) public {\n require(\n state(proposalId) == ProposalState.Succeeded,\n \"GovernorAlpha::queue: proposal can only be queued if it is succeeded\"\n );\n Proposal storage proposal = proposals[proposalId];\n uint eta = add256(block.timestamp, timelock.delay());\n for (uint i = 0; i < proposal.targets.length; i++) {\n _queueOrRevert(proposal.targets[i], proposal.values[i], proposal.signatures[i], proposal.calldatas[i], eta);\n }\n proposal.eta = eta;\n emit ProposalQueued(proposalId, eta);\n }\n\n function _queueOrRevert(address target, uint value, string memory signature, bytes memory data, uint eta) internal {\n require(\n !timelock.queuedTransactions(keccak256(abi.encode(target, value, signature, data, eta))),\n \"GovernorAlpha::_queueOrRevert: proposal action already queued at eta\"\n );\n timelock.queueTransaction(target, value, signature, data, eta);\n }\n\n function execute(uint proposalId) public payable {\n require(\n state(proposalId) == ProposalState.Queued,\n \"GovernorAlpha::execute: proposal can only be executed if it is queued\"\n );\n Proposal storage proposal = proposals[proposalId];\n proposal.executed = true;\n for (uint i = 0; i < proposal.targets.length; i++) {\n timelock.executeTransaction.value(proposal.values[i])(\n proposal.targets[i],\n proposal.values[i],\n proposal.signatures[i],\n proposal.calldatas[i],\n proposal.eta\n );\n }\n emit ProposalExecuted(proposalId);\n }\n\n function cancel(uint proposalId) public {\n ProposalState state = state(proposalId);\n require(state != ProposalState.Executed, \"GovernorAlpha::cancel: cannot cancel executed proposal\");\n\n Proposal storage proposal = proposals[proposalId];\n require(\n msg.sender == guardian ||\n xvs.getPriorVotes(proposal.proposer, sub256(block.number, 1)) < proposalThreshold(),\n \"GovernorAlpha::cancel: proposer above threshold\"\n );\n\n proposal.canceled = true;\n for (uint i = 0; i < proposal.targets.length; i++) {\n timelock.cancelTransaction(\n proposal.targets[i],\n proposal.values[i],\n proposal.signatures[i],\n proposal.calldatas[i],\n proposal.eta\n );\n }\n\n emit ProposalCanceled(proposalId);\n }\n\n function getActions(\n uint proposalId\n )\n public\n view\n returns (address[] memory targets, uint[] memory values, string[] memory signatures, bytes[] memory calldatas)\n {\n Proposal storage p = proposals[proposalId];\n return (p.targets, p.values, p.signatures, p.calldatas);\n }\n\n function getReceipt(uint proposalId, address voter) public view returns (Receipt memory) {\n return proposals[proposalId].receipts[voter];\n }\n\n function state(uint proposalId) public view returns (ProposalState) {\n require(proposalCount >= proposalId && proposalId > 0, \"GovernorAlpha::state: invalid proposal id\");\n Proposal storage proposal = proposals[proposalId];\n if (proposal.canceled) {\n return ProposalState.Canceled;\n } else if (block.number <= proposal.startBlock) {\n return ProposalState.Pending;\n } else if (block.number <= proposal.endBlock) {\n return ProposalState.Active;\n } else if (proposal.forVotes <= proposal.againstVotes || proposal.forVotes < quorumVotes()) {\n return ProposalState.Defeated;\n } else if (proposal.eta == 0) {\n return ProposalState.Succeeded;\n } else if (proposal.executed) {\n return ProposalState.Executed;\n } else if (block.timestamp >= add256(proposal.eta, timelock.GRACE_PERIOD())) {\n return ProposalState.Expired;\n } else {\n return ProposalState.Queued;\n }\n }\n\n function castVote(uint proposalId, bool support) public {\n return _castVote(msg.sender, proposalId, support);\n }\n\n function castVoteBySig(uint proposalId, bool support, uint8 v, bytes32 r, bytes32 s) public {\n bytes32 domainSeparator = keccak256(\n abi.encode(DOMAIN_TYPEHASH, keccak256(bytes(name)), getChainId(), address(this))\n );\n bytes32 structHash = keccak256(abi.encode(BALLOT_TYPEHASH, proposalId, support));\n bytes32 digest = keccak256(abi.encodePacked(\"\\x19\\x01\", domainSeparator, structHash));\n address signatory = ecrecover(digest, v, r, s);\n require(signatory != address(0), \"GovernorAlpha::castVoteBySig: invalid signature\");\n return _castVote(signatory, proposalId, support);\n }\n\n function _castVote(address voter, uint proposalId, bool support) internal {\n require(state(proposalId) == ProposalState.Active, \"GovernorAlpha::_castVote: voting is closed\");\n Proposal storage proposal = proposals[proposalId];\n Receipt storage receipt = proposal.receipts[voter];\n require(receipt.hasVoted == false, \"GovernorAlpha::_castVote: voter already voted\");\n uint96 votes = xvs.getPriorVotes(voter, proposal.startBlock);\n\n if (support) {\n proposal.forVotes = add256(proposal.forVotes, votes);\n } else {\n proposal.againstVotes = add256(proposal.againstVotes, votes);\n }\n\n receipt.hasVoted = true;\n receipt.support = support;\n receipt.votes = votes;\n\n emit VoteCast(voter, proposalId, support, votes);\n }\n\n function __acceptAdmin() public {\n require(msg.sender == guardian, \"GovernorAlpha::__acceptAdmin: sender must be gov guardian\");\n timelock.acceptAdmin();\n }\n\n function __abdicate() public {\n require(msg.sender == guardian, \"GovernorAlpha::__abdicate: sender must be gov guardian\");\n guardian = address(0);\n }\n\n function __queueSetTimelockPendingAdmin(address newPendingAdmin, uint eta) public {\n require(msg.sender == guardian, \"GovernorAlpha::__queueSetTimelockPendingAdmin: sender must be gov guardian\");\n timelock.queueTransaction(address(timelock), 0, \"setPendingAdmin(address)\", abi.encode(newPendingAdmin), eta);\n }\n\n function __executeSetTimelockPendingAdmin(address newPendingAdmin, uint eta) public {\n require(msg.sender == guardian, \"GovernorAlpha::__executeSetTimelockPendingAdmin: sender must be gov guardian\");\n timelock.executeTransaction(address(timelock), 0, \"setPendingAdmin(address)\", abi.encode(newPendingAdmin), eta);\n }\n\n function add256(uint256 a, uint256 b) internal pure returns (uint) {\n uint c = a + b;\n require(c >= a, \"addition overflow\");\n return c;\n }\n\n function sub256(uint256 a, uint256 b) internal pure returns (uint) {\n require(b <= a, \"subtraction underflow\");\n return a - b;\n }\n\n function getChainId() internal pure returns (uint) {\n uint chainId;\n assembly {\n chainId := chainid()\n }\n return chainId;\n }\n}\n\ninterface TimelockInterface {\n function delay() external view returns (uint);\n\n function GRACE_PERIOD() external view returns (uint);\n\n function acceptAdmin() external;\n\n function queuedTransactions(bytes32 hash) external view returns (bool);\n\n function queueTransaction(\n address target,\n uint value,\n string calldata signature,\n bytes calldata data,\n uint eta\n ) external returns (bytes32);\n\n function cancelTransaction(\n address target,\n uint value,\n string calldata signature,\n bytes calldata data,\n uint eta\n ) external;\n\n function executeTransaction(\n address target,\n uint value,\n string calldata signature,\n bytes calldata data,\n uint eta\n ) external payable returns (bytes memory);\n}\n\ninterface XVSInterface {\n function getPriorVotes(address account, uint blockNumber) external view returns (uint96);\n}\n"}},"settings":{"optimizer":{"enabled":true,"runs":200},"outputSelection":{"*":{"*":["storageLayout","abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata","devdoc","userdoc","evm.gasEstimates"],"":["ast"]}},"metadata":{"useLiteralContent":true}}},"output":{"errors":[{"component":"general","formattedMessage":"contracts/legacy/GovernorAlpha.sol:2:1: Warning: Experimental features are turned on. Do not use experimental features on live deployments.\npragma experimental ABIEncoderV2;\n^-------------------------------^\n","message":"Experimental features are turned on. Do not use experimental features on live deployments.","severity":"warning","sourceLocation":{"end":58,"file":"contracts/legacy/GovernorAlpha.sol","start":25},"type":"Warning"}],"sources":{"contracts/legacy/GovernorAlpha.sol":{"ast":{"absolutePath":"contracts/legacy/GovernorAlpha.sol","exportedSymbols":{"GovernorAlpha":[1178],"TimelockInterface":[1242],"XVSInterface":[1252]},"id":1253,"nodeType":"SourceUnit","nodes":[{"id":1,"literals":["solidity","^","0.5",".16"],"nodeType":"PragmaDirective","src":"0:24:0"},{"id":2,"literals":["experimental","ABIEncoderV2"],"nodeType":"PragmaDirective","src":"25:33:0"},{"baseContracts":[],"contractDependencies":[],"contractKind":"contract","documentation":null,"fullyImplemented":true,"id":1178,"linearizedBaseContracts":[1178],"name":"GovernorAlpha","nodeType":"ContractDefinition","nodes":[{"constant":true,"id":5,"name":"name","nodeType":"VariableDeclaration","scope":1178,"src":"131:52:0","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory","typeString":"string"},"typeName":{"id":3,"name":"string","nodeType":"ElementaryTypeName","src":"131:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"argumentTypes":null,"hexValue":"56656e757320476f7665726e6f7220416c706861","id":4,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"161:22:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_e7831129eb24a15f1f8f822483f1d64bd3e968215bb4c81d28d0d3ca9310a835","typeString":"literal_string \"Venus Governor Alpha\""},"value":"Venus Governor Alpha"},"visibility":"public"},{"body":{"id":12,"nodeType":"Block","src":"372:33:0","statements":[{"expression":{"argumentTypes":null,"hexValue":"363030303030653138","id":10,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"389:9:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_600000000000000000000000_by_1","typeString":"int_const 600000000000000000000000"},"value":"600000e18"},"functionReturnParameters":9,"id":11,"nodeType":"Return","src":"382:16:0"}]},"documentation":"@notice The number of votes in support of a proposal required in order for a quorum to be reached and for a vote to succeed","id":13,"implemented":true,"kind":"function","modifiers":[],"name":"quorumVotes","nodeType":"FunctionDefinition","parameters":{"id":6,"nodeType":"ParameterList","parameters":[],"src":"342:2:0"},"returnParameters":{"id":9,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8,"name":"","nodeType":"VariableDeclaration","scope":13,"src":"366:4:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7,"name":"uint","nodeType":"ElementaryTypeName","src":"366:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"365:6:0"},"scope":1178,"src":"322:83:0","stateMutability":"pure","superFunction":null,"visibility":"public"},{"body":{"id":20,"nodeType":"Block","src":"577:33:0","statements":[{"expression":{"argumentTypes":null,"hexValue":"333030303030653138","id":18,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"594:9:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_300000000000000000000000_by_1","typeString":"int_const 300000000000000000000000"},"value":"300000e18"},"functionReturnParameters":17,"id":19,"nodeType":"Return","src":"587:16:0"}]},"documentation":"@notice The number of votes required in order for a voter to become a proposer","id":21,"implemented":true,"kind":"function","modifiers":[],"name":"proposalThreshold","nodeType":"FunctionDefinition","parameters":{"id":14,"nodeType":"ParameterList","parameters":[],"src":"547:2:0"},"returnParameters":{"id":17,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16,"name":"","nodeType":"VariableDeclaration","scope":21,"src":"571:4:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15,"name":"uint","nodeType":"ElementaryTypeName","src":"571:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"570:6:0"},"scope":1178,"src":"521:89:0","stateMutability":"pure","superFunction":null,"visibility":"public"},{"body":{"id":28,"nodeType":"Block","src":"780:26:0","statements":[{"expression":{"argumentTypes":null,"hexValue":"3130","id":26,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"797:2:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"functionReturnParameters":25,"id":27,"nodeType":"Return","src":"790:9:0"}]},"documentation":"@notice The maximum number of actions that can be included in a proposal","id":29,"implemented":true,"kind":"function","modifiers":[],"name":"proposalMaxOperations","nodeType":"FunctionDefinition","parameters":{"id":22,"nodeType":"ParameterList","parameters":[],"src":"750:2:0"},"returnParameters":{"id":25,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24,"name":"","nodeType":"VariableDeclaration","scope":29,"src":"774:4:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23,"name":"uint","nodeType":"ElementaryTypeName","src":"774:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"773:6:0"},"scope":1178,"src":"720:86:0","stateMutability":"pure","superFunction":null,"visibility":"public"},{"body":{"id":36,"nodeType":"Block","src":"960:25:0","statements":[{"expression":{"argumentTypes":null,"hexValue":"31","id":34,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"977:1:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"functionReturnParameters":33,"id":35,"nodeType":"Return","src":"970:8:0"}]},"documentation":"@notice The delay before voting on a proposal may take place, once proposed","id":37,"implemented":true,"kind":"function","modifiers":[],"name":"votingDelay","nodeType":"FunctionDefinition","parameters":{"id":30,"nodeType":"ParameterList","parameters":[],"src":"930:2:0"},"returnParameters":{"id":33,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32,"name":"","nodeType":"VariableDeclaration","scope":37,"src":"954:4:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31,"name":"uint","nodeType":"ElementaryTypeName","src":"954:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"953:6:0"},"scope":1178,"src":"910:75:0","stateMutability":"pure","superFunction":null,"visibility":"public"},{"body":{"id":53,"nodeType":"Block","src":"1117:46:0","statements":[{"expression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_rational_86400_by_1","typeString":"int_const 86400"},"id":51,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_rational_259200_by_1","typeString":"int_const 259200"},"id":48,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_rational_86400_by_1","typeString":"int_const 86400"},"id":46,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_rational_3600_by_1","typeString":"int_const 3600"},"id":44,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"hexValue":"3630","id":42,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1135:2:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_60_by_1","typeString":"int_const 60"},"value":"60"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"argumentTypes":null,"hexValue":"3630","id":43,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1140:2:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_60_by_1","typeString":"int_const 60"},"value":"60"},"src":"1135:7:0","typeDescriptions":{"typeIdentifier":"t_rational_3600_by_1","typeString":"int_const 3600"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"argumentTypes":null,"hexValue":"3234","id":45,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1145:2:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_24_by_1","typeString":"int_const 24"},"value":"24"},"src":"1135:12:0","typeDescriptions":{"typeIdentifier":"t_rational_86400_by_1","typeString":"int_const 86400"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"argumentTypes":null,"hexValue":"33","id":47,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1150:1:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"src":"1135:16:0","typeDescriptions":{"typeIdentifier":"t_rational_259200_by_1","typeString":"int_const 259200"}}],"id":49,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1134:18:0","typeDescriptions":{"typeIdentifier":"t_rational_259200_by_1","typeString":"int_const 259200"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"argumentTypes":null,"hexValue":"33","id":50,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1155:1:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"src":"1134:22:0","typeDescriptions":{"typeIdentifier":"t_rational_86400_by_1","typeString":"int_const 86400"}},"functionReturnParameters":41,"id":52,"nodeType":"Return","src":"1127:29:0"}]},"documentation":"@notice The duration of voting on a proposal, in blocks","id":54,"implemented":true,"kind":"function","modifiers":[],"name":"votingPeriod","nodeType":"FunctionDefinition","parameters":{"id":38,"nodeType":"ParameterList","parameters":[],"src":"1087:2:0"},"returnParameters":{"id":41,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40,"name":"","nodeType":"VariableDeclaration","scope":54,"src":"1111:4:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39,"name":"uint","nodeType":"ElementaryTypeName","src":"1111:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"1110:6:0"},"scope":1178,"src":"1066:97:0","stateMutability":"pure","superFunction":null,"visibility":"public"},{"constant":false,"id":56,"name":"timelock","nodeType":"VariableDeclaration","scope":1178,"src":"1270:33:0","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_TimelockInterface_$1242","typeString":"contract TimelockInterface"},"typeName":{"contractScope":null,"id":55,"name":"TimelockInterface","nodeType":"UserDefinedTypeName","referencedDeclaration":1242,"src":"1270:17:0","typeDescriptions":{"typeIdentifier":"t_contract$_TimelockInterface_$1242","typeString":"contract TimelockInterface"}},"value":null,"visibility":"public"},{"constant":false,"id":58,"name":"xvs","nodeType":"VariableDeclaration","scope":1178,"src":"1368:23:0","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_XVSInterface_$1252","typeString":"contract XVSInterface"},"typeName":{"contractScope":null,"id":57,"name":"XVSInterface","nodeType":"UserDefinedTypeName","referencedDeclaration":1252,"src":"1368:12:0","typeDescriptions":{"typeIdentifier":"t_contract$_XVSInterface_$1252","typeString":"contract XVSInterface"}},"value":null,"visibility":"public"},{"constant":false,"id":60,"name":"guardian","nodeType":"VariableDeclaration","scope":1178,"src":"1451:23:0","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":59,"name":"address","nodeType":"ElementaryTypeName","src":"1451:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"public"},{"constant":false,"id":62,"name":"proposalCount","nodeType":"VariableDeclaration","scope":1178,"src":"1527:25:0","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":61,"name":"uint","nodeType":"ElementaryTypeName","src":"1527:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"public"},{"canonicalName":"GovernorAlpha.Proposal","id":97,"members":[{"constant":false,"id":64,"name":"id","nodeType":"VariableDeclaration","scope":97,"src":"1641:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":63,"name":"uint","nodeType":"ElementaryTypeName","src":"1641:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":66,"name":"proposer","nodeType":"VariableDeclaration","scope":97,"src":"1702:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":65,"name":"address","nodeType":"ElementaryTypeName","src":"1702:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":68,"name":"eta","nodeType":"VariableDeclaration","scope":97,"src":"1840:8:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":67,"name":"uint","nodeType":"ElementaryTypeName","src":"1840:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":71,"name":"targets","nodeType":"VariableDeclaration","scope":97,"src":"1936:17:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":69,"name":"address","nodeType":"ElementaryTypeName","src":"1936:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":70,"length":null,"nodeType":"ArrayTypeName","src":"1936:9:0","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":74,"name":"values","nodeType":"VariableDeclaration","scope":97,"src":"2064:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":72,"name":"uint","nodeType":"ElementaryTypeName","src":"2064:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73,"length":null,"nodeType":"ArrayTypeName","src":"2064:6:0","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":77,"name":"signatures","nodeType":"VariableDeclaration","scope":97,"src":"2160:19:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":75,"name":"string","nodeType":"ElementaryTypeName","src":"2160:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":76,"length":null,"nodeType":"ArrayTypeName","src":"2160:8:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":80,"name":"calldatas","nodeType":"VariableDeclaration","scope":97,"src":"2264:17:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":78,"name":"bytes","nodeType":"ElementaryTypeName","src":"2264:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":79,"length":null,"nodeType":"ArrayTypeName","src":"2264:7:0","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":82,"name":"startBlock","nodeType":"VariableDeclaration","scope":97,"src":"2399:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81,"name":"uint","nodeType":"ElementaryTypeName","src":"2399:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":84,"name":"endBlock","nodeType":"VariableDeclaration","scope":97,"src":"2515:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83,"name":"uint","nodeType":"ElementaryTypeName","src":"2515:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":86,"name":"forVotes","nodeType":"VariableDeclaration","scope":97,"src":"2608:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":85,"name":"uint","nodeType":"ElementaryTypeName","src":"2608:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":88,"name":"againstVotes","nodeType":"VariableDeclaration","scope":97,"src":"2706:17:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":87,"name":"uint","nodeType":"ElementaryTypeName","src":"2706:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":90,"name":"canceled","nodeType":"VariableDeclaration","scope":97,"src":"2805:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":89,"name":"bool","nodeType":"ElementaryTypeName","src":"2805:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"},{"constant":false,"id":92,"name":"executed","nodeType":"VariableDeclaration","scope":97,"src":"2900:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":91,"name":"bool","nodeType":"ElementaryTypeName","src":"2900:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"},{"constant":false,"id":96,"name":"receipts","nodeType":"VariableDeclaration","scope":97,"src":"2992:36:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Receipt_$104_storage_$","typeString":"mapping(address => struct GovernorAlpha.Receipt)"},"typeName":{"id":95,"keyType":{"id":93,"name":"address","nodeType":"ElementaryTypeName","src":"3000:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"2992:27:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Receipt_$104_storage_$","typeString":"mapping(address => struct GovernorAlpha.Receipt)"},"valueType":{"contractScope":null,"id":94,"name":"Receipt","nodeType":"UserDefinedTypeName","referencedDeclaration":104,"src":"3011:7:0","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$104_storage_ptr","typeString":"struct GovernorAlpha.Receipt"}}},"value":null,"visibility":"internal"}],"name":"Proposal","nodeType":"StructDefinition","scope":1178,"src":"1559:1476:0","visibility":"public"},{"canonicalName":"GovernorAlpha.Receipt","id":104,"members":[{"constant":false,"id":99,"name":"hasVoted","nodeType":"VariableDeclaration","scope":104,"src":"3172:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":98,"name":"bool","nodeType":"ElementaryTypeName","src":"3172:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"},{"constant":false,"id":101,"name":"support","nodeType":"VariableDeclaration","scope":104,"src":"3262:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":100,"name":"bool","nodeType":"ElementaryTypeName","src":"3262:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"},{"constant":false,"id":103,"name":"votes","nodeType":"VariableDeclaration","scope":104,"src":"3355:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":102,"name":"uint96","nodeType":"ElementaryTypeName","src":"3355:6:0","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"value":null,"visibility":"internal"}],"name":"Receipt","nodeType":"StructDefinition","scope":1178,"src":"3091:283:0","visibility":"public"},{"canonicalName":"GovernorAlpha.ProposalState","id":113,"members":[{"id":105,"name":"Pending","nodeType":"EnumValue","src":"3467:7:0"},{"id":106,"name":"Active","nodeType":"EnumValue","src":"3484:6:0"},{"id":107,"name":"Canceled","nodeType":"EnumValue","src":"3500:8:0"},{"id":108,"name":"Defeated","nodeType":"EnumValue","src":"3518:8:0"},{"id":109,"name":"Succeeded","nodeType":"EnumValue","src":"3536:9:0"},{"id":110,"name":"Queued","nodeType":"EnumValue","src":"3555:6:0"},{"id":111,"name":"Expired","nodeType":"EnumValue","src":"3571:7:0"},{"id":112,"name":"Executed","nodeType":"EnumValue","src":"3588:8:0"}],"name":"ProposalState","nodeType":"EnumDefinition","src":"3438:164:0"},{"constant":false,"id":117,"name":"proposals","nodeType":"VariableDeclaration","scope":1178,"src":"3675:42:0","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$97_storage_$","typeString":"mapping(uint256 => struct GovernorAlpha.Proposal)"},"typeName":{"id":116,"keyType":{"id":114,"name":"uint","nodeType":"ElementaryTypeName","src":"3683:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"3675:25:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$97_storage_$","typeString":"mapping(uint256 => struct GovernorAlpha.Proposal)"},"valueType":{"contractScope":null,"id":115,"name":"Proposal","nodeType":"UserDefinedTypeName","referencedDeclaration":97,"src":"3691:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$97_storage_ptr","typeString":"struct GovernorAlpha.Proposal"}}},"value":null,"visibility":"public"},{"constant":false,"id":121,"name":"latestProposalIds","nodeType":"VariableDeclaration","scope":1178,"src":"3778:49:0","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":120,"keyType":{"id":118,"name":"address","nodeType":"ElementaryTypeName","src":"3786:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"3778:24:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueType":{"id":119,"name":"uint","nodeType":"ElementaryTypeName","src":"3797:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"value":null,"visibility":"public"},{"constant":true,"id":126,"name":"DOMAIN_TYPEHASH","nodeType":"VariableDeclaration","scope":1178,"src":"3897:130:0","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":122,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3897:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"454950373132446f6d61696e28737472696e67206e616d652c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429","id":124,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3957:69:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866","typeString":"literal_string \"EIP712Domain(string name,uint256 chainId,address verifyingContract)\""},"value":"EIP712Domain(string name,uint256 chainId,address verifyingContract)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866","typeString":"literal_string \"EIP712Domain(string name,uint256 chainId,address verifyingContract)\""}],"id":123,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1261,"src":"3947:9:0","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":125,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3947:80:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"constant":true,"id":131,"name":"BALLOT_TYPEHASH","nodeType":"VariableDeclaration","scope":1178,"src":"4114:94:0","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":127,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4114:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"42616c6c6f742875696e743235362070726f706f73616c49642c626f6f6c20737570706f727429","id":129,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4166:41:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_8e25870c07e0b0b3884c78da52790939a455c275406c44ae8b434b692fb916ee","typeString":"literal_string \"Ballot(uint256 proposalId,bool support)\""},"value":"Ballot(uint256 proposalId,bool support)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8e25870c07e0b0b3884c78da52790939a455c275406c44ae8b434b692fb916ee","typeString":"literal_string \"Ballot(uint256 proposalId,bool support)\""}],"id":128,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1261,"src":"4156:9:0","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":130,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4156:52:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"anonymous":false,"documentation":"@notice An event emitted when a new proposal is created","id":155,"name":"ProposalCreated","nodeType":"EventDefinition","parameters":{"id":154,"nodeType":"ParameterList","parameters":[{"constant":false,"id":133,"indexed":false,"name":"id","nodeType":"VariableDeclaration","scope":155,"src":"4310:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":132,"name":"uint","nodeType":"ElementaryTypeName","src":"4310:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":135,"indexed":false,"name":"proposer","nodeType":"VariableDeclaration","scope":155,"src":"4327:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":134,"name":"address","nodeType":"ElementaryTypeName","src":"4327:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":138,"indexed":false,"name":"targets","nodeType":"VariableDeclaration","scope":155,"src":"4353:17:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":136,"name":"address","nodeType":"ElementaryTypeName","src":"4353:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":137,"length":null,"nodeType":"ArrayTypeName","src":"4353:9:0","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":141,"indexed":false,"name":"values","nodeType":"VariableDeclaration","scope":155,"src":"4380:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":139,"name":"uint","nodeType":"ElementaryTypeName","src":"4380:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":140,"length":null,"nodeType":"ArrayTypeName","src":"4380:6:0","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":144,"indexed":false,"name":"signatures","nodeType":"VariableDeclaration","scope":155,"src":"4403:19:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_$dyn_memory_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":142,"name":"string","nodeType":"ElementaryTypeName","src":"4403:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":143,"length":null,"nodeType":"ArrayTypeName","src":"4403:8:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":147,"indexed":false,"name":"calldatas","nodeType":"VariableDeclaration","scope":155,"src":"4432:17:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":145,"name":"bytes","nodeType":"ElementaryTypeName","src":"4432:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":146,"length":null,"nodeType":"ArrayTypeName","src":"4432:7:0","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":149,"indexed":false,"name":"startBlock","nodeType":"VariableDeclaration","scope":155,"src":"4459:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":148,"name":"uint","nodeType":"ElementaryTypeName","src":"4459:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":151,"indexed":false,"name":"endBlock","nodeType":"VariableDeclaration","scope":155,"src":"4484:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":150,"name":"uint","nodeType":"ElementaryTypeName","src":"4484:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":153,"indexed":false,"name":"description","nodeType":"VariableDeclaration","scope":155,"src":"4507:18:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":152,"name":"string","nodeType":"ElementaryTypeName","src":"4507:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"}],"src":"4300:231:0"},"src":"4279:253:0"},{"anonymous":false,"documentation":"@notice An event emitted when a vote has been cast on a proposal","id":165,"name":"VoteCast","nodeType":"EventDefinition","parameters":{"id":164,"nodeType":"ParameterList","parameters":[{"constant":false,"id":157,"indexed":false,"name":"voter","nodeType":"VariableDeclaration","scope":165,"src":"4626:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":156,"name":"address","nodeType":"ElementaryTypeName","src":"4626:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":159,"indexed":false,"name":"proposalId","nodeType":"VariableDeclaration","scope":165,"src":"4641:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":158,"name":"uint","nodeType":"ElementaryTypeName","src":"4641:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":161,"indexed":false,"name":"support","nodeType":"VariableDeclaration","scope":165,"src":"4658:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":160,"name":"bool","nodeType":"ElementaryTypeName","src":"4658:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"},{"constant":false,"id":163,"indexed":false,"name":"votes","nodeType":"VariableDeclaration","scope":165,"src":"4672:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":162,"name":"uint","nodeType":"ElementaryTypeName","src":"4672:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"4625:58:0"},"src":"4611:73:0"},{"anonymous":false,"documentation":"@notice An event emitted when a proposal has been canceled","id":169,"name":"ProposalCanceled","nodeType":"EventDefinition","parameters":{"id":168,"nodeType":"ParameterList","parameters":[{"constant":false,"id":167,"indexed":false,"name":"id","nodeType":"VariableDeclaration","scope":169,"src":"4780:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":166,"name":"uint","nodeType":"ElementaryTypeName","src":"4780:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"4779:9:0"},"src":"4757:32:0"},{"anonymous":false,"documentation":"@notice An event emitted when a proposal has been queued in the Timelock","id":175,"name":"ProposalQueued","nodeType":"EventDefinition","parameters":{"id":174,"nodeType":"ParameterList","parameters":[{"constant":false,"id":171,"indexed":false,"name":"id","nodeType":"VariableDeclaration","scope":175,"src":"4897:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":170,"name":"uint","nodeType":"ElementaryTypeName","src":"4897:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":173,"indexed":false,"name":"eta","nodeType":"VariableDeclaration","scope":175,"src":"4906:8:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":172,"name":"uint","nodeType":"ElementaryTypeName","src":"4906:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"4896:19:0"},"src":"4876:40:0"},{"anonymous":false,"documentation":"@notice An event emitted when a proposal has been executed in the Timelock","id":179,"name":"ProposalExecuted","nodeType":"EventDefinition","parameters":{"id":178,"nodeType":"ParameterList","parameters":[{"constant":false,"id":177,"indexed":false,"name":"id","nodeType":"VariableDeclaration","scope":179,"src":"5028:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":176,"name":"uint","nodeType":"ElementaryTypeName","src":"5028:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"5027:9:0"},"src":"5005:32:0"},{"body":{"id":204,"nodeType":"Block","src":"5114:120:0","statements":[{"expression":{"argumentTypes":null,"id":192,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":188,"name":"timelock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56,"src":"5124:8:0","typeDescriptions":{"typeIdentifier":"t_contract$_TimelockInterface_$1242","typeString":"contract TimelockInterface"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":190,"name":"timelock_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":181,"src":"5153:9:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":189,"name":"TimelockInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1242,"src":"5135:17:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TimelockInterface_$1242_$","typeString":"type(contract TimelockInterface)"}},"id":191,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5135:28:0","typeDescriptions":{"typeIdentifier":"t_contract$_TimelockInterface_$1242","typeString":"contract TimelockInterface"}},"src":"5124:39:0","typeDescriptions":{"typeIdentifier":"t_contract$_TimelockInterface_$1242","typeString":"contract TimelockInterface"}},"id":193,"nodeType":"ExpressionStatement","src":"5124:39:0"},{"expression":{"argumentTypes":null,"id":198,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":194,"name":"xvs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"5173:3:0","typeDescriptions":{"typeIdentifier":"t_contract$_XVSInterface_$1252","typeString":"contract XVSInterface"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":196,"name":"xvs_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":183,"src":"5192:4:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":195,"name":"XVSInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1252,"src":"5179:12:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_XVSInterface_$1252_$","typeString":"type(contract XVSInterface)"}},"id":197,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5179:18:0","typeDescriptions":{"typeIdentifier":"t_contract$_XVSInterface_$1252","typeString":"contract XVSInterface"}},"src":"5173:24:0","typeDescriptions":{"typeIdentifier":"t_contract$_XVSInterface_$1252","typeString":"contract XVSInterface"}},"id":199,"nodeType":"ExpressionStatement","src":"5173:24:0"},{"expression":{"argumentTypes":null,"id":202,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":200,"name":"guardian","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60,"src":"5207:8:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":201,"name":"guardian_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":185,"src":"5218:9:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5207:20:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":203,"nodeType":"ExpressionStatement","src":"5207:20:0"}]},"documentation":null,"id":205,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nodeType":"FunctionDefinition","parameters":{"id":186,"nodeType":"ParameterList","parameters":[{"constant":false,"id":181,"name":"timelock_","nodeType":"VariableDeclaration","scope":205,"src":"5055:17:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":180,"name":"address","nodeType":"ElementaryTypeName","src":"5055:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":183,"name":"xvs_","nodeType":"VariableDeclaration","scope":205,"src":"5074:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":182,"name":"address","nodeType":"ElementaryTypeName","src":"5074:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":185,"name":"guardian_","nodeType":"VariableDeclaration","scope":205,"src":"5088:17:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":184,"name":"address","nodeType":"ElementaryTypeName","src":"5088:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"5054:52:0"},"returnParameters":{"id":187,"nodeType":"ParameterList","parameters":[],"src":"5114:0:0"},"scope":1178,"src":"5043:191:0","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":384,"nodeType":"Block","src":"5454:2217:0","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":237,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":227,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1267,"src":"5503:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":228,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"5503:10:0","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":230,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1257,"src":"5522:5:0","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":231,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"number","nodeType":"MemberAccess","referencedDeclaration":null,"src":"5522:12:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"hexValue":"31","id":232,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5536:1:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":229,"name":"sub256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1165,"src":"5515:6:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":233,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5515:23:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":225,"name":"xvs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"5485:3:0","typeDescriptions":{"typeIdentifier":"t_contract$_XVSInterface_$1252","typeString":"contract XVSInterface"}},"id":226,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getPriorVotes","nodeType":"MemberAccess","referencedDeclaration":1251,"src":"5485:17:0","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_uint256_$returns$_t_uint96_$","typeString":"function (address,uint256) view external returns (uint96)"}},"id":234,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5485:54:0","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"id":235,"name":"proposalThreshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21,"src":"5542:17:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_uint256_$","typeString":"function () pure returns (uint256)"}},"id":236,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5542:19:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5485:76:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"476f7665726e6f72416c7068613a3a70726f706f73653a2070726f706f73657220766f7465732062656c6f772070726f706f73616c207468726573686f6c64","id":238,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5575:65:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_bfd39a706899c667e0394e5691bba7fd459524eeb85474b380cee160c3526ad7","typeString":"literal_string \"GovernorAlpha::propose: proposer votes below proposal threshold\""},"value":"GovernorAlpha::propose: proposer votes below proposal threshold"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_bfd39a706899c667e0394e5691bba7fd459524eeb85474b380cee160c3526ad7","typeString":"literal_string \"GovernorAlpha::propose: proposer votes below proposal threshold\""}],"id":224,"name":"require","nodeType":"Identifier","overloadedDeclarations":[1270,1271],"referencedDeclaration":1271,"src":"5464:7:0","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":239,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5464:186:0","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":240,"nodeType":"ExpressionStatement","src":"5464:186:0"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":258,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":252,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":246,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":242,"name":"targets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":208,"src":"5681:7:0","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":243,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"5681:14:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":244,"name":"values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":211,"src":"5699:6:0","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":245,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"5699:13:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5681:31:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":251,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":247,"name":"targets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":208,"src":"5732:7:0","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":248,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"5732:14:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":249,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":214,"src":"5750:10:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_$dyn_memory_ptr","typeString":"string memory[] memory"}},"id":250,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"5750:17:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5732:35:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"5681:86:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":257,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":253,"name":"targets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":208,"src":"5787:7:0","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":254,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"5787:14:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":255,"name":"calldatas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":217,"src":"5805:9:0","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":256,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"5805:16:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5787:34:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"5681:140:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"476f7665726e6f72416c7068613a3a70726f706f73653a2070726f706f73616c2066756e6374696f6e20696e666f726d6174696f6e206172697479206d69736d61746368","id":259,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5835:70:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_8f65dd3b1b279a725bb780739a9eb5d267c38175f941e38ce802e63e3e8b6fea","typeString":"literal_string \"GovernorAlpha::propose: proposal function information arity mismatch\""},"value":"GovernorAlpha::propose: proposal function information arity mismatch"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_8f65dd3b1b279a725bb780739a9eb5d267c38175f941e38ce802e63e3e8b6fea","typeString":"literal_string \"GovernorAlpha::propose: proposal function information arity mismatch\""}],"id":241,"name":"require","nodeType":"Identifier","overloadedDeclarations":[1270,1271],"referencedDeclaration":1271,"src":"5660:7:0","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":260,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5660:255:0","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":261,"nodeType":"ExpressionStatement","src":"5660:255:0"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":266,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":263,"name":"targets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":208,"src":"5933:7:0","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":264,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"5933:14:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"hexValue":"30","id":265,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5951:1:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5933:19:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"476f7665726e6f72416c7068613a3a70726f706f73653a206d7573742070726f7669646520616374696f6e73","id":267,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5954:46:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_ad28c98e0c3f5f095d64a889b8cb7fef3f5dce1da50271bc4d958131808bd4c3","typeString":"literal_string \"GovernorAlpha::propose: must provide actions\""},"value":"GovernorAlpha::propose: must provide actions"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ad28c98e0c3f5f095d64a889b8cb7fef3f5dce1da50271bc4d958131808bd4c3","typeString":"literal_string \"GovernorAlpha::propose: must provide actions\""}],"id":262,"name":"require","nodeType":"Identifier","overloadedDeclarations":[1270,1271],"referencedDeclaration":1271,"src":"5925:7:0","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":268,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5925:76:0","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":269,"nodeType":"ExpressionStatement","src":"5925:76:0"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":275,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":271,"name":"targets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":208,"src":"6019:7:0","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":272,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"6019:14:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"id":273,"name":"proposalMaxOperations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29,"src":"6037:21:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_uint256_$","typeString":"function () pure returns (uint256)"}},"id":274,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6037:23:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6019:41:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"476f7665726e6f72416c7068613a3a70726f706f73653a20746f6f206d616e7920616374696f6e73","id":276,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6062:42:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_7be08c0beae18091615fa69523ea231e3fec34367b86b38f90cf56bf50e90496","typeString":"literal_string \"GovernorAlpha::propose: too many actions\""},"value":"GovernorAlpha::propose: too many actions"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_7be08c0beae18091615fa69523ea231e3fec34367b86b38f90cf56bf50e90496","typeString":"literal_string \"GovernorAlpha::propose: too many actions\""}],"id":270,"name":"require","nodeType":"Identifier","overloadedDeclarations":[1270,1271],"referencedDeclaration":1271,"src":"6011:7:0","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":277,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6011:94:0","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":278,"nodeType":"ExpressionStatement","src":"6011:94:0"},{"assignments":[280],"declarations":[{"constant":false,"id":280,"name":"latestProposalId","nodeType":"VariableDeclaration","scope":384,"src":"6116:21:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":279,"name":"uint","nodeType":"ElementaryTypeName","src":"6116:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":285,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":281,"name":"latestProposalIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121,"src":"6140:17:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":284,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":282,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1267,"src":"6158:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":283,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"6158:10:0","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6140:29:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6116:53:0"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":288,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":286,"name":"latestProposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":280,"src":"6183:16:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"hexValue":"30","id":287,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6203:1:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6183:21:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":312,"nodeType":"IfStatement","src":"6179:484:0","trueBody":{"id":311,"nodeType":"Block","src":"6206:457:0","statements":[{"assignments":[290],"declarations":[{"constant":false,"id":290,"name":"proposersLatestProposalState","nodeType":"VariableDeclaration","scope":311,"src":"6220:42:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$113","typeString":"enum GovernorAlpha.ProposalState"},"typeName":{"contractScope":null,"id":289,"name":"ProposalState","nodeType":"UserDefinedTypeName","referencedDeclaration":113,"src":"6220:13:0","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$113","typeString":"enum GovernorAlpha.ProposalState"}},"value":null,"visibility":"internal"}],"id":294,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":292,"name":"latestProposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":280,"src":"6271:16:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":291,"name":"state","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":829,"src":"6265:5:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_enum$_ProposalState_$113_$","typeString":"function (uint256) view returns (enum GovernorAlpha.ProposalState)"}},"id":293,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6265:23:0","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$113","typeString":"enum GovernorAlpha.ProposalState"}},"nodeType":"VariableDeclarationStatement","src":"6220:68:0"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_enum$_ProposalState_$113","typeString":"enum GovernorAlpha.ProposalState"},"id":299,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":296,"name":"proposersLatestProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":290,"src":"6327:28:0","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$113","typeString":"enum GovernorAlpha.ProposalState"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":297,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":113,"src":"6359:13:0","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$113_$","typeString":"type(enum GovernorAlpha.ProposalState)"}},"id":298,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Active","nodeType":"MemberAccess","referencedDeclaration":null,"src":"6359:20:0","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$113","typeString":"enum GovernorAlpha.ProposalState"}},"src":"6327:52:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"476f7665726e6f72416c7068613a3a70726f706f73653a20666f756e6420616e20616c7265616479206163746976652070726f706f73616c","id":300,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6397:58:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_98bd37d3aae00239018d795ea7d52ae888a883ce10e8c1287a757edd043122e9","typeString":"literal_string \"GovernorAlpha::propose: found an already active proposal\""},"value":"GovernorAlpha::propose: found an already active proposal"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_98bd37d3aae00239018d795ea7d52ae888a883ce10e8c1287a757edd043122e9","typeString":"literal_string \"GovernorAlpha::propose: found an already active proposal\""}],"id":295,"name":"require","nodeType":"Identifier","overloadedDeclarations":[1270,1271],"referencedDeclaration":1271,"src":"6302:7:0","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":301,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6302:167:0","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":302,"nodeType":"ExpressionStatement","src":"6302:167:0"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_enum$_ProposalState_$113","typeString":"enum GovernorAlpha.ProposalState"},"id":307,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":304,"name":"proposersLatestProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":290,"src":"6508:28:0","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$113","typeString":"enum GovernorAlpha.ProposalState"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":305,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":113,"src":"6540:13:0","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$113_$","typeString":"type(enum GovernorAlpha.ProposalState)"}},"id":306,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Pending","nodeType":"MemberAccess","referencedDeclaration":null,"src":"6540:21:0","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$113","typeString":"enum GovernorAlpha.ProposalState"}},"src":"6508:53:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"476f7665726e6f72416c7068613a3a70726f706f73653a20666f756e6420616e20616c72656164792070656e64696e672070726f706f73616c","id":308,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6579:59:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_aca5e8ce1f6dadbe29e9937c3a4c238db0ef2f96fc8bb4edeed6df06bc4fc77a","typeString":"literal_string \"GovernorAlpha::propose: found an already pending proposal\""},"value":"GovernorAlpha::propose: found an already pending proposal"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_aca5e8ce1f6dadbe29e9937c3a4c238db0ef2f96fc8bb4edeed6df06bc4fc77a","typeString":"literal_string \"GovernorAlpha::propose: found an already pending proposal\""}],"id":303,"name":"require","nodeType":"Identifier","overloadedDeclarations":[1270,1271],"referencedDeclaration":1271,"src":"6483:7:0","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":309,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6483:169:0","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":310,"nodeType":"ExpressionStatement","src":"6483:169:0"}]}},{"assignments":[314],"declarations":[{"constant":false,"id":314,"name":"startBlock","nodeType":"VariableDeclaration","scope":384,"src":"6673:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":313,"name":"uint","nodeType":"ElementaryTypeName","src":"6673:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":321,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":316,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1257,"src":"6698:5:0","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":317,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"number","nodeType":"MemberAccess","referencedDeclaration":null,"src":"6698:12:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"id":318,"name":"votingDelay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37,"src":"6712:11:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_uint256_$","typeString":"function () pure returns (uint256)"}},"id":319,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6712:13:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":315,"name":"add256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1144,"src":"6691:6:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":320,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6691:35:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6673:53:0"},{"assignments":[323],"declarations":[{"constant":false,"id":323,"name":"endBlock","nodeType":"VariableDeclaration","scope":384,"src":"6736:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":322,"name":"uint","nodeType":"ElementaryTypeName","src":"6736:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":329,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":325,"name":"startBlock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":314,"src":"6759:10:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"id":326,"name":"votingPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54,"src":"6771:12:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_uint256_$","typeString":"function () pure returns (uint256)"}},"id":327,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6771:14:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":324,"name":"add256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1144,"src":"6752:6:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":328,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6752:34:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6736:50:0"},{"expression":{"argumentTypes":null,"id":331,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"6797:15:0","subExpression":{"argumentTypes":null,"id":330,"name":"proposalCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62,"src":"6797:13:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":332,"nodeType":"ExpressionStatement","src":"6797:15:0"},{"assignments":[334],"declarations":[{"constant":false,"id":334,"name":"newProposal","nodeType":"VariableDeclaration","scope":384,"src":"6822:27:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$97_memory_ptr","typeString":"struct GovernorAlpha.Proposal"},"typeName":{"contractScope":null,"id":333,"name":"Proposal","nodeType":"UserDefinedTypeName","referencedDeclaration":97,"src":"6822:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$97_storage_ptr","typeString":"struct GovernorAlpha.Proposal"}},"value":null,"visibility":"internal"}],"id":351,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":336,"name":"proposalCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62,"src":"6879:13:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":337,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1267,"src":"6916:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":338,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"6916:10:0","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"hexValue":"30","id":339,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6945:1:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"argumentTypes":null,"id":340,"name":"targets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":208,"src":"6969:7:0","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"argumentTypes":null,"id":341,"name":"values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":211,"src":"6998:6:0","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"argumentTypes":null,"id":342,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":214,"src":"7030:10:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_$dyn_memory_ptr","typeString":"string memory[] memory"}},{"argumentTypes":null,"id":343,"name":"calldatas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":217,"src":"7065:9:0","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},{"argumentTypes":null,"id":344,"name":"startBlock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":314,"src":"7100:10:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":345,"name":"endBlock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":323,"src":"7134:8:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"hexValue":"30","id":346,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7166:1:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"argumentTypes":null,"hexValue":"30","id":347,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7195:1:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"argumentTypes":null,"hexValue":"66616c7365","id":348,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"7220:5:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"argumentTypes":null,"hexValue":"66616c7365","id":349,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"7249:5:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"},{"typeIdentifier":"t_array$_t_string_memory_$dyn_memory_ptr","typeString":"string memory[] memory"},{"typeIdentifier":"t_array$_t_bytes_memory_$dyn_memory_ptr","typeString":"bytes memory[] memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":335,"name":"Proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97,"src":"6852:8:0","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Proposal_$97_storage_ptr_$","typeString":"type(struct GovernorAlpha.Proposal storage pointer)"}},"id":350,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"names":["id","proposer","eta","targets","values","signatures","calldatas","startBlock","endBlock","forVotes","againstVotes","canceled","executed"],"nodeType":"FunctionCall","src":"6852:413:0","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$97_memory","typeString":"struct GovernorAlpha.Proposal memory"}},"nodeType":"VariableDeclarationStatement","src":"6822:443:0"},{"expression":{"argumentTypes":null,"id":357,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":352,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":117,"src":"7276:9:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$97_storage_$","typeString":"mapping(uint256 => struct GovernorAlpha.Proposal storage ref)"}},"id":355,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":353,"name":"newProposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":334,"src":"7286:11:0","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$97_memory_ptr","typeString":"struct GovernorAlpha.Proposal memory"}},"id":354,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"id","nodeType":"MemberAccess","referencedDeclaration":64,"src":"7286:14:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7276:25:0","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$97_storage","typeString":"struct GovernorAlpha.Proposal storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":356,"name":"newProposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":334,"src":"7304:11:0","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$97_memory_ptr","typeString":"struct GovernorAlpha.Proposal memory"}},"src":"7276:39:0","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$97_storage","typeString":"struct GovernorAlpha.Proposal storage ref"}},"id":358,"nodeType":"ExpressionStatement","src":"7276:39:0"},{"expression":{"argumentTypes":null,"id":365,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":359,"name":"latestProposalIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121,"src":"7325:17:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":362,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":360,"name":"newProposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":334,"src":"7343:11:0","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$97_memory_ptr","typeString":"struct GovernorAlpha.Proposal memory"}},"id":361,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"proposer","nodeType":"MemberAccess","referencedDeclaration":66,"src":"7343:20:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7325:39:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":363,"name":"newProposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":334,"src":"7367:11:0","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$97_memory_ptr","typeString":"struct GovernorAlpha.Proposal memory"}},"id":364,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"id","nodeType":"MemberAccess","referencedDeclaration":64,"src":"7367:14:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7325:56:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":366,"nodeType":"ExpressionStatement","src":"7325:56:0"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":368,"name":"newProposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":334,"src":"7426:11:0","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$97_memory_ptr","typeString":"struct GovernorAlpha.Proposal memory"}},"id":369,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"id","nodeType":"MemberAccess","referencedDeclaration":64,"src":"7426:14:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":370,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1267,"src":"7454:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":371,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"7454:10:0","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":372,"name":"targets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":208,"src":"7478:7:0","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"argumentTypes":null,"id":373,"name":"values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":211,"src":"7499:6:0","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"argumentTypes":null,"id":374,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":214,"src":"7519:10:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_$dyn_memory_ptr","typeString":"string memory[] memory"}},{"argumentTypes":null,"id":375,"name":"calldatas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":217,"src":"7543:9:0","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},{"argumentTypes":null,"id":376,"name":"startBlock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":314,"src":"7566:10:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":377,"name":"endBlock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":323,"src":"7590:8:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":378,"name":"description","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":219,"src":"7612:11:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"},{"typeIdentifier":"t_array$_t_string_memory_$dyn_memory_ptr","typeString":"string memory[] memory"},{"typeIdentifier":"t_array$_t_bytes_memory_$dyn_memory_ptr","typeString":"bytes memory[] memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":367,"name":"ProposalCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":155,"src":"7397:15:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_address_$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_string_memory_$dyn_memory_ptr_$_t_array$_t_bytes_memory_$dyn_memory_ptr_$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$__$","typeString":"function (uint256,address,address[] memory,uint256[] memory,string memory[] memory,bytes memory[] memory,uint256,uint256,string memory)"}},"id":379,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7397:236:0","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":380,"nodeType":"EmitStatement","src":"7392:241:0"},{"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":381,"name":"newProposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":334,"src":"7650:11:0","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$97_memory_ptr","typeString":"struct GovernorAlpha.Proposal memory"}},"id":382,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"id","nodeType":"MemberAccess","referencedDeclaration":64,"src":"7650:14:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":223,"id":383,"nodeType":"Return","src":"7643:21:0"}]},"documentation":null,"id":385,"implemented":true,"kind":"function","modifiers":[],"name":"propose","nodeType":"FunctionDefinition","parameters":{"id":220,"nodeType":"ParameterList","parameters":[{"constant":false,"id":208,"name":"targets","nodeType":"VariableDeclaration","scope":385,"src":"5266:24:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":206,"name":"address","nodeType":"ElementaryTypeName","src":"5266:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":207,"length":null,"nodeType":"ArrayTypeName","src":"5266:9:0","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":211,"name":"values","nodeType":"VariableDeclaration","scope":385,"src":"5300:20:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":209,"name":"uint","nodeType":"ElementaryTypeName","src":"5300:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":210,"length":null,"nodeType":"ArrayTypeName","src":"5300:6:0","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":214,"name":"signatures","nodeType":"VariableDeclaration","scope":385,"src":"5330:26:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_$dyn_memory_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":212,"name":"string","nodeType":"ElementaryTypeName","src":"5330:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":213,"length":null,"nodeType":"ArrayTypeName","src":"5330:8:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":217,"name":"calldatas","nodeType":"VariableDeclaration","scope":385,"src":"5366:24:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":215,"name":"bytes","nodeType":"ElementaryTypeName","src":"5366:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":216,"length":null,"nodeType":"ArrayTypeName","src":"5366:7:0","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":219,"name":"description","nodeType":"VariableDeclaration","scope":385,"src":"5400:25:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":218,"name":"string","nodeType":"ElementaryTypeName","src":"5400:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"}],"src":"5256:175:0"},"returnParameters":{"id":223,"nodeType":"ParameterList","parameters":[{"constant":false,"id":222,"name":"","nodeType":"VariableDeclaration","scope":385,"src":"5448:4:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":221,"name":"uint","nodeType":"ElementaryTypeName","src":"5448:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"5447:6:0"},"scope":1178,"src":"5240:2431:0","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":461,"nodeType":"Block","src":"7716:563:0","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_enum$_ProposalState_$113","typeString":"enum GovernorAlpha.ProposalState"},"id":396,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":392,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":387,"src":"7753:10:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":391,"name":"state","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":829,"src":"7747:5:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_enum$_ProposalState_$113_$","typeString":"function (uint256) view returns (enum GovernorAlpha.ProposalState)"}},"id":393,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7747:17:0","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$113","typeString":"enum GovernorAlpha.ProposalState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":394,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":113,"src":"7768:13:0","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$113_$","typeString":"type(enum GovernorAlpha.ProposalState)"}},"id":395,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Succeeded","nodeType":"MemberAccess","referencedDeclaration":null,"src":"7768:23:0","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$113","typeString":"enum GovernorAlpha.ProposalState"}},"src":"7747:44:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"476f7665726e6f72416c7068613a3a71756575653a2070726f706f73616c2063616e206f6e6c792062652071756575656420696620697420697320737563636565646564","id":397,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7805:70:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_1d9165de7b961db8df575169dadfdce4206cbf37571a45b735e6bcfda22b83b1","typeString":"literal_string \"GovernorAlpha::queue: proposal can only be queued if it is succeeded\""},"value":"GovernorAlpha::queue: proposal can only be queued if it is succeeded"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1d9165de7b961db8df575169dadfdce4206cbf37571a45b735e6bcfda22b83b1","typeString":"literal_string \"GovernorAlpha::queue: proposal can only be queued if it is succeeded\""}],"id":390,"name":"require","nodeType":"Identifier","overloadedDeclarations":[1270,1271],"referencedDeclaration":1271,"src":"7726:7:0","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":398,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7726:159:0","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":399,"nodeType":"ExpressionStatement","src":"7726:159:0"},{"assignments":[401],"declarations":[{"constant":false,"id":401,"name":"proposal","nodeType":"VariableDeclaration","scope":461,"src":"7895:25:0","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$97_storage_ptr","typeString":"struct GovernorAlpha.Proposal"},"typeName":{"contractScope":null,"id":400,"name":"Proposal","nodeType":"UserDefinedTypeName","referencedDeclaration":97,"src":"7895:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$97_storage_ptr","typeString":"struct GovernorAlpha.Proposal"}},"value":null,"visibility":"internal"}],"id":405,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":402,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":117,"src":"7923:9:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$97_storage_$","typeString":"mapping(uint256 => struct GovernorAlpha.Proposal storage ref)"}},"id":404,"indexExpression":{"argumentTypes":null,"id":403,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":387,"src":"7933:10:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7923:21:0","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$97_storage","typeString":"struct GovernorAlpha.Proposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"7895:49:0"},{"assignments":[407],"declarations":[{"constant":false,"id":407,"name":"eta","nodeType":"VariableDeclaration","scope":461,"src":"7954:8:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":406,"name":"uint","nodeType":"ElementaryTypeName","src":"7954:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":415,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":409,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1257,"src":"7972:5:0","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":410,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":null,"src":"7972:15:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"id":411,"name":"timelock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56,"src":"7989:8:0","typeDescriptions":{"typeIdentifier":"t_contract$_TimelockInterface_$1242","typeString":"contract TimelockInterface"}},"id":412,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"delay","nodeType":"MemberAccess","referencedDeclaration":1183,"src":"7989:14:0","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":413,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7989:16:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":408,"name":"add256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1144,"src":"7965:6:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":414,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7965:41:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7954:52:0"},{"body":{"id":448,"nodeType":"Block","src":"8067:132:0","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":429,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":401,"src":"8096:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$97_storage_ptr","typeString":"struct GovernorAlpha.Proposal storage pointer"}},"id":430,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"targets","nodeType":"MemberAccess","referencedDeclaration":71,"src":"8096:16:0","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":432,"indexExpression":{"argumentTypes":null,"id":431,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":417,"src":"8113:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8096:19:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":433,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":401,"src":"8117:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$97_storage_ptr","typeString":"struct GovernorAlpha.Proposal storage pointer"}},"id":434,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"values","nodeType":"MemberAccess","referencedDeclaration":74,"src":"8117:15:0","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":436,"indexExpression":{"argumentTypes":null,"id":435,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":417,"src":"8133:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8117:18:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":437,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":401,"src":"8137:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$97_storage_ptr","typeString":"struct GovernorAlpha.Proposal storage pointer"}},"id":438,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"signatures","nodeType":"MemberAccess","referencedDeclaration":77,"src":"8137:19:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage","typeString":"string storage ref[] storage ref"}},"id":440,"indexExpression":{"argumentTypes":null,"id":439,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":417,"src":"8157:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8137:22:0","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":441,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":401,"src":"8161:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$97_storage_ptr","typeString":"struct GovernorAlpha.Proposal storage pointer"}},"id":442,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"calldatas","nodeType":"MemberAccess","referencedDeclaration":80,"src":"8161:18:0","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage","typeString":"bytes storage ref[] storage ref"}},"id":444,"indexExpression":{"argumentTypes":null,"id":443,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":417,"src":"8180:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8161:21:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},{"argumentTypes":null,"id":445,"name":"eta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":407,"src":"8184:3:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_storage","typeString":"string storage ref"},{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":428,"name":"_queueOrRevert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":504,"src":"8081:14:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_string_memory_ptr_$_t_bytes_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (address,uint256,string memory,bytes memory,uint256)"}},"id":446,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8081:107:0","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":447,"nodeType":"ExpressionStatement","src":"8081:107:0"}]},"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":424,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":420,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":417,"src":"8033:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":421,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":401,"src":"8037:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$97_storage_ptr","typeString":"struct GovernorAlpha.Proposal storage pointer"}},"id":422,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"targets","nodeType":"MemberAccess","referencedDeclaration":71,"src":"8037:16:0","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":423,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"8037:23:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8033:27:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":449,"initializationExpression":{"assignments":[417],"declarations":[{"constant":false,"id":417,"name":"i","nodeType":"VariableDeclaration","scope":449,"src":"8021:6:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":416,"name":"uint","nodeType":"ElementaryTypeName","src":"8021:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":419,"initialValue":{"argumentTypes":null,"hexValue":"30","id":418,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8030:1:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"8021:10:0"},"loopExpression":{"expression":{"argumentTypes":null,"id":426,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"8062:3:0","subExpression":{"argumentTypes":null,"id":425,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":417,"src":"8062:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":427,"nodeType":"ExpressionStatement","src":"8062:3:0"},"nodeType":"ForStatement","src":"8016:183:0"},{"expression":{"argumentTypes":null,"id":454,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":450,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":401,"src":"8208:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$97_storage_ptr","typeString":"struct GovernorAlpha.Proposal storage pointer"}},"id":452,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"eta","nodeType":"MemberAccess","referencedDeclaration":68,"src":"8208:12:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":453,"name":"eta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":407,"src":"8223:3:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8208:18:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":455,"nodeType":"ExpressionStatement","src":"8208:18:0"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":457,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":387,"src":"8256:10:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":458,"name":"eta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":407,"src":"8268:3:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":456,"name":"ProposalQueued","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":175,"src":"8241:14:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":459,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8241:31:0","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":460,"nodeType":"EmitStatement","src":"8236:36:0"}]},"documentation":null,"id":462,"implemented":true,"kind":"function","modifiers":[],"name":"queue","nodeType":"FunctionDefinition","parameters":{"id":388,"nodeType":"ParameterList","parameters":[{"constant":false,"id":387,"name":"proposalId","nodeType":"VariableDeclaration","scope":462,"src":"7692:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":386,"name":"uint","nodeType":"ElementaryTypeName","src":"7692:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"7691:17:0"},"returnParameters":{"id":389,"nodeType":"ParameterList","parameters":[],"src":"7716:0:0"},"scope":1178,"src":"7677:602:0","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":503,"nodeType":"Block","src":"8400:292:0","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":489,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"8431:88:0","subExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":481,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":464,"src":"8481:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":482,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":466,"src":"8489:5:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":483,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":468,"src":"8496:9:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"argumentTypes":null,"id":484,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":470,"src":"8507:4:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"argumentTypes":null,"id":485,"name":"eta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":472,"src":"8513:3:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":479,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1254,"src":"8470:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":480,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","referencedDeclaration":null,"src":"8470:10:0","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":486,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8470:47:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":478,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1261,"src":"8460:9:0","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":487,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8460:58:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"argumentTypes":null,"id":476,"name":"timelock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56,"src":"8432:8:0","typeDescriptions":{"typeIdentifier":"t_contract$_TimelockInterface_$1242","typeString":"contract TimelockInterface"}},"id":477,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"queuedTransactions","nodeType":"MemberAccess","referencedDeclaration":1198,"src":"8432:27:0","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32) view external returns (bool)"}},"id":488,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8432:87:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"476f7665726e6f72416c7068613a3a5f71756575654f725265766572743a2070726f706f73616c20616374696f6e20616c72656164792071756575656420617420657461","id":490,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8533:70:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_9f2f7c3bae6cb2a10b5b2bdd0f8af6cd89782d3f0c1e0795e81a133975b25c86","typeString":"literal_string \"GovernorAlpha::_queueOrRevert: proposal action already queued at eta\""},"value":"GovernorAlpha::_queueOrRevert: proposal action already queued at eta"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9f2f7c3bae6cb2a10b5b2bdd0f8af6cd89782d3f0c1e0795e81a133975b25c86","typeString":"literal_string \"GovernorAlpha::_queueOrRevert: proposal action already queued at eta\""}],"id":475,"name":"require","nodeType":"Identifier","overloadedDeclarations":[1270,1271],"referencedDeclaration":1271,"src":"8410:7:0","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":491,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8410:203:0","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":492,"nodeType":"ExpressionStatement","src":"8410:203:0"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":496,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":464,"src":"8649:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":497,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":466,"src":"8657:5:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":498,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":468,"src":"8664:9:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"argumentTypes":null,"id":499,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":470,"src":"8675:4:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"argumentTypes":null,"id":500,"name":"eta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":472,"src":"8681:3:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":493,"name":"timelock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56,"src":"8623:8:0","typeDescriptions":{"typeIdentifier":"t_contract$_TimelockInterface_$1242","typeString":"contract TimelockInterface"}},"id":495,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"queueTransaction","nodeType":"MemberAccess","referencedDeclaration":1213,"src":"8623:25:0","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$_t_string_memory_ptr_$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bytes32_$","typeString":"function (address,uint256,string memory,bytes memory,uint256) external returns (bytes32)"}},"id":501,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8623:62:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":502,"nodeType":"ExpressionStatement","src":"8623:62:0"}]},"documentation":null,"id":504,"implemented":true,"kind":"function","modifiers":[],"name":"_queueOrRevert","nodeType":"FunctionDefinition","parameters":{"id":473,"nodeType":"ParameterList","parameters":[{"constant":false,"id":464,"name":"target","nodeType":"VariableDeclaration","scope":504,"src":"8309:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":463,"name":"address","nodeType":"ElementaryTypeName","src":"8309:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":466,"name":"value","nodeType":"VariableDeclaration","scope":504,"src":"8325:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":465,"name":"uint","nodeType":"ElementaryTypeName","src":"8325:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":468,"name":"signature","nodeType":"VariableDeclaration","scope":504,"src":"8337:23:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":467,"name":"string","nodeType":"ElementaryTypeName","src":"8337:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"},{"constant":false,"id":470,"name":"data","nodeType":"VariableDeclaration","scope":504,"src":"8362:17:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":469,"name":"bytes","nodeType":"ElementaryTypeName","src":"8362:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":null,"visibility":"internal"},{"constant":false,"id":472,"name":"eta","nodeType":"VariableDeclaration","scope":504,"src":"8381:8:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":471,"name":"uint","nodeType":"ElementaryTypeName","src":"8381:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"8308:82:0"},"returnParameters":{"id":474,"nodeType":"ParameterList","parameters":[],"src":"8400:0:0"},"scope":1178,"src":"8285:407:0","stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},{"body":{"id":579,"nodeType":"Block","src":"8747:644:0","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_enum$_ProposalState_$113","typeString":"enum GovernorAlpha.ProposalState"},"id":515,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":511,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":506,"src":"8784:10:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":510,"name":"state","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":829,"src":"8778:5:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_enum$_ProposalState_$113_$","typeString":"function (uint256) view returns (enum GovernorAlpha.ProposalState)"}},"id":512,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8778:17:0","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$113","typeString":"enum GovernorAlpha.ProposalState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":513,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":113,"src":"8799:13:0","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$113_$","typeString":"type(enum GovernorAlpha.ProposalState)"}},"id":514,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Queued","nodeType":"MemberAccess","referencedDeclaration":null,"src":"8799:20:0","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$113","typeString":"enum GovernorAlpha.ProposalState"}},"src":"8778:41:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"476f7665726e6f72416c7068613a3a657865637574653a2070726f706f73616c2063616e206f6e6c7920626520657865637574656420696620697420697320717565756564","id":516,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8833:71:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_1e6b39f7a3cdaa9f8cd196650711f6f6106ff22624580132558c7d2885a2b40c","typeString":"literal_string \"GovernorAlpha::execute: proposal can only be executed if it is queued\""},"value":"GovernorAlpha::execute: proposal can only be executed if it is queued"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1e6b39f7a3cdaa9f8cd196650711f6f6106ff22624580132558c7d2885a2b40c","typeString":"literal_string \"GovernorAlpha::execute: proposal can only be executed if it is queued\""}],"id":509,"name":"require","nodeType":"Identifier","overloadedDeclarations":[1270,1271],"referencedDeclaration":1271,"src":"8757:7:0","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":517,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8757:157:0","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":518,"nodeType":"ExpressionStatement","src":"8757:157:0"},{"assignments":[520],"declarations":[{"constant":false,"id":520,"name":"proposal","nodeType":"VariableDeclaration","scope":579,"src":"8924:25:0","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$97_storage_ptr","typeString":"struct GovernorAlpha.Proposal"},"typeName":{"contractScope":null,"id":519,"name":"Proposal","nodeType":"UserDefinedTypeName","referencedDeclaration":97,"src":"8924:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$97_storage_ptr","typeString":"struct GovernorAlpha.Proposal"}},"value":null,"visibility":"internal"}],"id":524,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":521,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":117,"src":"8952:9:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$97_storage_$","typeString":"mapping(uint256 => struct GovernorAlpha.Proposal storage ref)"}},"id":523,"indexExpression":{"argumentTypes":null,"id":522,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":506,"src":"8962:10:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8952:21:0","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$97_storage","typeString":"struct GovernorAlpha.Proposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"8924:49:0"},{"expression":{"argumentTypes":null,"id":529,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":525,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":520,"src":"8983:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$97_storage_ptr","typeString":"struct GovernorAlpha.Proposal storage pointer"}},"id":527,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"executed","nodeType":"MemberAccess","referencedDeclaration":92,"src":"8983:17:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"hexValue":"74727565","id":528,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"9003:4:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"8983:24:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":530,"nodeType":"ExpressionStatement","src":"8983:24:0"},{"body":{"id":573,"nodeType":"Block","src":"9068:274:0","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":553,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":520,"src":"9153:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$97_storage_ptr","typeString":"struct GovernorAlpha.Proposal storage pointer"}},"id":554,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"targets","nodeType":"MemberAccess","referencedDeclaration":71,"src":"9153:16:0","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":556,"indexExpression":{"argumentTypes":null,"id":555,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":532,"src":"9170:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9153:19:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":557,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":520,"src":"9190:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$97_storage_ptr","typeString":"struct GovernorAlpha.Proposal storage pointer"}},"id":558,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"values","nodeType":"MemberAccess","referencedDeclaration":74,"src":"9190:15:0","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":560,"indexExpression":{"argumentTypes":null,"id":559,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":532,"src":"9206:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9190:18:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":561,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":520,"src":"9226:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$97_storage_ptr","typeString":"struct GovernorAlpha.Proposal storage pointer"}},"id":562,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"signatures","nodeType":"MemberAccess","referencedDeclaration":77,"src":"9226:19:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage","typeString":"string storage ref[] storage ref"}},"id":564,"indexExpression":{"argumentTypes":null,"id":563,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":532,"src":"9246:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9226:22:0","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":565,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":520,"src":"9266:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$97_storage_ptr","typeString":"struct GovernorAlpha.Proposal storage pointer"}},"id":566,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"calldatas","nodeType":"MemberAccess","referencedDeclaration":80,"src":"9266:18:0","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage","typeString":"bytes storage ref[] storage ref"}},"id":568,"indexExpression":{"argumentTypes":null,"id":567,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":532,"src":"9285:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9266:21:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":569,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":520,"src":"9305:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$97_storage_ptr","typeString":"struct GovernorAlpha.Proposal storage pointer"}},"id":570,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"eta","nodeType":"MemberAccess","referencedDeclaration":68,"src":"9305:12:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_storage","typeString":"string storage ref"},{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"arguments":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":548,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":520,"src":"9116:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$97_storage_ptr","typeString":"struct GovernorAlpha.Proposal storage pointer"}},"id":549,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"values","nodeType":"MemberAccess","referencedDeclaration":74,"src":"9116:15:0","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":551,"indexExpression":{"argumentTypes":null,"id":550,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":532,"src":"9132:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9116:18:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":543,"name":"timelock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56,"src":"9082:8:0","typeDescriptions":{"typeIdentifier":"t_contract$_TimelockInterface_$1242","typeString":"contract TimelockInterface"}},"id":546,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"executeTransaction","nodeType":"MemberAccess","referencedDeclaration":1241,"src":"9082:27:0","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_address_$_t_uint256_$_t_string_memory_ptr_$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,uint256,string memory,bytes memory,uint256) payable external returns (bytes memory)"}},"id":547,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"value","nodeType":"MemberAccess","referencedDeclaration":null,"src":"9082:33:0","typeDescriptions":{"typeIdentifier":"t_function_setvalue_pure$_t_uint256_$returns$_t_function_external_payable$_t_address_$_t_uint256_$_t_string_memory_ptr_$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bytes_memory_ptr_$value_$","typeString":"function (uint256) pure returns (function (address,uint256,string memory,bytes memory,uint256) payable external returns (bytes memory))"}},"id":552,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9082:53:0","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_address_$_t_uint256_$_t_string_memory_ptr_$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bytes_memory_ptr_$value","typeString":"function (address,uint256,string memory,bytes memory,uint256) payable external returns (bytes memory)"}},"id":571,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9082:249:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":572,"nodeType":"ExpressionStatement","src":"9082:249:0"}]},"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":539,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":535,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":532,"src":"9034:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":536,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":520,"src":"9038:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$97_storage_ptr","typeString":"struct GovernorAlpha.Proposal storage pointer"}},"id":537,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"targets","nodeType":"MemberAccess","referencedDeclaration":71,"src":"9038:16:0","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":538,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"9038:23:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9034:27:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":574,"initializationExpression":{"assignments":[532],"declarations":[{"constant":false,"id":532,"name":"i","nodeType":"VariableDeclaration","scope":574,"src":"9022:6:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":531,"name":"uint","nodeType":"ElementaryTypeName","src":"9022:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":534,"initialValue":{"argumentTypes":null,"hexValue":"30","id":533,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9031:1:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"9022:10:0"},"loopExpression":{"expression":{"argumentTypes":null,"id":541,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"9063:3:0","subExpression":{"argumentTypes":null,"id":540,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":532,"src":"9063:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":542,"nodeType":"ExpressionStatement","src":"9063:3:0"},"nodeType":"ForStatement","src":"9017:325:0"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":576,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":506,"src":"9373:10:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":575,"name":"ProposalExecuted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":179,"src":"9356:16:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":577,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9356:28:0","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":578,"nodeType":"EmitStatement","src":"9351:33:0"}]},"documentation":null,"id":580,"implemented":true,"kind":"function","modifiers":[],"name":"execute","nodeType":"FunctionDefinition","parameters":{"id":507,"nodeType":"ParameterList","parameters":[{"constant":false,"id":506,"name":"proposalId","nodeType":"VariableDeclaration","scope":580,"src":"8715:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":505,"name":"uint","nodeType":"ElementaryTypeName","src":"8715:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"8714:17:0"},"returnParameters":{"id":508,"nodeType":"ParameterList","parameters":[],"src":"8747:0:0"},"scope":1178,"src":"8698:693:0","stateMutability":"payable","superFunction":null,"visibility":"public"},{"body":{"id":674,"nodeType":"Block","src":"9437:839:0","statements":[{"assignments":[586],"declarations":[{"constant":false,"id":586,"name":"state","nodeType":"VariableDeclaration","scope":674,"src":"9447:19:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$113","typeString":"enum GovernorAlpha.ProposalState"},"typeName":{"contractScope":null,"id":585,"name":"ProposalState","nodeType":"UserDefinedTypeName","referencedDeclaration":113,"src":"9447:13:0","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$113","typeString":"enum GovernorAlpha.ProposalState"}},"value":null,"visibility":"internal"}],"id":590,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":588,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":582,"src":"9475:10:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":587,"name":"state","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":829,"src":"9469:5:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_enum$_ProposalState_$113_$","typeString":"function (uint256) view returns (enum GovernorAlpha.ProposalState)"}},"id":589,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9469:17:0","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$113","typeString":"enum GovernorAlpha.ProposalState"}},"nodeType":"VariableDeclarationStatement","src":"9447:39:0"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_enum$_ProposalState_$113","typeString":"enum GovernorAlpha.ProposalState"},"id":595,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":592,"name":"state","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":586,"src":"9504:5:0","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$113","typeString":"enum GovernorAlpha.ProposalState"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":593,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":113,"src":"9513:13:0","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$113_$","typeString":"type(enum GovernorAlpha.ProposalState)"}},"id":594,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Executed","nodeType":"MemberAccess","referencedDeclaration":null,"src":"9513:22:0","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$113","typeString":"enum GovernorAlpha.ProposalState"}},"src":"9504:31:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"476f7665726e6f72416c7068613a3a63616e63656c3a2063616e6e6f742063616e63656c2065786563757465642070726f706f73616c","id":596,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9537:56:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_e9d477897cfec9b3c036d388c3168bf4ff9f6d4c49c58b845fd31f77ad2af11d","typeString":"literal_string \"GovernorAlpha::cancel: cannot cancel executed proposal\""},"value":"GovernorAlpha::cancel: cannot cancel executed proposal"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e9d477897cfec9b3c036d388c3168bf4ff9f6d4c49c58b845fd31f77ad2af11d","typeString":"literal_string \"GovernorAlpha::cancel: cannot cancel executed proposal\""}],"id":591,"name":"require","nodeType":"Identifier","overloadedDeclarations":[1270,1271],"referencedDeclaration":1271,"src":"9496:7:0","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":597,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9496:98:0","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":598,"nodeType":"ExpressionStatement","src":"9496:98:0"},{"assignments":[600],"declarations":[{"constant":false,"id":600,"name":"proposal","nodeType":"VariableDeclaration","scope":674,"src":"9605:25:0","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$97_storage_ptr","typeString":"struct GovernorAlpha.Proposal"},"typeName":{"contractScope":null,"id":599,"name":"Proposal","nodeType":"UserDefinedTypeName","referencedDeclaration":97,"src":"9605:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$97_storage_ptr","typeString":"struct GovernorAlpha.Proposal"}},"value":null,"visibility":"internal"}],"id":604,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":601,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":117,"src":"9633:9:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$97_storage_$","typeString":"mapping(uint256 => struct GovernorAlpha.Proposal storage ref)"}},"id":603,"indexExpression":{"argumentTypes":null,"id":602,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":582,"src":"9643:10:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9633:21:0","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$97_storage","typeString":"struct GovernorAlpha.Proposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"9605:49:0"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":623,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":609,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":606,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1267,"src":"9685:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":607,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"9685:10:0","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"id":608,"name":"guardian","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60,"src":"9699:8:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9685:22:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":622,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":612,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":600,"src":"9745:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$97_storage_ptr","typeString":"struct GovernorAlpha.Proposal storage pointer"}},"id":613,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"proposer","nodeType":"MemberAccess","referencedDeclaration":66,"src":"9745:17:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":615,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1257,"src":"9771:5:0","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":616,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"number","nodeType":"MemberAccess","referencedDeclaration":null,"src":"9771:12:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"hexValue":"31","id":617,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9785:1:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":614,"name":"sub256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1165,"src":"9764:6:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":618,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9764:23:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":610,"name":"xvs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"9727:3:0","typeDescriptions":{"typeIdentifier":"t_contract$_XVSInterface_$1252","typeString":"contract XVSInterface"}},"id":611,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getPriorVotes","nodeType":"MemberAccess","referencedDeclaration":1251,"src":"9727:17:0","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_uint256_$returns$_t_uint96_$","typeString":"function (address,uint256) view external returns (uint96)"}},"id":619,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9727:61:0","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"id":620,"name":"proposalThreshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21,"src":"9791:17:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_uint256_$","typeString":"function () pure returns (uint256)"}},"id":621,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9791:19:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9727:83:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"9685:125:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"476f7665726e6f72416c7068613a3a63616e63656c3a2070726f706f7365722061626f7665207468726573686f6c64","id":624,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9824:49:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_955146449a8b4861230739fdd349c84a094c3689202256bb43330a0b0d63a0ae","typeString":"literal_string \"GovernorAlpha::cancel: proposer above threshold\""},"value":"GovernorAlpha::cancel: proposer above threshold"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_955146449a8b4861230739fdd349c84a094c3689202256bb43330a0b0d63a0ae","typeString":"literal_string \"GovernorAlpha::cancel: proposer above threshold\""}],"id":605,"name":"require","nodeType":"Identifier","overloadedDeclarations":[1270,1271],"referencedDeclaration":1271,"src":"9664:7:0","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":625,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9664:219:0","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":626,"nodeType":"ExpressionStatement","src":"9664:219:0"},{"expression":{"argumentTypes":null,"id":631,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":627,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":600,"src":"9894:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$97_storage_ptr","typeString":"struct GovernorAlpha.Proposal storage pointer"}},"id":629,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"canceled","nodeType":"MemberAccess","referencedDeclaration":90,"src":"9894:17:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"hexValue":"74727565","id":630,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"9914:4:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"9894:24:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":632,"nodeType":"ExpressionStatement","src":"9894:24:0"},{"body":{"id":668,"nodeType":"Block","src":"9979:247:0","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":648,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":600,"src":"10037:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$97_storage_ptr","typeString":"struct GovernorAlpha.Proposal storage pointer"}},"id":649,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"targets","nodeType":"MemberAccess","referencedDeclaration":71,"src":"10037:16:0","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":651,"indexExpression":{"argumentTypes":null,"id":650,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":634,"src":"10054:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10037:19:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":652,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":600,"src":"10074:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$97_storage_ptr","typeString":"struct GovernorAlpha.Proposal storage pointer"}},"id":653,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"values","nodeType":"MemberAccess","referencedDeclaration":74,"src":"10074:15:0","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":655,"indexExpression":{"argumentTypes":null,"id":654,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":634,"src":"10090:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10074:18:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":656,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":600,"src":"10110:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$97_storage_ptr","typeString":"struct GovernorAlpha.Proposal storage pointer"}},"id":657,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"signatures","nodeType":"MemberAccess","referencedDeclaration":77,"src":"10110:19:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage","typeString":"string storage ref[] storage ref"}},"id":659,"indexExpression":{"argumentTypes":null,"id":658,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":634,"src":"10130:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10110:22:0","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":660,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":600,"src":"10150:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$97_storage_ptr","typeString":"struct GovernorAlpha.Proposal storage pointer"}},"id":661,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"calldatas","nodeType":"MemberAccess","referencedDeclaration":80,"src":"10150:18:0","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage","typeString":"bytes storage ref[] storage ref"}},"id":663,"indexExpression":{"argumentTypes":null,"id":662,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":634,"src":"10169:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10150:21:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":664,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":600,"src":"10189:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$97_storage_ptr","typeString":"struct GovernorAlpha.Proposal storage pointer"}},"id":665,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"eta","nodeType":"MemberAccess","referencedDeclaration":68,"src":"10189:12:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_storage","typeString":"string storage ref"},{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":645,"name":"timelock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56,"src":"9993:8:0","typeDescriptions":{"typeIdentifier":"t_contract$_TimelockInterface_$1242","typeString":"contract TimelockInterface"}},"id":647,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"cancelTransaction","nodeType":"MemberAccess","referencedDeclaration":1226,"src":"9993:26:0","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$_t_string_memory_ptr_$_t_bytes_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (address,uint256,string memory,bytes memory,uint256) external"}},"id":666,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9993:222:0","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":667,"nodeType":"ExpressionStatement","src":"9993:222:0"}]},"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":641,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":637,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":634,"src":"9945:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":638,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":600,"src":"9949:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$97_storage_ptr","typeString":"struct GovernorAlpha.Proposal storage pointer"}},"id":639,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"targets","nodeType":"MemberAccess","referencedDeclaration":71,"src":"9949:16:0","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":640,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"9949:23:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9945:27:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":669,"initializationExpression":{"assignments":[634],"declarations":[{"constant":false,"id":634,"name":"i","nodeType":"VariableDeclaration","scope":669,"src":"9933:6:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":633,"name":"uint","nodeType":"ElementaryTypeName","src":"9933:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":636,"initialValue":{"argumentTypes":null,"hexValue":"30","id":635,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9942:1:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"9933:10:0"},"loopExpression":{"expression":{"argumentTypes":null,"id":643,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"9974:3:0","subExpression":{"argumentTypes":null,"id":642,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":634,"src":"9974:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":644,"nodeType":"ExpressionStatement","src":"9974:3:0"},"nodeType":"ForStatement","src":"9928:298:0"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":671,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":582,"src":"10258:10:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":670,"name":"ProposalCanceled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":169,"src":"10241:16:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":672,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10241:28:0","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":673,"nodeType":"EmitStatement","src":"10236:33:0"}]},"documentation":null,"id":675,"implemented":true,"kind":"function","modifiers":[],"name":"cancel","nodeType":"FunctionDefinition","parameters":{"id":583,"nodeType":"ParameterList","parameters":[{"constant":false,"id":582,"name":"proposalId","nodeType":"VariableDeclaration","scope":675,"src":"9413:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":581,"name":"uint","nodeType":"ElementaryTypeName","src":"9413:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"9412:17:0"},"returnParameters":{"id":584,"nodeType":"ParameterList","parameters":[],"src":"9437:0:0"},"scope":1178,"src":"9397:879:0","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":708,"nodeType":"Block","src":"10484:124:0","statements":[{"assignments":[693],"declarations":[{"constant":false,"id":693,"name":"p","nodeType":"VariableDeclaration","scope":708,"src":"10494:18:0","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$97_storage_ptr","typeString":"struct GovernorAlpha.Proposal"},"typeName":{"contractScope":null,"id":692,"name":"Proposal","nodeType":"UserDefinedTypeName","referencedDeclaration":97,"src":"10494:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$97_storage_ptr","typeString":"struct GovernorAlpha.Proposal"}},"value":null,"visibility":"internal"}],"id":697,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":694,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":117,"src":"10515:9:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$97_storage_$","typeString":"mapping(uint256 => struct GovernorAlpha.Proposal storage ref)"}},"id":696,"indexExpression":{"argumentTypes":null,"id":695,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":677,"src":"10525:10:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10515:21:0","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$97_storage","typeString":"struct GovernorAlpha.Proposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"10494:42:0"},{"expression":{"argumentTypes":null,"components":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":698,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":693,"src":"10554:1:0","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$97_storage_ptr","typeString":"struct GovernorAlpha.Proposal storage pointer"}},"id":699,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"targets","nodeType":"MemberAccess","referencedDeclaration":71,"src":"10554:9:0","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":700,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":693,"src":"10565:1:0","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$97_storage_ptr","typeString":"struct GovernorAlpha.Proposal storage pointer"}},"id":701,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"values","nodeType":"MemberAccess","referencedDeclaration":74,"src":"10565:8:0","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":702,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":693,"src":"10575:1:0","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$97_storage_ptr","typeString":"struct GovernorAlpha.Proposal storage pointer"}},"id":703,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"signatures","nodeType":"MemberAccess","referencedDeclaration":77,"src":"10575:12:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage","typeString":"string storage ref[] storage ref"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":704,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":693,"src":"10589:1:0","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$97_storage_ptr","typeString":"struct GovernorAlpha.Proposal storage pointer"}},"id":705,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"calldatas","nodeType":"MemberAccess","referencedDeclaration":80,"src":"10589:11:0","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage","typeString":"bytes storage ref[] storage ref"}}],"id":706,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10553:48:0","typeDescriptions":{"typeIdentifier":"t_tuple$_t_array$_t_address_$dyn_storage_$_t_array$_t_uint256_$dyn_storage_$_t_array$_t_string_storage_$dyn_storage_$_t_array$_t_bytes_storage_$dyn_storage_$","typeString":"tuple(address[] storage ref,uint256[] storage ref,string storage ref[] storage ref,bytes storage ref[] storage ref)"}},"functionReturnParameters":691,"id":707,"nodeType":"Return","src":"10546:55:0"}]},"documentation":null,"id":709,"implemented":true,"kind":"function","modifiers":[],"name":"getActions","nodeType":"FunctionDefinition","parameters":{"id":678,"nodeType":"ParameterList","parameters":[{"constant":false,"id":677,"name":"proposalId","nodeType":"VariableDeclaration","scope":709,"src":"10311:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":676,"name":"uint","nodeType":"ElementaryTypeName","src":"10311:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"10301:31:0"},"returnParameters":{"id":691,"nodeType":"ParameterList","parameters":[{"constant":false,"id":681,"name":"targets","nodeType":"VariableDeclaration","scope":709,"src":"10378:24:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":679,"name":"address","nodeType":"ElementaryTypeName","src":"10378:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":680,"length":null,"nodeType":"ArrayTypeName","src":"10378:9:0","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":684,"name":"values","nodeType":"VariableDeclaration","scope":709,"src":"10404:20:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":682,"name":"uint","nodeType":"ElementaryTypeName","src":"10404:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":683,"length":null,"nodeType":"ArrayTypeName","src":"10404:6:0","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":687,"name":"signatures","nodeType":"VariableDeclaration","scope":709,"src":"10426:26:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_$dyn_memory_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":685,"name":"string","nodeType":"ElementaryTypeName","src":"10426:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":686,"length":null,"nodeType":"ArrayTypeName","src":"10426:8:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":690,"name":"calldatas","nodeType":"VariableDeclaration","scope":709,"src":"10454:24:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":688,"name":"bytes","nodeType":"ElementaryTypeName","src":"10454:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":689,"length":null,"nodeType":"ArrayTypeName","src":"10454:7:0","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"value":null,"visibility":"internal"}],"src":"10377:102:0"},"scope":1178,"src":"10282:326:0","stateMutability":"view","superFunction":null,"visibility":"public"},{"body":{"id":725,"nodeType":"Block","src":"10703:61:0","statements":[{"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":718,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":117,"src":"10720:9:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$97_storage_$","typeString":"mapping(uint256 => struct GovernorAlpha.Proposal storage ref)"}},"id":720,"indexExpression":{"argumentTypes":null,"id":719,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":711,"src":"10730:10:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10720:21:0","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$97_storage","typeString":"struct GovernorAlpha.Proposal storage ref"}},"id":721,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"receipts","nodeType":"MemberAccess","referencedDeclaration":96,"src":"10720:30:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Receipt_$104_storage_$","typeString":"mapping(address => struct GovernorAlpha.Receipt storage ref)"}},"id":723,"indexExpression":{"argumentTypes":null,"id":722,"name":"voter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":713,"src":"10751:5:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10720:37:0","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$104_storage","typeString":"struct GovernorAlpha.Receipt storage ref"}},"functionReturnParameters":717,"id":724,"nodeType":"Return","src":"10713:44:0"}]},"documentation":null,"id":726,"implemented":true,"kind":"function","modifiers":[],"name":"getReceipt","nodeType":"FunctionDefinition","parameters":{"id":714,"nodeType":"ParameterList","parameters":[{"constant":false,"id":711,"name":"proposalId","nodeType":"VariableDeclaration","scope":726,"src":"10634:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":710,"name":"uint","nodeType":"ElementaryTypeName","src":"10634:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":713,"name":"voter","nodeType":"VariableDeclaration","scope":726,"src":"10651:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":712,"name":"address","nodeType":"ElementaryTypeName","src":"10651:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"10633:32:0"},"returnParameters":{"id":717,"nodeType":"ParameterList","parameters":[{"constant":false,"id":716,"name":"","nodeType":"VariableDeclaration","scope":726,"src":"10687:14:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$104_memory_ptr","typeString":"struct GovernorAlpha.Receipt"},"typeName":{"contractScope":null,"id":715,"name":"Receipt","nodeType":"UserDefinedTypeName","referencedDeclaration":104,"src":"10687:7:0","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$104_storage_ptr","typeString":"struct GovernorAlpha.Receipt"}},"value":null,"visibility":"internal"}],"src":"10686:16:0"},"scope":1178,"src":"10614:150:0","stateMutability":"view","superFunction":null,"visibility":"public"},{"body":{"id":828,"nodeType":"Block","src":"10838:957:0","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":740,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":736,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":734,"name":"proposalCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62,"src":"10856:13:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"argumentTypes":null,"id":735,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":728,"src":"10873:10:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10856:27:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":739,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":737,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":728,"src":"10887:10:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":738,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10900:1:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10887:14:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"10856:45:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"476f7665726e6f72416c7068613a3a73746174653a20696e76616c69642070726f706f73616c206964","id":741,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10903:43:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_4e13bf7de4ba5f0690868b0ce8fbbb5874a1007783c383619a200c32a346f517","typeString":"literal_string \"GovernorAlpha::state: invalid proposal id\""},"value":"GovernorAlpha::state: invalid proposal id"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_4e13bf7de4ba5f0690868b0ce8fbbb5874a1007783c383619a200c32a346f517","typeString":"literal_string \"GovernorAlpha::state: invalid proposal id\""}],"id":733,"name":"require","nodeType":"Identifier","overloadedDeclarations":[1270,1271],"referencedDeclaration":1271,"src":"10848:7:0","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":742,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10848:99:0","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":743,"nodeType":"ExpressionStatement","src":"10848:99:0"},{"assignments":[745],"declarations":[{"constant":false,"id":745,"name":"proposal","nodeType":"VariableDeclaration","scope":828,"src":"10957:25:0","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$97_storage_ptr","typeString":"struct GovernorAlpha.Proposal"},"typeName":{"contractScope":null,"id":744,"name":"Proposal","nodeType":"UserDefinedTypeName","referencedDeclaration":97,"src":"10957:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$97_storage_ptr","typeString":"struct GovernorAlpha.Proposal"}},"value":null,"visibility":"internal"}],"id":749,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":746,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":117,"src":"10985:9:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$97_storage_$","typeString":"mapping(uint256 => struct GovernorAlpha.Proposal storage ref)"}},"id":748,"indexExpression":{"argumentTypes":null,"id":747,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":728,"src":"10995:10:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10985:21:0","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$97_storage","typeString":"struct GovernorAlpha.Proposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"10957:49:0"},{"condition":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":750,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":745,"src":"11020:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$97_storage_ptr","typeString":"struct GovernorAlpha.Proposal storage pointer"}},"id":751,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"canceled","nodeType":"MemberAccess","referencedDeclaration":90,"src":"11020:17:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":760,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":756,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1257,"src":"11103:5:0","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":757,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"number","nodeType":"MemberAccess","referencedDeclaration":null,"src":"11103:12:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":758,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":745,"src":"11119:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$97_storage_ptr","typeString":"struct GovernorAlpha.Proposal storage pointer"}},"id":759,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"startBlock","nodeType":"MemberAccess","referencedDeclaration":82,"src":"11119:19:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11103:35:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":769,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":765,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1257,"src":"11203:5:0","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":766,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"number","nodeType":"MemberAccess","referencedDeclaration":null,"src":"11203:12:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":767,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":745,"src":"11219:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$97_storage_ptr","typeString":"struct GovernorAlpha.Proposal storage pointer"}},"id":768,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"endBlock","nodeType":"MemberAccess","referencedDeclaration":84,"src":"11219:17:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11203:33:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":784,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":778,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":774,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":745,"src":"11300:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$97_storage_ptr","typeString":"struct GovernorAlpha.Proposal storage pointer"}},"id":775,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"forVotes","nodeType":"MemberAccess","referencedDeclaration":86,"src":"11300:17:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":776,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":745,"src":"11321:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$97_storage_ptr","typeString":"struct GovernorAlpha.Proposal storage pointer"}},"id":777,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"againstVotes","nodeType":"MemberAccess","referencedDeclaration":88,"src":"11321:21:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11300:42:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":783,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":779,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":745,"src":"11346:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$97_storage_ptr","typeString":"struct GovernorAlpha.Proposal storage pointer"}},"id":780,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"forVotes","nodeType":"MemberAccess","referencedDeclaration":86,"src":"11346:17:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"id":781,"name":"quorumVotes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13,"src":"11366:11:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_uint256_$","typeString":"function () pure returns (uint256)"}},"id":782,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11366:13:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11346:33:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"11300:79:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":792,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":789,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":745,"src":"11445:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$97_storage_ptr","typeString":"struct GovernorAlpha.Proposal storage pointer"}},"id":790,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"eta","nodeType":"MemberAccess","referencedDeclaration":68,"src":"11445:12:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"30","id":791,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11461:1:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11445:17:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":797,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":745,"src":"11529:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$97_storage_ptr","typeString":"struct GovernorAlpha.Proposal storage pointer"}},"id":798,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"executed","nodeType":"MemberAccess","referencedDeclaration":92,"src":"11529:17:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":812,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":803,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1257,"src":"11612:5:0","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":804,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":null,"src":"11612:15:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":806,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":745,"src":"11638:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$97_storage_ptr","typeString":"struct GovernorAlpha.Proposal storage pointer"}},"id":807,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"eta","nodeType":"MemberAccess","referencedDeclaration":68,"src":"11638:12:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"id":808,"name":"timelock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56,"src":"11652:8:0","typeDescriptions":{"typeIdentifier":"t_contract$_TimelockInterface_$1242","typeString":"contract TimelockInterface"}},"id":809,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"GRACE_PERIOD","nodeType":"MemberAccess","referencedDeclaration":1188,"src":"11652:21:0","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":810,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11652:23:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":805,"name":"add256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1144,"src":"11631:6:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":811,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11631:45:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11612:64:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":820,"nodeType":"Block","src":"11737:52:0","statements":[{"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":817,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":113,"src":"11758:13:0","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$113_$","typeString":"type(enum GovernorAlpha.ProposalState)"}},"id":818,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Queued","nodeType":"MemberAccess","referencedDeclaration":null,"src":"11758:20:0","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$113","typeString":"enum GovernorAlpha.ProposalState"}},"functionReturnParameters":732,"id":819,"nodeType":"Return","src":"11751:27:0"}]},"id":821,"nodeType":"IfStatement","src":"11608:181:0","trueBody":{"id":816,"nodeType":"Block","src":"11678:53:0","statements":[{"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":813,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":113,"src":"11699:13:0","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$113_$","typeString":"type(enum GovernorAlpha.ProposalState)"}},"id":814,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Expired","nodeType":"MemberAccess","referencedDeclaration":null,"src":"11699:21:0","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$113","typeString":"enum GovernorAlpha.ProposalState"}},"functionReturnParameters":732,"id":815,"nodeType":"Return","src":"11692:28:0"}]}},"id":822,"nodeType":"IfStatement","src":"11525:264:0","trueBody":{"id":802,"nodeType":"Block","src":"11548:54:0","statements":[{"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":799,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":113,"src":"11569:13:0","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$113_$","typeString":"type(enum GovernorAlpha.ProposalState)"}},"id":800,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Executed","nodeType":"MemberAccess","referencedDeclaration":null,"src":"11569:22:0","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$113","typeString":"enum GovernorAlpha.ProposalState"}},"functionReturnParameters":732,"id":801,"nodeType":"Return","src":"11562:29:0"}]}},"id":823,"nodeType":"IfStatement","src":"11441:348:0","trueBody":{"id":796,"nodeType":"Block","src":"11464:55:0","statements":[{"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":793,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":113,"src":"11485:13:0","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$113_$","typeString":"type(enum GovernorAlpha.ProposalState)"}},"id":794,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Succeeded","nodeType":"MemberAccess","referencedDeclaration":null,"src":"11485:23:0","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$113","typeString":"enum GovernorAlpha.ProposalState"}},"functionReturnParameters":732,"id":795,"nodeType":"Return","src":"11478:30:0"}]}},"id":824,"nodeType":"IfStatement","src":"11296:493:0","trueBody":{"id":788,"nodeType":"Block","src":"11381:54:0","statements":[{"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":785,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":113,"src":"11402:13:0","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$113_$","typeString":"type(enum GovernorAlpha.ProposalState)"}},"id":786,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Defeated","nodeType":"MemberAccess","referencedDeclaration":null,"src":"11402:22:0","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$113","typeString":"enum GovernorAlpha.ProposalState"}},"functionReturnParameters":732,"id":787,"nodeType":"Return","src":"11395:29:0"}]}},"id":825,"nodeType":"IfStatement","src":"11199:590:0","trueBody":{"id":773,"nodeType":"Block","src":"11238:52:0","statements":[{"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":770,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":113,"src":"11259:13:0","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$113_$","typeString":"type(enum GovernorAlpha.ProposalState)"}},"id":771,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Active","nodeType":"MemberAccess","referencedDeclaration":null,"src":"11259:20:0","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$113","typeString":"enum GovernorAlpha.ProposalState"}},"functionReturnParameters":732,"id":772,"nodeType":"Return","src":"11252:27:0"}]}},"id":826,"nodeType":"IfStatement","src":"11099:690:0","trueBody":{"id":764,"nodeType":"Block","src":"11140:53:0","statements":[{"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":761,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":113,"src":"11161:13:0","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$113_$","typeString":"type(enum GovernorAlpha.ProposalState)"}},"id":762,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Pending","nodeType":"MemberAccess","referencedDeclaration":null,"src":"11161:21:0","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$113","typeString":"enum GovernorAlpha.ProposalState"}},"functionReturnParameters":732,"id":763,"nodeType":"Return","src":"11154:28:0"}]}},"id":827,"nodeType":"IfStatement","src":"11016:773:0","trueBody":{"id":755,"nodeType":"Block","src":"11039:54:0","statements":[{"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":752,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":113,"src":"11060:13:0","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$113_$","typeString":"type(enum GovernorAlpha.ProposalState)"}},"id":753,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Canceled","nodeType":"MemberAccess","referencedDeclaration":null,"src":"11060:22:0","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$113","typeString":"enum GovernorAlpha.ProposalState"}},"functionReturnParameters":732,"id":754,"nodeType":"Return","src":"11053:29:0"}]}}]},"documentation":null,"id":829,"implemented":true,"kind":"function","modifiers":[],"name":"state","nodeType":"FunctionDefinition","parameters":{"id":729,"nodeType":"ParameterList","parameters":[{"constant":false,"id":728,"name":"proposalId","nodeType":"VariableDeclaration","scope":829,"src":"10785:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":727,"name":"uint","nodeType":"ElementaryTypeName","src":"10785:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"10784:17:0"},"returnParameters":{"id":732,"nodeType":"ParameterList","parameters":[{"constant":false,"id":731,"name":"","nodeType":"VariableDeclaration","scope":829,"src":"10823:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$113","typeString":"enum GovernorAlpha.ProposalState"},"typeName":{"contractScope":null,"id":730,"name":"ProposalState","nodeType":"UserDefinedTypeName","referencedDeclaration":113,"src":"10823:13:0","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$113","typeString":"enum GovernorAlpha.ProposalState"}},"value":null,"visibility":"internal"}],"src":"10822:15:0"},"scope":1178,"src":"10770:1025:0","stateMutability":"view","superFunction":null,"visibility":"public"},{"body":{"id":843,"nodeType":"Block","src":"11857:66:0","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":837,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1267,"src":"11884:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":838,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"11884:10:0","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":839,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":831,"src":"11896:10:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":840,"name":"support","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":833,"src":"11908:7:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":836,"name":"_castVote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1022,"src":"11874:9:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bool_$returns$__$","typeString":"function (address,uint256,bool)"}},"id":841,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11874:42:0","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"functionReturnParameters":835,"id":842,"nodeType":"Return","src":"11867:49:0"}]},"documentation":null,"id":844,"implemented":true,"kind":"function","modifiers":[],"name":"castVote","nodeType":"FunctionDefinition","parameters":{"id":834,"nodeType":"ParameterList","parameters":[{"constant":false,"id":831,"name":"proposalId","nodeType":"VariableDeclaration","scope":844,"src":"11819:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":830,"name":"uint","nodeType":"ElementaryTypeName","src":"11819:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":833,"name":"support","nodeType":"VariableDeclaration","scope":844,"src":"11836:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":832,"name":"bool","nodeType":"ElementaryTypeName","src":"11836:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"11818:31:0"},"returnParameters":{"id":835,"nodeType":"ParameterList","parameters":[],"src":"11857:0:0"},"scope":1178,"src":"11801:122:0","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":922,"nodeType":"Block","src":"12021:548:0","statements":[{"assignments":[858],"declarations":[{"constant":false,"id":858,"name":"domainSeparator","nodeType":"VariableDeclaration","scope":922,"src":"12031:23:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":857,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12031:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"id":875,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":862,"name":"DOMAIN_TYPEHASH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":126,"src":"12091:15:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":865,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5,"src":"12124:4:0","typeDescriptions":{"typeIdentifier":"t_string_memory","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory","typeString":"string memory"}],"id":864,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12118:5:0","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":"bytes"},"id":866,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12118:11:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":863,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1261,"src":"12108:9:0","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":867,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12108:22:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"id":868,"name":"getChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1177,"src":"12132:10:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_uint256_$","typeString":"function () pure returns (uint256)"}},"id":869,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12132:12:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":871,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1281,"src":"12154:4:0","typeDescriptions":{"typeIdentifier":"t_contract$_GovernorAlpha_$1178","typeString":"contract GovernorAlpha"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GovernorAlpha_$1178","typeString":"contract GovernorAlpha"}],"id":870,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12146:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":872,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12146:13:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"argumentTypes":null,"id":860,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1254,"src":"12080:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":861,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","referencedDeclaration":null,"src":"12080:10:0","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":873,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12080:80:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":859,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1261,"src":"12057:9:0","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":874,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12057:113:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"12031:139:0"},{"assignments":[877],"declarations":[{"constant":false,"id":877,"name":"structHash","nodeType":"VariableDeclaration","scope":922,"src":"12180:18:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":876,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12180:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"id":886,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":881,"name":"BALLOT_TYPEHASH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":131,"src":"12222:15:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":882,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":846,"src":"12239:10:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":883,"name":"support","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":848,"src":"12251:7:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"argumentTypes":null,"id":879,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1254,"src":"12211:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":880,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","referencedDeclaration":null,"src":"12211:10:0","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":884,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12211:48:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":878,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1261,"src":"12201:9:0","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":885,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12201:59:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"12180:80:0"},{"assignments":[888],"declarations":[{"constant":false,"id":888,"name":"digest","nodeType":"VariableDeclaration","scope":922,"src":"12270:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":887,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12270:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"id":897,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"1901","id":892,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12314:10:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541","typeString":"literal_string \"\u0019\u0001\""},"value":"\u0019\u0001"},{"argumentTypes":null,"id":893,"name":"domainSeparator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":858,"src":"12326:15:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":894,"name":"structHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":877,"src":"12343:10:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541","typeString":"literal_string \"\u0019\u0001\""},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"argumentTypes":null,"id":890,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1254,"src":"12297:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":891,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","referencedDeclaration":null,"src":"12297:16:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":895,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12297:57:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":889,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1261,"src":"12287:9:0","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":896,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12287:68:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"12270:85:0"},{"assignments":[899],"declarations":[{"constant":false,"id":899,"name":"signatory","nodeType":"VariableDeclaration","scope":922,"src":"12365:17:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":898,"name":"address","nodeType":"ElementaryTypeName","src":"12365:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"id":906,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":901,"name":"digest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":888,"src":"12395:6:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":902,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":850,"src":"12403:1:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"argumentTypes":null,"id":903,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":852,"src":"12406:1:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":904,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":854,"src":"12409:1:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":900,"name":"ecrecover","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1259,"src":"12385:9:0","typeDescriptions":{"typeIdentifier":"t_function_ecrecover_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32,uint8,bytes32,bytes32) pure returns (address)"}},"id":905,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12385:26:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"12365:46:0"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":912,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":908,"name":"signatory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":899,"src":"12429:9:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":910,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12450:1:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":909,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12442:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":911,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12442:10:0","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"12429:23:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"476f7665726e6f72416c7068613a3a63617374566f746542795369673a20696e76616c6964207369676e6174757265","id":913,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12454:49:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_c0985792d8cb800c80e50f8ecca736cc3e54b8c9588453e723506f4e50d429f9","typeString":"literal_string \"GovernorAlpha::castVoteBySig: invalid signature\""},"value":"GovernorAlpha::castVoteBySig: invalid signature"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c0985792d8cb800c80e50f8ecca736cc3e54b8c9588453e723506f4e50d429f9","typeString":"literal_string \"GovernorAlpha::castVoteBySig: invalid signature\""}],"id":907,"name":"require","nodeType":"Identifier","overloadedDeclarations":[1270,1271],"referencedDeclaration":1271,"src":"12421:7:0","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":914,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12421:83:0","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":915,"nodeType":"ExpressionStatement","src":"12421:83:0"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":917,"name":"signatory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":899,"src":"12531:9:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":918,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":846,"src":"12542:10:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":919,"name":"support","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":848,"src":"12554:7:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":916,"name":"_castVote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1022,"src":"12521:9:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bool_$returns$__$","typeString":"function (address,uint256,bool)"}},"id":920,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12521:41:0","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"functionReturnParameters":856,"id":921,"nodeType":"Return","src":"12514:48:0"}]},"documentation":null,"id":923,"implemented":true,"kind":"function","modifiers":[],"name":"castVoteBySig","nodeType":"FunctionDefinition","parameters":{"id":855,"nodeType":"ParameterList","parameters":[{"constant":false,"id":846,"name":"proposalId","nodeType":"VariableDeclaration","scope":923,"src":"11952:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":845,"name":"uint","nodeType":"ElementaryTypeName","src":"11952:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":848,"name":"support","nodeType":"VariableDeclaration","scope":923,"src":"11969:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":847,"name":"bool","nodeType":"ElementaryTypeName","src":"11969:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"},{"constant":false,"id":850,"name":"v","nodeType":"VariableDeclaration","scope":923,"src":"11983:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":849,"name":"uint8","nodeType":"ElementaryTypeName","src":"11983:5:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":null,"visibility":"internal"},{"constant":false,"id":852,"name":"r","nodeType":"VariableDeclaration","scope":923,"src":"11992:9:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":851,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11992:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":854,"name":"s","nodeType":"VariableDeclaration","scope":923,"src":"12003:9:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":853,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12003:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"11951:62:0"},"returnParameters":{"id":856,"nodeType":"ParameterList","parameters":[],"src":"12021:0:0"},"scope":1178,"src":"11929:640:0","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":1021,"nodeType":"Block","src":"12649:745:0","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_enum$_ProposalState_$113","typeString":"enum GovernorAlpha.ProposalState"},"id":938,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":934,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":927,"src":"12673:10:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":933,"name":"state","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":829,"src":"12667:5:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_enum$_ProposalState_$113_$","typeString":"function (uint256) view returns (enum GovernorAlpha.ProposalState)"}},"id":935,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12667:17:0","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$113","typeString":"enum GovernorAlpha.ProposalState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":936,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":113,"src":"12688:13:0","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$113_$","typeString":"type(enum GovernorAlpha.ProposalState)"}},"id":937,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Active","nodeType":"MemberAccess","referencedDeclaration":null,"src":"12688:20:0","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$113","typeString":"enum GovernorAlpha.ProposalState"}},"src":"12667:41:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"476f7665726e6f72416c7068613a3a5f63617374566f74653a20766f74696e6720697320636c6f736564","id":939,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12710:44:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_eede0aeb04f75d58f89f0b84608a4108da079ec9b462189375bbf8fd7e8edbaa","typeString":"literal_string \"GovernorAlpha::_castVote: voting is closed\""},"value":"GovernorAlpha::_castVote: voting is closed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_eede0aeb04f75d58f89f0b84608a4108da079ec9b462189375bbf8fd7e8edbaa","typeString":"literal_string \"GovernorAlpha::_castVote: voting is closed\""}],"id":932,"name":"require","nodeType":"Identifier","overloadedDeclarations":[1270,1271],"referencedDeclaration":1271,"src":"12659:7:0","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":940,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12659:96:0","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":941,"nodeType":"ExpressionStatement","src":"12659:96:0"},{"assignments":[943],"declarations":[{"constant":false,"id":943,"name":"proposal","nodeType":"VariableDeclaration","scope":1021,"src":"12765:25:0","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$97_storage_ptr","typeString":"struct GovernorAlpha.Proposal"},"typeName":{"contractScope":null,"id":942,"name":"Proposal","nodeType":"UserDefinedTypeName","referencedDeclaration":97,"src":"12765:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$97_storage_ptr","typeString":"struct GovernorAlpha.Proposal"}},"value":null,"visibility":"internal"}],"id":947,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":944,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":117,"src":"12793:9:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$97_storage_$","typeString":"mapping(uint256 => struct GovernorAlpha.Proposal storage ref)"}},"id":946,"indexExpression":{"argumentTypes":null,"id":945,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":927,"src":"12803:10:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12793:21:0","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$97_storage","typeString":"struct GovernorAlpha.Proposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"12765:49:0"},{"assignments":[949],"declarations":[{"constant":false,"id":949,"name":"receipt","nodeType":"VariableDeclaration","scope":1021,"src":"12824:23:0","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$104_storage_ptr","typeString":"struct GovernorAlpha.Receipt"},"typeName":{"contractScope":null,"id":948,"name":"Receipt","nodeType":"UserDefinedTypeName","referencedDeclaration":104,"src":"12824:7:0","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$104_storage_ptr","typeString":"struct GovernorAlpha.Receipt"}},"value":null,"visibility":"internal"}],"id":954,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":950,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":943,"src":"12850:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$97_storage_ptr","typeString":"struct GovernorAlpha.Proposal storage pointer"}},"id":951,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"receipts","nodeType":"MemberAccess","referencedDeclaration":96,"src":"12850:17:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Receipt_$104_storage_$","typeString":"mapping(address => struct GovernorAlpha.Receipt storage ref)"}},"id":953,"indexExpression":{"argumentTypes":null,"id":952,"name":"voter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":925,"src":"12868:5:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12850:24:0","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$104_storage","typeString":"struct GovernorAlpha.Receipt storage ref"}},"nodeType":"VariableDeclarationStatement","src":"12824:50:0"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":959,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":956,"name":"receipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":949,"src":"12892:7:0","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$104_storage_ptr","typeString":"struct GovernorAlpha.Receipt storage pointer"}},"id":957,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"hasVoted","nodeType":"MemberAccess","referencedDeclaration":99,"src":"12892:16:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"66616c7365","id":958,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"12912:5:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"12892:25:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"476f7665726e6f72416c7068613a3a5f63617374566f74653a20766f74657220616c726561647920766f746564","id":960,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12919:47:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_5b6e843e3ab725378b7b68db9a8698ac55194c56a0430edac6725cbe558ee624","typeString":"literal_string \"GovernorAlpha::_castVote: voter already voted\""},"value":"GovernorAlpha::_castVote: voter already voted"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5b6e843e3ab725378b7b68db9a8698ac55194c56a0430edac6725cbe558ee624","typeString":"literal_string \"GovernorAlpha::_castVote: voter already voted\""}],"id":955,"name":"require","nodeType":"Identifier","overloadedDeclarations":[1270,1271],"referencedDeclaration":1271,"src":"12884:7:0","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":961,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12884:83:0","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":962,"nodeType":"ExpressionStatement","src":"12884:83:0"},{"assignments":[964],"declarations":[{"constant":false,"id":964,"name":"votes","nodeType":"VariableDeclaration","scope":1021,"src":"12977:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":963,"name":"uint96","nodeType":"ElementaryTypeName","src":"12977:6:0","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"value":null,"visibility":"internal"}],"id":971,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":967,"name":"voter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":925,"src":"13010:5:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":968,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":943,"src":"13017:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$97_storage_ptr","typeString":"struct GovernorAlpha.Proposal storage pointer"}},"id":969,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"startBlock","nodeType":"MemberAccess","referencedDeclaration":82,"src":"13017:19:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":965,"name":"xvs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"12992:3:0","typeDescriptions":{"typeIdentifier":"t_contract$_XVSInterface_$1252","typeString":"contract XVSInterface"}},"id":966,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getPriorVotes","nodeType":"MemberAccess","referencedDeclaration":1251,"src":"12992:17:0","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_uint256_$returns$_t_uint96_$","typeString":"function (address,uint256) view external returns (uint96)"}},"id":970,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12992:45:0","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"nodeType":"VariableDeclarationStatement","src":"12977:60:0"},{"condition":{"argumentTypes":null,"id":972,"name":"support","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":929,"src":"13052:7:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":994,"nodeType":"Block","src":"13144:85:0","statements":[{"expression":{"argumentTypes":null,"id":992,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":984,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":943,"src":"13158:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$97_storage_ptr","typeString":"struct GovernorAlpha.Proposal storage pointer"}},"id":986,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"againstVotes","nodeType":"MemberAccess","referencedDeclaration":88,"src":"13158:21:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":988,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":943,"src":"13189:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$97_storage_ptr","typeString":"struct GovernorAlpha.Proposal storage pointer"}},"id":989,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"againstVotes","nodeType":"MemberAccess","referencedDeclaration":88,"src":"13189:21:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":990,"name":"votes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":964,"src":"13212:5:0","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint96","typeString":"uint96"}],"id":987,"name":"add256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1144,"src":"13182:6:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":991,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13182:36:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13158:60:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":993,"nodeType":"ExpressionStatement","src":"13158:60:0"}]},"id":995,"nodeType":"IfStatement","src":"13048:181:0","trueBody":{"id":983,"nodeType":"Block","src":"13061:77:0","statements":[{"expression":{"argumentTypes":null,"id":981,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":973,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":943,"src":"13075:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$97_storage_ptr","typeString":"struct GovernorAlpha.Proposal storage pointer"}},"id":975,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"forVotes","nodeType":"MemberAccess","referencedDeclaration":86,"src":"13075:17:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":977,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":943,"src":"13102:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$97_storage_ptr","typeString":"struct GovernorAlpha.Proposal storage pointer"}},"id":978,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"forVotes","nodeType":"MemberAccess","referencedDeclaration":86,"src":"13102:17:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":979,"name":"votes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":964,"src":"13121:5:0","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint96","typeString":"uint96"}],"id":976,"name":"add256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1144,"src":"13095:6:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":980,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13095:32:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13075:52:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":982,"nodeType":"ExpressionStatement","src":"13075:52:0"}]}},{"expression":{"argumentTypes":null,"id":1000,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":996,"name":"receipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":949,"src":"13239:7:0","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$104_storage_ptr","typeString":"struct GovernorAlpha.Receipt storage pointer"}},"id":998,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"hasVoted","nodeType":"MemberAccess","referencedDeclaration":99,"src":"13239:16:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"hexValue":"74727565","id":999,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"13258:4:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"13239:23:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1001,"nodeType":"ExpressionStatement","src":"13239:23:0"},{"expression":{"argumentTypes":null,"id":1006,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1002,"name":"receipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":949,"src":"13272:7:0","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$104_storage_ptr","typeString":"struct GovernorAlpha.Receipt storage pointer"}},"id":1004,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"support","nodeType":"MemberAccess","referencedDeclaration":101,"src":"13272:15:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":1005,"name":"support","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":929,"src":"13290:7:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"13272:25:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1007,"nodeType":"ExpressionStatement","src":"13272:25:0"},{"expression":{"argumentTypes":null,"id":1012,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1008,"name":"receipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":949,"src":"13307:7:0","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$104_storage_ptr","typeString":"struct GovernorAlpha.Receipt storage pointer"}},"id":1010,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"votes","nodeType":"MemberAccess","referencedDeclaration":103,"src":"13307:13:0","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":1011,"name":"votes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":964,"src":"13323:5:0","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"src":"13307:21:0","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"id":1013,"nodeType":"ExpressionStatement","src":"13307:21:0"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1015,"name":"voter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":925,"src":"13353:5:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":1016,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":927,"src":"13360:10:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":1017,"name":"support","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":929,"src":"13372:7:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"id":1018,"name":"votes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":964,"src":"13381:5:0","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint96","typeString":"uint96"}],"id":1014,"name":"VoteCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":165,"src":"13344:8:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_bool_$_t_uint256_$returns$__$","typeString":"function (address,uint256,bool,uint256)"}},"id":1019,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13344:43:0","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1020,"nodeType":"EmitStatement","src":"13339:48:0"}]},"documentation":null,"id":1022,"implemented":true,"kind":"function","modifiers":[],"name":"_castVote","nodeType":"FunctionDefinition","parameters":{"id":930,"nodeType":"ParameterList","parameters":[{"constant":false,"id":925,"name":"voter","nodeType":"VariableDeclaration","scope":1022,"src":"12594:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":924,"name":"address","nodeType":"ElementaryTypeName","src":"12594:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":927,"name":"proposalId","nodeType":"VariableDeclaration","scope":1022,"src":"12609:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":926,"name":"uint","nodeType":"ElementaryTypeName","src":"12609:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":929,"name":"support","nodeType":"VariableDeclaration","scope":1022,"src":"12626:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":928,"name":"bool","nodeType":"ElementaryTypeName","src":"12626:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"12593:46:0"},"returnParameters":{"id":931,"nodeType":"ParameterList","parameters":[],"src":"12649:0:0"},"scope":1178,"src":"12575:819:0","stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},{"body":{"id":1038,"nodeType":"Block","src":"13432:141:0","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1029,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1026,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1267,"src":"13450:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1027,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"13450:10:0","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"id":1028,"name":"guardian","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60,"src":"13464:8:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"13450:22:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"476f7665726e6f72416c7068613a3a5f5f61636365707441646d696e3a2073656e646572206d75737420626520676f7620677561726469616e","id":1030,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13474:59:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_016a9c33adb814217df364e9cf73255610a85b9a37c739ee6a963286d80bad8d","typeString":"literal_string \"GovernorAlpha::__acceptAdmin: sender must be gov guardian\""},"value":"GovernorAlpha::__acceptAdmin: sender must be gov guardian"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_016a9c33adb814217df364e9cf73255610a85b9a37c739ee6a963286d80bad8d","typeString":"literal_string \"GovernorAlpha::__acceptAdmin: sender must be gov guardian\""}],"id":1025,"name":"require","nodeType":"Identifier","overloadedDeclarations":[1270,1271],"referencedDeclaration":1271,"src":"13442:7:0","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1031,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13442:92:0","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1032,"nodeType":"ExpressionStatement","src":"13442:92:0"},{"expression":{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"id":1033,"name":"timelock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56,"src":"13544:8:0","typeDescriptions":{"typeIdentifier":"t_contract$_TimelockInterface_$1242","typeString":"contract TimelockInterface"}},"id":1035,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"acceptAdmin","nodeType":"MemberAccess","referencedDeclaration":1191,"src":"13544:20:0","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":1036,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13544:22:0","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1037,"nodeType":"ExpressionStatement","src":"13544:22:0"}]},"documentation":null,"id":1039,"implemented":true,"kind":"function","modifiers":[],"name":"__acceptAdmin","nodeType":"FunctionDefinition","parameters":{"id":1023,"nodeType":"ParameterList","parameters":[],"src":"13422:2:0"},"returnParameters":{"id":1024,"nodeType":"ParameterList","parameters":[],"src":"13432:0:0"},"scope":1178,"src":"13400:173:0","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":1056,"nodeType":"Block","src":"13608:137:0","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1046,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1043,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1267,"src":"13626:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1044,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"13626:10:0","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"id":1045,"name":"guardian","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60,"src":"13640:8:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"13626:22:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"476f7665726e6f72416c7068613a3a5f5f61626469636174653a2073656e646572206d75737420626520676f7620677561726469616e","id":1047,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13650:56:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_f49e8b1dd028b5b562eda6ed4c810daf6cab5676cccf064826e3309bfa24f25f","typeString":"literal_string \"GovernorAlpha::__abdicate: sender must be gov guardian\""},"value":"GovernorAlpha::__abdicate: sender must be gov guardian"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f49e8b1dd028b5b562eda6ed4c810daf6cab5676cccf064826e3309bfa24f25f","typeString":"literal_string \"GovernorAlpha::__abdicate: sender must be gov guardian\""}],"id":1042,"name":"require","nodeType":"Identifier","overloadedDeclarations":[1270,1271],"referencedDeclaration":1271,"src":"13618:7:0","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1048,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13618:89:0","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1049,"nodeType":"ExpressionStatement","src":"13618:89:0"},{"expression":{"argumentTypes":null,"id":1054,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":1050,"name":"guardian","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60,"src":"13717:8:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":1052,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13736:1:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1051,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13728:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":1053,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13728:10:0","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"13717:21:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1055,"nodeType":"ExpressionStatement","src":"13717:21:0"}]},"documentation":null,"id":1057,"implemented":true,"kind":"function","modifiers":[],"name":"__abdicate","nodeType":"FunctionDefinition","parameters":{"id":1040,"nodeType":"ParameterList","parameters":[],"src":"13598:2:0"},"returnParameters":{"id":1041,"nodeType":"ParameterList","parameters":[],"src":"13608:0:0"},"scope":1178,"src":"13579:166:0","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":1087,"nodeType":"Block","src":"13833:245:0","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1068,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1065,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1267,"src":"13851:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1066,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"13851:10:0","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"id":1067,"name":"guardian","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60,"src":"13865:8:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"13851:22:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"476f7665726e6f72416c7068613a3a5f5f717565756553657454696d656c6f636b50656e64696e6741646d696e3a2073656e646572206d75737420626520676f7620677561726469616e","id":1069,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13875:76:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_71f6b53ee5a3d54940ff41e9a266ac547055c56b1388a7e8abdebb7afb4a7b7e","typeString":"literal_string \"GovernorAlpha::__queueSetTimelockPendingAdmin: sender must be gov guardian\""},"value":"GovernorAlpha::__queueSetTimelockPendingAdmin: sender must be gov guardian"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_71f6b53ee5a3d54940ff41e9a266ac547055c56b1388a7e8abdebb7afb4a7b7e","typeString":"literal_string \"GovernorAlpha::__queueSetTimelockPendingAdmin: sender must be gov guardian\""}],"id":1064,"name":"require","nodeType":"Identifier","overloadedDeclarations":[1270,1271],"referencedDeclaration":1271,"src":"13843:7:0","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1070,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13843:109:0","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1071,"nodeType":"ExpressionStatement","src":"13843:109:0"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1076,"name":"timelock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56,"src":"13996:8:0","typeDescriptions":{"typeIdentifier":"t_contract$_TimelockInterface_$1242","typeString":"contract TimelockInterface"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_TimelockInterface_$1242","typeString":"contract TimelockInterface"}],"id":1075,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13988:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":1077,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13988:17:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"hexValue":"30","id":1078,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14007:1:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"argumentTypes":null,"hexValue":"73657450656e64696e6741646d696e286164647265737329","id":1079,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14010:26:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_4dd18bf55ce7f29dcfaf98cdd1107659d19d0be3b61dbef73e05ac221f0e8e28","typeString":"literal_string \"setPendingAdmin(address)\""},"value":"setPendingAdmin(address)"},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1082,"name":"newPendingAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1059,"src":"14049:15:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"argumentTypes":null,"id":1080,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1254,"src":"14038:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":1081,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","referencedDeclaration":null,"src":"14038:10:0","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":1083,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14038:27:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"argumentTypes":null,"id":1084,"name":"eta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1061,"src":"14067:3:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_stringliteral_4dd18bf55ce7f29dcfaf98cdd1107659d19d0be3b61dbef73e05ac221f0e8e28","typeString":"literal_string \"setPendingAdmin(address)\""},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":1072,"name":"timelock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56,"src":"13962:8:0","typeDescriptions":{"typeIdentifier":"t_contract$_TimelockInterface_$1242","typeString":"contract TimelockInterface"}},"id":1074,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"queueTransaction","nodeType":"MemberAccess","referencedDeclaration":1213,"src":"13962:25:0","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$_t_string_memory_ptr_$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bytes32_$","typeString":"function (address,uint256,string memory,bytes memory,uint256) external returns (bytes32)"}},"id":1085,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13962:109:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":1086,"nodeType":"ExpressionStatement","src":"13962:109:0"}]},"documentation":null,"id":1088,"implemented":true,"kind":"function","modifiers":[],"name":"__queueSetTimelockPendingAdmin","nodeType":"FunctionDefinition","parameters":{"id":1062,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1059,"name":"newPendingAdmin","nodeType":"VariableDeclaration","scope":1088,"src":"13791:23:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1058,"name":"address","nodeType":"ElementaryTypeName","src":"13791:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":1061,"name":"eta","nodeType":"VariableDeclaration","scope":1088,"src":"13816:8:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1060,"name":"uint","nodeType":"ElementaryTypeName","src":"13816:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"13790:35:0"},"returnParameters":{"id":1063,"nodeType":"ParameterList","parameters":[],"src":"13833:0:0"},"scope":1178,"src":"13751:327:0","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":1118,"nodeType":"Block","src":"14168:249:0","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1099,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1096,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1267,"src":"14186:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1097,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"14186:10:0","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"id":1098,"name":"guardian","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60,"src":"14200:8:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"14186:22:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"476f7665726e6f72416c7068613a3a5f5f6578656375746553657454696d656c6f636b50656e64696e6741646d696e3a2073656e646572206d75737420626520676f7620677561726469616e","id":1100,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14210:78:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_3875e14bb9041148a3cf495f55cd1888ac6ea09fddd60712f1ffe3da9b3d0cbf","typeString":"literal_string \"GovernorAlpha::__executeSetTimelockPendingAdmin: sender must be gov guardian\""},"value":"GovernorAlpha::__executeSetTimelockPendingAdmin: sender must be gov guardian"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3875e14bb9041148a3cf495f55cd1888ac6ea09fddd60712f1ffe3da9b3d0cbf","typeString":"literal_string \"GovernorAlpha::__executeSetTimelockPendingAdmin: sender must be gov guardian\""}],"id":1095,"name":"require","nodeType":"Identifier","overloadedDeclarations":[1270,1271],"referencedDeclaration":1271,"src":"14178:7:0","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1101,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14178:111:0","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1102,"nodeType":"ExpressionStatement","src":"14178:111:0"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1107,"name":"timelock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56,"src":"14335:8:0","typeDescriptions":{"typeIdentifier":"t_contract$_TimelockInterface_$1242","typeString":"contract TimelockInterface"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_TimelockInterface_$1242","typeString":"contract TimelockInterface"}],"id":1106,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14327:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":1108,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14327:17:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"hexValue":"30","id":1109,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14346:1:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"argumentTypes":null,"hexValue":"73657450656e64696e6741646d696e286164647265737329","id":1110,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14349:26:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_4dd18bf55ce7f29dcfaf98cdd1107659d19d0be3b61dbef73e05ac221f0e8e28","typeString":"literal_string \"setPendingAdmin(address)\""},"value":"setPendingAdmin(address)"},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1113,"name":"newPendingAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1090,"src":"14388:15:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"argumentTypes":null,"id":1111,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1254,"src":"14377:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":1112,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","referencedDeclaration":null,"src":"14377:10:0","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":1114,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14377:27:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"argumentTypes":null,"id":1115,"name":"eta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1092,"src":"14406:3:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_stringliteral_4dd18bf55ce7f29dcfaf98cdd1107659d19d0be3b61dbef73e05ac221f0e8e28","typeString":"literal_string \"setPendingAdmin(address)\""},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":1103,"name":"timelock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56,"src":"14299:8:0","typeDescriptions":{"typeIdentifier":"t_contract$_TimelockInterface_$1242","typeString":"contract TimelockInterface"}},"id":1105,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"executeTransaction","nodeType":"MemberAccess","referencedDeclaration":1241,"src":"14299:27:0","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_address_$_t_uint256_$_t_string_memory_ptr_$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,uint256,string memory,bytes memory,uint256) payable external returns (bytes memory)"}},"id":1116,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14299:111:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1117,"nodeType":"ExpressionStatement","src":"14299:111:0"}]},"documentation":null,"id":1119,"implemented":true,"kind":"function","modifiers":[],"name":"__executeSetTimelockPendingAdmin","nodeType":"FunctionDefinition","parameters":{"id":1093,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1090,"name":"newPendingAdmin","nodeType":"VariableDeclaration","scope":1119,"src":"14126:23:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1089,"name":"address","nodeType":"ElementaryTypeName","src":"14126:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":1092,"name":"eta","nodeType":"VariableDeclaration","scope":1119,"src":"14151:8:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1091,"name":"uint","nodeType":"ElementaryTypeName","src":"14151:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"14125:35:0"},"returnParameters":{"id":1094,"nodeType":"ParameterList","parameters":[],"src":"14168:0:0"},"scope":1178,"src":"14084:333:0","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":1143,"nodeType":"Block","src":"14490:95:0","statements":[{"assignments":[1129],"declarations":[{"constant":false,"id":1129,"name":"c","nodeType":"VariableDeclaration","scope":1143,"src":"14500:6:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1128,"name":"uint","nodeType":"ElementaryTypeName","src":"14500:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":1133,"initialValue":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1132,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":1130,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1121,"src":"14509:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"argumentTypes":null,"id":1131,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1123,"src":"14513:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14509:5:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"14500:14:0"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1137,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":1135,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1129,"src":"14532:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"argumentTypes":null,"id":1136,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1121,"src":"14537:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14532:6:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"6164646974696f6e206f766572666c6f77","id":1138,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14540:19:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_8c0d96e929759368d857f737222dcb6a5217a09dbc29c3e61addc531fdea00f5","typeString":"literal_string \"addition overflow\""},"value":"addition overflow"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_8c0d96e929759368d857f737222dcb6a5217a09dbc29c3e61addc531fdea00f5","typeString":"literal_string \"addition overflow\""}],"id":1134,"name":"require","nodeType":"Identifier","overloadedDeclarations":[1270,1271],"referencedDeclaration":1271,"src":"14524:7:0","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1139,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14524:36:0","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1140,"nodeType":"ExpressionStatement","src":"14524:36:0"},{"expression":{"argumentTypes":null,"id":1141,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1129,"src":"14577:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":1127,"id":1142,"nodeType":"Return","src":"14570:8:0"}]},"documentation":null,"id":1144,"implemented":true,"kind":"function","modifiers":[],"name":"add256","nodeType":"FunctionDefinition","parameters":{"id":1124,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1121,"name":"a","nodeType":"VariableDeclaration","scope":1144,"src":"14439:9:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1120,"name":"uint256","nodeType":"ElementaryTypeName","src":"14439:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":1123,"name":"b","nodeType":"VariableDeclaration","scope":1144,"src":"14450:9:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1122,"name":"uint256","nodeType":"ElementaryTypeName","src":"14450:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"14438:22:0"},"returnParameters":{"id":1127,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1126,"name":"","nodeType":"VariableDeclaration","scope":1144,"src":"14484:4:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1125,"name":"uint","nodeType":"ElementaryTypeName","src":"14484:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"14483:6:0"},"scope":1178,"src":"14423:162:0","stateMutability":"pure","superFunction":null,"visibility":"internal"},{"body":{"id":1164,"nodeType":"Block","src":"14658:79:0","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1156,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":1154,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1148,"src":"14676:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"argumentTypes":null,"id":1155,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1146,"src":"14681:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14676:6:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"7375627472616374696f6e20756e646572666c6f77","id":1157,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14684:23:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_f22f6b3017af2aff30fb71d5e8f8adc6cd3022431e6fc88c01d6d8b2adb30f31","typeString":"literal_string \"subtraction underflow\""},"value":"subtraction underflow"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f22f6b3017af2aff30fb71d5e8f8adc6cd3022431e6fc88c01d6d8b2adb30f31","typeString":"literal_string \"subtraction underflow\""}],"id":1153,"name":"require","nodeType":"Identifier","overloadedDeclarations":[1270,1271],"referencedDeclaration":1271,"src":"14668:7:0","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1158,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14668:40:0","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1159,"nodeType":"ExpressionStatement","src":"14668:40:0"},{"expression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1162,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":1160,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1146,"src":"14725:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"argumentTypes":null,"id":1161,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1148,"src":"14729:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14725:5:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":1152,"id":1163,"nodeType":"Return","src":"14718:12:0"}]},"documentation":null,"id":1165,"implemented":true,"kind":"function","modifiers":[],"name":"sub256","nodeType":"FunctionDefinition","parameters":{"id":1149,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1146,"name":"a","nodeType":"VariableDeclaration","scope":1165,"src":"14607:9:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1145,"name":"uint256","nodeType":"ElementaryTypeName","src":"14607:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":1148,"name":"b","nodeType":"VariableDeclaration","scope":1165,"src":"14618:9:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1147,"name":"uint256","nodeType":"ElementaryTypeName","src":"14618:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"14606:22:0"},"returnParameters":{"id":1152,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1151,"name":"","nodeType":"VariableDeclaration","scope":1165,"src":"14652:4:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1150,"name":"uint","nodeType":"ElementaryTypeName","src":"14652:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"14651:6:0"},"scope":1178,"src":"14591:146:0","stateMutability":"pure","superFunction":null,"visibility":"internal"},{"body":{"id":1176,"nodeType":"Block","src":"14794:115:0","statements":[{"assignments":[1171],"declarations":[{"constant":false,"id":1171,"name":"chainId","nodeType":"VariableDeclaration","scope":1176,"src":"14804:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1170,"name":"uint","nodeType":"ElementaryTypeName","src":"14804:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":1172,"initialValue":null,"nodeType":"VariableDeclarationStatement","src":"14804:12:0"},{"externalReferences":[{"chainId":{"declaration":1171,"isOffset":false,"isSlot":false,"src":"14849:7:0","valueSize":1}}],"id":1173,"nodeType":"InlineAssembly","operations":"{ chainId := chainid() }","src":"14826:53:0"},{"expression":{"argumentTypes":null,"id":1174,"name":"chainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1171,"src":"14895:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":1169,"id":1175,"nodeType":"Return","src":"14888:14:0"}]},"documentation":null,"id":1177,"implemented":true,"kind":"function","modifiers":[],"name":"getChainId","nodeType":"FunctionDefinition","parameters":{"id":1166,"nodeType":"ParameterList","parameters":[],"src":"14762:2:0"},"returnParameters":{"id":1169,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1168,"name":"","nodeType":"VariableDeclaration","scope":1177,"src":"14788:4:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1167,"name":"uint","nodeType":"ElementaryTypeName","src":"14788:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"14787:6:0"},"scope":1178,"src":"14743:166:0","stateMutability":"pure","superFunction":null,"visibility":"internal"}],"scope":1253,"src":"60:14851:0"},{"baseContracts":[],"contractDependencies":[],"contractKind":"interface","documentation":null,"fullyImplemented":false,"id":1242,"linearizedBaseContracts":[1242],"name":"TimelockInterface","nodeType":"ContractDefinition","nodes":[{"body":null,"documentation":null,"id":1183,"implemented":false,"kind":"function","modifiers":[],"name":"delay","nodeType":"FunctionDefinition","parameters":{"id":1179,"nodeType":"ParameterList","parameters":[],"src":"14961:2:0"},"returnParameters":{"id":1182,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1181,"name":"","nodeType":"VariableDeclaration","scope":1183,"src":"14987:4:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1180,"name":"uint","nodeType":"ElementaryTypeName","src":"14987:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"14986:6:0"},"scope":1242,"src":"14947:46:0","stateMutability":"view","superFunction":null,"visibility":"external"},{"body":null,"documentation":null,"id":1188,"implemented":false,"kind":"function","modifiers":[],"name":"GRACE_PERIOD","nodeType":"FunctionDefinition","parameters":{"id":1184,"nodeType":"ParameterList","parameters":[],"src":"15020:2:0"},"returnParameters":{"id":1187,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1186,"name":"","nodeType":"VariableDeclaration","scope":1188,"src":"15046:4:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1185,"name":"uint","nodeType":"ElementaryTypeName","src":"15046:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"15045:6:0"},"scope":1242,"src":"14999:53:0","stateMutability":"view","superFunction":null,"visibility":"external"},{"body":null,"documentation":null,"id":1191,"implemented":false,"kind":"function","modifiers":[],"name":"acceptAdmin","nodeType":"FunctionDefinition","parameters":{"id":1189,"nodeType":"ParameterList","parameters":[],"src":"15078:2:0"},"returnParameters":{"id":1190,"nodeType":"ParameterList","parameters":[],"src":"15089:0:0"},"scope":1242,"src":"15058:32:0","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":null,"documentation":null,"id":1198,"implemented":false,"kind":"function","modifiers":[],"name":"queuedTransactions","nodeType":"FunctionDefinition","parameters":{"id":1194,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1193,"name":"hash","nodeType":"VariableDeclaration","scope":1198,"src":"15124:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1192,"name":"bytes32","nodeType":"ElementaryTypeName","src":"15124:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"15123:14:0"},"returnParameters":{"id":1197,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1196,"name":"","nodeType":"VariableDeclaration","scope":1198,"src":"15161:4:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1195,"name":"bool","nodeType":"ElementaryTypeName","src":"15161:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"15160:6:0"},"scope":1242,"src":"15096:71:0","stateMutability":"view","superFunction":null,"visibility":"external"},{"body":null,"documentation":null,"id":1213,"implemented":false,"kind":"function","modifiers":[],"name":"queueTransaction","nodeType":"FunctionDefinition","parameters":{"id":1209,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1200,"name":"target","nodeType":"VariableDeclaration","scope":1213,"src":"15208:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1199,"name":"address","nodeType":"ElementaryTypeName","src":"15208:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":1202,"name":"value","nodeType":"VariableDeclaration","scope":1213,"src":"15232:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1201,"name":"uint","nodeType":"ElementaryTypeName","src":"15232:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":1204,"name":"signature","nodeType":"VariableDeclaration","scope":1213,"src":"15252:25:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":1203,"name":"string","nodeType":"ElementaryTypeName","src":"15252:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"},{"constant":false,"id":1206,"name":"data","nodeType":"VariableDeclaration","scope":1213,"src":"15287:19:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1205,"name":"bytes","nodeType":"ElementaryTypeName","src":"15287:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":null,"visibility":"internal"},{"constant":false,"id":1208,"name":"eta","nodeType":"VariableDeclaration","scope":1213,"src":"15316:8:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1207,"name":"uint","nodeType":"ElementaryTypeName","src":"15316:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"15198:132:0"},"returnParameters":{"id":1212,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1211,"name":"","nodeType":"VariableDeclaration","scope":1213,"src":"15349:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1210,"name":"bytes32","nodeType":"ElementaryTypeName","src":"15349:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"15348:9:0"},"scope":1242,"src":"15173:185:0","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":null,"documentation":null,"id":1226,"implemented":false,"kind":"function","modifiers":[],"name":"cancelTransaction","nodeType":"FunctionDefinition","parameters":{"id":1224,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1215,"name":"target","nodeType":"VariableDeclaration","scope":1226,"src":"15400:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1214,"name":"address","nodeType":"ElementaryTypeName","src":"15400:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":1217,"name":"value","nodeType":"VariableDeclaration","scope":1226,"src":"15424:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1216,"name":"uint","nodeType":"ElementaryTypeName","src":"15424:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":1219,"name":"signature","nodeType":"VariableDeclaration","scope":1226,"src":"15444:25:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":1218,"name":"string","nodeType":"ElementaryTypeName","src":"15444:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"},{"constant":false,"id":1221,"name":"data","nodeType":"VariableDeclaration","scope":1226,"src":"15479:19:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1220,"name":"bytes","nodeType":"ElementaryTypeName","src":"15479:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":null,"visibility":"internal"},{"constant":false,"id":1223,"name":"eta","nodeType":"VariableDeclaration","scope":1226,"src":"15508:8:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1222,"name":"uint","nodeType":"ElementaryTypeName","src":"15508:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"15390:132:0"},"returnParameters":{"id":1225,"nodeType":"ParameterList","parameters":[],"src":"15531:0:0"},"scope":1242,"src":"15364:168:0","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":null,"documentation":null,"id":1241,"implemented":false,"kind":"function","modifiers":[],"name":"executeTransaction","nodeType":"FunctionDefinition","parameters":{"id":1237,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1228,"name":"target","nodeType":"VariableDeclaration","scope":1241,"src":"15575:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1227,"name":"address","nodeType":"ElementaryTypeName","src":"15575:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":1230,"name":"value","nodeType":"VariableDeclaration","scope":1241,"src":"15599:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1229,"name":"uint","nodeType":"ElementaryTypeName","src":"15599:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":1232,"name":"signature","nodeType":"VariableDeclaration","scope":1241,"src":"15619:25:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":1231,"name":"string","nodeType":"ElementaryTypeName","src":"15619:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"},{"constant":false,"id":1234,"name":"data","nodeType":"VariableDeclaration","scope":1241,"src":"15654:19:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1233,"name":"bytes","nodeType":"ElementaryTypeName","src":"15654:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":null,"visibility":"internal"},{"constant":false,"id":1236,"name":"eta","nodeType":"VariableDeclaration","scope":1241,"src":"15683:8:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1235,"name":"uint","nodeType":"ElementaryTypeName","src":"15683:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"15565:132:0"},"returnParameters":{"id":1240,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1239,"name":"","nodeType":"VariableDeclaration","scope":1241,"src":"15724:12:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1238,"name":"bytes","nodeType":"ElementaryTypeName","src":"15724:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":null,"visibility":"internal"}],"src":"15723:14:0"},"scope":1242,"src":"15538:200:0","stateMutability":"payable","superFunction":null,"visibility":"external"}],"scope":1253,"src":"14913:827:0"},{"baseContracts":[],"contractDependencies":[],"contractKind":"interface","documentation":null,"fullyImplemented":false,"id":1252,"linearizedBaseContracts":[1252],"name":"XVSInterface","nodeType":"ContractDefinition","nodes":[{"body":null,"documentation":null,"id":1251,"implemented":false,"kind":"function","modifiers":[],"name":"getPriorVotes","nodeType":"FunctionDefinition","parameters":{"id":1247,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1244,"name":"account","nodeType":"VariableDeclaration","scope":1251,"src":"15794:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1243,"name":"address","nodeType":"ElementaryTypeName","src":"15794:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":1246,"name":"blockNumber","nodeType":"VariableDeclaration","scope":1251,"src":"15811:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1245,"name":"uint","nodeType":"ElementaryTypeName","src":"15811:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"15793:35:0"},"returnParameters":{"id":1250,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1249,"name":"","nodeType":"VariableDeclaration","scope":1251,"src":"15852:6:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":1248,"name":"uint96","nodeType":"ElementaryTypeName","src":"15852:6:0","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"value":null,"visibility":"internal"}],"src":"15851:8:0"},"scope":1252,"src":"15771:89:0","stateMutability":"view","superFunction":null,"visibility":"external"}],"scope":1253,"src":"15742:120:0"}],"src":"0:15863:0"},"id":0}},"contracts":{"contracts/legacy/GovernorAlpha.sol":{"GovernorAlpha":{"abi":[{"inputs":[{"internalType":"address","name":"timelock_","type":"address"},{"internalType":"address","name":"xvs_","type":"address"},{"internalType":"address","name":"guardian_","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"ProposalCanceled","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"},{"indexed":false,"internalType":"address","name":"proposer","type":"address"},{"indexed":false,"internalType":"address[]","name":"targets","type":"address[]"},{"indexed":false,"internalType":"uint256[]","name":"values","type":"uint256[]"},{"indexed":false,"internalType":"string[]","name":"signatures","type":"string[]"},{"indexed":false,"internalType":"bytes[]","name":"calldatas","type":"bytes[]"},{"indexed":false,"internalType":"uint256","name":"startBlock","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"endBlock","type":"uint256"},{"indexed":false,"internalType":"string","name":"description","type":"string"}],"name":"ProposalCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"ProposalExecuted","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"eta","type":"uint256"}],"name":"ProposalQueued","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"voter","type":"address"},{"indexed":false,"internalType":"uint256","name":"proposalId","type":"uint256"},{"indexed":false,"internalType":"bool","name":"support","type":"bool"},{"indexed":false,"internalType":"uint256","name":"votes","type":"uint256"}],"name":"VoteCast","type":"event"},{"constant":true,"inputs":[],"name":"BALLOT_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"DOMAIN_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"__abdicate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"__acceptAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"newPendingAdmin","type":"address"},{"internalType":"uint256","name":"eta","type":"uint256"}],"name":"__executeSetTimelockPendingAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"newPendingAdmin","type":"address"},{"internalType":"uint256","name":"eta","type":"uint256"}],"name":"__queueSetTimelockPendingAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"}],"name":"cancel","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"bool","name":"support","type":"bool"}],"name":"castVote","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"bool","name":"support","type":"bool"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"castVoteBySig","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"}],"name":"execute","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"}],"name":"getActions","outputs":[{"internalType":"address[]","name":"targets","type":"address[]"},{"internalType":"uint256[]","name":"values","type":"uint256[]"},{"internalType":"string[]","name":"signatures","type":"string[]"},{"internalType":"bytes[]","name":"calldatas","type":"bytes[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"address","name":"voter","type":"address"}],"name":"getReceipt","outputs":[{"components":[{"internalType":"bool","name":"hasVoted","type":"bool"},{"internalType":"bool","name":"support","type":"bool"},{"internalType":"uint96","name":"votes","type":"uint96"}],"internalType":"struct GovernorAlpha.Receipt","name":"","type":"tuple"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"guardian","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"latestProposalIds","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"proposalCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"proposalMaxOperations","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[],"name":"proposalThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"proposals","outputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"address","name":"proposer","type":"address"},{"internalType":"uint256","name":"eta","type":"uint256"},{"internalType":"uint256","name":"startBlock","type":"uint256"},{"internalType":"uint256","name":"endBlock","type":"uint256"},{"internalType":"uint256","name":"forVotes","type":"uint256"},{"internalType":"uint256","name":"againstVotes","type":"uint256"},{"internalType":"bool","name":"canceled","type":"bool"},{"internalType":"bool","name":"executed","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address[]","name":"targets","type":"address[]"},{"internalType":"uint256[]","name":"values","type":"uint256[]"},{"internalType":"string[]","name":"signatures","type":"string[]"},{"internalType":"bytes[]","name":"calldatas","type":"bytes[]"},{"internalType":"string","name":"description","type":"string"}],"name":"propose","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"}],"name":"queue","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"quorumVotes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"}],"name":"state","outputs":[{"internalType":"enum GovernorAlpha.ProposalState","name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"timelock","outputs":[{"internalType":"contract TimelockInterface","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"votingDelay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[],"name":"votingPeriod","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[],"name":"xvs","outputs":[{"internalType":"contract XVSInterface","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}],"devdoc":{"methods":{}},"evm":{"bytecode":{"linkReferences":{},"object":"60806040523480156200001157600080fd5b50604051620038cc380380620038cc83398101604081905262000034916200008a565b600080546001600160a01b039485166001600160a01b0319918216179091556001805493851693821693909317909255600280549190931691161790556200010a565b80516200008481620000f0565b92915050565b600080600060608486031215620000a057600080fd5b6000620000ae868662000077565b9350506020620000c18682870162000077565b9250506040620000d48682870162000077565b9150509250925092565b60006001600160a01b03821662000084565b620000fb81620000de565b81146200010757600080fd5b50565b6137b2806200011a6000396000f3fe60806040526004361061019c5760003560e01c80634634c61f116100ec578063d33219b41161008a578063ddf0b00911610064578063ddf0b00914610463578063deaaa7cc14610483578063e23a9a5214610498578063fe0d94c1146104c55761019c565b8063d33219b414610419578063da35c6641461042e578063da95691a146104435761019c565b80637bdbe4d0116100c65780637bdbe4d0146103ba57806391500671146103cf578063b58131b0146103ef578063b9a61961146104045761019c565b80634634c61f146103635780634e79ed3c14610383578063760fbc13146103a55761019c565b806321f43e42116101595780633932abb1116101335780633932abb1146102df5780633e4f49e6146102f457806340e58ee514610321578063452a9320146103415761019c565b806321f43e421461027a57806324bc1a641461029a578063328dd982146102af5761019c565b8063013cf08b146101a157806302a251a3146101df57806306fdde031461020157806315373e3d1461022357806317977c611461024557806320606b7014610265575b600080fd5b3480156101ad57600080fd5b506101c16101bc366004612444565b6104d8565b6040516101d69998979695949392919061355d565b60405180910390f35b3480156101eb57600080fd5b506101f4610531565b6040516101d6919061328a565b34801561020d57600080fd5b50610216610539565b6040516101d69190613346565b34801561022f57600080fd5b5061024361023e366004612492565b610569565b005b34801561025157600080fd5b506101f4610260366004612287565b610578565b34801561027157600080fd5b506101f461058a565b34801561028657600080fd5b506102436102953660046122ad565b6105a1565b3480156102a657600080fd5b506101f4610688565b3480156102bb57600080fd5b506102cf6102ca366004612444565b610696565b6040516101d6949392919061323d565b3480156102eb57600080fd5b506101f4610925565b34801561030057600080fd5b5061031461030f366004612444565b61092a565b6040516101d69190613338565b34801561032d57600080fd5b5061024361033c366004612444565b610aac565b34801561034d57600080fd5b50610356610d15565b6040516101d691906130e7565b34801561036f57600080fd5b5061024361037e3660046124c2565b610d24565b34801561038f57600080fd5b50610398610eb8565b6040516101d6919061332a565b3480156103b157600080fd5b50610243610ec7565b3480156103c657600080fd5b506101f4610f03565b3480156103db57600080fd5b506102436103ea3660046122ad565b610f08565b3480156103fb57600080fd5b506101f4610fdd565b34801561041057600080fd5b50610243610feb565b34801561042557600080fd5b50610398611070565b34801561043a57600080fd5b506101f461107f565b34801561044f57600080fd5b506101f461045e3660046122e7565b611085565b34801561046f57600080fd5b5061024361047e366004612444565b6114a7565b34801561048f57600080fd5b506101f4611711565b3480156104a457600080fd5b506104b86104b3366004612462565b61171d565b6040516101d691906134a7565b6102436104d3366004612444565b61178c565b6004602052600090815260409020805460018201546002830154600784015460088501546009860154600a870154600b9097015495966001600160a01b0390951695939492939192909160ff8082169161010090041689565b620151805b90565b6040518060400160405280601481526020017356656e757320476f7665726e6f7220416c70686160601b81525081565b610574338383611951565b5050565b60056020526000908152604090205481565b604051610596906130d1565b604051809103902081565b6002546001600160a01b031633146105d45760405162461bcd60e51b81526004016105cb90613387565b60405180910390fd5b600080546040516001600160a01b0390911691630825f38f918391906105fe9087906020016130e7565b604051602081830303815290604052856040518563ffffffff1660e01b815260040161062d9493929190613110565b600060405180830381600087803b15801561064757600080fd5b505af115801561065b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610683919081019061240f565b505050565b697f0e10af47c1c700000090565b6060806060806000600460008781526020019081526020016000209050806003018160040182600501836006018380548060200260200160405190810160405280929190818152602001828054801561071857602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116106fa575b505050505093508280548060200260200160405190810160405280929190818152602001828054801561076a57602002820191906000526020600020905b815481526020019060010190808311610756575b5050505050925081805480602002602001604051908101604052809291908181526020016000905b8282101561083d5760008481526020908190208301805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156108295780601f106107fe57610100808354040283529160200191610829565b820191906000526020600020905b81548152906001019060200180831161080c57829003601f168201915b505050505081526020019060010190610792565b50505050915080805480602002602001604051908101604052809291908181526020016000905b8282101561090f5760008481526020908190208301805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156108fb5780601f106108d0576101008083540402835291602001916108fb565b820191906000526020600020905b8154815290600101906020018083116108de57829003601f168201915b505050505081526020019060010190610864565b5050505090509450945094509450509193509193565b600190565b6000816003541015801561093e5750600082115b61095a5760405162461bcd60e51b81526004016105cb90613397565b6000828152600460205260409020600b81015460ff161561097f576002915050610aa7565b80600701544311610994576000915050610aa7565b806008015443116109a9576001915050610aa7565b80600a015481600901541115806109ca57506109c3610688565b8160090154105b156109d9576003915050610aa7565b60028101546109ec576004915050610aa7565b600b810154610100900460ff1615610a08576007915050610aa7565b6002810154600054604080516360d143f160e11b81529051610a9193926001600160a01b03169163c1a287e2916004808301926020929190829003018186803b158015610a5457600080fd5b505afa158015610a68573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610a8c91908101906123f1565b611b1a565b4210610aa1576006915050610aa7565b60059150505b919050565b6000610ab78261092a565b90506007816007811115610ac757fe5b1415610ae55760405162461bcd60e51b81526004016105cb90613467565b60008281526004602052604090206002546001600160a01b0316331480610bb05750610b0f610fdd565b60018054838201546001600160a01b039182169263782d6fe19290911690610b38904390611b46565b6040518363ffffffff1660e01b8152600401610b5592919061315f565b60206040518083038186803b158015610b6d57600080fd5b505afa158015610b81573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610ba5919081019061252a565b6001600160601b0316105b610bcc5760405162461bcd60e51b81526004016105cb906133f7565b600b8101805460ff1916600117905560005b6003820154811015610cd8576000546003830180546001600160a01b039092169163591fcdfe919084908110610c1057fe5b6000918252602090912001546004850180546001600160a01b039092169185908110610c3857fe5b9060005260206000200154856005018581548110610c5257fe5b90600052602060002001866006018681548110610c6b57fe5b9060005260206000200187600201546040518663ffffffff1660e01b8152600401610c9a9594939291906131fc565b600060405180830381600087803b158015610cb457600080fd5b505af1158015610cc8573d6000803e3d6000fd5b505060019092019150610bde9050565b507f789cf55be980739dad1d0699b93b58e806b51c9d96619bfa8fe0a28abaa7b30c83604051610d08919061328a565b60405180910390a1505050565b6002546001600160a01b031681565b6000604051610d32906130d1565b60408051918290038220828201909152601482527356656e757320476f7665726e6f7220416c70686160601b6020909201919091527fe7831129eb24a15f1f8f822483f1d64bd3e968215bb4c81d28d0d3ca9310a835610d90611b6e565b30604051602001610da49493929190613298565b6040516020818303038152906040528051906020012090506000604051610dca906130dc565b604051908190038120610de391899089906020016132cd565b60405160208183030381529060405280519060200120905060008282604051602001610e109291906130a0565b604051602081830303815290604052805190602001209050600060018288888860405160008152602001604052604051610e4d94939291906132f5565b6020604051602081039080840390855afa158015610e6f573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116610ea25760405162461bcd60e51b81526004016105cb90613457565b610ead818a8a611951565b505050505050505050565b6001546001600160a01b031681565b6002546001600160a01b03163314610ef15760405162461bcd60e51b81526004016105cb90613497565b600280546001600160a01b0319169055565b600a90565b6002546001600160a01b03163314610f325760405162461bcd60e51b81526004016105cb906133b7565b600080546040516001600160a01b0390911691633a66f90191839190610f5c9087906020016130e7565b604051602081830303815290604052856040518563ffffffff1660e01b8152600401610f8b9493929190613110565b602060405180830381600087803b158015610fa557600080fd5b505af1158015610fb9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061068391908101906123f1565b693f870857a3e0e380000090565b6002546001600160a01b031633146110155760405162461bcd60e51b81526004016105cb90613357565b6000805460408051630e18b68160e01b815290516001600160a01b0390921692630e18b6819260048084019382900301818387803b15801561105657600080fd5b505af115801561106a573d6000803e3d6000fd5b50505050565b6000546001600160a01b031681565b60035481565b600061108f610fdd565b600180546001600160a01b03169063782d6fe19033906110b0904390611b46565b6040518363ffffffff1660e01b81526004016110cd9291906130f5565b60206040518083038186803b1580156110e557600080fd5b505afa1580156110f9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061111d919081019061252a565b6001600160601b0316116111435760405162461bcd60e51b81526004016105cb90613447565b84518651148015611155575083518651145b8015611162575082518651145b61117e5760405162461bcd60e51b81526004016105cb906133e7565b855161119c5760405162461bcd60e51b81526004016105cb90613437565b6111a4610f03565b865111156111c45760405162461bcd60e51b81526004016105cb906133c7565b3360009081526005602052604090205480156112415760006111e58261092a565b905060018160078111156111f557fe5b14156112135760405162461bcd60e51b81526004016105cb90613407565b600081600781111561122157fe5b141561123f5760405162461bcd60e51b81526004016105cb90613427565b505b600061124f43610a8c610925565b9050600061125f82610a8c610531565b6003805460010190559050611272611cd1565b604051806101a001604052806003548152602001336001600160a01b03168152602001600081526020018b81526020018a815260200189815260200188815260200184815260200183815260200160008152602001600081526020016000151581526020016000151581525090508060046000836000015181526020019081526020016000206000820151816000015560208201518160010160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550604082015181600201556060820151816003019080519060200190611355929190611d46565b5060808201518051611371916004840191602090910190611dab565b5060a0820151805161138d916005840191602090910190611df2565b5060c082015180516113a9916006840191602090910190611e4b565b5060e082015181600701556101008201518160080155610120820151816009015561014082015181600a015561016082015181600b0160006101000a81548160ff02191690831515021790555061018082015181600b0160016101000a81548160ff02191690831515021790555090505080600001516005600083602001516001600160a01b03166001600160a01b03168152602001908152602001600020819055507f7d84a6263ae0d98d3329bd7b46bb4e8d6f98cd35a7adb45c274c8b7fd5ebd5e08160000151338c8c8c8c89898e60405161148f999897969594939291906134b5565b60405180910390a15193505050505b95945050505050565b60046114b28261092a565b60078111156114bd57fe5b146114da5760405162461bcd60e51b81526004016105cb90613367565b600081815260046020818152604080842084548251630d48571f60e31b8152925191959461152f9442946001600160a01b0390931693636a42b8f8938084019390829003018186803b158015610a5457600080fd5b905060005b60038301548110156116d7576116cf83600301828154811061155257fe5b6000918252602090912001546004850180546001600160a01b03909216918490811061157a57fe5b906000526020600020015485600501848154811061159457fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156116225780601f106115f757610100808354040283529160200191611622565b820191906000526020600020905b81548152906001019060200180831161160557829003601f168201915b505050505086600601858154811061163657fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156116c45780601f10611699576101008083540402835291602001916116c4565b820191906000526020600020905b8154815290600101906020018083116116a757829003601f168201915b505050505086611b72565b600101611534565b50600282018190556040517f9a2e42fd6722813d69113e7d0079d3d940171428df7373df9c7f7617cfda289290610d0890859084906135e3565b604051610596906130dc565b611725611ea4565b5060008281526004602090815260408083206001600160a01b0385168452600c018252918290208251606081018452905460ff80821615158352610100820416151592820192909252620100009091046001600160601b0316918101919091525b92915050565b60056117978261092a565b60078111156117a257fe5b146117bf5760405162461bcd60e51b81526004016105cb90613377565b6000818152600460205260408120600b8101805461ff001916610100179055905b6003820154811015611915576000546004830180546001600160a01b0390921691630825f38f91908490811061181257fe5b906000526020600020015484600301848154811061182c57fe5b6000918252602090912001546004860180546001600160a01b03909216918690811061185457fe5b906000526020600020015486600501868154811061186e57fe5b9060005260206000200187600601878154811061188757fe5b9060005260206000200188600201546040518763ffffffff1660e01b81526004016118b69594939291906131fc565b6000604051808303818588803b1580156118cf57600080fd5b505af11580156118e3573d6000803e3d6000fd5b50505050506040513d6000823e601f3d908101601f1916820160405261190c919081019061240f565b506001016117e0565b507f712ae1383f79ac853f8d882153778e0260ef8f03b504e2866e0593e04d2b291f82604051611945919061328a565b60405180910390a15050565b600161195c8361092a565b600781111561196757fe5b146119845760405162461bcd60e51b81526004016105cb90613477565b60008281526004602090815260408083206001600160a01b0387168452600c8101909252909120805460ff16156119cd5760405162461bcd60e51b81526004016105cb906133a7565b600154600783015460405163782d6fe160e01b81526000926001600160a01b03169163782d6fe191611a03918a9160040161315f565b60206040518083038186803b158015611a1b57600080fd5b505afa158015611a2f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611a53919081019061252a565b90508315611a7c57611a728360090154826001600160601b0316611b1a565b6009840155611a99565b611a9383600a0154826001600160601b0316611b1a565b600a8401555b8154600160ff199091161761ff00191661010085151502176dffffffffffffffffffffffff00001916620100006001600160601b038316021782556040517f877856338e13f63d0c36822ff0ef736b80934cd90574a3a5bc9262c39d217c4690611b0a90889088908890869061316d565b60405180910390a1505050505050565b600082820183811015611b3f5760405162461bcd60e51b81526004016105cb906133d7565b9392505050565b600082821115611b685760405162461bcd60e51b81526004016105cb90613487565b50900390565b4690565b6000546040516001600160a01b039091169063f2b0653790611ba090889088908890889088906020016131a2565b604051602081830303815290604052805190602001206040518263ffffffff1660e01b8152600401611bd2919061328a565b60206040518083038186803b158015611bea57600080fd5b505afa158015611bfe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611c2291908101906123d3565b15611c3f5760405162461bcd60e51b81526004016105cb90613417565b600054604051633a66f90160e01b81526001600160a01b0390911690633a66f90190611c7790889088908890889088906004016131a2565b602060405180830381600087803b158015611c9157600080fd5b505af1158015611ca5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611cc991908101906123f1565b505050505050565b604051806101a001604052806000815260200160006001600160a01b031681526020016000815260200160608152602001606081526020016060815260200160608152602001600081526020016000815260200160008152602001600081526020016000151581526020016000151581525090565b828054828255906000526020600020908101928215611d9b579160200282015b82811115611d9b57825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190611d66565b50611da7929150611ec4565b5090565b828054828255906000526020600020908101928215611de6579160200282015b82811115611de6578251825591602001919060010190611dcb565b50611da7929150611ee8565b828054828255906000526020600020908101928215611e3f579160200282015b82811115611e3f5782518051611e2f918491602090910190611f02565b5091602001919060010190611e12565b50611da7929150611f6f565b828054828255906000526020600020908101928215611e98579160200282015b82811115611e985782518051611e88918491602090910190611f02565b5091602001919060010190611e6b565b50611da7929150611f92565b604080516060810182526000808252602082018190529181019190915290565b61053691905b80821115611da75780546001600160a01b0319168155600101611eca565b61053691905b80821115611da75760008155600101611eee565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10611f4357805160ff1916838001178555611de6565b82800160010185558215611de65791820182811115611de6578251825591602001919060010190611dcb565b61053691905b80821115611da7576000611f898282611fb5565b50600101611f75565b61053691905b80821115611da7576000611fac8282611fb5565b50600101611f98565b50805460018160011615610100020316600290046000825580601f10611fdb5750611ff9565b601f016020900490600052602060002090810190611ff99190611ee8565b50565b803561178681613737565b600082601f83011261201857600080fd5b813561202b61202682613618565b6135f1565b9150818183526020840193506020810190508385602084028201111561205057600080fd5b60005b8381101561207c57816120668882611ffc565b8452506020928301929190910190600101612053565b5050505092915050565b600082601f83011261209757600080fd5b81356120a561202682613618565b81815260209384019390925082018360005b8381101561207c57813586016120cd88826121dc565b84525060209283019291909101906001016120b7565b600082601f8301126120f457600080fd5b813561210261202682613618565b81815260209384019390925082018360005b8381101561207c578135860161212a88826121dc565b8452506020928301929190910190600101612114565b600082601f83011261215157600080fd5b813561215f61202682613618565b9150818183526020840193506020810190508385602084028201111561218457600080fd5b60005b8381101561207c578161219a88826121c6565b8452506020928301929190910190600101612187565b80356117868161374b565b80516117868161374b565b803561178681613754565b805161178681613754565b600082601f8301126121ed57600080fd5b81356121fb61202682613639565b9150808252602083016020830185838301111561221757600080fd5b6122228382846136eb565b50505092915050565b600082601f83011261223c57600080fd5b815161224a61202682613639565b9150808252602083016020830185838301111561226657600080fd5b6122228382846136f7565b80356117868161375d565b805161178681613766565b60006020828403121561229957600080fd5b60006122a58484611ffc565b949350505050565b600080604083850312156122c057600080fd5b60006122cc8585611ffc565b92505060206122dd858286016121c6565b9150509250929050565b600080600080600060a086880312156122ff57600080fd5b853567ffffffffffffffff81111561231657600080fd5b61232288828901612007565b955050602086013567ffffffffffffffff81111561233f57600080fd5b61234b88828901612140565b945050604086013567ffffffffffffffff81111561236857600080fd5b612374888289016120e3565b935050606086013567ffffffffffffffff81111561239157600080fd5b61239d88828901612086565b925050608086013567ffffffffffffffff8111156123ba57600080fd5b6123c6888289016121dc565b9150509295509295909350565b6000602082840312156123e557600080fd5b60006122a584846121bb565b60006020828403121561240357600080fd5b60006122a584846121d1565b60006020828403121561242157600080fd5b815167ffffffffffffffff81111561243857600080fd5b6122a58482850161222b565b60006020828403121561245657600080fd5b60006122a584846121c6565b6000806040838503121561247557600080fd5b600061248185856121c6565b92505060206122dd85828601611ffc565b600080604083850312156124a557600080fd5b60006124b185856121c6565b92505060206122dd858286016121b0565b600080600080600060a086880312156124da57600080fd5b60006124e688886121c6565b95505060206124f7888289016121b0565b945050604061250888828901612271565b9350506060612519888289016121c6565b92505060806123c6888289016121c6565b60006020828403121561253c57600080fd5b60006122a5848461227c565b60006125548383612583565b505060200190565b6000611b3f8383612725565b6000612554838361270b565b61257d816136b8565b82525050565b61257d81613680565b600061259782613673565b6125a18185613677565b93506125ac83613661565b8060005b838110156125da5781516125c48882612548565b97506125cf83613661565b9250506001016125b0565b509495945050505050565b60006125f082613673565b6125fa8185613677565b93508360208202850161260c85613661565b8060005b858110156126465784840389528151612629858261255c565b945061263483613661565b60209a909a0199925050600101612610565b5091979650505050505050565b600061265e82613673565b6126688185613677565b93508360208202850161267a85613661565b8060005b858110156126465784840389528151612697858261255c565b94506126a283613661565b60209a909a019992505060010161267e565b60006126bf82613673565b6126c98185613677565b93506126d483613661565b8060005b838110156125da5781516126ec8882612568565b97506126f783613661565b9250506001016126d8565b61257d8161368b565b61257d81610536565b61257d61272082610536565b610536565b600061273082613673565b61273a8185613677565b935061274a8185602086016136f7565b61275381613723565b9093019392505050565b60008154600181166000811461277a57600181146127a0576127df565b607f600283041661278b8187613677565b60ff19841681529550506020850192506127df565b600282046127ae8187613677565b95506127b985613667565b60005b828110156127d8578154888201526001909101906020016127bc565b8701945050505b505092915050565b61257d816136bf565b61257d816136ca565b61257d816136d5565b600061280f603983613677565b7f476f7665726e6f72416c7068613a3a5f5f61636365707441646d696e3a20736581527f6e646572206d75737420626520676f7620677561726469616e00000000000000602082015260400192915050565b600061286e604483613677565b7f476f7665726e6f72416c7068613a3a71756575653a2070726f706f73616c206381527f616e206f6e6c79206265207175657565642069662069742069732073756363656020820152631959195960e21b604082015260600192915050565b60006128da604583613677565b7f476f7665726e6f72416c7068613a3a657865637574653a2070726f706f73616c81527f2063616e206f6e6c7920626520657865637574656420696620697420697320716020820152641d595d595960da1b604082015260600192915050565b6000612947600283610aa7565b61190160f01b815260020192915050565b6000612965604c83613677565b7f476f7665726e6f72416c7068613a3a5f5f6578656375746553657454696d656c81527f6f636b50656e64696e6741646d696e3a2073656e646572206d7573742062652060208201526b33b7bb1033bab0b93234b0b760a11b604082015260600192915050565b60006129d9601883613677565b7f73657450656e64696e6741646d696e2861646472657373290000000000000000815260200192915050565b6000612a12602983613677565b7f476f7665726e6f72416c7068613a3a73746174653a20696e76616c69642070728152681bdc1bdcd85b081a5960ba1b602082015260400192915050565b6000612a5d602d83613677565b7f476f7665726e6f72416c7068613a3a5f63617374566f74653a20766f7465722081526c185b1c9958591e481d9bdd1959609a1b602082015260400192915050565b6000612aac604a83613677565b7f476f7665726e6f72416c7068613a3a5f5f717565756553657454696d656c6f6381527f6b50656e64696e6741646d696e3a2073656e646572206d75737420626520676f6020820152693b1033bab0b93234b0b760b11b604082015260600192915050565b6000612b1e602883613677565b7f476f7665726e6f72416c7068613a3a70726f706f73653a20746f6f206d616e7981526720616374696f6e7360c01b602082015260400192915050565b6000612b68601183613677565b706164646974696f6e206f766572666c6f7760781b815260200192915050565b6000612b95604383610aa7565b7f454950373132446f6d61696e28737472696e67206e616d652c75696e7432353681527f20636861696e49642c6164647265737320766572696679696e67436f6e74726160208201526263742960e81b604082015260430192915050565b6000612c00602783610aa7565b7f42616c6c6f742875696e743235362070726f706f73616c49642c626f6f6c20738152667570706f72742960c81b602082015260270192915050565b6000612c49604483613677565b7f476f7665726e6f72416c7068613a3a70726f706f73653a2070726f706f73616c81527f2066756e6374696f6e20696e666f726d6174696f6e206172697479206d69736d6020820152630c2e8c6d60e31b604082015260600192915050565b6000612cb5602f83613677565b7f476f7665726e6f72416c7068613a3a63616e63656c3a2070726f706f7365722081526e18589bdd99481d1a1c995cda1bdb19608a1b602082015260400192915050565b6000612d06603883613677565b7f476f7665726e6f72416c7068613a3a70726f706f73653a20666f756e6420616e81527f20616c7265616479206163746976652070726f706f73616c0000000000000000602082015260400192915050565b6000612d65604483613677565b7f476f7665726e6f72416c7068613a3a5f71756575654f725265766572743a207081527f726f706f73616c20616374696f6e20616c7265616479207175657565642061746020820152632065746160e01b604082015260600192915050565b6000612dd1603983613677565b7f476f7665726e6f72416c7068613a3a70726f706f73653a20666f756e6420616e81527f20616c72656164792070656e64696e672070726f706f73616c00000000000000602082015260400192915050565b6000612e30602c83613677565b7f476f7665726e6f72416c7068613a3a70726f706f73653a206d7573742070726f81526b7669646520616374696f6e7360a01b602082015260400192915050565b6000612e7e603f83613677565b7f476f7665726e6f72416c7068613a3a70726f706f73653a2070726f706f73657281527f20766f7465732062656c6f772070726f706f73616c207468726573686f6c6400602082015260400192915050565b6000612edd602f83613677565b7f476f7665726e6f72416c7068613a3a63617374566f746542795369673a20696e81526e76616c6964207369676e617475726560881b602082015260400192915050565b6000612f2e603683613677565b7f476f7665726e6f72416c7068613a3a63616e63656c3a2063616e6e6f742063618152751b98d95b08195e1958dd5d1959081c1c9bdc1bdcd85b60521b602082015260400192915050565b6000612f86602a83613677565b7f476f7665726e6f72416c7068613a3a5f63617374566f74653a20766f74696e67815269081a5cc818db1bdcd95960b21b602082015260400192915050565b6000612fd2601583613677565b747375627472616374696f6e20756e646572666c6f7760581b815260200192915050565b6000613003603683613677565b7f476f7665726e6f72416c7068613a3a5f5f61626469636174653a2073656e6465815275391036bab9ba1031329033b7bb1033bab0b93234b0b760511b602082015260400192915050565b8051606083019061305f8482612702565b5060208201516130726020850182612702565b50604082015161106a6040850182613097565b61257d816136a6565b61257d816136e0565b61257d816136ac565b60006130ab8261293a565b91506130b78285612714565b6020820191506130c78284612714565b5060200192915050565b600061178682612b88565b600061178682612bf3565b602081016117868284612583565b604081016131038285612574565b611b3f602083018461270b565b60a0810161311e8287612583565b61312b60208301866127f9565b818103604083015261313c816129cc565b905081810360608301526131508185612725565b905061149e608083018461270b565b604081016131038285612583565b6080810161317b8287612583565b613188602083018661270b565b6131956040830185612702565b61149e606083018461308e565b60a081016131b08288612583565b6131bd602083018761270b565b81810360408301526131cf8186612725565b905081810360608301526131e38185612725565b90506131f2608083018461270b565b9695505050505050565b60a0810161320a8288612583565b613217602083018761270b565b8181036040830152613229818661275d565b905081810360608301526131e3818561275d565b6080808252810161324e818761258c565b9050818103602083015261326281866126b4565b905081810360408301526132768185612653565b905081810360608301526131f281846125e5565b60208101611786828461270b565b608081016132a6828761270b565b6132b3602083018661270b565b6132c0604083018561270b565b61149e6060830184612583565b606081016132db828661270b565b6132e8602083018561270b565b6122a56040830184612702565b60808101613303828761270b565b6133106020830186613085565b61331d604083018561270b565b61149e606083018461270b565b6020810161178682846127e7565b6020810161178682846127f0565b60208082528101611b3f8184612725565b6020808252810161178681612802565b6020808252810161178681612861565b60208082528101611786816128cd565b6020808252810161178681612958565b6020808252810161178681612a05565b6020808252810161178681612a50565b6020808252810161178681612a9f565b6020808252810161178681612b11565b6020808252810161178681612b5b565b6020808252810161178681612c3c565b6020808252810161178681612ca8565b6020808252810161178681612cf9565b6020808252810161178681612d58565b6020808252810161178681612dc4565b6020808252810161178681612e23565b6020808252810161178681612e71565b6020808252810161178681612ed0565b6020808252810161178681612f21565b6020808252810161178681612f79565b6020808252810161178681612fc5565b6020808252810161178681612ff6565b60608101611786828461304e565b61012081016134c4828c61270b565b6134d1602083018b612574565b81810360408301526134e3818a61258c565b905081810360608301526134f781896126b4565b9050818103608083015261350b8188612653565b905081810360a083015261351f81876125e5565b905061352e60c083018661270b565b61353b60e083018561270b565b81810361010083015261354e8184612725565b9b9a5050505050505050505050565b610120810161356c828c61270b565b613579602083018b612583565b613586604083018a61270b565b613593606083018961270b565b6135a0608083018861270b565b6135ad60a083018761270b565b6135ba60c083018661270b565b6135c760e0830185612702565b6135d5610100830184612702565b9a9950505050505050505050565b60408101613103828561270b565b60405181810167ffffffffffffffff8111828210171561361057600080fd5b604052919050565b600067ffffffffffffffff82111561362f57600080fd5b5060209081020190565b600067ffffffffffffffff82111561365057600080fd5b506020601f91909101601f19160190565b60200190565b60009081526020902090565b5190565b90815260200190565b60006117868261369a565b151590565b80610aa78161372d565b6001600160a01b031690565b60ff1690565b6001600160601b031690565b6000611786825b600061178682613680565b600061178682613690565b600061178682610536565b6000611786826136ac565b82818337506000910152565b60005b838110156137125781810151838201526020016136fa565b8381111561106a5750506000910152565b601f01601f191690565b60088110611ff957fe5b61374081613680565b8114611ff957600080fd5b6137408161368b565b61374081610536565b613740816136a6565b613740816136ac56fea365627a7a723158205ccbc7686b054eebc43e46e02e71db1a594a160d10a09c716edc223032ce01a86c6578706572696d656e74616cf564736f6c63430005100040","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x38CC CODESIZE SUB DUP1 PUSH3 0x38CC DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH3 0x34 SWAP2 PUSH3 0x8A JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP5 DUP6 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP2 DUP3 AND OR SWAP1 SWAP2 SSTORE PUSH1 0x1 DUP1 SLOAD SWAP4 DUP6 AND SWAP4 DUP3 AND SWAP4 SWAP1 SWAP4 OR SWAP1 SWAP3 SSTORE PUSH1 0x2 DUP1 SLOAD SWAP2 SWAP1 SWAP4 AND SWAP2 AND OR SWAP1 SSTORE PUSH3 0x10A JUMP JUMPDEST DUP1 MLOAD PUSH3 0x84 DUP2 PUSH3 0xF0 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH3 0xA0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH3 0xAE DUP7 DUP7 PUSH3 0x77 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH3 0xC1 DUP7 DUP3 DUP8 ADD PUSH3 0x77 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH3 0xD4 DUP7 DUP3 DUP8 ADD PUSH3 0x77 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH3 0x84 JUMP JUMPDEST PUSH3 0xFB DUP2 PUSH3 0xDE JUMP JUMPDEST DUP2 EQ PUSH3 0x107 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x37B2 DUP1 PUSH3 0x11A PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x19C JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x4634C61F GT PUSH2 0xEC JUMPI DUP1 PUSH4 0xD33219B4 GT PUSH2 0x8A JUMPI DUP1 PUSH4 0xDDF0B009 GT PUSH2 0x64 JUMPI DUP1 PUSH4 0xDDF0B009 EQ PUSH2 0x463 JUMPI DUP1 PUSH4 0xDEAAA7CC EQ PUSH2 0x483 JUMPI DUP1 PUSH4 0xE23A9A52 EQ PUSH2 0x498 JUMPI DUP1 PUSH4 0xFE0D94C1 EQ PUSH2 0x4C5 JUMPI PUSH2 0x19C JUMP JUMPDEST DUP1 PUSH4 0xD33219B4 EQ PUSH2 0x419 JUMPI DUP1 PUSH4 0xDA35C664 EQ PUSH2 0x42E JUMPI DUP1 PUSH4 0xDA95691A EQ PUSH2 0x443 JUMPI PUSH2 0x19C JUMP JUMPDEST DUP1 PUSH4 0x7BDBE4D0 GT PUSH2 0xC6 JUMPI DUP1 PUSH4 0x7BDBE4D0 EQ PUSH2 0x3BA JUMPI DUP1 PUSH4 0x91500671 EQ PUSH2 0x3CF JUMPI DUP1 PUSH4 0xB58131B0 EQ PUSH2 0x3EF JUMPI DUP1 PUSH4 0xB9A61961 EQ PUSH2 0x404 JUMPI PUSH2 0x19C JUMP JUMPDEST DUP1 PUSH4 0x4634C61F EQ PUSH2 0x363 JUMPI DUP1 PUSH4 0x4E79ED3C EQ PUSH2 0x383 JUMPI DUP1 PUSH4 0x760FBC13 EQ PUSH2 0x3A5 JUMPI PUSH2 0x19C JUMP JUMPDEST DUP1 PUSH4 0x21F43E42 GT PUSH2 0x159 JUMPI DUP1 PUSH4 0x3932ABB1 GT PUSH2 0x133 JUMPI DUP1 PUSH4 0x3932ABB1 EQ PUSH2 0x2DF JUMPI DUP1 PUSH4 0x3E4F49E6 EQ PUSH2 0x2F4 JUMPI DUP1 PUSH4 0x40E58EE5 EQ PUSH2 0x321 JUMPI DUP1 PUSH4 0x452A9320 EQ PUSH2 0x341 JUMPI PUSH2 0x19C JUMP JUMPDEST DUP1 PUSH4 0x21F43E42 EQ PUSH2 0x27A JUMPI DUP1 PUSH4 0x24BC1A64 EQ PUSH2 0x29A JUMPI DUP1 PUSH4 0x328DD982 EQ PUSH2 0x2AF JUMPI PUSH2 0x19C JUMP JUMPDEST DUP1 PUSH4 0x13CF08B EQ PUSH2 0x1A1 JUMPI DUP1 PUSH4 0x2A251A3 EQ PUSH2 0x1DF JUMPI DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x201 JUMPI DUP1 PUSH4 0x15373E3D EQ PUSH2 0x223 JUMPI DUP1 PUSH4 0x17977C61 EQ PUSH2 0x245 JUMPI DUP1 PUSH4 0x20606B70 EQ PUSH2 0x265 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1AD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1C1 PUSH2 0x1BC CALLDATASIZE PUSH1 0x4 PUSH2 0x2444 JUMP JUMPDEST PUSH2 0x4D8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1D6 SWAP10 SWAP9 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x355D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1EB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1F4 PUSH2 0x531 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1D6 SWAP2 SWAP1 PUSH2 0x328A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x20D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x216 PUSH2 0x539 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1D6 SWAP2 SWAP1 PUSH2 0x3346 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x22F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x243 PUSH2 0x23E CALLDATASIZE PUSH1 0x4 PUSH2 0x2492 JUMP JUMPDEST PUSH2 0x569 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x251 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1F4 PUSH2 0x260 CALLDATASIZE PUSH1 0x4 PUSH2 0x2287 JUMP JUMPDEST PUSH2 0x578 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x271 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1F4 PUSH2 0x58A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x286 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x243 PUSH2 0x295 CALLDATASIZE PUSH1 0x4 PUSH2 0x22AD JUMP JUMPDEST PUSH2 0x5A1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2A6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1F4 PUSH2 0x688 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2BB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2CF PUSH2 0x2CA CALLDATASIZE PUSH1 0x4 PUSH2 0x2444 JUMP JUMPDEST PUSH2 0x696 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1D6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x323D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2EB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1F4 PUSH2 0x925 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x300 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x314 PUSH2 0x30F CALLDATASIZE PUSH1 0x4 PUSH2 0x2444 JUMP JUMPDEST PUSH2 0x92A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1D6 SWAP2 SWAP1 PUSH2 0x3338 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x32D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x243 PUSH2 0x33C CALLDATASIZE PUSH1 0x4 PUSH2 0x2444 JUMP JUMPDEST PUSH2 0xAAC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x34D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x356 PUSH2 0xD15 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1D6 SWAP2 SWAP1 PUSH2 0x30E7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x36F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x243 PUSH2 0x37E CALLDATASIZE PUSH1 0x4 PUSH2 0x24C2 JUMP JUMPDEST PUSH2 0xD24 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x38F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x398 PUSH2 0xEB8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1D6 SWAP2 SWAP1 PUSH2 0x332A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3B1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x243 PUSH2 0xEC7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3C6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1F4 PUSH2 0xF03 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3DB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x243 PUSH2 0x3EA CALLDATASIZE PUSH1 0x4 PUSH2 0x22AD JUMP JUMPDEST PUSH2 0xF08 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3FB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1F4 PUSH2 0xFDD JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x410 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x243 PUSH2 0xFEB JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x425 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x398 PUSH2 0x1070 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x43A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1F4 PUSH2 0x107F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x44F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1F4 PUSH2 0x45E CALLDATASIZE PUSH1 0x4 PUSH2 0x22E7 JUMP JUMPDEST PUSH2 0x1085 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x46F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x243 PUSH2 0x47E CALLDATASIZE PUSH1 0x4 PUSH2 0x2444 JUMP JUMPDEST PUSH2 0x14A7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x48F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1F4 PUSH2 0x1711 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4A4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4B8 PUSH2 0x4B3 CALLDATASIZE PUSH1 0x4 PUSH2 0x2462 JUMP JUMPDEST PUSH2 0x171D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1D6 SWAP2 SWAP1 PUSH2 0x34A7 JUMP JUMPDEST PUSH2 0x243 PUSH2 0x4D3 CALLDATASIZE PUSH1 0x4 PUSH2 0x2444 JUMP JUMPDEST PUSH2 0x178C JUMP JUMPDEST PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0x2 DUP4 ADD SLOAD PUSH1 0x7 DUP5 ADD SLOAD PUSH1 0x8 DUP6 ADD SLOAD PUSH1 0x9 DUP7 ADD SLOAD PUSH1 0xA DUP8 ADD SLOAD PUSH1 0xB SWAP1 SWAP8 ADD SLOAD SWAP6 SWAP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP6 AND SWAP6 SWAP4 SWAP5 SWAP3 SWAP4 SWAP2 SWAP3 SWAP1 SWAP2 PUSH1 0xFF DUP1 DUP3 AND SWAP2 PUSH2 0x100 SWAP1 DIV AND DUP10 JUMP JUMPDEST PUSH3 0x15180 JUMPDEST SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x14 DUP2 MSTORE PUSH1 0x20 ADD PUSH20 0x56656E757320476F7665726E6F7220416C706861 PUSH1 0x60 SHL DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH2 0x574 CALLER DUP4 DUP4 PUSH2 0x1951 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x596 SWAP1 PUSH2 0x30D1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 DUP2 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x5D4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5CB SWAP1 PUSH2 0x3387 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP2 PUSH4 0x825F38F SWAP2 DUP4 SWAP2 SWAP1 PUSH2 0x5FE SWAP1 DUP8 SWAP1 PUSH1 0x20 ADD PUSH2 0x30E7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP6 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x62D SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3110 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x647 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x65B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x683 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x240F JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH10 0x7F0E10AF47C1C7000000 SWAP1 JUMP JUMPDEST PUSH1 0x60 DUP1 PUSH1 0x60 DUP1 PUSH1 0x0 PUSH1 0x4 PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 POP DUP1 PUSH1 0x3 ADD DUP2 PUSH1 0x4 ADD DUP3 PUSH1 0x5 ADD DUP4 PUSH1 0x6 ADD DUP4 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 0x718 JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x6FA JUMPI JUMPDEST POP POP POP POP POP SWAP4 POP DUP3 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 0x76A 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 0x756 JUMPI JUMPDEST POP POP POP POP POP SWAP3 POP DUP2 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 PUSH1 0x0 SWAP1 JUMPDEST DUP3 DUP3 LT ISZERO PUSH2 0x83D JUMPI PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 SWAP1 DUP2 SWAP1 KECCAK256 DUP4 ADD DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F PUSH1 0x2 PUSH1 0x0 NOT PUSH2 0x100 PUSH1 0x1 DUP8 AND ISZERO MUL ADD SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 DIV SWAP3 DUP4 ADD DUP6 SWAP1 DIV DUP6 MUL DUP2 ADD DUP6 ADD SWAP1 SWAP2 MSTORE DUP2 DUP2 MSTORE SWAP3 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x829 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x7FE JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x829 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x80C JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x792 JUMP JUMPDEST POP POP POP POP SWAP2 POP DUP1 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 PUSH1 0x0 SWAP1 JUMPDEST DUP3 DUP3 LT ISZERO PUSH2 0x90F JUMPI PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 SWAP1 DUP2 SWAP1 KECCAK256 DUP4 ADD DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F PUSH1 0x2 PUSH1 0x0 NOT PUSH2 0x100 PUSH1 0x1 DUP8 AND ISZERO MUL ADD SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 DIV SWAP3 DUP4 ADD DUP6 SWAP1 DIV DUP6 MUL DUP2 ADD DUP6 ADD SWAP1 SWAP2 MSTORE DUP2 DUP2 MSTORE SWAP3 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x8FB JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x8D0 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x8FB JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x8DE JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x864 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP5 POP SWAP5 POP SWAP5 POP SWAP5 POP POP SWAP2 SWAP4 POP SWAP2 SWAP4 JUMP JUMPDEST PUSH1 0x1 SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x3 SLOAD LT ISZERO DUP1 ISZERO PUSH2 0x93E JUMPI POP PUSH1 0x0 DUP3 GT JUMPDEST PUSH2 0x95A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5CB SWAP1 PUSH2 0x3397 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0xB DUP2 ADD SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x97F JUMPI PUSH1 0x2 SWAP2 POP POP PUSH2 0xAA7 JUMP JUMPDEST DUP1 PUSH1 0x7 ADD SLOAD NUMBER GT PUSH2 0x994 JUMPI PUSH1 0x0 SWAP2 POP POP PUSH2 0xAA7 JUMP JUMPDEST DUP1 PUSH1 0x8 ADD SLOAD NUMBER GT PUSH2 0x9A9 JUMPI PUSH1 0x1 SWAP2 POP POP PUSH2 0xAA7 JUMP JUMPDEST DUP1 PUSH1 0xA ADD SLOAD DUP2 PUSH1 0x9 ADD SLOAD GT ISZERO DUP1 PUSH2 0x9CA JUMPI POP PUSH2 0x9C3 PUSH2 0x688 JUMP JUMPDEST DUP2 PUSH1 0x9 ADD SLOAD LT JUMPDEST ISZERO PUSH2 0x9D9 JUMPI PUSH1 0x3 SWAP2 POP POP PUSH2 0xAA7 JUMP JUMPDEST PUSH1 0x2 DUP2 ADD SLOAD PUSH2 0x9EC JUMPI PUSH1 0x4 SWAP2 POP POP PUSH2 0xAA7 JUMP JUMPDEST PUSH1 0xB DUP2 ADD SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0xA08 JUMPI PUSH1 0x7 SWAP2 POP POP PUSH2 0xAA7 JUMP JUMPDEST PUSH1 0x2 DUP2 ADD SLOAD PUSH1 0x0 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH4 0x60D143F1 PUSH1 0xE1 SHL DUP2 MSTORE SWAP1 MLOAD PUSH2 0xA91 SWAP4 SWAP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 PUSH4 0xC1A287E2 SWAP2 PUSH1 0x4 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xA54 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xA68 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP PUSH2 0xA8C SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x23F1 JUMP JUMPDEST PUSH2 0x1B1A JUMP JUMPDEST TIMESTAMP LT PUSH2 0xAA1 JUMPI PUSH1 0x6 SWAP2 POP POP PUSH2 0xAA7 JUMP JUMPDEST PUSH1 0x5 SWAP2 POP POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xAB7 DUP3 PUSH2 0x92A JUMP JUMPDEST SWAP1 POP PUSH1 0x7 DUP2 PUSH1 0x7 DUP2 GT ISZERO PUSH2 0xAC7 JUMPI INVALID JUMPDEST EQ ISZERO PUSH2 0xAE5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5CB SWAP1 PUSH2 0x3467 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ DUP1 PUSH2 0xBB0 JUMPI POP PUSH2 0xB0F PUSH2 0xFDD JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD DUP4 DUP3 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND SWAP3 PUSH4 0x782D6FE1 SWAP3 SWAP1 SWAP2 AND SWAP1 PUSH2 0xB38 SWAP1 NUMBER SWAP1 PUSH2 0x1B46 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB55 SWAP3 SWAP2 SWAP1 PUSH2 0x315F JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xB6D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xB81 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP PUSH2 0xBA5 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x252A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB AND LT JUMPDEST PUSH2 0xBCC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5CB SWAP1 PUSH2 0x33F7 JUMP JUMPDEST PUSH1 0xB DUP2 ADD DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE PUSH1 0x0 JUMPDEST PUSH1 0x3 DUP3 ADD SLOAD DUP2 LT ISZERO PUSH2 0xCD8 JUMPI PUSH1 0x0 SLOAD PUSH1 0x3 DUP4 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 PUSH4 0x591FCDFE SWAP2 SWAP1 DUP5 SWAP1 DUP2 LT PUSH2 0xC10 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x4 DUP6 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 DUP6 SWAP1 DUP2 LT PUSH2 0xC38 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD DUP6 PUSH1 0x5 ADD DUP6 DUP2 SLOAD DUP2 LT PUSH2 0xC52 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD DUP7 PUSH1 0x6 ADD DUP7 DUP2 SLOAD DUP2 LT PUSH2 0xC6B JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD DUP8 PUSH1 0x2 ADD SLOAD PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC9A SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x31FC JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xCB4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xCC8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 POP PUSH2 0xBDE SWAP1 POP JUMP JUMPDEST POP PUSH32 0x789CF55BE980739DAD1D0699B93B58E806B51C9D96619BFA8FE0A28ABAA7B30C DUP4 PUSH1 0x40 MLOAD PUSH2 0xD08 SWAP2 SWAP1 PUSH2 0x328A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD PUSH2 0xD32 SWAP1 PUSH2 0x30D1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB DUP3 KECCAK256 DUP3 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x14 DUP3 MSTORE PUSH20 0x56656E757320476F7665726E6F7220416C706861 PUSH1 0x60 SHL PUSH1 0x20 SWAP1 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0xE7831129EB24A15F1F8F822483F1D64BD3E968215BB4C81D28D0D3CA9310A835 PUSH2 0xD90 PUSH2 0x1B6E JUMP JUMPDEST ADDRESS PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xDA4 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3298 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP PUSH1 0x0 PUSH1 0x40 MLOAD PUSH2 0xDCA SWAP1 PUSH2 0x30DC JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB DUP2 KECCAK256 PUSH2 0xDE3 SWAP2 DUP10 SWAP1 DUP10 SWAP1 PUSH1 0x20 ADD PUSH2 0x32CD JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP PUSH1 0x0 DUP3 DUP3 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xE10 SWAP3 SWAP2 SWAP1 PUSH2 0x30A0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP PUSH1 0x0 PUSH1 0x1 DUP3 DUP9 DUP9 DUP9 PUSH1 0x40 MLOAD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD PUSH2 0xE4D SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x32F5 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xE6F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH1 0x1F NOT ADD MLOAD SWAP2 POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0xEA2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5CB SWAP1 PUSH2 0x3457 JUMP JUMPDEST PUSH2 0xEAD DUP2 DUP11 DUP11 PUSH2 0x1951 JUMP JUMPDEST POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xEF1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5CB SWAP1 PUSH2 0x3497 JUMP JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0xA SWAP1 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xF32 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5CB SWAP1 PUSH2 0x33B7 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP2 PUSH4 0x3A66F901 SWAP2 DUP4 SWAP2 SWAP1 PUSH2 0xF5C SWAP1 DUP8 SWAP1 PUSH1 0x20 ADD PUSH2 0x30E7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP6 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xF8B SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3110 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xFA5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xFB9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP PUSH2 0x683 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x23F1 JUMP JUMPDEST PUSH10 0x3F870857A3E0E3800000 SWAP1 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x1015 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5CB SWAP1 PUSH2 0x3357 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH4 0xE18B681 PUSH1 0xE0 SHL DUP2 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP3 PUSH4 0xE18B681 SWAP3 PUSH1 0x4 DUP1 DUP5 ADD SWAP4 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1056 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x106A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x108F PUSH2 0xFDD JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x782D6FE1 SWAP1 CALLER SWAP1 PUSH2 0x10B0 SWAP1 NUMBER SWAP1 PUSH2 0x1B46 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x10CD SWAP3 SWAP2 SWAP1 PUSH2 0x30F5 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x10E5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x10F9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP PUSH2 0x111D SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x252A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB AND GT PUSH2 0x1143 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5CB SWAP1 PUSH2 0x3447 JUMP JUMPDEST DUP5 MLOAD DUP7 MLOAD EQ DUP1 ISZERO PUSH2 0x1155 JUMPI POP DUP4 MLOAD DUP7 MLOAD EQ JUMPDEST DUP1 ISZERO PUSH2 0x1162 JUMPI POP DUP3 MLOAD DUP7 MLOAD EQ JUMPDEST PUSH2 0x117E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5CB SWAP1 PUSH2 0x33E7 JUMP JUMPDEST DUP6 MLOAD PUSH2 0x119C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5CB SWAP1 PUSH2 0x3437 JUMP JUMPDEST PUSH2 0x11A4 PUSH2 0xF03 JUMP JUMPDEST DUP7 MLOAD GT ISZERO PUSH2 0x11C4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5CB SWAP1 PUSH2 0x33C7 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP1 ISZERO PUSH2 0x1241 JUMPI PUSH1 0x0 PUSH2 0x11E5 DUP3 PUSH2 0x92A JUMP JUMPDEST SWAP1 POP PUSH1 0x1 DUP2 PUSH1 0x7 DUP2 GT ISZERO PUSH2 0x11F5 JUMPI INVALID JUMPDEST EQ ISZERO PUSH2 0x1213 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5CB SWAP1 PUSH2 0x3407 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x7 DUP2 GT ISZERO PUSH2 0x1221 JUMPI INVALID JUMPDEST EQ ISZERO PUSH2 0x123F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5CB SWAP1 PUSH2 0x3427 JUMP JUMPDEST POP JUMPDEST PUSH1 0x0 PUSH2 0x124F NUMBER PUSH2 0xA8C PUSH2 0x925 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x125F DUP3 PUSH2 0xA8C PUSH2 0x531 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 ADD SWAP1 SSTORE SWAP1 POP PUSH2 0x1272 PUSH2 0x1CD1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH2 0x1A0 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x3 SLOAD DUP2 MSTORE PUSH1 0x20 ADD CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD DUP12 DUP2 MSTORE PUSH1 0x20 ADD DUP11 DUP2 MSTORE PUSH1 0x20 ADD DUP10 DUP2 MSTORE PUSH1 0x20 ADD DUP9 DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 ISZERO ISZERO DUP2 MSTORE POP SWAP1 POP DUP1 PUSH1 0x4 PUSH1 0x0 DUP4 PUSH1 0x0 ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD SSTORE PUSH1 0x20 DUP3 ADD MLOAD DUP2 PUSH1 0x1 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB MUL NOT AND SWAP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND MUL OR SWAP1 SSTORE POP PUSH1 0x40 DUP3 ADD MLOAD DUP2 PUSH1 0x2 ADD SSTORE PUSH1 0x60 DUP3 ADD MLOAD DUP2 PUSH1 0x3 ADD SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0x1355 SWAP3 SWAP2 SWAP1 PUSH2 0x1D46 JUMP JUMPDEST POP PUSH1 0x80 DUP3 ADD MLOAD DUP1 MLOAD PUSH2 0x1371 SWAP2 PUSH1 0x4 DUP5 ADD SWAP2 PUSH1 0x20 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x1DAB JUMP JUMPDEST POP PUSH1 0xA0 DUP3 ADD MLOAD DUP1 MLOAD PUSH2 0x138D SWAP2 PUSH1 0x5 DUP5 ADD SWAP2 PUSH1 0x20 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x1DF2 JUMP JUMPDEST POP PUSH1 0xC0 DUP3 ADD MLOAD DUP1 MLOAD PUSH2 0x13A9 SWAP2 PUSH1 0x6 DUP5 ADD SWAP2 PUSH1 0x20 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x1E4B JUMP JUMPDEST POP PUSH1 0xE0 DUP3 ADD MLOAD DUP2 PUSH1 0x7 ADD SSTORE PUSH2 0x100 DUP3 ADD MLOAD DUP2 PUSH1 0x8 ADD SSTORE PUSH2 0x120 DUP3 ADD MLOAD DUP2 PUSH1 0x9 ADD SSTORE PUSH2 0x140 DUP3 ADD MLOAD DUP2 PUSH1 0xA ADD SSTORE PUSH2 0x160 DUP3 ADD MLOAD DUP2 PUSH1 0xB ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH2 0x180 DUP3 ADD MLOAD DUP2 PUSH1 0xB ADD PUSH1 0x1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP SWAP1 POP POP DUP1 PUSH1 0x0 ADD MLOAD PUSH1 0x5 PUSH1 0x0 DUP4 PUSH1 0x20 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH32 0x7D84A6263AE0D98D3329BD7B46BB4E8D6F98CD35A7ADB45C274C8B7FD5EBD5E0 DUP2 PUSH1 0x0 ADD MLOAD CALLER DUP13 DUP13 DUP13 DUP13 DUP10 DUP10 DUP15 PUSH1 0x40 MLOAD PUSH2 0x148F SWAP10 SWAP9 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x34B5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 MLOAD SWAP4 POP POP POP POP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x4 PUSH2 0x14B2 DUP3 PUSH2 0x92A JUMP JUMPDEST PUSH1 0x7 DUP2 GT ISZERO PUSH2 0x14BD JUMPI INVALID JUMPDEST EQ PUSH2 0x14DA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5CB SWAP1 PUSH2 0x3367 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 DUP5 SLOAD DUP3 MLOAD PUSH4 0xD48571F PUSH1 0xE3 SHL DUP2 MSTORE SWAP3 MLOAD SWAP2 SWAP6 SWAP5 PUSH2 0x152F SWAP5 TIMESTAMP SWAP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP4 AND SWAP4 PUSH4 0x6A42B8F8 SWAP4 DUP1 DUP5 ADD SWAP4 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xA54 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 POP PUSH1 0x0 JUMPDEST PUSH1 0x3 DUP4 ADD SLOAD DUP2 LT ISZERO PUSH2 0x16D7 JUMPI PUSH2 0x16CF DUP4 PUSH1 0x3 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x1552 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x4 DUP6 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 DUP5 SWAP1 DUP2 LT PUSH2 0x157A JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD DUP6 PUSH1 0x5 ADD DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x1594 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP2 DUP3 SWAP1 KECCAK256 ADD DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F PUSH1 0x2 PUSH1 0x0 NOT PUSH2 0x100 PUSH1 0x1 DUP8 AND ISZERO MUL ADD SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 DIV SWAP3 DUP4 ADD DUP6 SWAP1 DIV DUP6 MUL DUP2 ADD DUP6 ADD SWAP1 SWAP2 MSTORE DUP2 DUP2 MSTORE SWAP3 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x1622 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x15F7 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1622 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x1605 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP7 PUSH1 0x6 ADD DUP6 DUP2 SLOAD DUP2 LT PUSH2 0x1636 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP2 DUP3 SWAP1 KECCAK256 ADD DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F PUSH1 0x2 PUSH1 0x0 NOT PUSH2 0x100 PUSH1 0x1 DUP8 AND ISZERO MUL ADD SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 DIV SWAP3 DUP4 ADD DUP6 SWAP1 DIV DUP6 MUL DUP2 ADD DUP6 ADD SWAP1 SWAP2 MSTORE DUP2 DUP2 MSTORE SWAP3 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x16C4 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1699 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x16C4 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x16A7 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP7 PUSH2 0x1B72 JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0x1534 JUMP JUMPDEST POP PUSH1 0x2 DUP3 ADD DUP2 SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH32 0x9A2E42FD6722813D69113E7D0079D3D940171428DF7373DF9C7F7617CFDA2892 SWAP1 PUSH2 0xD08 SWAP1 DUP6 SWAP1 DUP5 SWAP1 PUSH2 0x35E3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x596 SWAP1 PUSH2 0x30DC JUMP JUMPDEST PUSH2 0x1725 PUSH2 0x1EA4 JUMP JUMPDEST POP PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP5 MSTORE PUSH1 0xC ADD DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD PUSH1 0x60 DUP2 ADD DUP5 MSTORE SWAP1 SLOAD PUSH1 0xFF DUP1 DUP3 AND ISZERO ISZERO DUP4 MSTORE PUSH2 0x100 DUP3 DIV AND ISZERO ISZERO SWAP3 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH3 0x10000 SWAP1 SWAP2 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB AND SWAP2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x5 PUSH2 0x1797 DUP3 PUSH2 0x92A JUMP JUMPDEST PUSH1 0x7 DUP2 GT ISZERO PUSH2 0x17A2 JUMPI INVALID JUMPDEST EQ PUSH2 0x17BF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5CB SWAP1 PUSH2 0x3377 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH1 0xB DUP2 ADD DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE SWAP1 JUMPDEST PUSH1 0x3 DUP3 ADD SLOAD DUP2 LT ISZERO PUSH2 0x1915 JUMPI PUSH1 0x0 SLOAD PUSH1 0x4 DUP4 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 PUSH4 0x825F38F SWAP2 SWAP1 DUP5 SWAP1 DUP2 LT PUSH2 0x1812 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD DUP5 PUSH1 0x3 ADD DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x182C JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x4 DUP7 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 DUP7 SWAP1 DUP2 LT PUSH2 0x1854 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD DUP7 PUSH1 0x5 ADD DUP7 DUP2 SLOAD DUP2 LT PUSH2 0x186E JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD DUP8 PUSH1 0x6 ADD DUP8 DUP2 SLOAD DUP2 LT PUSH2 0x1887 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD DUP9 PUSH1 0x2 ADD SLOAD PUSH1 0x40 MLOAD DUP8 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x18B6 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x31FC JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x18CF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x18E3 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x190C SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x240F JUMP JUMPDEST POP PUSH1 0x1 ADD PUSH2 0x17E0 JUMP JUMPDEST POP PUSH32 0x712AE1383F79AC853F8D882153778E0260EF8F03B504E2866E0593E04D2B291F DUP3 PUSH1 0x40 MLOAD PUSH2 0x1945 SWAP2 SWAP1 PUSH2 0x328A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH2 0x195C DUP4 PUSH2 0x92A JUMP JUMPDEST PUSH1 0x7 DUP2 GT ISZERO PUSH2 0x1967 JUMPI INVALID JUMPDEST EQ PUSH2 0x1984 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5CB SWAP1 PUSH2 0x3477 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND DUP5 MSTORE PUSH1 0xC DUP2 ADD SWAP1 SWAP3 MSTORE SWAP1 SWAP2 KECCAK256 DUP1 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x19CD JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5CB SWAP1 PUSH2 0x33A7 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x7 DUP4 ADD SLOAD PUSH1 0x40 MLOAD PUSH4 0x782D6FE1 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 PUSH4 0x782D6FE1 SWAP2 PUSH2 0x1A03 SWAP2 DUP11 SWAP2 PUSH1 0x4 ADD PUSH2 0x315F JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1A1B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1A2F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP PUSH2 0x1A53 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x252A JUMP JUMPDEST SWAP1 POP DUP4 ISZERO PUSH2 0x1A7C JUMPI PUSH2 0x1A72 DUP4 PUSH1 0x9 ADD SLOAD DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB AND PUSH2 0x1B1A JUMP JUMPDEST PUSH1 0x9 DUP5 ADD SSTORE PUSH2 0x1A99 JUMP JUMPDEST PUSH2 0x1A93 DUP4 PUSH1 0xA ADD SLOAD DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB AND PUSH2 0x1B1A JUMP JUMPDEST PUSH1 0xA DUP5 ADD SSTORE JUMPDEST DUP2 SLOAD PUSH1 0x1 PUSH1 0xFF NOT SWAP1 SWAP2 AND OR PUSH2 0xFF00 NOT AND PUSH2 0x100 DUP6 ISZERO ISZERO MUL OR PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFF0000 NOT AND PUSH3 0x10000 PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB DUP4 AND MUL OR DUP3 SSTORE PUSH1 0x40 MLOAD PUSH32 0x877856338E13F63D0C36822FF0EF736B80934CD90574A3A5BC9262C39D217C46 SWAP1 PUSH2 0x1B0A SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP7 SWAP1 PUSH2 0x316D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 ADD DUP4 DUP2 LT ISZERO PUSH2 0x1B3F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5CB SWAP1 PUSH2 0x33D7 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 GT ISZERO PUSH2 0x1B68 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5CB SWAP1 PUSH2 0x3487 JUMP JUMPDEST POP SWAP1 SUB SWAP1 JUMP JUMPDEST CHAINID SWAP1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xF2B06537 SWAP1 PUSH2 0x1BA0 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH1 0x20 ADD PUSH2 0x31A2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1BD2 SWAP2 SWAP1 PUSH2 0x328A JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1BEA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1BFE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP PUSH2 0x1C22 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x23D3 JUMP JUMPDEST ISZERO PUSH2 0x1C3F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5CB SWAP1 PUSH2 0x3417 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x40 MLOAD PUSH4 0x3A66F901 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x3A66F901 SWAP1 PUSH2 0x1C77 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH1 0x4 ADD PUSH2 0x31A2 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1C91 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1CA5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP PUSH2 0x1CC9 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x23F1 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH2 0x1A0 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 ISZERO ISZERO DUP2 MSTORE POP SWAP1 JUMP JUMPDEST DUP3 DUP1 SLOAD DUP3 DUP3 SSTORE SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP3 DUP3 ISZERO PUSH2 0x1D9B JUMPI SWAP2 PUSH1 0x20 MUL DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x1D9B JUMPI DUP3 MLOAD DUP3 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND OR DUP3 SSTORE PUSH1 0x20 SWAP1 SWAP3 ADD SWAP2 PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x1D66 JUMP JUMPDEST POP PUSH2 0x1DA7 SWAP3 SWAP2 POP PUSH2 0x1EC4 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST DUP3 DUP1 SLOAD DUP3 DUP3 SSTORE SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP3 DUP3 ISZERO PUSH2 0x1DE6 JUMPI SWAP2 PUSH1 0x20 MUL DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x1DE6 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x1DCB JUMP JUMPDEST POP PUSH2 0x1DA7 SWAP3 SWAP2 POP PUSH2 0x1EE8 JUMP JUMPDEST DUP3 DUP1 SLOAD DUP3 DUP3 SSTORE SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP3 DUP3 ISZERO PUSH2 0x1E3F JUMPI SWAP2 PUSH1 0x20 MUL DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x1E3F JUMPI DUP3 MLOAD DUP1 MLOAD PUSH2 0x1E2F SWAP2 DUP5 SWAP2 PUSH1 0x20 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x1F02 JUMP JUMPDEST POP SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x1E12 JUMP JUMPDEST POP PUSH2 0x1DA7 SWAP3 SWAP2 POP PUSH2 0x1F6F JUMP JUMPDEST DUP3 DUP1 SLOAD DUP3 DUP3 SSTORE SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP3 DUP3 ISZERO PUSH2 0x1E98 JUMPI SWAP2 PUSH1 0x20 MUL DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x1E98 JUMPI DUP3 MLOAD DUP1 MLOAD PUSH2 0x1E88 SWAP2 DUP5 SWAP2 PUSH1 0x20 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x1F02 JUMP JUMPDEST POP SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x1E6B JUMP JUMPDEST POP PUSH2 0x1DA7 SWAP3 SWAP2 POP PUSH2 0x1F92 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x60 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE SWAP2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP1 JUMP JUMPDEST PUSH2 0x536 SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x1DA7 JUMPI DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x1ECA JUMP JUMPDEST PUSH2 0x536 SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x1DA7 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x1EEE JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH1 0x1F LT PUSH2 0x1F43 JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH2 0x1DE6 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x1DE6 JUMPI SWAP2 DUP3 ADD DUP3 DUP2 GT ISZERO PUSH2 0x1DE6 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x1DCB JUMP JUMPDEST PUSH2 0x536 SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x1DA7 JUMPI PUSH1 0x0 PUSH2 0x1F89 DUP3 DUP3 PUSH2 0x1FB5 JUMP JUMPDEST POP PUSH1 0x1 ADD PUSH2 0x1F75 JUMP JUMPDEST PUSH2 0x536 SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x1DA7 JUMPI PUSH1 0x0 PUSH2 0x1FAC DUP3 DUP3 PUSH2 0x1FB5 JUMP JUMPDEST POP PUSH1 0x1 ADD PUSH2 0x1F98 JUMP JUMPDEST POP DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV PUSH1 0x0 DUP3 SSTORE DUP1 PUSH1 0x1F LT PUSH2 0x1FDB JUMPI POP PUSH2 0x1FF9 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP1 PUSH2 0x1FF9 SWAP2 SWAP1 PUSH2 0x1EE8 JUMP JUMPDEST POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x1786 DUP2 PUSH2 0x3737 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2018 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x202B PUSH2 0x2026 DUP3 PUSH2 0x3618 JUMP JUMPDEST PUSH2 0x35F1 JUMP JUMPDEST SWAP2 POP DUP2 DUP2 DUP4 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH1 0x20 DUP2 ADD SWAP1 POP DUP4 DUP6 PUSH1 0x20 DUP5 MUL DUP3 ADD GT ISZERO PUSH2 0x2050 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x207C JUMPI DUP2 PUSH2 0x2066 DUP9 DUP3 PUSH2 0x1FFC JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x2053 JUMP JUMPDEST POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2097 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x20A5 PUSH2 0x2026 DUP3 PUSH2 0x3618 JUMP JUMPDEST DUP2 DUP2 MSTORE PUSH1 0x20 SWAP4 DUP5 ADD SWAP4 SWAP1 SWAP3 POP DUP3 ADD DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x207C JUMPI DUP2 CALLDATALOAD DUP7 ADD PUSH2 0x20CD DUP9 DUP3 PUSH2 0x21DC JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x20B7 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x20F4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x2102 PUSH2 0x2026 DUP3 PUSH2 0x3618 JUMP JUMPDEST DUP2 DUP2 MSTORE PUSH1 0x20 SWAP4 DUP5 ADD SWAP4 SWAP1 SWAP3 POP DUP3 ADD DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x207C JUMPI DUP2 CALLDATALOAD DUP7 ADD PUSH2 0x212A DUP9 DUP3 PUSH2 0x21DC JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x2114 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2151 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x215F PUSH2 0x2026 DUP3 PUSH2 0x3618 JUMP JUMPDEST SWAP2 POP DUP2 DUP2 DUP4 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH1 0x20 DUP2 ADD SWAP1 POP DUP4 DUP6 PUSH1 0x20 DUP5 MUL DUP3 ADD GT ISZERO PUSH2 0x2184 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x207C JUMPI DUP2 PUSH2 0x219A DUP9 DUP3 PUSH2 0x21C6 JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x2187 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x1786 DUP2 PUSH2 0x374B JUMP JUMPDEST DUP1 MLOAD PUSH2 0x1786 DUP2 PUSH2 0x374B JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x1786 DUP2 PUSH2 0x3754 JUMP JUMPDEST DUP1 MLOAD PUSH2 0x1786 DUP2 PUSH2 0x3754 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x21ED JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x21FB PUSH2 0x2026 DUP3 PUSH2 0x3639 JUMP JUMPDEST SWAP2 POP DUP1 DUP3 MSTORE PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP4 ADD DUP6 DUP4 DUP4 ADD GT ISZERO PUSH2 0x2217 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2222 DUP4 DUP3 DUP5 PUSH2 0x36EB JUMP JUMPDEST POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x223C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x224A PUSH2 0x2026 DUP3 PUSH2 0x3639 JUMP JUMPDEST SWAP2 POP DUP1 DUP3 MSTORE PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP4 ADD DUP6 DUP4 DUP4 ADD GT ISZERO PUSH2 0x2266 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2222 DUP4 DUP3 DUP5 PUSH2 0x36F7 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x1786 DUP2 PUSH2 0x375D JUMP JUMPDEST DUP1 MLOAD PUSH2 0x1786 DUP2 PUSH2 0x3766 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2299 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x22A5 DUP5 DUP5 PUSH2 0x1FFC JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x22C0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x22CC DUP6 DUP6 PUSH2 0x1FFC JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x22DD DUP6 DUP3 DUP7 ADD PUSH2 0x21C6 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x22FF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP6 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2316 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2322 DUP9 DUP3 DUP10 ADD PUSH2 0x2007 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x233F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x234B DUP9 DUP3 DUP10 ADD PUSH2 0x2140 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2368 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2374 DUP9 DUP3 DUP10 ADD PUSH2 0x20E3 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2391 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x239D DUP9 DUP3 DUP10 ADD PUSH2 0x2086 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x80 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x23BA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x23C6 DUP9 DUP3 DUP10 ADD PUSH2 0x21DC JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x23E5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x22A5 DUP5 DUP5 PUSH2 0x21BB JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2403 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x22A5 DUP5 DUP5 PUSH2 0x21D1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2421 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2438 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x22A5 DUP5 DUP3 DUP6 ADD PUSH2 0x222B JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2456 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x22A5 DUP5 DUP5 PUSH2 0x21C6 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2475 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2481 DUP6 DUP6 PUSH2 0x21C6 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x22DD DUP6 DUP3 DUP7 ADD PUSH2 0x1FFC JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x24A5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x24B1 DUP6 DUP6 PUSH2 0x21C6 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x22DD DUP6 DUP3 DUP7 ADD PUSH2 0x21B0 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x24DA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x24E6 DUP9 DUP9 PUSH2 0x21C6 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 PUSH2 0x24F7 DUP9 DUP3 DUP10 ADD PUSH2 0x21B0 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 PUSH2 0x2508 DUP9 DUP3 DUP10 ADD PUSH2 0x2271 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 PUSH2 0x2519 DUP9 DUP3 DUP10 ADD PUSH2 0x21C6 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x80 PUSH2 0x23C6 DUP9 DUP3 DUP10 ADD PUSH2 0x21C6 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x253C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x22A5 DUP5 DUP5 PUSH2 0x227C JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2554 DUP4 DUP4 PUSH2 0x2583 JUMP JUMPDEST POP POP PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1B3F DUP4 DUP4 PUSH2 0x2725 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2554 DUP4 DUP4 PUSH2 0x270B JUMP JUMPDEST PUSH2 0x257D DUP2 PUSH2 0x36B8 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x257D DUP2 PUSH2 0x3680 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2597 DUP3 PUSH2 0x3673 JUMP JUMPDEST PUSH2 0x25A1 DUP2 DUP6 PUSH2 0x3677 JUMP JUMPDEST SWAP4 POP PUSH2 0x25AC DUP4 PUSH2 0x3661 JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x25DA JUMPI DUP2 MLOAD PUSH2 0x25C4 DUP9 DUP3 PUSH2 0x2548 JUMP JUMPDEST SWAP8 POP PUSH2 0x25CF DUP4 PUSH2 0x3661 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 ADD PUSH2 0x25B0 JUMP JUMPDEST POP SWAP5 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x25F0 DUP3 PUSH2 0x3673 JUMP JUMPDEST PUSH2 0x25FA DUP2 DUP6 PUSH2 0x3677 JUMP JUMPDEST SWAP4 POP DUP4 PUSH1 0x20 DUP3 MUL DUP6 ADD PUSH2 0x260C DUP6 PUSH2 0x3661 JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP6 DUP2 LT ISZERO PUSH2 0x2646 JUMPI DUP5 DUP5 SUB DUP10 MSTORE DUP2 MLOAD PUSH2 0x2629 DUP6 DUP3 PUSH2 0x255C JUMP JUMPDEST SWAP5 POP PUSH2 0x2634 DUP4 PUSH2 0x3661 JUMP JUMPDEST PUSH1 0x20 SWAP11 SWAP1 SWAP11 ADD SWAP10 SWAP3 POP POP PUSH1 0x1 ADD PUSH2 0x2610 JUMP JUMPDEST POP SWAP2 SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x265E DUP3 PUSH2 0x3673 JUMP JUMPDEST PUSH2 0x2668 DUP2 DUP6 PUSH2 0x3677 JUMP JUMPDEST SWAP4 POP DUP4 PUSH1 0x20 DUP3 MUL DUP6 ADD PUSH2 0x267A DUP6 PUSH2 0x3661 JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP6 DUP2 LT ISZERO PUSH2 0x2646 JUMPI DUP5 DUP5 SUB DUP10 MSTORE DUP2 MLOAD PUSH2 0x2697 DUP6 DUP3 PUSH2 0x255C JUMP JUMPDEST SWAP5 POP PUSH2 0x26A2 DUP4 PUSH2 0x3661 JUMP JUMPDEST PUSH1 0x20 SWAP11 SWAP1 SWAP11 ADD SWAP10 SWAP3 POP POP PUSH1 0x1 ADD PUSH2 0x267E JUMP JUMPDEST PUSH1 0x0 PUSH2 0x26BF DUP3 PUSH2 0x3673 JUMP JUMPDEST PUSH2 0x26C9 DUP2 DUP6 PUSH2 0x3677 JUMP JUMPDEST SWAP4 POP PUSH2 0x26D4 DUP4 PUSH2 0x3661 JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x25DA JUMPI DUP2 MLOAD PUSH2 0x26EC DUP9 DUP3 PUSH2 0x2568 JUMP JUMPDEST SWAP8 POP PUSH2 0x26F7 DUP4 PUSH2 0x3661 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 ADD PUSH2 0x26D8 JUMP JUMPDEST PUSH2 0x257D DUP2 PUSH2 0x368B JUMP JUMPDEST PUSH2 0x257D DUP2 PUSH2 0x536 JUMP JUMPDEST PUSH2 0x257D PUSH2 0x2720 DUP3 PUSH2 0x536 JUMP JUMPDEST PUSH2 0x536 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2730 DUP3 PUSH2 0x3673 JUMP JUMPDEST PUSH2 0x273A DUP2 DUP6 PUSH2 0x3677 JUMP JUMPDEST SWAP4 POP PUSH2 0x274A DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x36F7 JUMP JUMPDEST PUSH2 0x2753 DUP2 PUSH2 0x3723 JUMP JUMPDEST SWAP1 SWAP4 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SLOAD PUSH1 0x1 DUP2 AND PUSH1 0x0 DUP2 EQ PUSH2 0x277A JUMPI PUSH1 0x1 DUP2 EQ PUSH2 0x27A0 JUMPI PUSH2 0x27DF JUMP JUMPDEST PUSH1 0x7F PUSH1 0x2 DUP4 DIV AND PUSH2 0x278B DUP2 DUP8 PUSH2 0x3677 JUMP JUMPDEST PUSH1 0xFF NOT DUP5 AND DUP2 MSTORE SWAP6 POP POP PUSH1 0x20 DUP6 ADD SWAP3 POP PUSH2 0x27DF JUMP JUMPDEST PUSH1 0x2 DUP3 DIV PUSH2 0x27AE DUP2 DUP8 PUSH2 0x3677 JUMP JUMPDEST SWAP6 POP PUSH2 0x27B9 DUP6 PUSH2 0x3667 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x27D8 JUMPI DUP2 SLOAD DUP9 DUP3 ADD MSTORE PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x20 ADD PUSH2 0x27BC JUMP JUMPDEST DUP8 ADD SWAP5 POP POP POP JUMPDEST POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x257D DUP2 PUSH2 0x36BF JUMP JUMPDEST PUSH2 0x257D DUP2 PUSH2 0x36CA JUMP JUMPDEST PUSH2 0x257D DUP2 PUSH2 0x36D5 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x280F PUSH1 0x39 DUP4 PUSH2 0x3677 JUMP JUMPDEST PUSH32 0x476F7665726E6F72416C7068613A3A5F5F61636365707441646D696E3A207365 DUP2 MSTORE PUSH32 0x6E646572206D75737420626520676F7620677561726469616E00000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x286E PUSH1 0x44 DUP4 PUSH2 0x3677 JUMP JUMPDEST PUSH32 0x476F7665726E6F72416C7068613A3A71756575653A2070726F706F73616C2063 DUP2 MSTORE PUSH32 0x616E206F6E6C7920626520717565756564206966206974206973207375636365 PUSH1 0x20 DUP3 ADD MSTORE PUSH4 0x19591959 PUSH1 0xE2 SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x28DA PUSH1 0x45 DUP4 PUSH2 0x3677 JUMP JUMPDEST PUSH32 0x476F7665726E6F72416C7068613A3A657865637574653A2070726F706F73616C DUP2 MSTORE PUSH32 0x2063616E206F6E6C792062652065786563757465642069662069742069732071 PUSH1 0x20 DUP3 ADD MSTORE PUSH5 0x1D595D5959 PUSH1 0xDA SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2947 PUSH1 0x2 DUP4 PUSH2 0xAA7 JUMP JUMPDEST PUSH2 0x1901 PUSH1 0xF0 SHL DUP2 MSTORE PUSH1 0x2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2965 PUSH1 0x4C DUP4 PUSH2 0x3677 JUMP JUMPDEST PUSH32 0x476F7665726E6F72416C7068613A3A5F5F6578656375746553657454696D656C DUP2 MSTORE PUSH32 0x6F636B50656E64696E6741646D696E3A2073656E646572206D75737420626520 PUSH1 0x20 DUP3 ADD MSTORE PUSH12 0x33B7BB1033BAB0B93234B0B7 PUSH1 0xA1 SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x29D9 PUSH1 0x18 DUP4 PUSH2 0x3677 JUMP JUMPDEST PUSH32 0x73657450656E64696E6741646D696E2861646472657373290000000000000000 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2A12 PUSH1 0x29 DUP4 PUSH2 0x3677 JUMP JUMPDEST PUSH32 0x476F7665726E6F72416C7068613A3A73746174653A20696E76616C6964207072 DUP2 MSTORE PUSH9 0x1BDC1BDCD85B081A59 PUSH1 0xBA SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2A5D PUSH1 0x2D DUP4 PUSH2 0x3677 JUMP JUMPDEST PUSH32 0x476F7665726E6F72416C7068613A3A5F63617374566F74653A20766F74657220 DUP2 MSTORE PUSH13 0x185B1C9958591E481D9BDD1959 PUSH1 0x9A SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2AAC PUSH1 0x4A DUP4 PUSH2 0x3677 JUMP JUMPDEST PUSH32 0x476F7665726E6F72416C7068613A3A5F5F717565756553657454696D656C6F63 DUP2 MSTORE PUSH32 0x6B50656E64696E6741646D696E3A2073656E646572206D75737420626520676F PUSH1 0x20 DUP3 ADD MSTORE PUSH10 0x3B1033BAB0B93234B0B7 PUSH1 0xB1 SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2B1E PUSH1 0x28 DUP4 PUSH2 0x3677 JUMP JUMPDEST PUSH32 0x476F7665726E6F72416C7068613A3A70726F706F73653A20746F6F206D616E79 DUP2 MSTORE PUSH8 0x20616374696F6E73 PUSH1 0xC0 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2B68 PUSH1 0x11 DUP4 PUSH2 0x3677 JUMP JUMPDEST PUSH17 0x6164646974696F6E206F766572666C6F77 PUSH1 0x78 SHL DUP2 MSTORE PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2B95 PUSH1 0x43 DUP4 PUSH2 0xAA7 JUMP JUMPDEST PUSH32 0x454950373132446F6D61696E28737472696E67206E616D652C75696E74323536 DUP2 MSTORE PUSH32 0x20636861696E49642C6164647265737320766572696679696E67436F6E747261 PUSH1 0x20 DUP3 ADD MSTORE PUSH3 0x637429 PUSH1 0xE8 SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x43 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2C00 PUSH1 0x27 DUP4 PUSH2 0xAA7 JUMP JUMPDEST PUSH32 0x42616C6C6F742875696E743235362070726F706F73616C49642C626F6F6C2073 DUP2 MSTORE PUSH7 0x7570706F727429 PUSH1 0xC8 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x27 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2C49 PUSH1 0x44 DUP4 PUSH2 0x3677 JUMP JUMPDEST PUSH32 0x476F7665726E6F72416C7068613A3A70726F706F73653A2070726F706F73616C DUP2 MSTORE PUSH32 0x2066756E6374696F6E20696E666F726D6174696F6E206172697479206D69736D PUSH1 0x20 DUP3 ADD MSTORE PUSH4 0xC2E8C6D PUSH1 0xE3 SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2CB5 PUSH1 0x2F DUP4 PUSH2 0x3677 JUMP JUMPDEST PUSH32 0x476F7665726E6F72416C7068613A3A63616E63656C3A2070726F706F73657220 DUP2 MSTORE PUSH15 0x18589BDD99481D1A1C995CDA1BDB19 PUSH1 0x8A SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2D06 PUSH1 0x38 DUP4 PUSH2 0x3677 JUMP JUMPDEST PUSH32 0x476F7665726E6F72416C7068613A3A70726F706F73653A20666F756E6420616E DUP2 MSTORE PUSH32 0x20616C7265616479206163746976652070726F706F73616C0000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2D65 PUSH1 0x44 DUP4 PUSH2 0x3677 JUMP JUMPDEST PUSH32 0x476F7665726E6F72416C7068613A3A5F71756575654F725265766572743A2070 DUP2 MSTORE PUSH32 0x726F706F73616C20616374696F6E20616C726561647920717565756564206174 PUSH1 0x20 DUP3 ADD MSTORE PUSH4 0x20657461 PUSH1 0xE0 SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2DD1 PUSH1 0x39 DUP4 PUSH2 0x3677 JUMP JUMPDEST PUSH32 0x476F7665726E6F72416C7068613A3A70726F706F73653A20666F756E6420616E DUP2 MSTORE PUSH32 0x20616C72656164792070656E64696E672070726F706F73616C00000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2E30 PUSH1 0x2C DUP4 PUSH2 0x3677 JUMP JUMPDEST PUSH32 0x476F7665726E6F72416C7068613A3A70726F706F73653A206D7573742070726F DUP2 MSTORE PUSH12 0x7669646520616374696F6E73 PUSH1 0xA0 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2E7E PUSH1 0x3F DUP4 PUSH2 0x3677 JUMP JUMPDEST PUSH32 0x476F7665726E6F72416C7068613A3A70726F706F73653A2070726F706F736572 DUP2 MSTORE PUSH32 0x20766F7465732062656C6F772070726F706F73616C207468726573686F6C6400 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2EDD PUSH1 0x2F DUP4 PUSH2 0x3677 JUMP JUMPDEST PUSH32 0x476F7665726E6F72416C7068613A3A63617374566F746542795369673A20696E DUP2 MSTORE PUSH15 0x76616C6964207369676E6174757265 PUSH1 0x88 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2F2E PUSH1 0x36 DUP4 PUSH2 0x3677 JUMP JUMPDEST PUSH32 0x476F7665726E6F72416C7068613A3A63616E63656C3A2063616E6E6F74206361 DUP2 MSTORE PUSH22 0x1B98D95B08195E1958DD5D1959081C1C9BDC1BDCD85B PUSH1 0x52 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2F86 PUSH1 0x2A DUP4 PUSH2 0x3677 JUMP JUMPDEST PUSH32 0x476F7665726E6F72416C7068613A3A5F63617374566F74653A20766F74696E67 DUP2 MSTORE PUSH10 0x81A5CC818DB1BDCD959 PUSH1 0xB2 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2FD2 PUSH1 0x15 DUP4 PUSH2 0x3677 JUMP JUMPDEST PUSH21 0x7375627472616374696F6E20756E646572666C6F77 PUSH1 0x58 SHL DUP2 MSTORE PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3003 PUSH1 0x36 DUP4 PUSH2 0x3677 JUMP JUMPDEST PUSH32 0x476F7665726E6F72416C7068613A3A5F5F61626469636174653A2073656E6465 DUP2 MSTORE PUSH22 0x391036BAB9BA1031329033B7BB1033BAB0B93234B0B7 PUSH1 0x51 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 MLOAD PUSH1 0x60 DUP4 ADD SWAP1 PUSH2 0x305F DUP5 DUP3 PUSH2 0x2702 JUMP JUMPDEST POP PUSH1 0x20 DUP3 ADD MLOAD PUSH2 0x3072 PUSH1 0x20 DUP6 ADD DUP3 PUSH2 0x2702 JUMP JUMPDEST POP PUSH1 0x40 DUP3 ADD MLOAD PUSH2 0x106A PUSH1 0x40 DUP6 ADD DUP3 PUSH2 0x3097 JUMP JUMPDEST PUSH2 0x257D DUP2 PUSH2 0x36A6 JUMP JUMPDEST PUSH2 0x257D DUP2 PUSH2 0x36E0 JUMP JUMPDEST PUSH2 0x257D DUP2 PUSH2 0x36AC JUMP JUMPDEST PUSH1 0x0 PUSH2 0x30AB DUP3 PUSH2 0x293A JUMP JUMPDEST SWAP2 POP PUSH2 0x30B7 DUP3 DUP6 PUSH2 0x2714 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH2 0x30C7 DUP3 DUP5 PUSH2 0x2714 JUMP JUMPDEST POP PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1786 DUP3 PUSH2 0x2B88 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1786 DUP3 PUSH2 0x2BF3 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x1786 DUP3 DUP5 PUSH2 0x2583 JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0x3103 DUP3 DUP6 PUSH2 0x2574 JUMP JUMPDEST PUSH2 0x1B3F PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x270B JUMP JUMPDEST PUSH1 0xA0 DUP2 ADD PUSH2 0x311E DUP3 DUP8 PUSH2 0x2583 JUMP JUMPDEST PUSH2 0x312B PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x27F9 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x313C DUP2 PUSH2 0x29CC JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x3150 DUP2 DUP6 PUSH2 0x2725 JUMP JUMPDEST SWAP1 POP PUSH2 0x149E PUSH1 0x80 DUP4 ADD DUP5 PUSH2 0x270B JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0x3103 DUP3 DUP6 PUSH2 0x2583 JUMP JUMPDEST PUSH1 0x80 DUP2 ADD PUSH2 0x317B DUP3 DUP8 PUSH2 0x2583 JUMP JUMPDEST PUSH2 0x3188 PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x270B JUMP JUMPDEST PUSH2 0x3195 PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x2702 JUMP JUMPDEST PUSH2 0x149E PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x308E JUMP JUMPDEST PUSH1 0xA0 DUP2 ADD PUSH2 0x31B0 DUP3 DUP9 PUSH2 0x2583 JUMP JUMPDEST PUSH2 0x31BD PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x270B JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x31CF DUP2 DUP7 PUSH2 0x2725 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x31E3 DUP2 DUP6 PUSH2 0x2725 JUMP JUMPDEST SWAP1 POP PUSH2 0x31F2 PUSH1 0x80 DUP4 ADD DUP5 PUSH2 0x270B JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0xA0 DUP2 ADD PUSH2 0x320A DUP3 DUP9 PUSH2 0x2583 JUMP JUMPDEST PUSH2 0x3217 PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x270B JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x3229 DUP2 DUP7 PUSH2 0x275D JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x31E3 DUP2 DUP6 PUSH2 0x275D JUMP JUMPDEST PUSH1 0x80 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x324E DUP2 DUP8 PUSH2 0x258C JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x3262 DUP2 DUP7 PUSH2 0x26B4 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x3276 DUP2 DUP6 PUSH2 0x2653 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x31F2 DUP2 DUP5 PUSH2 0x25E5 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x1786 DUP3 DUP5 PUSH2 0x270B JUMP JUMPDEST PUSH1 0x80 DUP2 ADD PUSH2 0x32A6 DUP3 DUP8 PUSH2 0x270B JUMP JUMPDEST PUSH2 0x32B3 PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x270B JUMP JUMPDEST PUSH2 0x32C0 PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x270B JUMP JUMPDEST PUSH2 0x149E PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x2583 JUMP JUMPDEST PUSH1 0x60 DUP2 ADD PUSH2 0x32DB DUP3 DUP7 PUSH2 0x270B JUMP JUMPDEST PUSH2 0x32E8 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x270B JUMP JUMPDEST PUSH2 0x22A5 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x2702 JUMP JUMPDEST PUSH1 0x80 DUP2 ADD PUSH2 0x3303 DUP3 DUP8 PUSH2 0x270B JUMP JUMPDEST PUSH2 0x3310 PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x3085 JUMP JUMPDEST PUSH2 0x331D PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x270B JUMP JUMPDEST PUSH2 0x149E PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x270B JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x1786 DUP3 DUP5 PUSH2 0x27E7 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x1786 DUP3 DUP5 PUSH2 0x27F0 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1B3F DUP2 DUP5 PUSH2 0x2725 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1786 DUP2 PUSH2 0x2802 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1786 DUP2 PUSH2 0x2861 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1786 DUP2 PUSH2 0x28CD JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1786 DUP2 PUSH2 0x2958 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1786 DUP2 PUSH2 0x2A05 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1786 DUP2 PUSH2 0x2A50 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1786 DUP2 PUSH2 0x2A9F JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1786 DUP2 PUSH2 0x2B11 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1786 DUP2 PUSH2 0x2B5B JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1786 DUP2 PUSH2 0x2C3C JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1786 DUP2 PUSH2 0x2CA8 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1786 DUP2 PUSH2 0x2CF9 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1786 DUP2 PUSH2 0x2D58 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1786 DUP2 PUSH2 0x2DC4 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1786 DUP2 PUSH2 0x2E23 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1786 DUP2 PUSH2 0x2E71 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1786 DUP2 PUSH2 0x2ED0 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1786 DUP2 PUSH2 0x2F21 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1786 DUP2 PUSH2 0x2F79 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1786 DUP2 PUSH2 0x2FC5 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1786 DUP2 PUSH2 0x2FF6 JUMP JUMPDEST PUSH1 0x60 DUP2 ADD PUSH2 0x1786 DUP3 DUP5 PUSH2 0x304E JUMP JUMPDEST PUSH2 0x120 DUP2 ADD PUSH2 0x34C4 DUP3 DUP13 PUSH2 0x270B JUMP JUMPDEST PUSH2 0x34D1 PUSH1 0x20 DUP4 ADD DUP12 PUSH2 0x2574 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x34E3 DUP2 DUP11 PUSH2 0x258C JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x34F7 DUP2 DUP10 PUSH2 0x26B4 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x80 DUP4 ADD MSTORE PUSH2 0x350B DUP2 DUP9 PUSH2 0x2653 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0xA0 DUP4 ADD MSTORE PUSH2 0x351F DUP2 DUP8 PUSH2 0x25E5 JUMP JUMPDEST SWAP1 POP PUSH2 0x352E PUSH1 0xC0 DUP4 ADD DUP7 PUSH2 0x270B JUMP JUMPDEST PUSH2 0x353B PUSH1 0xE0 DUP4 ADD DUP6 PUSH2 0x270B JUMP JUMPDEST DUP2 DUP2 SUB PUSH2 0x100 DUP4 ADD MSTORE PUSH2 0x354E DUP2 DUP5 PUSH2 0x2725 JUMP JUMPDEST SWAP12 SWAP11 POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x120 DUP2 ADD PUSH2 0x356C DUP3 DUP13 PUSH2 0x270B JUMP JUMPDEST PUSH2 0x3579 PUSH1 0x20 DUP4 ADD DUP12 PUSH2 0x2583 JUMP JUMPDEST PUSH2 0x3586 PUSH1 0x40 DUP4 ADD DUP11 PUSH2 0x270B JUMP JUMPDEST PUSH2 0x3593 PUSH1 0x60 DUP4 ADD DUP10 PUSH2 0x270B JUMP JUMPDEST PUSH2 0x35A0 PUSH1 0x80 DUP4 ADD DUP9 PUSH2 0x270B JUMP JUMPDEST PUSH2 0x35AD PUSH1 0xA0 DUP4 ADD DUP8 PUSH2 0x270B JUMP JUMPDEST PUSH2 0x35BA PUSH1 0xC0 DUP4 ADD DUP7 PUSH2 0x270B JUMP JUMPDEST PUSH2 0x35C7 PUSH1 0xE0 DUP4 ADD DUP6 PUSH2 0x2702 JUMP JUMPDEST PUSH2 0x35D5 PUSH2 0x100 DUP4 ADD DUP5 PUSH2 0x2702 JUMP JUMPDEST SWAP11 SWAP10 POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0x3103 DUP3 DUP6 PUSH2 0x270B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP2 DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x3610 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x362F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x20 SWAP1 DUP2 MUL ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x3650 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x20 PUSH1 0x1F SWAP2 SWAP1 SWAP2 ADD PUSH1 0x1F NOT AND ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 SWAP1 KECCAK256 SWAP1 JUMP JUMPDEST MLOAD SWAP1 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1786 DUP3 PUSH2 0x369A JUMP JUMPDEST ISZERO ISZERO SWAP1 JUMP JUMPDEST DUP1 PUSH2 0xAA7 DUP2 PUSH2 0x372D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1786 DUP3 JUMPDEST PUSH1 0x0 PUSH2 0x1786 DUP3 PUSH2 0x3680 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1786 DUP3 PUSH2 0x3690 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1786 DUP3 PUSH2 0x536 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1786 DUP3 PUSH2 0x36AC JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x3712 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x36FA JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x106A JUMPI POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP1 JUMP JUMPDEST PUSH1 0x8 DUP2 LT PUSH2 0x1FF9 JUMPI INVALID JUMPDEST PUSH2 0x3740 DUP2 PUSH2 0x3680 JUMP JUMPDEST DUP2 EQ PUSH2 0x1FF9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3740 DUP2 PUSH2 0x368B JUMP JUMPDEST PUSH2 0x3740 DUP2 PUSH2 0x536 JUMP JUMPDEST PUSH2 0x3740 DUP2 PUSH2 0x36A6 JUMP JUMPDEST PUSH2 0x3740 DUP2 PUSH2 0x36AC JUMP INVALID LOG3 PUSH6 0x627A7A723158 KECCAK256 0x5C 0xCB 0xC7 PUSH9 0x6B054EEBC43E46E02E PUSH18 0xDB1A594A160D10A09C716EDC223032CE01A8 PUSH13 0x6578706572696D656E74616CF5 PUSH5 0x736F6C6343 STOP SDIV LT STOP BLOCKHASH ","sourceMap":"60:14851:0:-;;;5043:191;8:9:-1;5:2;;;30:1;27;20:12;5:2;5043:191:0;;;;;;;;;;;;;;;;;;;;;5124:8;:39;;-1:-1:-1;;;;;5124:39:0;;;-1:-1:-1;;;;;;5124:39:0;;;;;;;;5173:24;;;;;;;;;;;;;;;5207:8;:20;;;;;;;;;;;60:14851;;5:134:-1;83:13;;101:33;83:13;101:33;;;68:71;;;;;146:535;;;;295:2;283:9;274:7;270:23;266:32;263:2;;;311:1;308;301:12;263:2;346:1;363:64;419:7;399:9;363:64;;;353:74;;325:108;464:2;482:64;538:7;529:6;518:9;514:22;482:64;;;472:74;;443:109;583:2;601:64;657:7;648:6;637:9;633:22;601:64;;;591:74;;562:109;257:424;;;;;;688:91;;-1:-1;;;;;848:54;;750:24;831:76;914:117;983:24;1001:5;983:24;;;976:5;973:35;963:2;;1022:1;1019;1012:12;963:2;957:74;;;60:14851:0;;;;;;"},"deployedBytecode":{"linkReferences":{},"object":"60806040526004361061019c5760003560e01c80634634c61f116100ec578063d33219b41161008a578063ddf0b00911610064578063ddf0b00914610463578063deaaa7cc14610483578063e23a9a5214610498578063fe0d94c1146104c55761019c565b8063d33219b414610419578063da35c6641461042e578063da95691a146104435761019c565b80637bdbe4d0116100c65780637bdbe4d0146103ba57806391500671146103cf578063b58131b0146103ef578063b9a61961146104045761019c565b80634634c61f146103635780634e79ed3c14610383578063760fbc13146103a55761019c565b806321f43e42116101595780633932abb1116101335780633932abb1146102df5780633e4f49e6146102f457806340e58ee514610321578063452a9320146103415761019c565b806321f43e421461027a57806324bc1a641461029a578063328dd982146102af5761019c565b8063013cf08b146101a157806302a251a3146101df57806306fdde031461020157806315373e3d1461022357806317977c611461024557806320606b7014610265575b600080fd5b3480156101ad57600080fd5b506101c16101bc366004612444565b6104d8565b6040516101d69998979695949392919061355d565b60405180910390f35b3480156101eb57600080fd5b506101f4610531565b6040516101d6919061328a565b34801561020d57600080fd5b50610216610539565b6040516101d69190613346565b34801561022f57600080fd5b5061024361023e366004612492565b610569565b005b34801561025157600080fd5b506101f4610260366004612287565b610578565b34801561027157600080fd5b506101f461058a565b34801561028657600080fd5b506102436102953660046122ad565b6105a1565b3480156102a657600080fd5b506101f4610688565b3480156102bb57600080fd5b506102cf6102ca366004612444565b610696565b6040516101d6949392919061323d565b3480156102eb57600080fd5b506101f4610925565b34801561030057600080fd5b5061031461030f366004612444565b61092a565b6040516101d69190613338565b34801561032d57600080fd5b5061024361033c366004612444565b610aac565b34801561034d57600080fd5b50610356610d15565b6040516101d691906130e7565b34801561036f57600080fd5b5061024361037e3660046124c2565b610d24565b34801561038f57600080fd5b50610398610eb8565b6040516101d6919061332a565b3480156103b157600080fd5b50610243610ec7565b3480156103c657600080fd5b506101f4610f03565b3480156103db57600080fd5b506102436103ea3660046122ad565b610f08565b3480156103fb57600080fd5b506101f4610fdd565b34801561041057600080fd5b50610243610feb565b34801561042557600080fd5b50610398611070565b34801561043a57600080fd5b506101f461107f565b34801561044f57600080fd5b506101f461045e3660046122e7565b611085565b34801561046f57600080fd5b5061024361047e366004612444565b6114a7565b34801561048f57600080fd5b506101f4611711565b3480156104a457600080fd5b506104b86104b3366004612462565b61171d565b6040516101d691906134a7565b6102436104d3366004612444565b61178c565b6004602052600090815260409020805460018201546002830154600784015460088501546009860154600a870154600b9097015495966001600160a01b0390951695939492939192909160ff8082169161010090041689565b620151805b90565b6040518060400160405280601481526020017356656e757320476f7665726e6f7220416c70686160601b81525081565b610574338383611951565b5050565b60056020526000908152604090205481565b604051610596906130d1565b604051809103902081565b6002546001600160a01b031633146105d45760405162461bcd60e51b81526004016105cb90613387565b60405180910390fd5b600080546040516001600160a01b0390911691630825f38f918391906105fe9087906020016130e7565b604051602081830303815290604052856040518563ffffffff1660e01b815260040161062d9493929190613110565b600060405180830381600087803b15801561064757600080fd5b505af115801561065b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610683919081019061240f565b505050565b697f0e10af47c1c700000090565b6060806060806000600460008781526020019081526020016000209050806003018160040182600501836006018380548060200260200160405190810160405280929190818152602001828054801561071857602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116106fa575b505050505093508280548060200260200160405190810160405280929190818152602001828054801561076a57602002820191906000526020600020905b815481526020019060010190808311610756575b5050505050925081805480602002602001604051908101604052809291908181526020016000905b8282101561083d5760008481526020908190208301805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156108295780601f106107fe57610100808354040283529160200191610829565b820191906000526020600020905b81548152906001019060200180831161080c57829003601f168201915b505050505081526020019060010190610792565b50505050915080805480602002602001604051908101604052809291908181526020016000905b8282101561090f5760008481526020908190208301805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156108fb5780601f106108d0576101008083540402835291602001916108fb565b820191906000526020600020905b8154815290600101906020018083116108de57829003601f168201915b505050505081526020019060010190610864565b5050505090509450945094509450509193509193565b600190565b6000816003541015801561093e5750600082115b61095a5760405162461bcd60e51b81526004016105cb90613397565b6000828152600460205260409020600b81015460ff161561097f576002915050610aa7565b80600701544311610994576000915050610aa7565b806008015443116109a9576001915050610aa7565b80600a015481600901541115806109ca57506109c3610688565b8160090154105b156109d9576003915050610aa7565b60028101546109ec576004915050610aa7565b600b810154610100900460ff1615610a08576007915050610aa7565b6002810154600054604080516360d143f160e11b81529051610a9193926001600160a01b03169163c1a287e2916004808301926020929190829003018186803b158015610a5457600080fd5b505afa158015610a68573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610a8c91908101906123f1565b611b1a565b4210610aa1576006915050610aa7565b60059150505b919050565b6000610ab78261092a565b90506007816007811115610ac757fe5b1415610ae55760405162461bcd60e51b81526004016105cb90613467565b60008281526004602052604090206002546001600160a01b0316331480610bb05750610b0f610fdd565b60018054838201546001600160a01b039182169263782d6fe19290911690610b38904390611b46565b6040518363ffffffff1660e01b8152600401610b5592919061315f565b60206040518083038186803b158015610b6d57600080fd5b505afa158015610b81573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610ba5919081019061252a565b6001600160601b0316105b610bcc5760405162461bcd60e51b81526004016105cb906133f7565b600b8101805460ff1916600117905560005b6003820154811015610cd8576000546003830180546001600160a01b039092169163591fcdfe919084908110610c1057fe5b6000918252602090912001546004850180546001600160a01b039092169185908110610c3857fe5b9060005260206000200154856005018581548110610c5257fe5b90600052602060002001866006018681548110610c6b57fe5b9060005260206000200187600201546040518663ffffffff1660e01b8152600401610c9a9594939291906131fc565b600060405180830381600087803b158015610cb457600080fd5b505af1158015610cc8573d6000803e3d6000fd5b505060019092019150610bde9050565b507f789cf55be980739dad1d0699b93b58e806b51c9d96619bfa8fe0a28abaa7b30c83604051610d08919061328a565b60405180910390a1505050565b6002546001600160a01b031681565b6000604051610d32906130d1565b60408051918290038220828201909152601482527356656e757320476f7665726e6f7220416c70686160601b6020909201919091527fe7831129eb24a15f1f8f822483f1d64bd3e968215bb4c81d28d0d3ca9310a835610d90611b6e565b30604051602001610da49493929190613298565b6040516020818303038152906040528051906020012090506000604051610dca906130dc565b604051908190038120610de391899089906020016132cd565b60405160208183030381529060405280519060200120905060008282604051602001610e109291906130a0565b604051602081830303815290604052805190602001209050600060018288888860405160008152602001604052604051610e4d94939291906132f5565b6020604051602081039080840390855afa158015610e6f573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116610ea25760405162461bcd60e51b81526004016105cb90613457565b610ead818a8a611951565b505050505050505050565b6001546001600160a01b031681565b6002546001600160a01b03163314610ef15760405162461bcd60e51b81526004016105cb90613497565b600280546001600160a01b0319169055565b600a90565b6002546001600160a01b03163314610f325760405162461bcd60e51b81526004016105cb906133b7565b600080546040516001600160a01b0390911691633a66f90191839190610f5c9087906020016130e7565b604051602081830303815290604052856040518563ffffffff1660e01b8152600401610f8b9493929190613110565b602060405180830381600087803b158015610fa557600080fd5b505af1158015610fb9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061068391908101906123f1565b693f870857a3e0e380000090565b6002546001600160a01b031633146110155760405162461bcd60e51b81526004016105cb90613357565b6000805460408051630e18b68160e01b815290516001600160a01b0390921692630e18b6819260048084019382900301818387803b15801561105657600080fd5b505af115801561106a573d6000803e3d6000fd5b50505050565b6000546001600160a01b031681565b60035481565b600061108f610fdd565b600180546001600160a01b03169063782d6fe19033906110b0904390611b46565b6040518363ffffffff1660e01b81526004016110cd9291906130f5565b60206040518083038186803b1580156110e557600080fd5b505afa1580156110f9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061111d919081019061252a565b6001600160601b0316116111435760405162461bcd60e51b81526004016105cb90613447565b84518651148015611155575083518651145b8015611162575082518651145b61117e5760405162461bcd60e51b81526004016105cb906133e7565b855161119c5760405162461bcd60e51b81526004016105cb90613437565b6111a4610f03565b865111156111c45760405162461bcd60e51b81526004016105cb906133c7565b3360009081526005602052604090205480156112415760006111e58261092a565b905060018160078111156111f557fe5b14156112135760405162461bcd60e51b81526004016105cb90613407565b600081600781111561122157fe5b141561123f5760405162461bcd60e51b81526004016105cb90613427565b505b600061124f43610a8c610925565b9050600061125f82610a8c610531565b6003805460010190559050611272611cd1565b604051806101a001604052806003548152602001336001600160a01b03168152602001600081526020018b81526020018a815260200189815260200188815260200184815260200183815260200160008152602001600081526020016000151581526020016000151581525090508060046000836000015181526020019081526020016000206000820151816000015560208201518160010160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550604082015181600201556060820151816003019080519060200190611355929190611d46565b5060808201518051611371916004840191602090910190611dab565b5060a0820151805161138d916005840191602090910190611df2565b5060c082015180516113a9916006840191602090910190611e4b565b5060e082015181600701556101008201518160080155610120820151816009015561014082015181600a015561016082015181600b0160006101000a81548160ff02191690831515021790555061018082015181600b0160016101000a81548160ff02191690831515021790555090505080600001516005600083602001516001600160a01b03166001600160a01b03168152602001908152602001600020819055507f7d84a6263ae0d98d3329bd7b46bb4e8d6f98cd35a7adb45c274c8b7fd5ebd5e08160000151338c8c8c8c89898e60405161148f999897969594939291906134b5565b60405180910390a15193505050505b95945050505050565b60046114b28261092a565b60078111156114bd57fe5b146114da5760405162461bcd60e51b81526004016105cb90613367565b600081815260046020818152604080842084548251630d48571f60e31b8152925191959461152f9442946001600160a01b0390931693636a42b8f8938084019390829003018186803b158015610a5457600080fd5b905060005b60038301548110156116d7576116cf83600301828154811061155257fe5b6000918252602090912001546004850180546001600160a01b03909216918490811061157a57fe5b906000526020600020015485600501848154811061159457fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156116225780601f106115f757610100808354040283529160200191611622565b820191906000526020600020905b81548152906001019060200180831161160557829003601f168201915b505050505086600601858154811061163657fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156116c45780601f10611699576101008083540402835291602001916116c4565b820191906000526020600020905b8154815290600101906020018083116116a757829003601f168201915b505050505086611b72565b600101611534565b50600282018190556040517f9a2e42fd6722813d69113e7d0079d3d940171428df7373df9c7f7617cfda289290610d0890859084906135e3565b604051610596906130dc565b611725611ea4565b5060008281526004602090815260408083206001600160a01b0385168452600c018252918290208251606081018452905460ff80821615158352610100820416151592820192909252620100009091046001600160601b0316918101919091525b92915050565b60056117978261092a565b60078111156117a257fe5b146117bf5760405162461bcd60e51b81526004016105cb90613377565b6000818152600460205260408120600b8101805461ff001916610100179055905b6003820154811015611915576000546004830180546001600160a01b0390921691630825f38f91908490811061181257fe5b906000526020600020015484600301848154811061182c57fe5b6000918252602090912001546004860180546001600160a01b03909216918690811061185457fe5b906000526020600020015486600501868154811061186e57fe5b9060005260206000200187600601878154811061188757fe5b9060005260206000200188600201546040518763ffffffff1660e01b81526004016118b69594939291906131fc565b6000604051808303818588803b1580156118cf57600080fd5b505af11580156118e3573d6000803e3d6000fd5b50505050506040513d6000823e601f3d908101601f1916820160405261190c919081019061240f565b506001016117e0565b507f712ae1383f79ac853f8d882153778e0260ef8f03b504e2866e0593e04d2b291f82604051611945919061328a565b60405180910390a15050565b600161195c8361092a565b600781111561196757fe5b146119845760405162461bcd60e51b81526004016105cb90613477565b60008281526004602090815260408083206001600160a01b0387168452600c8101909252909120805460ff16156119cd5760405162461bcd60e51b81526004016105cb906133a7565b600154600783015460405163782d6fe160e01b81526000926001600160a01b03169163782d6fe191611a03918a9160040161315f565b60206040518083038186803b158015611a1b57600080fd5b505afa158015611a2f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611a53919081019061252a565b90508315611a7c57611a728360090154826001600160601b0316611b1a565b6009840155611a99565b611a9383600a0154826001600160601b0316611b1a565b600a8401555b8154600160ff199091161761ff00191661010085151502176dffffffffffffffffffffffff00001916620100006001600160601b038316021782556040517f877856338e13f63d0c36822ff0ef736b80934cd90574a3a5bc9262c39d217c4690611b0a90889088908890869061316d565b60405180910390a1505050505050565b600082820183811015611b3f5760405162461bcd60e51b81526004016105cb906133d7565b9392505050565b600082821115611b685760405162461bcd60e51b81526004016105cb90613487565b50900390565b4690565b6000546040516001600160a01b039091169063f2b0653790611ba090889088908890889088906020016131a2565b604051602081830303815290604052805190602001206040518263ffffffff1660e01b8152600401611bd2919061328a565b60206040518083038186803b158015611bea57600080fd5b505afa158015611bfe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611c2291908101906123d3565b15611c3f5760405162461bcd60e51b81526004016105cb90613417565b600054604051633a66f90160e01b81526001600160a01b0390911690633a66f90190611c7790889088908890889088906004016131a2565b602060405180830381600087803b158015611c9157600080fd5b505af1158015611ca5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611cc991908101906123f1565b505050505050565b604051806101a001604052806000815260200160006001600160a01b031681526020016000815260200160608152602001606081526020016060815260200160608152602001600081526020016000815260200160008152602001600081526020016000151581526020016000151581525090565b828054828255906000526020600020908101928215611d9b579160200282015b82811115611d9b57825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190611d66565b50611da7929150611ec4565b5090565b828054828255906000526020600020908101928215611de6579160200282015b82811115611de6578251825591602001919060010190611dcb565b50611da7929150611ee8565b828054828255906000526020600020908101928215611e3f579160200282015b82811115611e3f5782518051611e2f918491602090910190611f02565b5091602001919060010190611e12565b50611da7929150611f6f565b828054828255906000526020600020908101928215611e98579160200282015b82811115611e985782518051611e88918491602090910190611f02565b5091602001919060010190611e6b565b50611da7929150611f92565b604080516060810182526000808252602082018190529181019190915290565b61053691905b80821115611da75780546001600160a01b0319168155600101611eca565b61053691905b80821115611da75760008155600101611eee565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10611f4357805160ff1916838001178555611de6565b82800160010185558215611de65791820182811115611de6578251825591602001919060010190611dcb565b61053691905b80821115611da7576000611f898282611fb5565b50600101611f75565b61053691905b80821115611da7576000611fac8282611fb5565b50600101611f98565b50805460018160011615610100020316600290046000825580601f10611fdb5750611ff9565b601f016020900490600052602060002090810190611ff99190611ee8565b50565b803561178681613737565b600082601f83011261201857600080fd5b813561202b61202682613618565b6135f1565b9150818183526020840193506020810190508385602084028201111561205057600080fd5b60005b8381101561207c57816120668882611ffc565b8452506020928301929190910190600101612053565b5050505092915050565b600082601f83011261209757600080fd5b81356120a561202682613618565b81815260209384019390925082018360005b8381101561207c57813586016120cd88826121dc565b84525060209283019291909101906001016120b7565b600082601f8301126120f457600080fd5b813561210261202682613618565b81815260209384019390925082018360005b8381101561207c578135860161212a88826121dc565b8452506020928301929190910190600101612114565b600082601f83011261215157600080fd5b813561215f61202682613618565b9150818183526020840193506020810190508385602084028201111561218457600080fd5b60005b8381101561207c578161219a88826121c6565b8452506020928301929190910190600101612187565b80356117868161374b565b80516117868161374b565b803561178681613754565b805161178681613754565b600082601f8301126121ed57600080fd5b81356121fb61202682613639565b9150808252602083016020830185838301111561221757600080fd5b6122228382846136eb565b50505092915050565b600082601f83011261223c57600080fd5b815161224a61202682613639565b9150808252602083016020830185838301111561226657600080fd5b6122228382846136f7565b80356117868161375d565b805161178681613766565b60006020828403121561229957600080fd5b60006122a58484611ffc565b949350505050565b600080604083850312156122c057600080fd5b60006122cc8585611ffc565b92505060206122dd858286016121c6565b9150509250929050565b600080600080600060a086880312156122ff57600080fd5b853567ffffffffffffffff81111561231657600080fd5b61232288828901612007565b955050602086013567ffffffffffffffff81111561233f57600080fd5b61234b88828901612140565b945050604086013567ffffffffffffffff81111561236857600080fd5b612374888289016120e3565b935050606086013567ffffffffffffffff81111561239157600080fd5b61239d88828901612086565b925050608086013567ffffffffffffffff8111156123ba57600080fd5b6123c6888289016121dc565b9150509295509295909350565b6000602082840312156123e557600080fd5b60006122a584846121bb565b60006020828403121561240357600080fd5b60006122a584846121d1565b60006020828403121561242157600080fd5b815167ffffffffffffffff81111561243857600080fd5b6122a58482850161222b565b60006020828403121561245657600080fd5b60006122a584846121c6565b6000806040838503121561247557600080fd5b600061248185856121c6565b92505060206122dd85828601611ffc565b600080604083850312156124a557600080fd5b60006124b185856121c6565b92505060206122dd858286016121b0565b600080600080600060a086880312156124da57600080fd5b60006124e688886121c6565b95505060206124f7888289016121b0565b945050604061250888828901612271565b9350506060612519888289016121c6565b92505060806123c6888289016121c6565b60006020828403121561253c57600080fd5b60006122a5848461227c565b60006125548383612583565b505060200190565b6000611b3f8383612725565b6000612554838361270b565b61257d816136b8565b82525050565b61257d81613680565b600061259782613673565b6125a18185613677565b93506125ac83613661565b8060005b838110156125da5781516125c48882612548565b97506125cf83613661565b9250506001016125b0565b509495945050505050565b60006125f082613673565b6125fa8185613677565b93508360208202850161260c85613661565b8060005b858110156126465784840389528151612629858261255c565b945061263483613661565b60209a909a0199925050600101612610565b5091979650505050505050565b600061265e82613673565b6126688185613677565b93508360208202850161267a85613661565b8060005b858110156126465784840389528151612697858261255c565b94506126a283613661565b60209a909a019992505060010161267e565b60006126bf82613673565b6126c98185613677565b93506126d483613661565b8060005b838110156125da5781516126ec8882612568565b97506126f783613661565b9250506001016126d8565b61257d8161368b565b61257d81610536565b61257d61272082610536565b610536565b600061273082613673565b61273a8185613677565b935061274a8185602086016136f7565b61275381613723565b9093019392505050565b60008154600181166000811461277a57600181146127a0576127df565b607f600283041661278b8187613677565b60ff19841681529550506020850192506127df565b600282046127ae8187613677565b95506127b985613667565b60005b828110156127d8578154888201526001909101906020016127bc565b8701945050505b505092915050565b61257d816136bf565b61257d816136ca565b61257d816136d5565b600061280f603983613677565b7f476f7665726e6f72416c7068613a3a5f5f61636365707441646d696e3a20736581527f6e646572206d75737420626520676f7620677561726469616e00000000000000602082015260400192915050565b600061286e604483613677565b7f476f7665726e6f72416c7068613a3a71756575653a2070726f706f73616c206381527f616e206f6e6c79206265207175657565642069662069742069732073756363656020820152631959195960e21b604082015260600192915050565b60006128da604583613677565b7f476f7665726e6f72416c7068613a3a657865637574653a2070726f706f73616c81527f2063616e206f6e6c7920626520657865637574656420696620697420697320716020820152641d595d595960da1b604082015260600192915050565b6000612947600283610aa7565b61190160f01b815260020192915050565b6000612965604c83613677565b7f476f7665726e6f72416c7068613a3a5f5f6578656375746553657454696d656c81527f6f636b50656e64696e6741646d696e3a2073656e646572206d7573742062652060208201526b33b7bb1033bab0b93234b0b760a11b604082015260600192915050565b60006129d9601883613677565b7f73657450656e64696e6741646d696e2861646472657373290000000000000000815260200192915050565b6000612a12602983613677565b7f476f7665726e6f72416c7068613a3a73746174653a20696e76616c69642070728152681bdc1bdcd85b081a5960ba1b602082015260400192915050565b6000612a5d602d83613677565b7f476f7665726e6f72416c7068613a3a5f63617374566f74653a20766f7465722081526c185b1c9958591e481d9bdd1959609a1b602082015260400192915050565b6000612aac604a83613677565b7f476f7665726e6f72416c7068613a3a5f5f717565756553657454696d656c6f6381527f6b50656e64696e6741646d696e3a2073656e646572206d75737420626520676f6020820152693b1033bab0b93234b0b760b11b604082015260600192915050565b6000612b1e602883613677565b7f476f7665726e6f72416c7068613a3a70726f706f73653a20746f6f206d616e7981526720616374696f6e7360c01b602082015260400192915050565b6000612b68601183613677565b706164646974696f6e206f766572666c6f7760781b815260200192915050565b6000612b95604383610aa7565b7f454950373132446f6d61696e28737472696e67206e616d652c75696e7432353681527f20636861696e49642c6164647265737320766572696679696e67436f6e74726160208201526263742960e81b604082015260430192915050565b6000612c00602783610aa7565b7f42616c6c6f742875696e743235362070726f706f73616c49642c626f6f6c20738152667570706f72742960c81b602082015260270192915050565b6000612c49604483613677565b7f476f7665726e6f72416c7068613a3a70726f706f73653a2070726f706f73616c81527f2066756e6374696f6e20696e666f726d6174696f6e206172697479206d69736d6020820152630c2e8c6d60e31b604082015260600192915050565b6000612cb5602f83613677565b7f476f7665726e6f72416c7068613a3a63616e63656c3a2070726f706f7365722081526e18589bdd99481d1a1c995cda1bdb19608a1b602082015260400192915050565b6000612d06603883613677565b7f476f7665726e6f72416c7068613a3a70726f706f73653a20666f756e6420616e81527f20616c7265616479206163746976652070726f706f73616c0000000000000000602082015260400192915050565b6000612d65604483613677565b7f476f7665726e6f72416c7068613a3a5f71756575654f725265766572743a207081527f726f706f73616c20616374696f6e20616c7265616479207175657565642061746020820152632065746160e01b604082015260600192915050565b6000612dd1603983613677565b7f476f7665726e6f72416c7068613a3a70726f706f73653a20666f756e6420616e81527f20616c72656164792070656e64696e672070726f706f73616c00000000000000602082015260400192915050565b6000612e30602c83613677565b7f476f7665726e6f72416c7068613a3a70726f706f73653a206d7573742070726f81526b7669646520616374696f6e7360a01b602082015260400192915050565b6000612e7e603f83613677565b7f476f7665726e6f72416c7068613a3a70726f706f73653a2070726f706f73657281527f20766f7465732062656c6f772070726f706f73616c207468726573686f6c6400602082015260400192915050565b6000612edd602f83613677565b7f476f7665726e6f72416c7068613a3a63617374566f746542795369673a20696e81526e76616c6964207369676e617475726560881b602082015260400192915050565b6000612f2e603683613677565b7f476f7665726e6f72416c7068613a3a63616e63656c3a2063616e6e6f742063618152751b98d95b08195e1958dd5d1959081c1c9bdc1bdcd85b60521b602082015260400192915050565b6000612f86602a83613677565b7f476f7665726e6f72416c7068613a3a5f63617374566f74653a20766f74696e67815269081a5cc818db1bdcd95960b21b602082015260400192915050565b6000612fd2601583613677565b747375627472616374696f6e20756e646572666c6f7760581b815260200192915050565b6000613003603683613677565b7f476f7665726e6f72416c7068613a3a5f5f61626469636174653a2073656e6465815275391036bab9ba1031329033b7bb1033bab0b93234b0b760511b602082015260400192915050565b8051606083019061305f8482612702565b5060208201516130726020850182612702565b50604082015161106a6040850182613097565b61257d816136a6565b61257d816136e0565b61257d816136ac565b60006130ab8261293a565b91506130b78285612714565b6020820191506130c78284612714565b5060200192915050565b600061178682612b88565b600061178682612bf3565b602081016117868284612583565b604081016131038285612574565b611b3f602083018461270b565b60a0810161311e8287612583565b61312b60208301866127f9565b818103604083015261313c816129cc565b905081810360608301526131508185612725565b905061149e608083018461270b565b604081016131038285612583565b6080810161317b8287612583565b613188602083018661270b565b6131956040830185612702565b61149e606083018461308e565b60a081016131b08288612583565b6131bd602083018761270b565b81810360408301526131cf8186612725565b905081810360608301526131e38185612725565b90506131f2608083018461270b565b9695505050505050565b60a0810161320a8288612583565b613217602083018761270b565b8181036040830152613229818661275d565b905081810360608301526131e3818561275d565b6080808252810161324e818761258c565b9050818103602083015261326281866126b4565b905081810360408301526132768185612653565b905081810360608301526131f281846125e5565b60208101611786828461270b565b608081016132a6828761270b565b6132b3602083018661270b565b6132c0604083018561270b565b61149e6060830184612583565b606081016132db828661270b565b6132e8602083018561270b565b6122a56040830184612702565b60808101613303828761270b565b6133106020830186613085565b61331d604083018561270b565b61149e606083018461270b565b6020810161178682846127e7565b6020810161178682846127f0565b60208082528101611b3f8184612725565b6020808252810161178681612802565b6020808252810161178681612861565b60208082528101611786816128cd565b6020808252810161178681612958565b6020808252810161178681612a05565b6020808252810161178681612a50565b6020808252810161178681612a9f565b6020808252810161178681612b11565b6020808252810161178681612b5b565b6020808252810161178681612c3c565b6020808252810161178681612ca8565b6020808252810161178681612cf9565b6020808252810161178681612d58565b6020808252810161178681612dc4565b6020808252810161178681612e23565b6020808252810161178681612e71565b6020808252810161178681612ed0565b6020808252810161178681612f21565b6020808252810161178681612f79565b6020808252810161178681612fc5565b6020808252810161178681612ff6565b60608101611786828461304e565b61012081016134c4828c61270b565b6134d1602083018b612574565b81810360408301526134e3818a61258c565b905081810360608301526134f781896126b4565b9050818103608083015261350b8188612653565b905081810360a083015261351f81876125e5565b905061352e60c083018661270b565b61353b60e083018561270b565b81810361010083015261354e8184612725565b9b9a5050505050505050505050565b610120810161356c828c61270b565b613579602083018b612583565b613586604083018a61270b565b613593606083018961270b565b6135a0608083018861270b565b6135ad60a083018761270b565b6135ba60c083018661270b565b6135c760e0830185612702565b6135d5610100830184612702565b9a9950505050505050505050565b60408101613103828561270b565b60405181810167ffffffffffffffff8111828210171561361057600080fd5b604052919050565b600067ffffffffffffffff82111561362f57600080fd5b5060209081020190565b600067ffffffffffffffff82111561365057600080fd5b506020601f91909101601f19160190565b60200190565b60009081526020902090565b5190565b90815260200190565b60006117868261369a565b151590565b80610aa78161372d565b6001600160a01b031690565b60ff1690565b6001600160601b031690565b6000611786825b600061178682613680565b600061178682613690565b600061178682610536565b6000611786826136ac565b82818337506000910152565b60005b838110156137125781810151838201526020016136fa565b8381111561106a5750506000910152565b601f01601f191690565b60088110611ff957fe5b61374081613680565b8114611ff957600080fd5b6137408161368b565b61374081610536565b613740816136a6565b613740816136ac56fea365627a7a723158205ccbc7686b054eebc43e46e02e71db1a594a160d10a09c716edc223032ce01a86c6578706572696d656e74616cf564736f6c63430005100040","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x19C JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x4634C61F GT PUSH2 0xEC JUMPI DUP1 PUSH4 0xD33219B4 GT PUSH2 0x8A JUMPI DUP1 PUSH4 0xDDF0B009 GT PUSH2 0x64 JUMPI DUP1 PUSH4 0xDDF0B009 EQ PUSH2 0x463 JUMPI DUP1 PUSH4 0xDEAAA7CC EQ PUSH2 0x483 JUMPI DUP1 PUSH4 0xE23A9A52 EQ PUSH2 0x498 JUMPI DUP1 PUSH4 0xFE0D94C1 EQ PUSH2 0x4C5 JUMPI PUSH2 0x19C JUMP JUMPDEST DUP1 PUSH4 0xD33219B4 EQ PUSH2 0x419 JUMPI DUP1 PUSH4 0xDA35C664 EQ PUSH2 0x42E JUMPI DUP1 PUSH4 0xDA95691A EQ PUSH2 0x443 JUMPI PUSH2 0x19C JUMP JUMPDEST DUP1 PUSH4 0x7BDBE4D0 GT PUSH2 0xC6 JUMPI DUP1 PUSH4 0x7BDBE4D0 EQ PUSH2 0x3BA JUMPI DUP1 PUSH4 0x91500671 EQ PUSH2 0x3CF JUMPI DUP1 PUSH4 0xB58131B0 EQ PUSH2 0x3EF JUMPI DUP1 PUSH4 0xB9A61961 EQ PUSH2 0x404 JUMPI PUSH2 0x19C JUMP JUMPDEST DUP1 PUSH4 0x4634C61F EQ PUSH2 0x363 JUMPI DUP1 PUSH4 0x4E79ED3C EQ PUSH2 0x383 JUMPI DUP1 PUSH4 0x760FBC13 EQ PUSH2 0x3A5 JUMPI PUSH2 0x19C JUMP JUMPDEST DUP1 PUSH4 0x21F43E42 GT PUSH2 0x159 JUMPI DUP1 PUSH4 0x3932ABB1 GT PUSH2 0x133 JUMPI DUP1 PUSH4 0x3932ABB1 EQ PUSH2 0x2DF JUMPI DUP1 PUSH4 0x3E4F49E6 EQ PUSH2 0x2F4 JUMPI DUP1 PUSH4 0x40E58EE5 EQ PUSH2 0x321 JUMPI DUP1 PUSH4 0x452A9320 EQ PUSH2 0x341 JUMPI PUSH2 0x19C JUMP JUMPDEST DUP1 PUSH4 0x21F43E42 EQ PUSH2 0x27A JUMPI DUP1 PUSH4 0x24BC1A64 EQ PUSH2 0x29A JUMPI DUP1 PUSH4 0x328DD982 EQ PUSH2 0x2AF JUMPI PUSH2 0x19C JUMP JUMPDEST DUP1 PUSH4 0x13CF08B EQ PUSH2 0x1A1 JUMPI DUP1 PUSH4 0x2A251A3 EQ PUSH2 0x1DF JUMPI DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x201 JUMPI DUP1 PUSH4 0x15373E3D EQ PUSH2 0x223 JUMPI DUP1 PUSH4 0x17977C61 EQ PUSH2 0x245 JUMPI DUP1 PUSH4 0x20606B70 EQ PUSH2 0x265 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1AD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1C1 PUSH2 0x1BC CALLDATASIZE PUSH1 0x4 PUSH2 0x2444 JUMP JUMPDEST PUSH2 0x4D8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1D6 SWAP10 SWAP9 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x355D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1EB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1F4 PUSH2 0x531 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1D6 SWAP2 SWAP1 PUSH2 0x328A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x20D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x216 PUSH2 0x539 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1D6 SWAP2 SWAP1 PUSH2 0x3346 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x22F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x243 PUSH2 0x23E CALLDATASIZE PUSH1 0x4 PUSH2 0x2492 JUMP JUMPDEST PUSH2 0x569 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x251 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1F4 PUSH2 0x260 CALLDATASIZE PUSH1 0x4 PUSH2 0x2287 JUMP JUMPDEST PUSH2 0x578 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x271 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1F4 PUSH2 0x58A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x286 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x243 PUSH2 0x295 CALLDATASIZE PUSH1 0x4 PUSH2 0x22AD JUMP JUMPDEST PUSH2 0x5A1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2A6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1F4 PUSH2 0x688 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2BB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2CF PUSH2 0x2CA CALLDATASIZE PUSH1 0x4 PUSH2 0x2444 JUMP JUMPDEST PUSH2 0x696 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1D6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x323D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2EB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1F4 PUSH2 0x925 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x300 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x314 PUSH2 0x30F CALLDATASIZE PUSH1 0x4 PUSH2 0x2444 JUMP JUMPDEST PUSH2 0x92A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1D6 SWAP2 SWAP1 PUSH2 0x3338 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x32D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x243 PUSH2 0x33C CALLDATASIZE PUSH1 0x4 PUSH2 0x2444 JUMP JUMPDEST PUSH2 0xAAC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x34D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x356 PUSH2 0xD15 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1D6 SWAP2 SWAP1 PUSH2 0x30E7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x36F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x243 PUSH2 0x37E CALLDATASIZE PUSH1 0x4 PUSH2 0x24C2 JUMP JUMPDEST PUSH2 0xD24 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x38F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x398 PUSH2 0xEB8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1D6 SWAP2 SWAP1 PUSH2 0x332A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3B1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x243 PUSH2 0xEC7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3C6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1F4 PUSH2 0xF03 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3DB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x243 PUSH2 0x3EA CALLDATASIZE PUSH1 0x4 PUSH2 0x22AD JUMP JUMPDEST PUSH2 0xF08 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3FB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1F4 PUSH2 0xFDD JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x410 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x243 PUSH2 0xFEB JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x425 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x398 PUSH2 0x1070 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x43A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1F4 PUSH2 0x107F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x44F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1F4 PUSH2 0x45E CALLDATASIZE PUSH1 0x4 PUSH2 0x22E7 JUMP JUMPDEST PUSH2 0x1085 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x46F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x243 PUSH2 0x47E CALLDATASIZE PUSH1 0x4 PUSH2 0x2444 JUMP JUMPDEST PUSH2 0x14A7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x48F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1F4 PUSH2 0x1711 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4A4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4B8 PUSH2 0x4B3 CALLDATASIZE PUSH1 0x4 PUSH2 0x2462 JUMP JUMPDEST PUSH2 0x171D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1D6 SWAP2 SWAP1 PUSH2 0x34A7 JUMP JUMPDEST PUSH2 0x243 PUSH2 0x4D3 CALLDATASIZE PUSH1 0x4 PUSH2 0x2444 JUMP JUMPDEST PUSH2 0x178C JUMP JUMPDEST PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0x2 DUP4 ADD SLOAD PUSH1 0x7 DUP5 ADD SLOAD PUSH1 0x8 DUP6 ADD SLOAD PUSH1 0x9 DUP7 ADD SLOAD PUSH1 0xA DUP8 ADD SLOAD PUSH1 0xB SWAP1 SWAP8 ADD SLOAD SWAP6 SWAP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP6 AND SWAP6 SWAP4 SWAP5 SWAP3 SWAP4 SWAP2 SWAP3 SWAP1 SWAP2 PUSH1 0xFF DUP1 DUP3 AND SWAP2 PUSH2 0x100 SWAP1 DIV AND DUP10 JUMP JUMPDEST PUSH3 0x15180 JUMPDEST SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x14 DUP2 MSTORE PUSH1 0x20 ADD PUSH20 0x56656E757320476F7665726E6F7220416C706861 PUSH1 0x60 SHL DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH2 0x574 CALLER DUP4 DUP4 PUSH2 0x1951 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x596 SWAP1 PUSH2 0x30D1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 DUP2 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x5D4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5CB SWAP1 PUSH2 0x3387 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP2 PUSH4 0x825F38F SWAP2 DUP4 SWAP2 SWAP1 PUSH2 0x5FE SWAP1 DUP8 SWAP1 PUSH1 0x20 ADD PUSH2 0x30E7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP6 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x62D SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3110 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x647 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x65B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x683 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x240F JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH10 0x7F0E10AF47C1C7000000 SWAP1 JUMP JUMPDEST PUSH1 0x60 DUP1 PUSH1 0x60 DUP1 PUSH1 0x0 PUSH1 0x4 PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 POP DUP1 PUSH1 0x3 ADD DUP2 PUSH1 0x4 ADD DUP3 PUSH1 0x5 ADD DUP4 PUSH1 0x6 ADD DUP4 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 0x718 JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x6FA JUMPI JUMPDEST POP POP POP POP POP SWAP4 POP DUP3 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 0x76A 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 0x756 JUMPI JUMPDEST POP POP POP POP POP SWAP3 POP DUP2 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 PUSH1 0x0 SWAP1 JUMPDEST DUP3 DUP3 LT ISZERO PUSH2 0x83D JUMPI PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 SWAP1 DUP2 SWAP1 KECCAK256 DUP4 ADD DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F PUSH1 0x2 PUSH1 0x0 NOT PUSH2 0x100 PUSH1 0x1 DUP8 AND ISZERO MUL ADD SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 DIV SWAP3 DUP4 ADD DUP6 SWAP1 DIV DUP6 MUL DUP2 ADD DUP6 ADD SWAP1 SWAP2 MSTORE DUP2 DUP2 MSTORE SWAP3 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x829 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x7FE JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x829 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x80C JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x792 JUMP JUMPDEST POP POP POP POP SWAP2 POP DUP1 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 PUSH1 0x0 SWAP1 JUMPDEST DUP3 DUP3 LT ISZERO PUSH2 0x90F JUMPI PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 SWAP1 DUP2 SWAP1 KECCAK256 DUP4 ADD DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F PUSH1 0x2 PUSH1 0x0 NOT PUSH2 0x100 PUSH1 0x1 DUP8 AND ISZERO MUL ADD SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 DIV SWAP3 DUP4 ADD DUP6 SWAP1 DIV DUP6 MUL DUP2 ADD DUP6 ADD SWAP1 SWAP2 MSTORE DUP2 DUP2 MSTORE SWAP3 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x8FB JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x8D0 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x8FB JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x8DE JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x864 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP5 POP SWAP5 POP SWAP5 POP SWAP5 POP POP SWAP2 SWAP4 POP SWAP2 SWAP4 JUMP JUMPDEST PUSH1 0x1 SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x3 SLOAD LT ISZERO DUP1 ISZERO PUSH2 0x93E JUMPI POP PUSH1 0x0 DUP3 GT JUMPDEST PUSH2 0x95A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5CB SWAP1 PUSH2 0x3397 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0xB DUP2 ADD SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x97F JUMPI PUSH1 0x2 SWAP2 POP POP PUSH2 0xAA7 JUMP JUMPDEST DUP1 PUSH1 0x7 ADD SLOAD NUMBER GT PUSH2 0x994 JUMPI PUSH1 0x0 SWAP2 POP POP PUSH2 0xAA7 JUMP JUMPDEST DUP1 PUSH1 0x8 ADD SLOAD NUMBER GT PUSH2 0x9A9 JUMPI PUSH1 0x1 SWAP2 POP POP PUSH2 0xAA7 JUMP JUMPDEST DUP1 PUSH1 0xA ADD SLOAD DUP2 PUSH1 0x9 ADD SLOAD GT ISZERO DUP1 PUSH2 0x9CA JUMPI POP PUSH2 0x9C3 PUSH2 0x688 JUMP JUMPDEST DUP2 PUSH1 0x9 ADD SLOAD LT JUMPDEST ISZERO PUSH2 0x9D9 JUMPI PUSH1 0x3 SWAP2 POP POP PUSH2 0xAA7 JUMP JUMPDEST PUSH1 0x2 DUP2 ADD SLOAD PUSH2 0x9EC JUMPI PUSH1 0x4 SWAP2 POP POP PUSH2 0xAA7 JUMP JUMPDEST PUSH1 0xB DUP2 ADD SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0xA08 JUMPI PUSH1 0x7 SWAP2 POP POP PUSH2 0xAA7 JUMP JUMPDEST PUSH1 0x2 DUP2 ADD SLOAD PUSH1 0x0 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH4 0x60D143F1 PUSH1 0xE1 SHL DUP2 MSTORE SWAP1 MLOAD PUSH2 0xA91 SWAP4 SWAP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 PUSH4 0xC1A287E2 SWAP2 PUSH1 0x4 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xA54 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xA68 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP PUSH2 0xA8C SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x23F1 JUMP JUMPDEST PUSH2 0x1B1A JUMP JUMPDEST TIMESTAMP LT PUSH2 0xAA1 JUMPI PUSH1 0x6 SWAP2 POP POP PUSH2 0xAA7 JUMP JUMPDEST PUSH1 0x5 SWAP2 POP POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xAB7 DUP3 PUSH2 0x92A JUMP JUMPDEST SWAP1 POP PUSH1 0x7 DUP2 PUSH1 0x7 DUP2 GT ISZERO PUSH2 0xAC7 JUMPI INVALID JUMPDEST EQ ISZERO PUSH2 0xAE5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5CB SWAP1 PUSH2 0x3467 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ DUP1 PUSH2 0xBB0 JUMPI POP PUSH2 0xB0F PUSH2 0xFDD JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD DUP4 DUP3 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND SWAP3 PUSH4 0x782D6FE1 SWAP3 SWAP1 SWAP2 AND SWAP1 PUSH2 0xB38 SWAP1 NUMBER SWAP1 PUSH2 0x1B46 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB55 SWAP3 SWAP2 SWAP1 PUSH2 0x315F JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xB6D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xB81 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP PUSH2 0xBA5 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x252A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB AND LT JUMPDEST PUSH2 0xBCC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5CB SWAP1 PUSH2 0x33F7 JUMP JUMPDEST PUSH1 0xB DUP2 ADD DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE PUSH1 0x0 JUMPDEST PUSH1 0x3 DUP3 ADD SLOAD DUP2 LT ISZERO PUSH2 0xCD8 JUMPI PUSH1 0x0 SLOAD PUSH1 0x3 DUP4 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 PUSH4 0x591FCDFE SWAP2 SWAP1 DUP5 SWAP1 DUP2 LT PUSH2 0xC10 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x4 DUP6 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 DUP6 SWAP1 DUP2 LT PUSH2 0xC38 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD DUP6 PUSH1 0x5 ADD DUP6 DUP2 SLOAD DUP2 LT PUSH2 0xC52 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD DUP7 PUSH1 0x6 ADD DUP7 DUP2 SLOAD DUP2 LT PUSH2 0xC6B JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD DUP8 PUSH1 0x2 ADD SLOAD PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC9A SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x31FC JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xCB4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xCC8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 POP PUSH2 0xBDE SWAP1 POP JUMP JUMPDEST POP PUSH32 0x789CF55BE980739DAD1D0699B93B58E806B51C9D96619BFA8FE0A28ABAA7B30C DUP4 PUSH1 0x40 MLOAD PUSH2 0xD08 SWAP2 SWAP1 PUSH2 0x328A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD PUSH2 0xD32 SWAP1 PUSH2 0x30D1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB DUP3 KECCAK256 DUP3 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x14 DUP3 MSTORE PUSH20 0x56656E757320476F7665726E6F7220416C706861 PUSH1 0x60 SHL PUSH1 0x20 SWAP1 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0xE7831129EB24A15F1F8F822483F1D64BD3E968215BB4C81D28D0D3CA9310A835 PUSH2 0xD90 PUSH2 0x1B6E JUMP JUMPDEST ADDRESS PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xDA4 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3298 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP PUSH1 0x0 PUSH1 0x40 MLOAD PUSH2 0xDCA SWAP1 PUSH2 0x30DC JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB DUP2 KECCAK256 PUSH2 0xDE3 SWAP2 DUP10 SWAP1 DUP10 SWAP1 PUSH1 0x20 ADD PUSH2 0x32CD JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP PUSH1 0x0 DUP3 DUP3 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xE10 SWAP3 SWAP2 SWAP1 PUSH2 0x30A0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP PUSH1 0x0 PUSH1 0x1 DUP3 DUP9 DUP9 DUP9 PUSH1 0x40 MLOAD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD PUSH2 0xE4D SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x32F5 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xE6F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH1 0x1F NOT ADD MLOAD SWAP2 POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0xEA2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5CB SWAP1 PUSH2 0x3457 JUMP JUMPDEST PUSH2 0xEAD DUP2 DUP11 DUP11 PUSH2 0x1951 JUMP JUMPDEST POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xEF1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5CB SWAP1 PUSH2 0x3497 JUMP JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0xA SWAP1 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xF32 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5CB SWAP1 PUSH2 0x33B7 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP2 PUSH4 0x3A66F901 SWAP2 DUP4 SWAP2 SWAP1 PUSH2 0xF5C SWAP1 DUP8 SWAP1 PUSH1 0x20 ADD PUSH2 0x30E7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP6 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xF8B SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3110 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xFA5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xFB9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP PUSH2 0x683 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x23F1 JUMP JUMPDEST PUSH10 0x3F870857A3E0E3800000 SWAP1 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x1015 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5CB SWAP1 PUSH2 0x3357 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH4 0xE18B681 PUSH1 0xE0 SHL DUP2 MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP3 PUSH4 0xE18B681 SWAP3 PUSH1 0x4 DUP1 DUP5 ADD SWAP4 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1056 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x106A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x108F PUSH2 0xFDD JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x782D6FE1 SWAP1 CALLER SWAP1 PUSH2 0x10B0 SWAP1 NUMBER SWAP1 PUSH2 0x1B46 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x10CD SWAP3 SWAP2 SWAP1 PUSH2 0x30F5 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x10E5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x10F9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP PUSH2 0x111D SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x252A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB AND GT PUSH2 0x1143 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5CB SWAP1 PUSH2 0x3447 JUMP JUMPDEST DUP5 MLOAD DUP7 MLOAD EQ DUP1 ISZERO PUSH2 0x1155 JUMPI POP DUP4 MLOAD DUP7 MLOAD EQ JUMPDEST DUP1 ISZERO PUSH2 0x1162 JUMPI POP DUP3 MLOAD DUP7 MLOAD EQ JUMPDEST PUSH2 0x117E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5CB SWAP1 PUSH2 0x33E7 JUMP JUMPDEST DUP6 MLOAD PUSH2 0x119C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5CB SWAP1 PUSH2 0x3437 JUMP JUMPDEST PUSH2 0x11A4 PUSH2 0xF03 JUMP JUMPDEST DUP7 MLOAD GT ISZERO PUSH2 0x11C4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5CB SWAP1 PUSH2 0x33C7 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP1 ISZERO PUSH2 0x1241 JUMPI PUSH1 0x0 PUSH2 0x11E5 DUP3 PUSH2 0x92A JUMP JUMPDEST SWAP1 POP PUSH1 0x1 DUP2 PUSH1 0x7 DUP2 GT ISZERO PUSH2 0x11F5 JUMPI INVALID JUMPDEST EQ ISZERO PUSH2 0x1213 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5CB SWAP1 PUSH2 0x3407 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x7 DUP2 GT ISZERO PUSH2 0x1221 JUMPI INVALID JUMPDEST EQ ISZERO PUSH2 0x123F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5CB SWAP1 PUSH2 0x3427 JUMP JUMPDEST POP JUMPDEST PUSH1 0x0 PUSH2 0x124F NUMBER PUSH2 0xA8C PUSH2 0x925 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x125F DUP3 PUSH2 0xA8C PUSH2 0x531 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 ADD SWAP1 SSTORE SWAP1 POP PUSH2 0x1272 PUSH2 0x1CD1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH2 0x1A0 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x3 SLOAD DUP2 MSTORE PUSH1 0x20 ADD CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD DUP12 DUP2 MSTORE PUSH1 0x20 ADD DUP11 DUP2 MSTORE PUSH1 0x20 ADD DUP10 DUP2 MSTORE PUSH1 0x20 ADD DUP9 DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 ISZERO ISZERO DUP2 MSTORE POP SWAP1 POP DUP1 PUSH1 0x4 PUSH1 0x0 DUP4 PUSH1 0x0 ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD SSTORE PUSH1 0x20 DUP3 ADD MLOAD DUP2 PUSH1 0x1 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB MUL NOT AND SWAP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND MUL OR SWAP1 SSTORE POP PUSH1 0x40 DUP3 ADD MLOAD DUP2 PUSH1 0x2 ADD SSTORE PUSH1 0x60 DUP3 ADD MLOAD DUP2 PUSH1 0x3 ADD SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0x1355 SWAP3 SWAP2 SWAP1 PUSH2 0x1D46 JUMP JUMPDEST POP PUSH1 0x80 DUP3 ADD MLOAD DUP1 MLOAD PUSH2 0x1371 SWAP2 PUSH1 0x4 DUP5 ADD SWAP2 PUSH1 0x20 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x1DAB JUMP JUMPDEST POP PUSH1 0xA0 DUP3 ADD MLOAD DUP1 MLOAD PUSH2 0x138D SWAP2 PUSH1 0x5 DUP5 ADD SWAP2 PUSH1 0x20 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x1DF2 JUMP JUMPDEST POP PUSH1 0xC0 DUP3 ADD MLOAD DUP1 MLOAD PUSH2 0x13A9 SWAP2 PUSH1 0x6 DUP5 ADD SWAP2 PUSH1 0x20 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x1E4B JUMP JUMPDEST POP PUSH1 0xE0 DUP3 ADD MLOAD DUP2 PUSH1 0x7 ADD SSTORE PUSH2 0x100 DUP3 ADD MLOAD DUP2 PUSH1 0x8 ADD SSTORE PUSH2 0x120 DUP3 ADD MLOAD DUP2 PUSH1 0x9 ADD SSTORE PUSH2 0x140 DUP3 ADD MLOAD DUP2 PUSH1 0xA ADD SSTORE PUSH2 0x160 DUP3 ADD MLOAD DUP2 PUSH1 0xB ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH2 0x180 DUP3 ADD MLOAD DUP2 PUSH1 0xB ADD PUSH1 0x1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP SWAP1 POP POP DUP1 PUSH1 0x0 ADD MLOAD PUSH1 0x5 PUSH1 0x0 DUP4 PUSH1 0x20 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH32 0x7D84A6263AE0D98D3329BD7B46BB4E8D6F98CD35A7ADB45C274C8B7FD5EBD5E0 DUP2 PUSH1 0x0 ADD MLOAD CALLER DUP13 DUP13 DUP13 DUP13 DUP10 DUP10 DUP15 PUSH1 0x40 MLOAD PUSH2 0x148F SWAP10 SWAP9 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x34B5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 MLOAD SWAP4 POP POP POP POP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x4 PUSH2 0x14B2 DUP3 PUSH2 0x92A JUMP JUMPDEST PUSH1 0x7 DUP2 GT ISZERO PUSH2 0x14BD JUMPI INVALID JUMPDEST EQ PUSH2 0x14DA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5CB SWAP1 PUSH2 0x3367 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 DUP5 SLOAD DUP3 MLOAD PUSH4 0xD48571F PUSH1 0xE3 SHL DUP2 MSTORE SWAP3 MLOAD SWAP2 SWAP6 SWAP5 PUSH2 0x152F SWAP5 TIMESTAMP SWAP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP4 AND SWAP4 PUSH4 0x6A42B8F8 SWAP4 DUP1 DUP5 ADD SWAP4 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xA54 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 POP PUSH1 0x0 JUMPDEST PUSH1 0x3 DUP4 ADD SLOAD DUP2 LT ISZERO PUSH2 0x16D7 JUMPI PUSH2 0x16CF DUP4 PUSH1 0x3 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x1552 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x4 DUP6 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 DUP5 SWAP1 DUP2 LT PUSH2 0x157A JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD DUP6 PUSH1 0x5 ADD DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x1594 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP2 DUP3 SWAP1 KECCAK256 ADD DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F PUSH1 0x2 PUSH1 0x0 NOT PUSH2 0x100 PUSH1 0x1 DUP8 AND ISZERO MUL ADD SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 DIV SWAP3 DUP4 ADD DUP6 SWAP1 DIV DUP6 MUL DUP2 ADD DUP6 ADD SWAP1 SWAP2 MSTORE DUP2 DUP2 MSTORE SWAP3 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x1622 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x15F7 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1622 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x1605 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP7 PUSH1 0x6 ADD DUP6 DUP2 SLOAD DUP2 LT PUSH2 0x1636 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP2 DUP3 SWAP1 KECCAK256 ADD DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F PUSH1 0x2 PUSH1 0x0 NOT PUSH2 0x100 PUSH1 0x1 DUP8 AND ISZERO MUL ADD SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 DIV SWAP3 DUP4 ADD DUP6 SWAP1 DIV DUP6 MUL DUP2 ADD DUP6 ADD SWAP1 SWAP2 MSTORE DUP2 DUP2 MSTORE SWAP3 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x16C4 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1699 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x16C4 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x16A7 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP7 PUSH2 0x1B72 JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0x1534 JUMP JUMPDEST POP PUSH1 0x2 DUP3 ADD DUP2 SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH32 0x9A2E42FD6722813D69113E7D0079D3D940171428DF7373DF9C7F7617CFDA2892 SWAP1 PUSH2 0xD08 SWAP1 DUP6 SWAP1 DUP5 SWAP1 PUSH2 0x35E3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x596 SWAP1 PUSH2 0x30DC JUMP JUMPDEST PUSH2 0x1725 PUSH2 0x1EA4 JUMP JUMPDEST POP PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP5 MSTORE PUSH1 0xC ADD DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD PUSH1 0x60 DUP2 ADD DUP5 MSTORE SWAP1 SLOAD PUSH1 0xFF DUP1 DUP3 AND ISZERO ISZERO DUP4 MSTORE PUSH2 0x100 DUP3 DIV AND ISZERO ISZERO SWAP3 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH3 0x10000 SWAP1 SWAP2 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB AND SWAP2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x5 PUSH2 0x1797 DUP3 PUSH2 0x92A JUMP JUMPDEST PUSH1 0x7 DUP2 GT ISZERO PUSH2 0x17A2 JUMPI INVALID JUMPDEST EQ PUSH2 0x17BF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5CB SWAP1 PUSH2 0x3377 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH1 0xB DUP2 ADD DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE SWAP1 JUMPDEST PUSH1 0x3 DUP3 ADD SLOAD DUP2 LT ISZERO PUSH2 0x1915 JUMPI PUSH1 0x0 SLOAD PUSH1 0x4 DUP4 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 PUSH4 0x825F38F SWAP2 SWAP1 DUP5 SWAP1 DUP2 LT PUSH2 0x1812 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD DUP5 PUSH1 0x3 ADD DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x182C JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x4 DUP7 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 DUP7 SWAP1 DUP2 LT PUSH2 0x1854 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD DUP7 PUSH1 0x5 ADD DUP7 DUP2 SLOAD DUP2 LT PUSH2 0x186E JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD DUP8 PUSH1 0x6 ADD DUP8 DUP2 SLOAD DUP2 LT PUSH2 0x1887 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD DUP9 PUSH1 0x2 ADD SLOAD PUSH1 0x40 MLOAD DUP8 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x18B6 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x31FC JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x18CF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x18E3 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x190C SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x240F JUMP JUMPDEST POP PUSH1 0x1 ADD PUSH2 0x17E0 JUMP JUMPDEST POP PUSH32 0x712AE1383F79AC853F8D882153778E0260EF8F03B504E2866E0593E04D2B291F DUP3 PUSH1 0x40 MLOAD PUSH2 0x1945 SWAP2 SWAP1 PUSH2 0x328A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH2 0x195C DUP4 PUSH2 0x92A JUMP JUMPDEST PUSH1 0x7 DUP2 GT ISZERO PUSH2 0x1967 JUMPI INVALID JUMPDEST EQ PUSH2 0x1984 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5CB SWAP1 PUSH2 0x3477 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND DUP5 MSTORE PUSH1 0xC DUP2 ADD SWAP1 SWAP3 MSTORE SWAP1 SWAP2 KECCAK256 DUP1 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x19CD JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5CB SWAP1 PUSH2 0x33A7 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x7 DUP4 ADD SLOAD PUSH1 0x40 MLOAD PUSH4 0x782D6FE1 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 PUSH4 0x782D6FE1 SWAP2 PUSH2 0x1A03 SWAP2 DUP11 SWAP2 PUSH1 0x4 ADD PUSH2 0x315F JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1A1B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1A2F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP PUSH2 0x1A53 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x252A JUMP JUMPDEST SWAP1 POP DUP4 ISZERO PUSH2 0x1A7C JUMPI PUSH2 0x1A72 DUP4 PUSH1 0x9 ADD SLOAD DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB AND PUSH2 0x1B1A JUMP JUMPDEST PUSH1 0x9 DUP5 ADD SSTORE PUSH2 0x1A99 JUMP JUMPDEST PUSH2 0x1A93 DUP4 PUSH1 0xA ADD SLOAD DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB AND PUSH2 0x1B1A JUMP JUMPDEST PUSH1 0xA DUP5 ADD SSTORE JUMPDEST DUP2 SLOAD PUSH1 0x1 PUSH1 0xFF NOT SWAP1 SWAP2 AND OR PUSH2 0xFF00 NOT AND PUSH2 0x100 DUP6 ISZERO ISZERO MUL OR PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFF0000 NOT AND PUSH3 0x10000 PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB DUP4 AND MUL OR DUP3 SSTORE PUSH1 0x40 MLOAD PUSH32 0x877856338E13F63D0C36822FF0EF736B80934CD90574A3A5BC9262C39D217C46 SWAP1 PUSH2 0x1B0A SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP7 SWAP1 PUSH2 0x316D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 ADD DUP4 DUP2 LT ISZERO PUSH2 0x1B3F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5CB SWAP1 PUSH2 0x33D7 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 GT ISZERO PUSH2 0x1B68 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5CB SWAP1 PUSH2 0x3487 JUMP JUMPDEST POP SWAP1 SUB SWAP1 JUMP JUMPDEST CHAINID SWAP1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xF2B06537 SWAP1 PUSH2 0x1BA0 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH1 0x20 ADD PUSH2 0x31A2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1BD2 SWAP2 SWAP1 PUSH2 0x328A JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1BEA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1BFE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP PUSH2 0x1C22 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x23D3 JUMP JUMPDEST ISZERO PUSH2 0x1C3F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5CB SWAP1 PUSH2 0x3417 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x40 MLOAD PUSH4 0x3A66F901 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x3A66F901 SWAP1 PUSH2 0x1C77 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH1 0x4 ADD PUSH2 0x31A2 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1C91 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1CA5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP PUSH2 0x1CC9 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x23F1 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH2 0x1A0 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 ISZERO ISZERO DUP2 MSTORE POP SWAP1 JUMP JUMPDEST DUP3 DUP1 SLOAD DUP3 DUP3 SSTORE SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP3 DUP3 ISZERO PUSH2 0x1D9B JUMPI SWAP2 PUSH1 0x20 MUL DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x1D9B JUMPI DUP3 MLOAD DUP3 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND OR DUP3 SSTORE PUSH1 0x20 SWAP1 SWAP3 ADD SWAP2 PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x1D66 JUMP JUMPDEST POP PUSH2 0x1DA7 SWAP3 SWAP2 POP PUSH2 0x1EC4 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST DUP3 DUP1 SLOAD DUP3 DUP3 SSTORE SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP3 DUP3 ISZERO PUSH2 0x1DE6 JUMPI SWAP2 PUSH1 0x20 MUL DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x1DE6 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x1DCB JUMP JUMPDEST POP PUSH2 0x1DA7 SWAP3 SWAP2 POP PUSH2 0x1EE8 JUMP JUMPDEST DUP3 DUP1 SLOAD DUP3 DUP3 SSTORE SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP3 DUP3 ISZERO PUSH2 0x1E3F JUMPI SWAP2 PUSH1 0x20 MUL DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x1E3F JUMPI DUP3 MLOAD DUP1 MLOAD PUSH2 0x1E2F SWAP2 DUP5 SWAP2 PUSH1 0x20 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x1F02 JUMP JUMPDEST POP SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x1E12 JUMP JUMPDEST POP PUSH2 0x1DA7 SWAP3 SWAP2 POP PUSH2 0x1F6F JUMP JUMPDEST DUP3 DUP1 SLOAD DUP3 DUP3 SSTORE SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP3 DUP3 ISZERO PUSH2 0x1E98 JUMPI SWAP2 PUSH1 0x20 MUL DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x1E98 JUMPI DUP3 MLOAD DUP1 MLOAD PUSH2 0x1E88 SWAP2 DUP5 SWAP2 PUSH1 0x20 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x1F02 JUMP JUMPDEST POP SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x1E6B JUMP JUMPDEST POP PUSH2 0x1DA7 SWAP3 SWAP2 POP PUSH2 0x1F92 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x60 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE SWAP2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP1 JUMP JUMPDEST PUSH2 0x536 SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x1DA7 JUMPI DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x1ECA JUMP JUMPDEST PUSH2 0x536 SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x1DA7 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x1EEE JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH1 0x1F LT PUSH2 0x1F43 JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH2 0x1DE6 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x1DE6 JUMPI SWAP2 DUP3 ADD DUP3 DUP2 GT ISZERO PUSH2 0x1DE6 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x1DCB JUMP JUMPDEST PUSH2 0x536 SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x1DA7 JUMPI PUSH1 0x0 PUSH2 0x1F89 DUP3 DUP3 PUSH2 0x1FB5 JUMP JUMPDEST POP PUSH1 0x1 ADD PUSH2 0x1F75 JUMP JUMPDEST PUSH2 0x536 SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x1DA7 JUMPI PUSH1 0x0 PUSH2 0x1FAC DUP3 DUP3 PUSH2 0x1FB5 JUMP JUMPDEST POP PUSH1 0x1 ADD PUSH2 0x1F98 JUMP JUMPDEST POP DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV PUSH1 0x0 DUP3 SSTORE DUP1 PUSH1 0x1F LT PUSH2 0x1FDB JUMPI POP PUSH2 0x1FF9 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP1 PUSH2 0x1FF9 SWAP2 SWAP1 PUSH2 0x1EE8 JUMP JUMPDEST POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x1786 DUP2 PUSH2 0x3737 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2018 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x202B PUSH2 0x2026 DUP3 PUSH2 0x3618 JUMP JUMPDEST PUSH2 0x35F1 JUMP JUMPDEST SWAP2 POP DUP2 DUP2 DUP4 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH1 0x20 DUP2 ADD SWAP1 POP DUP4 DUP6 PUSH1 0x20 DUP5 MUL DUP3 ADD GT ISZERO PUSH2 0x2050 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x207C JUMPI DUP2 PUSH2 0x2066 DUP9 DUP3 PUSH2 0x1FFC JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x2053 JUMP JUMPDEST POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2097 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x20A5 PUSH2 0x2026 DUP3 PUSH2 0x3618 JUMP JUMPDEST DUP2 DUP2 MSTORE PUSH1 0x20 SWAP4 DUP5 ADD SWAP4 SWAP1 SWAP3 POP DUP3 ADD DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x207C JUMPI DUP2 CALLDATALOAD DUP7 ADD PUSH2 0x20CD DUP9 DUP3 PUSH2 0x21DC JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x20B7 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x20F4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x2102 PUSH2 0x2026 DUP3 PUSH2 0x3618 JUMP JUMPDEST DUP2 DUP2 MSTORE PUSH1 0x20 SWAP4 DUP5 ADD SWAP4 SWAP1 SWAP3 POP DUP3 ADD DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x207C JUMPI DUP2 CALLDATALOAD DUP7 ADD PUSH2 0x212A DUP9 DUP3 PUSH2 0x21DC JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x2114 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2151 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x215F PUSH2 0x2026 DUP3 PUSH2 0x3618 JUMP JUMPDEST SWAP2 POP DUP2 DUP2 DUP4 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH1 0x20 DUP2 ADD SWAP1 POP DUP4 DUP6 PUSH1 0x20 DUP5 MUL DUP3 ADD GT ISZERO PUSH2 0x2184 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x207C JUMPI DUP2 PUSH2 0x219A DUP9 DUP3 PUSH2 0x21C6 JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x2187 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x1786 DUP2 PUSH2 0x374B JUMP JUMPDEST DUP1 MLOAD PUSH2 0x1786 DUP2 PUSH2 0x374B JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x1786 DUP2 PUSH2 0x3754 JUMP JUMPDEST DUP1 MLOAD PUSH2 0x1786 DUP2 PUSH2 0x3754 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x21ED JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x21FB PUSH2 0x2026 DUP3 PUSH2 0x3639 JUMP JUMPDEST SWAP2 POP DUP1 DUP3 MSTORE PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP4 ADD DUP6 DUP4 DUP4 ADD GT ISZERO PUSH2 0x2217 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2222 DUP4 DUP3 DUP5 PUSH2 0x36EB JUMP JUMPDEST POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x223C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x224A PUSH2 0x2026 DUP3 PUSH2 0x3639 JUMP JUMPDEST SWAP2 POP DUP1 DUP3 MSTORE PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP4 ADD DUP6 DUP4 DUP4 ADD GT ISZERO PUSH2 0x2266 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2222 DUP4 DUP3 DUP5 PUSH2 0x36F7 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x1786 DUP2 PUSH2 0x375D JUMP JUMPDEST DUP1 MLOAD PUSH2 0x1786 DUP2 PUSH2 0x3766 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2299 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x22A5 DUP5 DUP5 PUSH2 0x1FFC JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x22C0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x22CC DUP6 DUP6 PUSH2 0x1FFC JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x22DD DUP6 DUP3 DUP7 ADD PUSH2 0x21C6 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x22FF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP6 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2316 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2322 DUP9 DUP3 DUP10 ADD PUSH2 0x2007 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x233F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x234B DUP9 DUP3 DUP10 ADD PUSH2 0x2140 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2368 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2374 DUP9 DUP3 DUP10 ADD PUSH2 0x20E3 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2391 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x239D DUP9 DUP3 DUP10 ADD PUSH2 0x2086 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x80 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x23BA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x23C6 DUP9 DUP3 DUP10 ADD PUSH2 0x21DC JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x23E5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x22A5 DUP5 DUP5 PUSH2 0x21BB JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2403 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x22A5 DUP5 DUP5 PUSH2 0x21D1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2421 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2438 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x22A5 DUP5 DUP3 DUP6 ADD PUSH2 0x222B JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2456 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x22A5 DUP5 DUP5 PUSH2 0x21C6 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2475 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2481 DUP6 DUP6 PUSH2 0x21C6 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x22DD DUP6 DUP3 DUP7 ADD PUSH2 0x1FFC JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x24A5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x24B1 DUP6 DUP6 PUSH2 0x21C6 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x22DD DUP6 DUP3 DUP7 ADD PUSH2 0x21B0 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x24DA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x24E6 DUP9 DUP9 PUSH2 0x21C6 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 PUSH2 0x24F7 DUP9 DUP3 DUP10 ADD PUSH2 0x21B0 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 PUSH2 0x2508 DUP9 DUP3 DUP10 ADD PUSH2 0x2271 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 PUSH2 0x2519 DUP9 DUP3 DUP10 ADD PUSH2 0x21C6 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x80 PUSH2 0x23C6 DUP9 DUP3 DUP10 ADD PUSH2 0x21C6 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x253C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x22A5 DUP5 DUP5 PUSH2 0x227C JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2554 DUP4 DUP4 PUSH2 0x2583 JUMP JUMPDEST POP POP PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1B3F DUP4 DUP4 PUSH2 0x2725 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2554 DUP4 DUP4 PUSH2 0x270B JUMP JUMPDEST PUSH2 0x257D DUP2 PUSH2 0x36B8 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x257D DUP2 PUSH2 0x3680 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2597 DUP3 PUSH2 0x3673 JUMP JUMPDEST PUSH2 0x25A1 DUP2 DUP6 PUSH2 0x3677 JUMP JUMPDEST SWAP4 POP PUSH2 0x25AC DUP4 PUSH2 0x3661 JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x25DA JUMPI DUP2 MLOAD PUSH2 0x25C4 DUP9 DUP3 PUSH2 0x2548 JUMP JUMPDEST SWAP8 POP PUSH2 0x25CF DUP4 PUSH2 0x3661 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 ADD PUSH2 0x25B0 JUMP JUMPDEST POP SWAP5 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x25F0 DUP3 PUSH2 0x3673 JUMP JUMPDEST PUSH2 0x25FA DUP2 DUP6 PUSH2 0x3677 JUMP JUMPDEST SWAP4 POP DUP4 PUSH1 0x20 DUP3 MUL DUP6 ADD PUSH2 0x260C DUP6 PUSH2 0x3661 JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP6 DUP2 LT ISZERO PUSH2 0x2646 JUMPI DUP5 DUP5 SUB DUP10 MSTORE DUP2 MLOAD PUSH2 0x2629 DUP6 DUP3 PUSH2 0x255C JUMP JUMPDEST SWAP5 POP PUSH2 0x2634 DUP4 PUSH2 0x3661 JUMP JUMPDEST PUSH1 0x20 SWAP11 SWAP1 SWAP11 ADD SWAP10 SWAP3 POP POP PUSH1 0x1 ADD PUSH2 0x2610 JUMP JUMPDEST POP SWAP2 SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x265E DUP3 PUSH2 0x3673 JUMP JUMPDEST PUSH2 0x2668 DUP2 DUP6 PUSH2 0x3677 JUMP JUMPDEST SWAP4 POP DUP4 PUSH1 0x20 DUP3 MUL DUP6 ADD PUSH2 0x267A DUP6 PUSH2 0x3661 JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP6 DUP2 LT ISZERO PUSH2 0x2646 JUMPI DUP5 DUP5 SUB DUP10 MSTORE DUP2 MLOAD PUSH2 0x2697 DUP6 DUP3 PUSH2 0x255C JUMP JUMPDEST SWAP5 POP PUSH2 0x26A2 DUP4 PUSH2 0x3661 JUMP JUMPDEST PUSH1 0x20 SWAP11 SWAP1 SWAP11 ADD SWAP10 SWAP3 POP POP PUSH1 0x1 ADD PUSH2 0x267E JUMP JUMPDEST PUSH1 0x0 PUSH2 0x26BF DUP3 PUSH2 0x3673 JUMP JUMPDEST PUSH2 0x26C9 DUP2 DUP6 PUSH2 0x3677 JUMP JUMPDEST SWAP4 POP PUSH2 0x26D4 DUP4 PUSH2 0x3661 JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x25DA JUMPI DUP2 MLOAD PUSH2 0x26EC DUP9 DUP3 PUSH2 0x2568 JUMP JUMPDEST SWAP8 POP PUSH2 0x26F7 DUP4 PUSH2 0x3661 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 ADD PUSH2 0x26D8 JUMP JUMPDEST PUSH2 0x257D DUP2 PUSH2 0x368B JUMP JUMPDEST PUSH2 0x257D DUP2 PUSH2 0x536 JUMP JUMPDEST PUSH2 0x257D PUSH2 0x2720 DUP3 PUSH2 0x536 JUMP JUMPDEST PUSH2 0x536 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2730 DUP3 PUSH2 0x3673 JUMP JUMPDEST PUSH2 0x273A DUP2 DUP6 PUSH2 0x3677 JUMP JUMPDEST SWAP4 POP PUSH2 0x274A DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x36F7 JUMP JUMPDEST PUSH2 0x2753 DUP2 PUSH2 0x3723 JUMP JUMPDEST SWAP1 SWAP4 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SLOAD PUSH1 0x1 DUP2 AND PUSH1 0x0 DUP2 EQ PUSH2 0x277A JUMPI PUSH1 0x1 DUP2 EQ PUSH2 0x27A0 JUMPI PUSH2 0x27DF JUMP JUMPDEST PUSH1 0x7F PUSH1 0x2 DUP4 DIV AND PUSH2 0x278B DUP2 DUP8 PUSH2 0x3677 JUMP JUMPDEST PUSH1 0xFF NOT DUP5 AND DUP2 MSTORE SWAP6 POP POP PUSH1 0x20 DUP6 ADD SWAP3 POP PUSH2 0x27DF JUMP JUMPDEST PUSH1 0x2 DUP3 DIV PUSH2 0x27AE DUP2 DUP8 PUSH2 0x3677 JUMP JUMPDEST SWAP6 POP PUSH2 0x27B9 DUP6 PUSH2 0x3667 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x27D8 JUMPI DUP2 SLOAD DUP9 DUP3 ADD MSTORE PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x20 ADD PUSH2 0x27BC JUMP JUMPDEST DUP8 ADD SWAP5 POP POP POP JUMPDEST POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x257D DUP2 PUSH2 0x36BF JUMP JUMPDEST PUSH2 0x257D DUP2 PUSH2 0x36CA JUMP JUMPDEST PUSH2 0x257D DUP2 PUSH2 0x36D5 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x280F PUSH1 0x39 DUP4 PUSH2 0x3677 JUMP JUMPDEST PUSH32 0x476F7665726E6F72416C7068613A3A5F5F61636365707441646D696E3A207365 DUP2 MSTORE PUSH32 0x6E646572206D75737420626520676F7620677561726469616E00000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x286E PUSH1 0x44 DUP4 PUSH2 0x3677 JUMP JUMPDEST PUSH32 0x476F7665726E6F72416C7068613A3A71756575653A2070726F706F73616C2063 DUP2 MSTORE PUSH32 0x616E206F6E6C7920626520717565756564206966206974206973207375636365 PUSH1 0x20 DUP3 ADD MSTORE PUSH4 0x19591959 PUSH1 0xE2 SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x28DA PUSH1 0x45 DUP4 PUSH2 0x3677 JUMP JUMPDEST PUSH32 0x476F7665726E6F72416C7068613A3A657865637574653A2070726F706F73616C DUP2 MSTORE PUSH32 0x2063616E206F6E6C792062652065786563757465642069662069742069732071 PUSH1 0x20 DUP3 ADD MSTORE PUSH5 0x1D595D5959 PUSH1 0xDA SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2947 PUSH1 0x2 DUP4 PUSH2 0xAA7 JUMP JUMPDEST PUSH2 0x1901 PUSH1 0xF0 SHL DUP2 MSTORE PUSH1 0x2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2965 PUSH1 0x4C DUP4 PUSH2 0x3677 JUMP JUMPDEST PUSH32 0x476F7665726E6F72416C7068613A3A5F5F6578656375746553657454696D656C DUP2 MSTORE PUSH32 0x6F636B50656E64696E6741646D696E3A2073656E646572206D75737420626520 PUSH1 0x20 DUP3 ADD MSTORE PUSH12 0x33B7BB1033BAB0B93234B0B7 PUSH1 0xA1 SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x29D9 PUSH1 0x18 DUP4 PUSH2 0x3677 JUMP JUMPDEST PUSH32 0x73657450656E64696E6741646D696E2861646472657373290000000000000000 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2A12 PUSH1 0x29 DUP4 PUSH2 0x3677 JUMP JUMPDEST PUSH32 0x476F7665726E6F72416C7068613A3A73746174653A20696E76616C6964207072 DUP2 MSTORE PUSH9 0x1BDC1BDCD85B081A59 PUSH1 0xBA SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2A5D PUSH1 0x2D DUP4 PUSH2 0x3677 JUMP JUMPDEST PUSH32 0x476F7665726E6F72416C7068613A3A5F63617374566F74653A20766F74657220 DUP2 MSTORE PUSH13 0x185B1C9958591E481D9BDD1959 PUSH1 0x9A SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2AAC PUSH1 0x4A DUP4 PUSH2 0x3677 JUMP JUMPDEST PUSH32 0x476F7665726E6F72416C7068613A3A5F5F717565756553657454696D656C6F63 DUP2 MSTORE PUSH32 0x6B50656E64696E6741646D696E3A2073656E646572206D75737420626520676F PUSH1 0x20 DUP3 ADD MSTORE PUSH10 0x3B1033BAB0B93234B0B7 PUSH1 0xB1 SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2B1E PUSH1 0x28 DUP4 PUSH2 0x3677 JUMP JUMPDEST PUSH32 0x476F7665726E6F72416C7068613A3A70726F706F73653A20746F6F206D616E79 DUP2 MSTORE PUSH8 0x20616374696F6E73 PUSH1 0xC0 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2B68 PUSH1 0x11 DUP4 PUSH2 0x3677 JUMP JUMPDEST PUSH17 0x6164646974696F6E206F766572666C6F77 PUSH1 0x78 SHL DUP2 MSTORE PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2B95 PUSH1 0x43 DUP4 PUSH2 0xAA7 JUMP JUMPDEST PUSH32 0x454950373132446F6D61696E28737472696E67206E616D652C75696E74323536 DUP2 MSTORE PUSH32 0x20636861696E49642C6164647265737320766572696679696E67436F6E747261 PUSH1 0x20 DUP3 ADD MSTORE PUSH3 0x637429 PUSH1 0xE8 SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x43 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2C00 PUSH1 0x27 DUP4 PUSH2 0xAA7 JUMP JUMPDEST PUSH32 0x42616C6C6F742875696E743235362070726F706F73616C49642C626F6F6C2073 DUP2 MSTORE PUSH7 0x7570706F727429 PUSH1 0xC8 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x27 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2C49 PUSH1 0x44 DUP4 PUSH2 0x3677 JUMP JUMPDEST PUSH32 0x476F7665726E6F72416C7068613A3A70726F706F73653A2070726F706F73616C DUP2 MSTORE PUSH32 0x2066756E6374696F6E20696E666F726D6174696F6E206172697479206D69736D PUSH1 0x20 DUP3 ADD MSTORE PUSH4 0xC2E8C6D PUSH1 0xE3 SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2CB5 PUSH1 0x2F DUP4 PUSH2 0x3677 JUMP JUMPDEST PUSH32 0x476F7665726E6F72416C7068613A3A63616E63656C3A2070726F706F73657220 DUP2 MSTORE PUSH15 0x18589BDD99481D1A1C995CDA1BDB19 PUSH1 0x8A SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2D06 PUSH1 0x38 DUP4 PUSH2 0x3677 JUMP JUMPDEST PUSH32 0x476F7665726E6F72416C7068613A3A70726F706F73653A20666F756E6420616E DUP2 MSTORE PUSH32 0x20616C7265616479206163746976652070726F706F73616C0000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2D65 PUSH1 0x44 DUP4 PUSH2 0x3677 JUMP JUMPDEST PUSH32 0x476F7665726E6F72416C7068613A3A5F71756575654F725265766572743A2070 DUP2 MSTORE PUSH32 0x726F706F73616C20616374696F6E20616C726561647920717565756564206174 PUSH1 0x20 DUP3 ADD MSTORE PUSH4 0x20657461 PUSH1 0xE0 SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2DD1 PUSH1 0x39 DUP4 PUSH2 0x3677 JUMP JUMPDEST PUSH32 0x476F7665726E6F72416C7068613A3A70726F706F73653A20666F756E6420616E DUP2 MSTORE PUSH32 0x20616C72656164792070656E64696E672070726F706F73616C00000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2E30 PUSH1 0x2C DUP4 PUSH2 0x3677 JUMP JUMPDEST PUSH32 0x476F7665726E6F72416C7068613A3A70726F706F73653A206D7573742070726F DUP2 MSTORE PUSH12 0x7669646520616374696F6E73 PUSH1 0xA0 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2E7E PUSH1 0x3F DUP4 PUSH2 0x3677 JUMP JUMPDEST PUSH32 0x476F7665726E6F72416C7068613A3A70726F706F73653A2070726F706F736572 DUP2 MSTORE PUSH32 0x20766F7465732062656C6F772070726F706F73616C207468726573686F6C6400 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2EDD PUSH1 0x2F DUP4 PUSH2 0x3677 JUMP JUMPDEST PUSH32 0x476F7665726E6F72416C7068613A3A63617374566F746542795369673A20696E DUP2 MSTORE PUSH15 0x76616C6964207369676E6174757265 PUSH1 0x88 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2F2E PUSH1 0x36 DUP4 PUSH2 0x3677 JUMP JUMPDEST PUSH32 0x476F7665726E6F72416C7068613A3A63616E63656C3A2063616E6E6F74206361 DUP2 MSTORE PUSH22 0x1B98D95B08195E1958DD5D1959081C1C9BDC1BDCD85B PUSH1 0x52 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2F86 PUSH1 0x2A DUP4 PUSH2 0x3677 JUMP JUMPDEST PUSH32 0x476F7665726E6F72416C7068613A3A5F63617374566F74653A20766F74696E67 DUP2 MSTORE PUSH10 0x81A5CC818DB1BDCD959 PUSH1 0xB2 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2FD2 PUSH1 0x15 DUP4 PUSH2 0x3677 JUMP JUMPDEST PUSH21 0x7375627472616374696F6E20756E646572666C6F77 PUSH1 0x58 SHL DUP2 MSTORE PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3003 PUSH1 0x36 DUP4 PUSH2 0x3677 JUMP JUMPDEST PUSH32 0x476F7665726E6F72416C7068613A3A5F5F61626469636174653A2073656E6465 DUP2 MSTORE PUSH22 0x391036BAB9BA1031329033B7BB1033BAB0B93234B0B7 PUSH1 0x51 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 MLOAD PUSH1 0x60 DUP4 ADD SWAP1 PUSH2 0x305F DUP5 DUP3 PUSH2 0x2702 JUMP JUMPDEST POP PUSH1 0x20 DUP3 ADD MLOAD PUSH2 0x3072 PUSH1 0x20 DUP6 ADD DUP3 PUSH2 0x2702 JUMP JUMPDEST POP PUSH1 0x40 DUP3 ADD MLOAD PUSH2 0x106A PUSH1 0x40 DUP6 ADD DUP3 PUSH2 0x3097 JUMP JUMPDEST PUSH2 0x257D DUP2 PUSH2 0x36A6 JUMP JUMPDEST PUSH2 0x257D DUP2 PUSH2 0x36E0 JUMP JUMPDEST PUSH2 0x257D DUP2 PUSH2 0x36AC JUMP JUMPDEST PUSH1 0x0 PUSH2 0x30AB DUP3 PUSH2 0x293A JUMP JUMPDEST SWAP2 POP PUSH2 0x30B7 DUP3 DUP6 PUSH2 0x2714 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH2 0x30C7 DUP3 DUP5 PUSH2 0x2714 JUMP JUMPDEST POP PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1786 DUP3 PUSH2 0x2B88 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1786 DUP3 PUSH2 0x2BF3 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x1786 DUP3 DUP5 PUSH2 0x2583 JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0x3103 DUP3 DUP6 PUSH2 0x2574 JUMP JUMPDEST PUSH2 0x1B3F PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x270B JUMP JUMPDEST PUSH1 0xA0 DUP2 ADD PUSH2 0x311E DUP3 DUP8 PUSH2 0x2583 JUMP JUMPDEST PUSH2 0x312B PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x27F9 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x313C DUP2 PUSH2 0x29CC JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x3150 DUP2 DUP6 PUSH2 0x2725 JUMP JUMPDEST SWAP1 POP PUSH2 0x149E PUSH1 0x80 DUP4 ADD DUP5 PUSH2 0x270B JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0x3103 DUP3 DUP6 PUSH2 0x2583 JUMP JUMPDEST PUSH1 0x80 DUP2 ADD PUSH2 0x317B DUP3 DUP8 PUSH2 0x2583 JUMP JUMPDEST PUSH2 0x3188 PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x270B JUMP JUMPDEST PUSH2 0x3195 PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x2702 JUMP JUMPDEST PUSH2 0x149E PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x308E JUMP JUMPDEST PUSH1 0xA0 DUP2 ADD PUSH2 0x31B0 DUP3 DUP9 PUSH2 0x2583 JUMP JUMPDEST PUSH2 0x31BD PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x270B JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x31CF DUP2 DUP7 PUSH2 0x2725 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x31E3 DUP2 DUP6 PUSH2 0x2725 JUMP JUMPDEST SWAP1 POP PUSH2 0x31F2 PUSH1 0x80 DUP4 ADD DUP5 PUSH2 0x270B JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0xA0 DUP2 ADD PUSH2 0x320A DUP3 DUP9 PUSH2 0x2583 JUMP JUMPDEST PUSH2 0x3217 PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x270B JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x3229 DUP2 DUP7 PUSH2 0x275D JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x31E3 DUP2 DUP6 PUSH2 0x275D JUMP JUMPDEST PUSH1 0x80 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x324E DUP2 DUP8 PUSH2 0x258C JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x3262 DUP2 DUP7 PUSH2 0x26B4 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x3276 DUP2 DUP6 PUSH2 0x2653 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x31F2 DUP2 DUP5 PUSH2 0x25E5 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x1786 DUP3 DUP5 PUSH2 0x270B JUMP JUMPDEST PUSH1 0x80 DUP2 ADD PUSH2 0x32A6 DUP3 DUP8 PUSH2 0x270B JUMP JUMPDEST PUSH2 0x32B3 PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x270B JUMP JUMPDEST PUSH2 0x32C0 PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x270B JUMP JUMPDEST PUSH2 0x149E PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x2583 JUMP JUMPDEST PUSH1 0x60 DUP2 ADD PUSH2 0x32DB DUP3 DUP7 PUSH2 0x270B JUMP JUMPDEST PUSH2 0x32E8 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x270B JUMP JUMPDEST PUSH2 0x22A5 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x2702 JUMP JUMPDEST PUSH1 0x80 DUP2 ADD PUSH2 0x3303 DUP3 DUP8 PUSH2 0x270B JUMP JUMPDEST PUSH2 0x3310 PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x3085 JUMP JUMPDEST PUSH2 0x331D PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x270B JUMP JUMPDEST PUSH2 0x149E PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x270B JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x1786 DUP3 DUP5 PUSH2 0x27E7 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x1786 DUP3 DUP5 PUSH2 0x27F0 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1B3F DUP2 DUP5 PUSH2 0x2725 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1786 DUP2 PUSH2 0x2802 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1786 DUP2 PUSH2 0x2861 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1786 DUP2 PUSH2 0x28CD JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1786 DUP2 PUSH2 0x2958 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1786 DUP2 PUSH2 0x2A05 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1786 DUP2 PUSH2 0x2A50 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1786 DUP2 PUSH2 0x2A9F JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1786 DUP2 PUSH2 0x2B11 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1786 DUP2 PUSH2 0x2B5B JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1786 DUP2 PUSH2 0x2C3C JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1786 DUP2 PUSH2 0x2CA8 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1786 DUP2 PUSH2 0x2CF9 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1786 DUP2 PUSH2 0x2D58 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1786 DUP2 PUSH2 0x2DC4 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1786 DUP2 PUSH2 0x2E23 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1786 DUP2 PUSH2 0x2E71 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1786 DUP2 PUSH2 0x2ED0 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1786 DUP2 PUSH2 0x2F21 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1786 DUP2 PUSH2 0x2F79 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1786 DUP2 PUSH2 0x2FC5 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1786 DUP2 PUSH2 0x2FF6 JUMP JUMPDEST PUSH1 0x60 DUP2 ADD PUSH2 0x1786 DUP3 DUP5 PUSH2 0x304E JUMP JUMPDEST PUSH2 0x120 DUP2 ADD PUSH2 0x34C4 DUP3 DUP13 PUSH2 0x270B JUMP JUMPDEST PUSH2 0x34D1 PUSH1 0x20 DUP4 ADD DUP12 PUSH2 0x2574 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x34E3 DUP2 DUP11 PUSH2 0x258C JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x34F7 DUP2 DUP10 PUSH2 0x26B4 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x80 DUP4 ADD MSTORE PUSH2 0x350B DUP2 DUP9 PUSH2 0x2653 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0xA0 DUP4 ADD MSTORE PUSH2 0x351F DUP2 DUP8 PUSH2 0x25E5 JUMP JUMPDEST SWAP1 POP PUSH2 0x352E PUSH1 0xC0 DUP4 ADD DUP7 PUSH2 0x270B JUMP JUMPDEST PUSH2 0x353B PUSH1 0xE0 DUP4 ADD DUP6 PUSH2 0x270B JUMP JUMPDEST DUP2 DUP2 SUB PUSH2 0x100 DUP4 ADD MSTORE PUSH2 0x354E DUP2 DUP5 PUSH2 0x2725 JUMP JUMPDEST SWAP12 SWAP11 POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x120 DUP2 ADD PUSH2 0x356C DUP3 DUP13 PUSH2 0x270B JUMP JUMPDEST PUSH2 0x3579 PUSH1 0x20 DUP4 ADD DUP12 PUSH2 0x2583 JUMP JUMPDEST PUSH2 0x3586 PUSH1 0x40 DUP4 ADD DUP11 PUSH2 0x270B JUMP JUMPDEST PUSH2 0x3593 PUSH1 0x60 DUP4 ADD DUP10 PUSH2 0x270B JUMP JUMPDEST PUSH2 0x35A0 PUSH1 0x80 DUP4 ADD DUP9 PUSH2 0x270B JUMP JUMPDEST PUSH2 0x35AD PUSH1 0xA0 DUP4 ADD DUP8 PUSH2 0x270B JUMP JUMPDEST PUSH2 0x35BA PUSH1 0xC0 DUP4 ADD DUP7 PUSH2 0x270B JUMP JUMPDEST PUSH2 0x35C7 PUSH1 0xE0 DUP4 ADD DUP6 PUSH2 0x2702 JUMP JUMPDEST PUSH2 0x35D5 PUSH2 0x100 DUP4 ADD DUP5 PUSH2 0x2702 JUMP JUMPDEST SWAP11 SWAP10 POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0x3103 DUP3 DUP6 PUSH2 0x270B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP2 DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x3610 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x362F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x20 SWAP1 DUP2 MUL ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x3650 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x20 PUSH1 0x1F SWAP2 SWAP1 SWAP2 ADD PUSH1 0x1F NOT AND ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 SWAP1 KECCAK256 SWAP1 JUMP JUMPDEST MLOAD SWAP1 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1786 DUP3 PUSH2 0x369A JUMP JUMPDEST ISZERO ISZERO SWAP1 JUMP JUMPDEST DUP1 PUSH2 0xAA7 DUP2 PUSH2 0x372D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1786 DUP3 JUMPDEST PUSH1 0x0 PUSH2 0x1786 DUP3 PUSH2 0x3680 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1786 DUP3 PUSH2 0x3690 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1786 DUP3 PUSH2 0x536 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1786 DUP3 PUSH2 0x36AC JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x3712 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x36FA JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x106A JUMPI POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP1 JUMP JUMPDEST PUSH1 0x8 DUP2 LT PUSH2 0x1FF9 JUMPI INVALID JUMPDEST PUSH2 0x3740 DUP2 PUSH2 0x3680 JUMP JUMPDEST DUP2 EQ PUSH2 0x1FF9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3740 DUP2 PUSH2 0x368B JUMP JUMPDEST PUSH2 0x3740 DUP2 PUSH2 0x536 JUMP JUMPDEST PUSH2 0x3740 DUP2 PUSH2 0x36A6 JUMP JUMPDEST PUSH2 0x3740 DUP2 PUSH2 0x36AC JUMP INVALID LOG3 PUSH6 0x627A7A723158 KECCAK256 0x5C 0xCB 0xC7 PUSH9 0x6B054EEBC43E46E02E PUSH18 0xDB1A594A160D10A09C716EDC223032CE01A8 PUSH13 0x6578706572696D656E74616CF5 PUSH5 0x736F6C6343 STOP SDIV LT STOP BLOCKHASH ","sourceMap":"60:14851:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3675:42;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3675:42:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;1066:97;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1066:97:0;;;:::i;:::-;;;;;;;;131:52;;8:9:-1;5:2;;;30:1;27;20:12;5:2;131:52:0;;;:::i;:::-;;;;;;;;11801:122;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;11801:122:0;;;;;;;;:::i;:::-;;3778:49;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3778:49:0;;;;;;;;:::i;3897:130::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3897:130:0;;;:::i;14084:333::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;14084:333:0;;;;;;;;:::i;322:83::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;322:83:0;;;:::i;10282:326::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;10282:326:0;;;;;;;;:::i;:::-;;;;;;;;;;;910:75;;8:9:-1;5:2;;;30:1;27;20:12;5:2;910:75:0;;;:::i;10770:1025::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;10770:1025:0;;;;;;;;:::i;:::-;;;;;;;;9397:879;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;9397:879:0;;;;;;;;:::i;1451:23::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1451:23:0;;;:::i;:::-;;;;;;;;11929:640;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;11929:640:0;;;;;;;;:::i;1368:23::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1368:23:0;;;:::i;:::-;;;;;;;;13579:166;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13579:166:0;;;:::i;720:86::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;720:86:0;;;:::i;13751:327::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;13751:327:0;;;;;;;;:::i;521:89::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;521:89:0;;;:::i;13400:173::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13400:173:0;;;:::i;1270:33::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1270:33:0;;;:::i;1527:25::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1527:25:0;;;:::i;5240:2431::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5240:2431:0;;;;;;;;:::i;7677:602::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;7677:602:0;;;;;;;;:::i;4114:94::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4114:94:0;;;:::i;10614:150::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;10614:150:0;;;;;;;;:::i;:::-;;;;;;;;8698:693;;;;;;;;;:::i;3675:42::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3675:42:0;;;;;;;;;;;;;;;;;;;;;;:::o;1066:97::-;1134:22;1066:97;;:::o;131:52::-;;;;;;;;;;;;;;-1:-1:-1;;;131:52:0;;;;:::o;11801:122::-;11874:42;11884:10;11896;11908:7;11874:9;:42::i;:::-;11801:122;;:::o;3778:49::-;;;;;;;;;;;;;:::o;3897:130::-;3947:80;;;;;;;;;;;;;;3897:130;:::o;14084:333::-;14200:8;;-1:-1:-1;;;;;14200:8:0;14186:10;:22;14178:111;;;;-1:-1:-1;;;14178:111:0;;;;;;;;;;;;;;;;;14299:8;;;14377:27;;-1:-1:-1;;;;;14299:8:0;;;;:27;;:8;;;14377:27;;14388:15;;14377:27;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;14377:27:0;;;14406:3;14299:111;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14299:111:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14299:111:0;;;;;;39:16:-1;36:1;17:17;2:54;101:4;14299:111:0;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;14299:111:0;;;;;;;;;;14084:333;;:::o;322:83::-;389:9;322:83;:::o;10282:326::-;10378:24;10404:20;10426:26;10454:24;10494:18;10515:9;:21;10525:10;10515:21;;;;;;;;;;;10494:42;;10554:1;:9;;10565:1;:8;;10575:1;:12;;10589:1;:11;;10546:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10546:55:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;10546:55:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;10546:55:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10282:326;;;;;:::o;910:75::-;977:1;910:75;:::o;10770:1025::-;10823:13;10873:10;10856:13;;:27;;:45;;;;;10900:1;10887:10;:14;10856:45;10848:99;;;;-1:-1:-1;;;10848:99:0;;;;;;;;;10957:25;10985:21;;;:9;:21;;;;;11020:17;;;;;;11016:773;;;11060:22;11053:29;;;;;11016:773;11119:8;:19;;;11103:12;:35;11099:690;;11161:21;11154:28;;;;;11099:690;11219:8;:17;;;11203:12;:33;11199:590;;11259:20;11252:27;;;;;11199:590;11321:8;:21;;;11300:8;:17;;;:42;;:79;;;;11366:13;:11;:13::i;:::-;11346:8;:17;;;:33;11300:79;11296:493;;;11402:22;11395:29;;;;;11296:493;11445:12;;;;11441:348;;11485:23;11478:30;;;;;11441:348;11529:17;;;;;;;;;11525:264;;;11569:22;11562:29;;;;;11525:264;11638:12;;;;11652:8;;:23;;;-1:-1:-1;;;11652:23:0;;;;11631:45;;11638:12;-1:-1:-1;;;;;11652:8:0;;:21;;:23;;;;;;;;;;;;;;:8;:23;;;5:2:-1;;;;30:1;27;20:12;5:2;11652:23:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11652:23:0;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;11652:23:0;;;;;;;;;11631:6;:45::i;:::-;11612:15;:64;11608:181;;11699:21;11692:28;;;;;11608:181;11758:20;11751:27;;;10770:1025;;;;:::o;9397:879::-;9447:19;9469:17;9475:10;9469:5;:17::i;:::-;9447:39;-1:-1:-1;9513:22:0;9504:5;:31;;;;;;;;;;9496:98;;;;-1:-1:-1;;;9496:98:0;;;;;;;;;9605:25;9633:21;;;:9;:21;;;;;9699:8;;-1:-1:-1;;;;;9699:8:0;9685:10;:22;;:125;;;9791:19;:17;:19::i;:::-;9727:3;;;9745:17;;;;-1:-1:-1;;;;;9727:3:0;;;;:17;;9745;;;;9764:23;;9771:12;;9764:6;:23::i;:::-;9727:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9727:61:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9727:61:0;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;9727:61:0;;;;;;;;;-1:-1:-1;;;;;9727:83:0;;9685:125;9664:219;;;;-1:-1:-1;;;9664:219:0;;;;;;;;;9894:17;;;:24;;-1:-1:-1;;9894:24:0;9914:4;9894:24;;;:17;9928:298;9949:16;;;:23;9945:27;;9928:298;;;9993:8;;10037:16;;;:19;;-1:-1:-1;;;;;9993:8:0;;;;:26;;10037:16;10054:1;;10037:19;;;;;;;;;;;;;;;;10074:15;;;:18;;-1:-1:-1;;;;;10037:19:0;;;;10090:1;;10074:18;;;;;;;;;;;;;;10110:8;:19;;10130:1;10110:22;;;;;;;;;;;;;;;10150:8;:18;;10169:1;10150:21;;;;;;;;;;;;;;;10189:8;:12;;;9993:222;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9993:222:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;9974:3:0;;;;;-1:-1:-1;9928:298:0;;-1:-1:-1;9928:298:0;;;10241:28;10258:10;10241:28;;;;;;;;;;;;;;;9397:879;;;:::o;1451:23::-;;;-1:-1:-1;;;;;1451:23:0;;:::o;11929:640::-;12031:23;3947:80;;;;;;;;;;;;;;;;12124:4;;;;;;;;;-1:-1:-1;;;12124:4:0;;;;;;;;12108:22;12132:12;:10;:12::i;:::-;12154:4;12080:80;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;12080:80:0;;;12057:113;;;;;;12031:139;;12180:18;4156:52;;;;;;;;;;;;;;;12211:48;;12239:10;;12251:7;;12211:48;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;12211:48:0;;;12201:59;;;;;;12180:80;;12270:14;12326:15;12343:10;12297:57;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;12297:57:0;;;12287:68;;;;;;12270:85;;12365:17;12385:26;12395:6;12403:1;12406;12409;12385:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;12385:26:0;;-1:-1:-1;;12385:26:0;;;-1:-1:-1;;;;;;;12429:23:0;;12421:83;;;;-1:-1:-1;;;12421:83:0;;;;;;;;;12521:41;12531:9;12542:10;12554:7;12521:9;:41::i;:::-;12514:48;;;;11929:640;;;;;:::o;1368:23::-;;;-1:-1:-1;;;;;1368:23:0;;:::o;13579:166::-;13640:8;;-1:-1:-1;;;;;13640:8:0;13626:10;:22;13618:89;;;;-1:-1:-1;;;13618:89:0;;;;;;;;;13717:8;:21;;-1:-1:-1;;;;;;13717:21:0;;;13579:166::o;720:86::-;797:2;720:86;:::o;13751:327::-;13865:8;;-1:-1:-1;;;;;13865:8:0;13851:10;:22;13843:109;;;;-1:-1:-1;;;13843:109:0;;;;;;;;;13962:8;;;14038:27;;-1:-1:-1;;;;;13962:8:0;;;;:25;;:8;;;14038:27;;14049:15;;14038:27;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;14038:27:0;;;14067:3;13962:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13962:109:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13962:109:0;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;13962:109:0;;;;;;;;521:89;594:9;521:89;:::o;13400:173::-;13464:8;;-1:-1:-1;;;;;13464:8:0;13450:10;:22;13442:92;;;;-1:-1:-1;;;13442:92:0;;;;;;;;;13544:8;;;:22;;;-1:-1:-1;;;13544:22:0;;;;-1:-1:-1;;;;;13544:8:0;;;;:20;;:22;;;;;;;;;;:8;;:22;;;5:2:-1;;;;30:1;27;20:12;5:2;13544:22:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13544:22:0;;;;13400:173::o;1270:33::-;;;-1:-1:-1;;;;;1270:33:0;;:::o;1527:25::-;;;;:::o;5240:2431::-;5448:4;5542:19;:17;:19::i;:::-;5485:3;;;-1:-1:-1;;;;;5485:3:0;;:17;;5503:10;;5515:23;;5522:12;;5515:6;:23::i;:::-;5485:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5485:54:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5485:54:0;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;5485:54:0;;;;;;;;;-1:-1:-1;;;;;5485:76:0;;5464:186;;;;-1:-1:-1;;;5464:186:0;;;;;;;;;5699:6;:13;5681:7;:14;:31;:86;;;;;5750:10;:17;5732:7;:14;:35;5681:86;:140;;;;;5805:9;:16;5787:7;:14;:34;5681:140;5660:255;;;;-1:-1:-1;;;5660:255:0;;;;;;;;;5933:14;;5925:76;;;;-1:-1:-1;;;5925:76:0;;;;;;;;;6037:23;:21;:23::i;:::-;6019:7;:14;:41;;6011:94;;;;-1:-1:-1;;;6011:94:0;;;;;;;;;6158:10;6116:21;6140:29;;;:17;:29;;;;;;6183:21;;6179:484;;6220:42;6265:23;6271:16;6265:5;:23::i;:::-;6220:68;-1:-1:-1;6359:20:0;6327:28;:52;;;;;;;;;;6302:167;;;;-1:-1:-1;;;6302:167:0;;;;;;;;;6540:21;6508:28;:53;;;;;;;;;;6483:169;;;;-1:-1:-1;;;6483:169:0;;;;;;;;;6179:484;;6673:15;6691:35;6698:12;6712:13;:11;:13::i;6691:35::-;6673:53;;6736:13;6752:34;6759:10;6771:14;:12;:14::i;6752:34::-;6797:13;:15;;;;;;6736:50;-1:-1:-1;6822:27:0;;:::i;:::-;6852:413;;;;;;;;6879:13;;6852:413;;;;6916:10;-1:-1:-1;;;;;6852:413:0;;;;;6945:1;6852:413;;;;6969:7;6852:413;;;;6998:6;6852:413;;;;7030:10;6852:413;;;;7065:9;6852:413;;;;7100:10;6852:413;;;;7134:8;6852:413;;;;7166:1;6852:413;;;;7195:1;6852:413;;;;7220:5;6852:413;;;;;;7249:5;6852:413;;;;;6822:443;;7304:11;7276:9;:25;7286:11;:14;;;7276:25;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7276:39:0;;;;;-1:-1:-1;;;;;7276:39:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;7276:39:0;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;7276:39:0;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;7276:39:0;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7367:11;:14;;;7325:17;:39;7343:11;:20;;;-1:-1:-1;;;;;7325:39:0;-1:-1:-1;;;;;7325:39:0;;;;;;;;;;;;:56;;;;7397:236;7426:11;:14;;;7454:10;7478:7;7499:6;7519:10;7543:9;7566:10;7590:8;7612:11;7397:236;;;;;;;;;;;;;;;;;;;;;;;7650:14;;-1:-1:-1;;;;5240:2431:0;;;;;;;;:::o;7677:602::-;7768:23;7747:17;7753:10;7747:5;:17::i;:::-;:44;;;;;;;;;7726:159;;;;-1:-1:-1;;;7726:159:0;;;;;;;;;7895:25;7923:21;;;:9;:21;;;;;;;;7989:8;;:16;;-1:-1:-1;;;7989:16:0;;;;7923:21;;7895:25;7965:41;;7972:15;;-1:-1:-1;;;;;7989:8:0;;;;:14;;:16;;;;;;;;;;:8;:16;;;5:2:-1;;;;30:1;27;20:12;7965:41:0;7954:52;-1:-1:-1;8021:6:0;8016:183;8037:16;;;:23;8033:27;;8016:183;;;8081:107;8096:8;:16;;8113:1;8096:19;;;;;;;;;;;;;;;;;;8117:15;;;:18;;-1:-1:-1;;;;;8096:19:0;;;;8133:1;;8117:18;;;;;;;;;;;;;;8137:8;:19;;8157:1;8137:22;;;;;;;;;;;;;;;;;;8081:107;;;;;;;-1:-1:-1;;8081:107:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8137:22;8081:107;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8161:8;:18;;8180:1;8161:21;;;;;;;;;;;;;;;;;;8081:107;;;;;;;-1:-1:-1;;8081:107:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8161:21;8081:107;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8184:3;8081:14;:107::i;:::-;8062:3;;8016:183;;;-1:-1:-1;8208:12:0;;;:18;;;8241:31;;;;;;8256:10;;8223:3;;8241:31;;4114:94;4156:52;;;;;;10614:150;10687:14;;:::i;:::-;-1:-1:-1;10720:21:0;;;;:9;:21;;;;;;;;-1:-1:-1;;;;;10720:37:0;;;;:30;;:37;;;;;;10713:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10713:44:0;;;;;;;;10614:150;;;;;:::o;8698:693::-;8799:20;8778:17;8784:10;8778:5;:17::i;:::-;:41;;;;;;;;;8757:157;;;;-1:-1:-1;;;8757:157:0;;;;;;;;;8924:25;8952:21;;;:9;:21;;;;;8983:17;;;:24;;-1:-1:-1;;8983:24:0;;;;;8952:21;9017:325;9038:16;;;:23;9034:27;;9017:325;;;9082:8;;9116:15;;;:18;;-1:-1:-1;;;;;9082:8:0;;;;:27;;9116:15;9132:1;;9116:18;;;;;;;;;;;;;;9153:8;:16;;9170:1;9153:19;;;;;;;;;;;;;;;;;;9190:15;;;:18;;-1:-1:-1;;;;;9153:19:0;;;;9206:1;;9190:18;;;;;;;;;;;;;;9226:8;:19;;9246:1;9226:22;;;;;;;;;;;;;;;9266:8;:18;;9285:1;9266:21;;;;;;;;;;;;;;;9305:8;:12;;;9082:249;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9082:249:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9082:249:0;;;;;;;39:16:-1;36:1;17:17;2:54;101:4;9082:249:0;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;9082:249:0;;;;;;;;;-1:-1:-1;9063:3:0;;9017:325;;;;9356:28;9373:10;9356:28;;;;;;;;;;;;;;;8698:693;;:::o;12575:819::-;12688:20;12667:17;12673:10;12667:5;:17::i;:::-;:41;;;;;;;;;12659:96;;;;-1:-1:-1;;;12659:96:0;;;;;;;;;12765:25;12793:21;;;:9;:21;;;;;;;;-1:-1:-1;;;;;12850:24:0;;;;:17;;;:24;;;;;;12892:16;;;;:25;12884:83;;;;-1:-1:-1;;;12884:83:0;;;;;;;;;12992:3;;13017:19;;;;12992:45;;-1:-1:-1;;;12992:45:0;;12977:12;;-1:-1:-1;;;;;12992:3:0;;:17;;:45;;13010:5;;12992:45;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12992:45:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12992:45:0;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;12992:45:0;;;;;;;;;12977:60;;13052:7;13048:181;;;13095:32;13102:8;:17;;;13121:5;-1:-1:-1;;;;;13095:32:0;:6;:32::i;:::-;13075:17;;;:52;13048:181;;;13182:36;13189:8;:21;;;13212:5;-1:-1:-1;;;;;13182:36:0;:6;:36::i;:::-;13158:21;;;:60;13048:181;13239:23;;13258:4;-1:-1:-1;;13239:23:0;;;;-1:-1:-1;;13272:25:0;13239:23;13272:25;;;;;-1:-1:-1;;13307:21:0;;-1:-1:-1;;;;;13307:21:0;;;;;;13344:43;;;;;;13353:5;;13360:10;;13272:25;;13307:21;;13344:43;;;;;;;;;;12575:819;;;;;;:::o;14423:162::-;14484:4;14509:5;;;14532:6;;;;14524:36;;;;-1:-1:-1;;;14524:36:0;;;;;;;;;14577:1;14423:162;-1:-1:-1;;;14423:162:0:o;14591:146::-;14652:4;14681:1;14676;:6;;14668:40;;;;-1:-1:-1;;;14668:40:0;;;;;;;;;-1:-1:-1;14725:5:0;;;14591:146::o;14743:166::-;14860:9;14743:166;:::o;8285:407::-;8432:8;;8470:47;;-1:-1:-1;;;;;8432:8:0;;;;:27;;8470:47;;8481:6;;8489:5;;8496:9;;8507:4;;8513:3;;8470:47;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;8470:47:0;;;8460:58;;;;;;8432:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8432:87:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8432:87:0;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;8432:87:0;;;;;;;;;8431:88;8410:203;;;;-1:-1:-1;;;8410:203:0;;;;;;;;;8623:8;;:62;;-1:-1:-1;;;8623:62:0;;-1:-1:-1;;;;;8623:8:0;;;;:25;;:62;;8649:6;;8657:5;;8664:9;;8675:4;;8681:3;;8623:62;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8623:62:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8623:62:0;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;8623:62:0;;;;;;;;;;8285:407;;;;;:::o;60:14851::-;;;;;;;;;;;;;;;-1:-1:-1;;;;;60:14851:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;60:14851:0;-1:-1:-1;;;;;60:14851:0;;;;;;;;;;;-1:-1:-1;60:14851:0;;;;;;;-1:-1:-1;60:14851:0;;;-1:-1:-1;60:14851:0;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;60:14851:0;;;-1:-1:-1;60:14851:0;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;60:14851:0;;;-1:-1:-1;60:14851:0;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;60:14851:0;;;-1:-1:-1;60:14851:0;:::i;:::-;;;;;;;;;-1:-1:-1;60:14851:0;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;;60:14851:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;5:130:-1:-;72:20;;97:33;72:20;97:33;;160:707;;277:3;270:4;262:6;258:17;254:27;244:2;;295:1;292;285:12;244:2;332:6;319:20;354:80;369:64;426:6;369:64;;;354:80;;;345:89;;451:5;476:6;469:5;462:21;506:4;498:6;494:17;484:27;;528:4;523:3;519:14;512:21;;581:6;628:3;620:4;612:6;608:17;603:3;599:27;596:36;593:2;;;645:1;642;635:12;593:2;670:1;655:206;680:6;677:1;674:13;655:206;;;738:3;760:37;793:3;781:10;760:37;;;748:50;;-1:-1;821:4;812:14;;;;840;;;;;702:1;695:9;655:206;;;659:14;237:630;;;;;;;;891:693;;1013:3;1006:4;998:6;994:17;990:27;980:2;;1031:1;1028;1021:12;980:2;1068:6;1055:20;1090:85;1105:69;1167:6;1105:69;;1090:85;1203:21;;;1247:4;1235:17;;;;1081:94;;-1:-1;1260:14;;1235:17;1355:1;1340:238;1365:6;1362:1;1359:13;1340:238;;;1448:3;1435:17;1427:6;1423:30;1472:42;1510:3;1498:10;1472:42;;;1460:55;;-1:-1;1538:4;1529:14;;;;1557;;;;;1387:1;1380:9;1340:238;;1609:696;;1732:3;1725:4;1717:6;1713:17;1709:27;1699:2;;1750:1;1747;1740:12;1699:2;1787:6;1774:20;1809:86;1824:70;1887:6;1824:70;;1809:86;1923:21;;;1967:4;1955:17;;;;1800:95;;-1:-1;1980:14;;1955:17;2075:1;2060:239;2085:6;2082:1;2079:13;2060:239;;;2168:3;2155:17;2147:6;2143:30;2192:43;2231:3;2219:10;2192:43;;;2180:56;;-1:-1;2259:4;2250:14;;;;2278;;;;;2107:1;2100:9;2060:239;;2331:707;;2448:3;2441:4;2433:6;2429:17;2425:27;2415:2;;2466:1;2463;2456:12;2415:2;2503:6;2490:20;2525:80;2540:64;2597:6;2540:64;;2525:80;2516:89;;2622:5;2647:6;2640:5;2633:21;2677:4;2669:6;2665:17;2655:27;;2699:4;2694:3;2690:14;2683:21;;2752:6;2799:3;2791:4;2783:6;2779:17;2774:3;2770:27;2767:36;2764:2;;;2816:1;2813;2806:12;2764:2;2841:1;2826:206;2851:6;2848:1;2845:13;2826:206;;;2909:3;2931:37;2964:3;2952:10;2931:37;;;2919:50;;-1:-1;2992:4;2983:14;;;;3011;;;;;2873:1;2866:9;2826:206;;3046:124;3110:20;;3135:30;3110:20;3135:30;;3177:128;3252:13;;3270:30;3252:13;3270:30;;3312:130;3379:20;;3404:33;3379:20;3404:33;;3449:134;3527:13;;3545:33;3527:13;3545:33;;3591:432;;3688:3;3681:4;3673:6;3669:17;3665:27;3655:2;;3706:1;3703;3696:12;3655:2;3743:6;3730:20;3765:60;3780:44;3817:6;3780:44;;3765:60;3756:69;;3845:6;3838:5;3831:21;3881:4;3873:6;3869:17;3914:4;3907:5;3903:16;3949:3;3940:6;3935:3;3931:16;3928:25;3925:2;;;3966:1;3963;3956:12;3925:2;3976:41;4010:6;4005:3;4000;3976:41;;;3648:375;;;;;;;;4032:442;;4144:3;4137:4;4129:6;4125:17;4121:27;4111:2;;4162:1;4159;4152:12;4111:2;4192:6;4186:13;4214:64;4229:48;4270:6;4229:48;;4214:64;4205:73;;4298:6;4291:5;4284:21;4334:4;4326:6;4322:17;4367:4;4360:5;4356:16;4402:3;4393:6;4388:3;4384:16;4381:25;4378:2;;;4419:1;4416;4409:12;4378:2;4429:39;4461:6;4456:3;4451;4429:39;;5654:126;5719:20;;5744:31;5719:20;5744:31;;5787:132;5864:13;;5882:32;5864:13;5882:32;;5926:241;;6030:2;6018:9;6009:7;6005:23;6001:32;5998:2;;;6046:1;6043;6036:12;5998:2;6081:1;6098:53;6143:7;6123:9;6098:53;;;6088:63;5992:175;-1:-1;;;;5992:175;6174:366;;;6295:2;6283:9;6274:7;6270:23;6266:32;6263:2;;;6311:1;6308;6301:12;6263:2;6346:1;6363:53;6408:7;6388:9;6363:53;;;6353:63;;6325:97;6453:2;6471:53;6516:7;6507:6;6496:9;6492:22;6471:53;;;6461:63;;6432:98;6257:283;;;;;;6547:1415;;;;;;6840:3;6828:9;6819:7;6815:23;6811:33;6808:2;;;6857:1;6854;6847:12;6808:2;6892:31;;6943:18;6932:30;;6929:2;;;6975:1;6972;6965:12;6929:2;6995:78;7065:7;7056:6;7045:9;7041:22;6995:78;;;6985:88;;6871:208;7138:2;7127:9;7123:18;7110:32;7162:18;7154:6;7151:30;7148:2;;;7194:1;7191;7184:12;7148:2;7214:78;7284:7;7275:6;7264:9;7260:22;7214:78;;;7204:88;;7089:209;7357:2;7346:9;7342:18;7329:32;7381:18;7373:6;7370:30;7367:2;;;7413:1;7410;7403:12;7367:2;7433:84;7509:7;7500:6;7489:9;7485:22;7433:84;;;7423:94;;7308:215;7582:2;7571:9;7567:18;7554:32;7606:18;7598:6;7595:30;7592:2;;;7638:1;7635;7628:12;7592:2;7658:83;7733:7;7724:6;7713:9;7709:22;7658:83;;;7648:93;;7533:214;7806:3;7795:9;7791:19;7778:33;7831:18;7823:6;7820:30;7817:2;;;7863:1;7860;7853:12;7817:2;7883:63;7938:7;7929:6;7918:9;7914:22;7883:63;;;7873:73;;7757:195;6802:1160;;;;;;;;;7969:257;;8081:2;8069:9;8060:7;8056:23;8052:32;8049:2;;;8097:1;8094;8087:12;8049:2;8132:1;8149:61;8202:7;8182:9;8149:61;;8233:263;;8348:2;8336:9;8327:7;8323:23;8319:32;8316:2;;;8364:1;8361;8354:12;8316:2;8399:1;8416:64;8472:7;8452:9;8416:64;;8503:360;;8627:2;8615:9;8606:7;8602:23;8598:32;8595:2;;;8643:1;8640;8633:12;8595:2;8678:24;;8722:18;8711:30;;8708:2;;;8754:1;8751;8744:12;8708:2;8774:73;8839:7;8830:6;8819:9;8815:22;8774:73;;8870:241;;8974:2;8962:9;8953:7;8949:23;8945:32;8942:2;;;8990:1;8987;8980:12;8942:2;9025:1;9042:53;9087:7;9067:9;9042:53;;9388:366;;;9509:2;9497:9;9488:7;9484:23;9480:32;9477:2;;;9525:1;9522;9515:12;9477:2;9560:1;9577:53;9622:7;9602:9;9577:53;;;9567:63;;9539:97;9667:2;9685:53;9730:7;9721:6;9710:9;9706:22;9685:53;;9761:360;;;9879:2;9867:9;9858:7;9854:23;9850:32;9847:2;;;9895:1;9892;9885:12;9847:2;9930:1;9947:53;9992:7;9972:9;9947:53;;;9937:63;;9909:97;10037:2;10055:50;10097:7;10088:6;10077:9;10073:22;10055:50;;10128:733;;;;;;10295:3;10283:9;10274:7;10270:23;10266:33;10263:2;;;10312:1;10309;10302:12;10263:2;10347:1;10364:53;10409:7;10389:9;10364:53;;;10354:63;;10326:97;10454:2;10472:50;10514:7;10505:6;10494:9;10490:22;10472:50;;;10462:60;;10433:95;10559:2;10577:51;10620:7;10611:6;10600:9;10596:22;10577:51;;;10567:61;;10538:96;10665:2;10683:53;10728:7;10719:6;10708:9;10704:22;10683:53;;;10673:63;;10644:98;10773:3;10792:53;10837:7;10828:6;10817:9;10813:22;10792:53;;10868:261;;10982:2;10970:9;10961:7;10957:23;10953:32;10950:2;;;10998:1;10995;10988:12;10950:2;11033:1;11050:63;11105:7;11085:9;11050:63;;11137:173;;11224:46;11266:3;11258:6;11224:46;;;-1:-1;;11299:4;11290:14;;11217:93;11319:177;;11430:60;11486:3;11478:6;11430:60;;11695:173;;11782:46;11824:3;11816:6;11782:46;;11876:142;11967:45;12006:5;11967:45;;;11962:3;11955:58;11949:69;;;12025:103;12098:24;12116:5;12098:24;;12286:690;;12431:54;12479:5;12431:54;;;12498:86;12577:6;12572:3;12498:86;;;12491:93;;12605:56;12655:5;12605:56;;;12681:7;12709:1;12694:260;12719:6;12716:1;12713:13;12694:260;;;12786:6;12780:13;12807:63;12866:3;12851:13;12807:63;;;12800:70;;12887:60;12940:6;12887:60;;;12877:70;-1:-1;;12741:1;12734:9;12694:260;;;-1:-1;12967:3;;12410:566;-1:-1;;;;;12410:566;13011:888;;13166:59;13219:5;13166:59;;;13238:91;13322:6;13317:3;13238:91;;;13231:98;;13352:3;13394:4;13386:6;13382:17;13377:3;13373:27;13421:61;13476:5;13421:61;;;13502:7;13530:1;13515:345;13540:6;13537:1;13534:13;13515:345;;;13602:9;13596:4;13592:20;13587:3;13580:33;13647:6;13641:13;13669:74;13738:4;13723:13;13669:74;;;13661:82;;13760:65;13818:6;13760:65;;;13848:4;13839:14;;;;;13750:75;-1:-1;;13562:1;13555:9;13515:345;;;-1:-1;13873:4;;13145:754;-1:-1;;;;;;;13145:754;13936:896;;14093:60;14147:5;14093:60;;;14166:92;14251:6;14246:3;14166:92;;;14159:99;;14281:3;14323:4;14315:6;14311:17;14306:3;14302:27;14350:62;14406:5;14350:62;;;14432:7;14460:1;14445:348;14470:6;14467:1;14464:13;14445:348;;;14532:9;14526:4;14522:20;14517:3;14510:33;14577:6;14571:13;14599:76;14670:4;14655:13;14599:76;;;14591:84;;14692:66;14751:6;14692:66;;;14781:4;14772:14;;;;;14682:76;-1:-1;;14492:1;14485:9;14445:348;;14871:690;;15016:54;15064:5;15016:54;;;15083:86;15162:6;15157:3;15083:86;;;15076:93;;15190:56;15240:5;15190:56;;;15266:7;15294:1;15279:260;15304:6;15301:1;15298:13;15279:260;;;15371:6;15365:13;15392:63;15451:3;15436:13;15392:63;;;15385:70;;15472:60;15525:6;15472:60;;;15462:70;-1:-1;;15326:1;15319:9;15279:260;;15569:94;15636:21;15651:5;15636:21;;15781:113;15864:24;15882:5;15864:24;;15901:152;16002:45;16022:24;16040:5;16022:24;;;16002:45;;16060:343;;16170:38;16202:5;16170:38;;;16220:70;16283:6;16278:3;16220:70;;;16213:77;;16295:52;16340:6;16335:3;16328:4;16321:5;16317:16;16295:52;;;16368:29;16390:6;16368:29;;;16359:39;;;;16150:253;-1:-1;;;16150:253;16755:818;;16872:5;16866:12;16906:1;16895:9;16891:17;16919:1;16914:247;;;;17172:1;17167:400;;;;16884:683;;16914:247;16992:4;16988:1;16977:9;16973:17;16969:28;17011:70;17074:6;17069:3;17011:70;;;-1:-1;;17100:25;;17088:38;;17004:77;-1:-1;;17149:4;17140:14;;;-1:-1;16914:247;;17167:400;17236:1;17225:9;17221:17;17252:70;17315:6;17310:3;17252:70;;;17245:77;;17344:37;17375:5;17344:37;;;17397:1;17405:130;17419:6;17416:1;17413:13;17405:130;;;17478:14;;17465:11;;;17458:35;17525:1;17512:15;;;;17441:4;17434:12;17405:130;;;17549:11;;;-1:-1;;;16884:683;;16842:731;;;;;;17581:178;17690:63;17747:5;17690:63;;17941:156;18039:52;18085:5;18039:52;;18104:142;18195:45;18234:5;18195:45;;20136:394;;20296:67;20360:2;20355:3;20296:67;;;20396:34;20376:55;;20465:27;20460:2;20451:12;;20444:49;20521:2;20512:12;;20282:248;-1:-1;;20282:248;20539:442;;20699:67;20763:2;20758:3;20699:67;;;20799:34;20779:55;;20868:34;20863:2;20854:12;;20847:56;-1:-1;;;20932:2;20923:12;;20916:28;20972:2;20963:12;;20685:296;-1:-1;;20685:296;20990:443;;21150:67;21214:2;21209:3;21150:67;;;21250:34;21230:55;;21319:34;21314:2;21305:12;;21298:56;-1:-1;;;21383:2;21374:12;;21367:29;21424:2;21415:12;;21136:297;-1:-1;;21136:297;21442:398;;21620:84;21702:1;21697:3;21620:84;;;-1:-1;;;21717:87;;21832:1;21823:11;;21606:234;-1:-1;;21606:234;21849:450;;22009:67;22073:2;22068:3;22009:67;;;22109:34;22089:55;;22178:34;22173:2;22164:12;;22157:56;-1:-1;;;22242:2;22233:12;;22226:36;22290:2;22281:12;;21995:304;-1:-1;;21995:304;22308:324;;22468:67;22532:2;22527:3;22468:67;;;22568:26;22548:47;;22623:2;22614:12;;22454:178;-1:-1;;22454:178;22641:378;;22801:67;22865:2;22860:3;22801:67;;;22901:34;22881:55;;-1:-1;;;22965:2;22956:12;;22949:33;23010:2;23001:12;;22787:232;-1:-1;;22787:232;23028:382;;23188:67;23252:2;23247:3;23188:67;;;23288:34;23268:55;;-1:-1;;;23352:2;23343:12;;23336:37;23401:2;23392:12;;23174:236;-1:-1;;23174:236;23419:448;;23579:67;23643:2;23638:3;23579:67;;;23679:34;23659:55;;23748:34;23743:2;23734:12;;23727:56;-1:-1;;;23812:2;23803:12;;23796:34;23858:2;23849:12;;23565:302;-1:-1;;23565:302;23876:377;;24036:67;24100:2;24095:3;24036:67;;;24136:34;24116:55;;-1:-1;;;24200:2;24191:12;;24184:32;24244:2;24235:12;;24022:231;-1:-1;;24022:231;24262:317;;24422:67;24486:2;24481:3;24422:67;;;-1:-1;;;24502:40;;24570:2;24561:12;;24408:171;-1:-1;;24408:171;24588:477;;24766:85;24848:2;24843:3;24766:85;;;24884:34;24864:55;;24953:34;24948:2;24939:12;;24932:56;-1:-1;;;25017:2;25008:12;;25001:27;25056:2;25047:12;;24752:313;-1:-1;;24752:313;25074:412;;25252:85;25334:2;25329:3;25252:85;;;25370:34;25350:55;;-1:-1;;;25434:2;25425:12;;25418:31;25477:2;25468:12;;25238:248;-1:-1;;25238:248;25495:442;;25655:67;25719:2;25714:3;25655:67;;;25755:34;25735:55;;25824:34;25819:2;25810:12;;25803:56;-1:-1;;;25888:2;25879:12;;25872:28;25928:2;25919:12;;25641:296;-1:-1;;25641:296;25946:384;;26106:67;26170:2;26165:3;26106:67;;;26206:34;26186:55;;-1:-1;;;26270:2;26261:12;;26254:39;26321:2;26312:12;;26092:238;-1:-1;;26092:238;26339:393;;26499:67;26563:2;26558:3;26499:67;;;26599:34;26579:55;;26668:26;26663:2;26654:12;;26647:48;26723:2;26714:12;;26485:247;-1:-1;;26485:247;26741:442;;26901:67;26965:2;26960:3;26901:67;;;27001:34;26981:55;;27070:34;27065:2;27056:12;;27049:56;-1:-1;;;27134:2;27125:12;;27118:28;27174:2;27165:12;;26887:296;-1:-1;;26887:296;27192:394;;27352:67;27416:2;27411:3;27352:67;;;27452:34;27432:55;;27521:27;27516:2;27507:12;;27500:49;27577:2;27568:12;;27338:248;-1:-1;;27338:248;27595:381;;27755:67;27819:2;27814:3;27755:67;;;27855:34;27835:55;;-1:-1;;;27919:2;27910:12;;27903:36;27967:2;27958:12;;27741:235;-1:-1;;27741:235;27985:400;;28145:67;28209:2;28204:3;28145:67;;;28245:34;28225:55;;28314:33;28309:2;28300:12;;28293:55;28376:2;28367:12;;28131:254;-1:-1;;28131:254;28394:384;;28554:67;28618:2;28613:3;28554:67;;;28654:34;28634:55;;-1:-1;;;28718:2;28709:12;;28702:39;28769:2;28760:12;;28540:238;-1:-1;;28540:238;28787:391;;28947:67;29011:2;29006:3;28947:67;;;29047:34;29027:55;;-1:-1;;;29111:2;29102:12;;29095:46;29169:2;29160:12;;28933:245;-1:-1;;28933:245;29187:379;;29347:67;29411:2;29406:3;29347:67;;;29447:34;29427:55;;-1:-1;;;29511:2;29502:12;;29495:34;29557:2;29548:12;;29333:233;-1:-1;;29333:233;29575:321;;29735:67;29799:2;29794:3;29735:67;;;-1:-1;;;29815:44;;29887:2;29878:12;;29721:175;-1:-1;;29721:175;29905:391;;30065:67;30129:2;30124:3;30065:67;;;30165:34;30145:55;;-1:-1;;;30229:2;30220:12;;30213:46;30287:2;30278:12;;30051:245;-1:-1;;30051:245;30371:622;30582:23;;30512:4;30503:14;;;30611:57;30507:3;30582:23;30611:57;;;30532:142;30750:4;30743:5;30739:16;30733:23;30762:57;30813:4;30808:3;30804:14;30790:12;30762:57;;;30684:141;30899:4;30892:5;30888:16;30882:23;30911:61;30966:4;30961:3;30957:14;30943:12;30911:61;;31230:107;31309:22;31325:5;31309:22;;31344:124;31426:36;31456:5;31426:36;;31475:100;31546:23;31563:5;31546:23;;31582:650;;31837:148;31981:3;31837:148;;;31830:155;;31996:75;32067:3;32058:6;31996:75;;;32093:2;32088:3;32084:12;32077:19;;32107:75;32178:3;32169:6;32107:75;;;-1:-1;32204:2;32195:12;;31818:414;-1:-1;;31818:414;32239:372;;32438:148;32582:3;32438:148;;32618:372;;32817:148;32961:3;32817:148;;32997:213;33115:2;33100:18;;33129:71;33104:9;33173:6;33129:71;;33217:340;33371:2;33356:18;;33385:79;33360:9;33437:6;33385:79;;;33475:72;33543:2;33532:9;33528:18;33519:6;33475:72;;33564:953;33893:3;33878:19;;33908:71;33882:9;33952:6;33908:71;;;33990:80;34066:2;34055:9;34051:18;34042:6;33990:80;;;34118:9;34112:4;34108:20;34103:2;34092:9;34088:18;34081:48;34143:131;34269:4;34143:131;;;34135:139;;34322:9;34316:4;34312:20;34307:2;34296:9;34292:18;34285:48;34347:76;34418:4;34409:6;34347:76;;;34339:84;;34434:73;34502:3;34491:9;34487:19;34478:6;34434:73;;34524:324;34670:2;34655:18;;34684:71;34659:9;34728:6;34684:71;;34855:533;35050:3;35035:19;;35065:71;35039:9;35109:6;35065:71;;;35147:72;35215:2;35204:9;35200:18;35191:6;35147:72;;;35230:66;35292:2;35281:9;35277:18;35268:6;35230:66;;;35307:71;35374:2;35363:9;35359:18;35350:6;35307:71;;35395:831;35663:3;35648:19;;35678:71;35652:9;35722:6;35678:71;;;35760:72;35828:2;35817:9;35813:18;35804:6;35760:72;;;35880:9;35874:4;35870:20;35865:2;35854:9;35850:18;35843:48;35905:78;35978:4;35969:6;35905:78;;;35897:86;;36031:9;36025:4;36021:20;36016:2;36005:9;36001:18;35994:48;36056:76;36127:4;36118:6;36056:76;;;36048:84;;36143:73;36211:3;36200:9;36196:19;36187:6;36143:73;;;35634:592;;;;;;;;;36233:819;36495:3;36480:19;;36510:71;36484:9;36554:6;36510:71;;;36592:72;36660:2;36649:9;36645:18;36636:6;36592:72;;;36712:9;36706:4;36702:20;36697:2;36686:9;36682:18;36675:48;36737:75;36807:4;36798:6;36737:75;;;36729:83;;36860:9;36854:4;36850:20;36845:2;36834:9;36830:18;36823:48;36885:73;36953:4;36944:6;36885:73;;37059:1183;37483:3;37498:47;;;37468:19;;37559:108;37468:19;37653:6;37559:108;;;37551:116;;37715:9;37709:4;37705:20;37700:2;37689:9;37685:18;37678:48;37740:108;37843:4;37834:6;37740:108;;;37732:116;;37896:9;37890:4;37886:20;37881:2;37870:9;37866:18;37859:48;37921:120;38036:4;38027:6;37921:120;;;37913:128;;38089:9;38083:4;38079:20;38074:2;38063:9;38059:18;38052:48;38114:118;38227:4;38218:6;38114:118;;38249:213;38367:2;38352:18;;38381:71;38356:9;38425:6;38381:71;;38469:547;38671:3;38656:19;;38686:71;38660:9;38730:6;38686:71;;;38768:72;38836:2;38825:9;38821:18;38812:6;38768:72;;;38851;38919:2;38908:9;38904:18;38895:6;38851:72;;;38934;39002:2;38991:9;38987:18;38978:6;38934:72;;39023:423;39191:2;39176:18;;39205:71;39180:9;39249:6;39205:71;;;39287:72;39355:2;39344:9;39340:18;39331:6;39287:72;;;39370:66;39432:2;39421:9;39417:18;39408:6;39370:66;;39453:539;39651:3;39636:19;;39666:71;39640:9;39710:6;39666:71;;;39748:68;39812:2;39801:9;39797:18;39788:6;39748:68;;;39827:72;39895:2;39884:9;39880:18;39871:6;39827:72;;;39910;39978:2;39967:9;39963:18;39954:6;39910:72;;39999:265;40143:2;40128:18;;40157:97;40132:9;40227:6;40157:97;;40533:243;40666:2;40651:18;;40680:86;40655:9;40739:6;40680:86;;40783:293;40917:2;40931:47;;;40902:18;;40992:74;40902:18;41052:6;40992:74;;41083:407;41274:2;41288:47;;;41259:18;;41349:131;41259:18;41349:131;;41497:407;41688:2;41702:47;;;41673:18;;41763:131;41673:18;41763:131;;41911:407;42102:2;42116:47;;;42087:18;;42177:131;42087:18;42177:131;;42325:407;42516:2;42530:47;;;42501:18;;42591:131;42501:18;42591:131;;42739:407;42930:2;42944:47;;;42915:18;;43005:131;42915:18;43005:131;;43153:407;43344:2;43358:47;;;43329:18;;43419:131;43329:18;43419:131;;43567:407;43758:2;43772:47;;;43743:18;;43833:131;43743:18;43833:131;;43981:407;44172:2;44186:47;;;44157:18;;44247:131;44157:18;44247:131;;44395:407;44586:2;44600:47;;;44571:18;;44661:131;44571:18;44661:131;;44809:407;45000:2;45014:47;;;44985:18;;45075:131;44985:18;45075:131;;45223:407;45414:2;45428:47;;;45399:18;;45489:131;45399:18;45489:131;;45637:407;45828:2;45842:47;;;45813:18;;45903:131;45813:18;45903:131;;46051:407;46242:2;46256:47;;;46227:18;;46317:131;46227:18;46317:131;;46465:407;46656:2;46670:47;;;46641:18;;46731:131;46641:18;46731:131;;46879:407;47070:2;47084:47;;;47055:18;;47145:131;47055:18;47145:131;;47293:407;47484:2;47498:47;;;47469:18;;47559:131;47469:18;47559:131;;47707:407;47898:2;47912:47;;;47883:18;;47973:131;47883:18;47973:131;;48121:407;48312:2;48326:47;;;48297:18;;48387:131;48297:18;48387:131;;48535:407;48726:2;48740:47;;;48711:18;;48801:131;48711:18;48801:131;;48949:407;49140:2;49154:47;;;49125:18;;49215:131;49125:18;49215:131;;49363:407;49554:2;49568:47;;;49539:18;;49629:131;49539:18;49629:131;;49777:309;49943:2;49928:18;;49957:119;49932:9;50049:6;49957:119;;50313:1847;50905:3;50890:19;;50920:71;50894:9;50964:6;50920:71;;;51002:80;51078:2;51067:9;51063:18;51054:6;51002:80;;;51130:9;51124:4;51120:20;51115:2;51104:9;51100:18;51093:48;51155:108;51258:4;51249:6;51155:108;;;51147:116;;51311:9;51305:4;51301:20;51296:2;51285:9;51281:18;51274:48;51336:108;51439:4;51430:6;51336:108;;;51328:116;;51493:9;51487:4;51483:20;51477:3;51466:9;51462:19;51455:49;51518:120;51633:4;51624:6;51518:120;;;51510:128;;51687:9;51681:4;51677:20;51671:3;51660:9;51656:19;51649:49;51712:118;51825:4;51816:6;51712:118;;;51704:126;;51841:73;51909:3;51898:9;51894:19;51885:6;51841:73;;;51925;51993:3;51982:9;51978:19;51969:6;51925:73;;;52047:9;52041:4;52037:20;52031:3;52020:9;52016:19;52009:49;52072:78;52145:4;52136:6;52072:78;;;52064:86;50876:1284;-1:-1;;;;;;;;;;;50876:1284;52167:1083;52497:3;52482:19;;52512:71;52486:9;52556:6;52512:71;;;52594:72;52662:2;52651:9;52647:18;52638:6;52594:72;;;52677;52745:2;52734:9;52730:18;52721:6;52677:72;;;52760;52828:2;52817:9;52813:18;52804:6;52760:72;;;52843:73;52911:3;52900:9;52896:19;52887:6;52843:73;;;52927;52995:3;52984:9;52980:19;52971:6;52927:73;;;53011;53079:3;53068:9;53064:19;53055:6;53011:73;;;53095:67;53157:3;53146:9;53142:19;53133:6;53095:67;;;53173;53235:3;53224:9;53220:19;53211:6;53173:67;;;52468:782;;;;;;;;;;;;;53257:324;53403:2;53388:18;;53417:71;53392:9;53461:6;53417:71;;53588:256;53650:2;53644:9;53676:17;;;53751:18;53736:34;;53772:22;;;53733:62;53730:2;;;53808:1;53805;53798:12;53730:2;53824;53817:22;53628:216;;-1:-1;53628:216;53851:304;;54010:18;54002:6;53999:30;53996:2;;;54042:1;54039;54032:12;53996:2;-1:-1;54077:4;54065:17;;;54130:15;;53933:222;55106:317;;55245:18;55237:6;55234:30;55231:2;;;55277:1;55274;55267:12;55231:2;-1:-1;55408:4;55344;55321:17;;;;-1:-1;;55317:33;55398:15;;55168:255;56412:151;56536:4;56527:14;;56484:79;57055:157;;57149:14;;;57191:4;57178:18;;;57108:104;57384:137;57487:12;;57458:63;58949:178;59067:19;;;59116:4;59107:14;;59060:67;60527:91;;60589:24;60607:5;60589:24;;60625:85;60691:13;60684:21;;60667:43;60796:140;60875:5;60881:50;60875:5;60881:50;;60943:121;-1:-1;;;;;61005:54;;60988:76;61150:81;61221:4;61210:16;;61193:38;61238:104;-1:-1;;;;;61299:38;;61282:60;61349:129;;61436:37;61467:5;61485:173;;61590:63;61647:5;61590:63;;62112:140;;62206:41;62241:5;62206:41;;62259:116;;62346:24;62364:5;62346:24;;62625:106;;62703:23;62720:5;62703:23;;62739:145;62820:6;62815:3;62810;62797:30;-1:-1;62876:1;62858:16;;62851:27;62790:94;62893:268;62958:1;62965:101;62979:6;62976:1;62973:13;62965:101;;;63046:11;;;63040:18;63027:11;;;63020:39;63001:2;62994:10;62965:101;;;63081:6;63078:1;63075:13;63072:2;;;-1:-1;;63146:1;63128:16;;63121:27;62942:219;63250:97;63338:2;63318:14;-1:-1;;63314:28;;63298:49;63355:108;63441:1;63434:5;63431:12;63421:2;;63447:9;63470:117;63539:24;63557:5;63539:24;;;63532:5;63529:35;63519:2;;63578:1;63575;63568:12;63594:111;63660:21;63675:5;63660:21;;63712:117;63781:24;63799:5;63781:24;;63960:113;64027:22;64043:5;64027:22;;64080:115;64148:23;64165:5;64148:23;"},"gasEstimates":{"creation":{"codeDepositCost":"2851600","executionCost":"infinite","totalCost":"infinite"},"external":{"BALLOT_TYPEHASH()":"infinite","DOMAIN_TYPEHASH()":"infinite","__abdicate()":"21904","__acceptAdmin()":"infinite","__executeSetTimelockPendingAdmin(address,uint256)":"infinite","__queueSetTimelockPendingAdmin(address,uint256)":"infinite","cancel(uint256)":"infinite","castVote(uint256,bool)":"infinite","castVoteBySig(uint256,bool,uint8,bytes32,bytes32)":"infinite","execute(uint256)":"infinite","getActions(uint256)":"infinite","getReceipt(uint256,address)":"infinite","guardian()":"infinite","latestProposalIds(address)":"infinite","name()":"infinite","proposalCount()":"1166","proposalMaxOperations()":"344","proposalThreshold()":"388","proposals(uint256)":"infinite","propose(address[],uint256[],string[],bytes[],string)":"infinite","queue(uint256)":"infinite","quorumVotes()":"367","state(uint256)":"infinite","timelock()":"infinite","votingDelay()":"344","votingPeriod()":"infinite","xvs()":"infinite"},"internal":{"_castVote(address,uint256,bool)":"infinite","_queueOrRevert(address,uint256,string memory,bytes memory,uint256)":"infinite","add256(uint256,uint256)":"infinite","getChainId()":"14","sub256(uint256,uint256)":"infinite"}},"methodIdentifiers":{"BALLOT_TYPEHASH()":"deaaa7cc","DOMAIN_TYPEHASH()":"20606b70","__abdicate()":"760fbc13","__acceptAdmin()":"b9a61961","__executeSetTimelockPendingAdmin(address,uint256)":"21f43e42","__queueSetTimelockPendingAdmin(address,uint256)":"91500671","cancel(uint256)":"40e58ee5","castVote(uint256,bool)":"15373e3d","castVoteBySig(uint256,bool,uint8,bytes32,bytes32)":"4634c61f","execute(uint256)":"fe0d94c1","getActions(uint256)":"328dd982","getReceipt(uint256,address)":"e23a9a52","guardian()":"452a9320","latestProposalIds(address)":"17977c61","name()":"06fdde03","proposalCount()":"da35c664","proposalMaxOperations()":"7bdbe4d0","proposalThreshold()":"b58131b0","proposals(uint256)":"013cf08b","propose(address[],uint256[],string[],bytes[],string)":"da95691a","queue(uint256)":"ddf0b009","quorumVotes()":"24bc1a64","state(uint256)":"3e4f49e6","timelock()":"d33219b4","votingDelay()":"3932abb1","votingPeriod()":"02a251a3","xvs()":"4e79ed3c"}},"metadata":"{\"compiler\":{\"version\":\"0.5.16+commit.9c3226ce\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"timelock_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"xvs_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"guardian_\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"ProposalCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"proposer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"targets\",\"type\":\"address[]\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"string[]\",\"name\":\"signatures\",\"type\":\"string[]\"},{\"indexed\":false,\"internalType\":\"bytes[]\",\"name\":\"calldatas\",\"type\":\"bytes[]\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"startBlock\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"endBlock\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"}],\"name\":\"ProposalCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"ProposalExecuted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"eta\",\"type\":\"uint256\"}],\"name\":\"ProposalQueued\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"voter\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"support\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"votes\",\"type\":\"uint256\"}],\"name\":\"VoteCast\",\"type\":\"event\"},{\"constant\":true,\"inputs\":[],\"name\":\"BALLOT_TYPEHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"DOMAIN_TYPEHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"__abdicate\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"__acceptAdmin\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"newPendingAdmin\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"eta\",\"type\":\"uint256\"}],\"name\":\"__executeSetTimelockPendingAdmin\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"newPendingAdmin\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"eta\",\"type\":\"uint256\"}],\"name\":\"__queueSetTimelockPendingAdmin\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"cancel\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"support\",\"type\":\"bool\"}],\"name\":\"castVote\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"support\",\"type\":\"bool\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"castVoteBySig\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"execute\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"getActions\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targets\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"string[]\",\"name\":\"signatures\",\"type\":\"string[]\"},{\"internalType\":\"bytes[]\",\"name\":\"calldatas\",\"type\":\"bytes[]\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"voter\",\"type\":\"address\"}],\"name\":\"getReceipt\",\"outputs\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"hasVoted\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"support\",\"type\":\"bool\"},{\"internalType\":\"uint96\",\"name\":\"votes\",\"type\":\"uint96\"}],\"internalType\":\"struct GovernorAlpha.Receipt\",\"name\":\"\",\"type\":\"tuple\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"guardian\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"latestProposalIds\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"proposalCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"proposalMaxOperations\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"proposalThreshold\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"proposals\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"proposer\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"eta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"startBlock\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"endBlock\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"forVotes\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"againstVotes\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"canceled\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"executed\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"targets\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"string[]\",\"name\":\"signatures\",\"type\":\"string[]\"},{\"internalType\":\"bytes[]\",\"name\":\"calldatas\",\"type\":\"bytes[]\"},{\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"}],\"name\":\"propose\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"queue\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"quorumVotes\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"state\",\"outputs\":[{\"internalType\":\"enum GovernorAlpha.ProposalState\",\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"timelock\",\"outputs\":[{\"internalType\":\"contract TimelockInterface\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"votingDelay\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"votingPeriod\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"xvs\",\"outputs\":[{\"internalType\":\"contract XVSInterface\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{\"proposalMaxOperations()\":{\"notice\":\"The maximum number of actions that can be included in a proposal\"},\"proposalThreshold()\":{\"notice\":\"The number of votes required in order for a voter to become a proposer\"},\"quorumVotes()\":{\"notice\":\"The number of votes in support of a proposal required in order for a quorum to be reached and for a vote to succeed\"},\"votingDelay()\":{\"notice\":\"The delay before voting on a proposal may take place, once proposed\"},\"votingPeriod()\":{\"notice\":\"The duration of voting on a proposal, in blocks\"}}}},\"settings\":{\"compilationTarget\":{\"contracts/legacy/GovernorAlpha.sol\":\"GovernorAlpha\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/legacy/GovernorAlpha.sol\":{\"content\":\"pragma solidity ^0.5.16;\\npragma experimental ABIEncoderV2;\\n\\ncontract GovernorAlpha {\\n /// @notice The name of this contract\\n string public constant name = \\\"Venus Governor Alpha\\\";\\n\\n /// @notice The number of votes in support of a proposal required in order for a quorum to be reached and for a vote to succeed\\n function quorumVotes() public pure returns (uint) {\\n return 600000e18;\\n } // 600,000 = 2% of XVS\\n\\n /// @notice The number of votes required in order for a voter to become a proposer\\n function proposalThreshold() public pure returns (uint) {\\n return 300000e18;\\n } // 300,000 = 1% of XVS\\n\\n /// @notice The maximum number of actions that can be included in a proposal\\n function proposalMaxOperations() public pure returns (uint) {\\n return 10;\\n } // 10 actions\\n\\n /// @notice The delay before voting on a proposal may take place, once proposed\\n function votingDelay() public pure returns (uint) {\\n return 1;\\n } // 1 block\\n\\n /// @notice The duration of voting on a proposal, in blocks\\n function votingPeriod() public pure returns (uint) {\\n return (60 * 60 * 24 * 3) / 3;\\n } // ~3 days in blocks (assuming 3s blocks)\\n\\n /// @notice The address of the Venus Protocol Timelock\\n TimelockInterface public timelock;\\n\\n /// @notice The address of the Venus governance token\\n XVSInterface public xvs;\\n\\n /// @notice The address of the Governor Guardian\\n address public guardian;\\n\\n /// @notice The total number of proposals\\n uint public proposalCount;\\n\\n struct Proposal {\\n /// @notice Unique id for looking up a proposal\\n uint id;\\n /// @notice Creator of the proposal\\n address proposer;\\n /// @notice The timestamp that the proposal will be available for execution, set once the vote succeeds\\n uint eta;\\n /// @notice the ordered list of target addresses for calls to be made\\n address[] targets;\\n /// @notice The ordered list of values (i.e. msg.value) to be passed to the calls to be made\\n uint[] values;\\n /// @notice The ordered list of function signatures to be called\\n string[] signatures;\\n /// @notice The ordered list of calldata to be passed to each call\\n bytes[] calldatas;\\n /// @notice The block at which voting begins: holders must delegate their votes prior to this block\\n uint startBlock;\\n /// @notice The block at which voting ends: votes must be cast prior to this block\\n uint endBlock;\\n /// @notice Current number of votes in favor of this proposal\\n uint forVotes;\\n /// @notice Current number of votes in opposition to this proposal\\n uint againstVotes;\\n /// @notice Flag marking whether the proposal has been canceled\\n bool canceled;\\n /// @notice Flag marking whether the proposal has been executed\\n bool executed;\\n /// @notice Receipts of ballots for the entire set of voters\\n mapping(address => Receipt) receipts;\\n }\\n\\n /// @notice Ballot receipt record for a voter\\n struct Receipt {\\n /// @notice Whether or not a vote has been cast\\n bool hasVoted;\\n /// @notice Whether or not the voter supports the proposal\\n bool support;\\n /// @notice The number of votes the voter had, which were cast\\n uint96 votes;\\n }\\n\\n /// @notice Possible states that a proposal may be in\\n enum ProposalState {\\n Pending,\\n Active,\\n Canceled,\\n Defeated,\\n Succeeded,\\n Queued,\\n Expired,\\n Executed\\n }\\n\\n /// @notice The official record of all proposals ever proposed\\n mapping(uint => Proposal) public proposals;\\n\\n /// @notice The latest proposal for each proposer\\n mapping(address => uint) public latestProposalIds;\\n\\n /// @notice The EIP-712 typehash for the contract's domain\\n bytes32 public constant DOMAIN_TYPEHASH =\\n keccak256(\\\"EIP712Domain(string name,uint256 chainId,address verifyingContract)\\\");\\n\\n /// @notice The EIP-712 typehash for the ballot struct used by the contract\\n bytes32 public constant BALLOT_TYPEHASH = keccak256(\\\"Ballot(uint256 proposalId,bool support)\\\");\\n\\n /// @notice An event emitted when a new proposal is created\\n event ProposalCreated(\\n uint id,\\n address proposer,\\n address[] targets,\\n uint[] values,\\n string[] signatures,\\n bytes[] calldatas,\\n uint startBlock,\\n uint endBlock,\\n string description\\n );\\n\\n /// @notice An event emitted when a vote has been cast on a proposal\\n event VoteCast(address voter, uint proposalId, bool support, uint votes);\\n\\n /// @notice An event emitted when a proposal has been canceled\\n event ProposalCanceled(uint id);\\n\\n /// @notice An event emitted when a proposal has been queued in the Timelock\\n event ProposalQueued(uint id, uint eta);\\n\\n /// @notice An event emitted when a proposal has been executed in the Timelock\\n event ProposalExecuted(uint id);\\n\\n constructor(address timelock_, address xvs_, address guardian_) public {\\n timelock = TimelockInterface(timelock_);\\n xvs = XVSInterface(xvs_);\\n guardian = guardian_;\\n }\\n\\n function propose(\\n address[] memory targets,\\n uint[] memory values,\\n string[] memory signatures,\\n bytes[] memory calldatas,\\n string memory description\\n ) public returns (uint) {\\n require(\\n xvs.getPriorVotes(msg.sender, sub256(block.number, 1)) > proposalThreshold(),\\n \\\"GovernorAlpha::propose: proposer votes below proposal threshold\\\"\\n );\\n require(\\n targets.length == values.length &&\\n targets.length == signatures.length &&\\n targets.length == calldatas.length,\\n \\\"GovernorAlpha::propose: proposal function information arity mismatch\\\"\\n );\\n require(targets.length != 0, \\\"GovernorAlpha::propose: must provide actions\\\");\\n require(targets.length <= proposalMaxOperations(), \\\"GovernorAlpha::propose: too many actions\\\");\\n\\n uint latestProposalId = latestProposalIds[msg.sender];\\n if (latestProposalId != 0) {\\n ProposalState proposersLatestProposalState = state(latestProposalId);\\n require(\\n proposersLatestProposalState != ProposalState.Active,\\n \\\"GovernorAlpha::propose: found an already active proposal\\\"\\n );\\n require(\\n proposersLatestProposalState != ProposalState.Pending,\\n \\\"GovernorAlpha::propose: found an already pending proposal\\\"\\n );\\n }\\n\\n uint startBlock = add256(block.number, votingDelay());\\n uint endBlock = add256(startBlock, votingPeriod());\\n\\n proposalCount++;\\n Proposal memory newProposal = Proposal({\\n id: proposalCount,\\n proposer: msg.sender,\\n eta: 0,\\n targets: targets,\\n values: values,\\n signatures: signatures,\\n calldatas: calldatas,\\n startBlock: startBlock,\\n endBlock: endBlock,\\n forVotes: 0,\\n againstVotes: 0,\\n canceled: false,\\n executed: false\\n });\\n\\n proposals[newProposal.id] = newProposal;\\n latestProposalIds[newProposal.proposer] = newProposal.id;\\n\\n emit ProposalCreated(\\n newProposal.id,\\n msg.sender,\\n targets,\\n values,\\n signatures,\\n calldatas,\\n startBlock,\\n endBlock,\\n description\\n );\\n return newProposal.id;\\n }\\n\\n function queue(uint proposalId) public {\\n require(\\n state(proposalId) == ProposalState.Succeeded,\\n \\\"GovernorAlpha::queue: proposal can only be queued if it is succeeded\\\"\\n );\\n Proposal storage proposal = proposals[proposalId];\\n uint eta = add256(block.timestamp, timelock.delay());\\n for (uint i = 0; i < proposal.targets.length; i++) {\\n _queueOrRevert(proposal.targets[i], proposal.values[i], proposal.signatures[i], proposal.calldatas[i], eta);\\n }\\n proposal.eta = eta;\\n emit ProposalQueued(proposalId, eta);\\n }\\n\\n function _queueOrRevert(address target, uint value, string memory signature, bytes memory data, uint eta) internal {\\n require(\\n !timelock.queuedTransactions(keccak256(abi.encode(target, value, signature, data, eta))),\\n \\\"GovernorAlpha::_queueOrRevert: proposal action already queued at eta\\\"\\n );\\n timelock.queueTransaction(target, value, signature, data, eta);\\n }\\n\\n function execute(uint proposalId) public payable {\\n require(\\n state(proposalId) == ProposalState.Queued,\\n \\\"GovernorAlpha::execute: proposal can only be executed if it is queued\\\"\\n );\\n Proposal storage proposal = proposals[proposalId];\\n proposal.executed = true;\\n for (uint i = 0; i < proposal.targets.length; i++) {\\n timelock.executeTransaction.value(proposal.values[i])(\\n proposal.targets[i],\\n proposal.values[i],\\n proposal.signatures[i],\\n proposal.calldatas[i],\\n proposal.eta\\n );\\n }\\n emit ProposalExecuted(proposalId);\\n }\\n\\n function cancel(uint proposalId) public {\\n ProposalState state = state(proposalId);\\n require(state != ProposalState.Executed, \\\"GovernorAlpha::cancel: cannot cancel executed proposal\\\");\\n\\n Proposal storage proposal = proposals[proposalId];\\n require(\\n msg.sender == guardian ||\\n xvs.getPriorVotes(proposal.proposer, sub256(block.number, 1)) < proposalThreshold(),\\n \\\"GovernorAlpha::cancel: proposer above threshold\\\"\\n );\\n\\n proposal.canceled = true;\\n for (uint i = 0; i < proposal.targets.length; i++) {\\n timelock.cancelTransaction(\\n proposal.targets[i],\\n proposal.values[i],\\n proposal.signatures[i],\\n proposal.calldatas[i],\\n proposal.eta\\n );\\n }\\n\\n emit ProposalCanceled(proposalId);\\n }\\n\\n function getActions(\\n uint proposalId\\n )\\n public\\n view\\n returns (address[] memory targets, uint[] memory values, string[] memory signatures, bytes[] memory calldatas)\\n {\\n Proposal storage p = proposals[proposalId];\\n return (p.targets, p.values, p.signatures, p.calldatas);\\n }\\n\\n function getReceipt(uint proposalId, address voter) public view returns (Receipt memory) {\\n return proposals[proposalId].receipts[voter];\\n }\\n\\n function state(uint proposalId) public view returns (ProposalState) {\\n require(proposalCount >= proposalId && proposalId > 0, \\\"GovernorAlpha::state: invalid proposal id\\\");\\n Proposal storage proposal = proposals[proposalId];\\n if (proposal.canceled) {\\n return ProposalState.Canceled;\\n } else if (block.number <= proposal.startBlock) {\\n return ProposalState.Pending;\\n } else if (block.number <= proposal.endBlock) {\\n return ProposalState.Active;\\n } else if (proposal.forVotes <= proposal.againstVotes || proposal.forVotes < quorumVotes()) {\\n return ProposalState.Defeated;\\n } else if (proposal.eta == 0) {\\n return ProposalState.Succeeded;\\n } else if (proposal.executed) {\\n return ProposalState.Executed;\\n } else if (block.timestamp >= add256(proposal.eta, timelock.GRACE_PERIOD())) {\\n return ProposalState.Expired;\\n } else {\\n return ProposalState.Queued;\\n }\\n }\\n\\n function castVote(uint proposalId, bool support) public {\\n return _castVote(msg.sender, proposalId, support);\\n }\\n\\n function castVoteBySig(uint proposalId, bool support, uint8 v, bytes32 r, bytes32 s) public {\\n bytes32 domainSeparator = keccak256(\\n abi.encode(DOMAIN_TYPEHASH, keccak256(bytes(name)), getChainId(), address(this))\\n );\\n bytes32 structHash = keccak256(abi.encode(BALLOT_TYPEHASH, proposalId, support));\\n bytes32 digest = keccak256(abi.encodePacked(\\\"\\\\x19\\\\x01\\\", domainSeparator, structHash));\\n address signatory = ecrecover(digest, v, r, s);\\n require(signatory != address(0), \\\"GovernorAlpha::castVoteBySig: invalid signature\\\");\\n return _castVote(signatory, proposalId, support);\\n }\\n\\n function _castVote(address voter, uint proposalId, bool support) internal {\\n require(state(proposalId) == ProposalState.Active, \\\"GovernorAlpha::_castVote: voting is closed\\\");\\n Proposal storage proposal = proposals[proposalId];\\n Receipt storage receipt = proposal.receipts[voter];\\n require(receipt.hasVoted == false, \\\"GovernorAlpha::_castVote: voter already voted\\\");\\n uint96 votes = xvs.getPriorVotes(voter, proposal.startBlock);\\n\\n if (support) {\\n proposal.forVotes = add256(proposal.forVotes, votes);\\n } else {\\n proposal.againstVotes = add256(proposal.againstVotes, votes);\\n }\\n\\n receipt.hasVoted = true;\\n receipt.support = support;\\n receipt.votes = votes;\\n\\n emit VoteCast(voter, proposalId, support, votes);\\n }\\n\\n function __acceptAdmin() public {\\n require(msg.sender == guardian, \\\"GovernorAlpha::__acceptAdmin: sender must be gov guardian\\\");\\n timelock.acceptAdmin();\\n }\\n\\n function __abdicate() public {\\n require(msg.sender == guardian, \\\"GovernorAlpha::__abdicate: sender must be gov guardian\\\");\\n guardian = address(0);\\n }\\n\\n function __queueSetTimelockPendingAdmin(address newPendingAdmin, uint eta) public {\\n require(msg.sender == guardian, \\\"GovernorAlpha::__queueSetTimelockPendingAdmin: sender must be gov guardian\\\");\\n timelock.queueTransaction(address(timelock), 0, \\\"setPendingAdmin(address)\\\", abi.encode(newPendingAdmin), eta);\\n }\\n\\n function __executeSetTimelockPendingAdmin(address newPendingAdmin, uint eta) public {\\n require(msg.sender == guardian, \\\"GovernorAlpha::__executeSetTimelockPendingAdmin: sender must be gov guardian\\\");\\n timelock.executeTransaction(address(timelock), 0, \\\"setPendingAdmin(address)\\\", abi.encode(newPendingAdmin), eta);\\n }\\n\\n function add256(uint256 a, uint256 b) internal pure returns (uint) {\\n uint c = a + b;\\n require(c >= a, \\\"addition overflow\\\");\\n return c;\\n }\\n\\n function sub256(uint256 a, uint256 b) internal pure returns (uint) {\\n require(b <= a, \\\"subtraction underflow\\\");\\n return a - b;\\n }\\n\\n function getChainId() internal pure returns (uint) {\\n uint chainId;\\n assembly {\\n chainId := chainid()\\n }\\n return chainId;\\n }\\n}\\n\\ninterface TimelockInterface {\\n function delay() external view returns (uint);\\n\\n function GRACE_PERIOD() external view returns (uint);\\n\\n function acceptAdmin() external;\\n\\n function queuedTransactions(bytes32 hash) external view returns (bool);\\n\\n function queueTransaction(\\n address target,\\n uint value,\\n string calldata signature,\\n bytes calldata data,\\n uint eta\\n ) external returns (bytes32);\\n\\n function cancelTransaction(\\n address target,\\n uint value,\\n string calldata signature,\\n bytes calldata data,\\n uint eta\\n ) external;\\n\\n function executeTransaction(\\n address target,\\n uint value,\\n string calldata signature,\\n bytes calldata data,\\n uint eta\\n ) external payable returns (bytes memory);\\n}\\n\\ninterface XVSInterface {\\n function getPriorVotes(address account, uint blockNumber) external view returns (uint96);\\n}\\n\",\"keccak256\":\"0x9b3959b209c99146aedda6bdcc0791744f8decf56a3172c7022a3366341b5a34\"}},\"version\":1}","storageLayout":{"storage":[{"astId":56,"contract":"contracts/legacy/GovernorAlpha.sol:GovernorAlpha","label":"timelock","offset":0,"slot":"0","type":"t_contract(TimelockInterface)1242"},{"astId":58,"contract":"contracts/legacy/GovernorAlpha.sol:GovernorAlpha","label":"xvs","offset":0,"slot":"1","type":"t_contract(XVSInterface)1252"},{"astId":60,"contract":"contracts/legacy/GovernorAlpha.sol:GovernorAlpha","label":"guardian","offset":0,"slot":"2","type":"t_address"},{"astId":62,"contract":"contracts/legacy/GovernorAlpha.sol:GovernorAlpha","label":"proposalCount","offset":0,"slot":"3","type":"t_uint256"},{"astId":117,"contract":"contracts/legacy/GovernorAlpha.sol:GovernorAlpha","label":"proposals","offset":0,"slot":"4","type":"t_mapping(t_uint256,t_struct(Proposal)97_storage)"},{"astId":121,"contract":"contracts/legacy/GovernorAlpha.sol:GovernorAlpha","label":"latestProposalIds","offset":0,"slot":"5","type":"t_mapping(t_address,t_uint256)"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_address)dyn_storage":{"base":"t_address","encoding":"dynamic_array","label":"address[]","numberOfBytes":"32"},"t_array(t_bytes_storage)dyn_storage":{"base":"t_bytes_storage","encoding":"dynamic_array","label":"bytes[]","numberOfBytes":"32"},"t_array(t_string_storage)dyn_storage":{"base":"t_string_storage","encoding":"dynamic_array","label":"string[]","numberOfBytes":"32"},"t_array(t_uint256)dyn_storage":{"base":"t_uint256","encoding":"dynamic_array","label":"uint256[]","numberOfBytes":"32"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes_storage":{"encoding":"bytes","label":"bytes","numberOfBytes":"32"},"t_contract(TimelockInterface)1242":{"encoding":"inplace","label":"contract TimelockInterface","numberOfBytes":"20"},"t_contract(XVSInterface)1252":{"encoding":"inplace","label":"contract XVSInterface","numberOfBytes":"20"},"t_mapping(t_address,t_struct(Receipt)104_storage)":{"encoding":"mapping","key":"t_address","label":"mapping(address => struct GovernorAlpha.Receipt)","numberOfBytes":"32","value":"t_struct(Receipt)104_storage"},"t_mapping(t_address,t_uint256)":{"encoding":"mapping","key":"t_address","label":"mapping(address => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_mapping(t_uint256,t_struct(Proposal)97_storage)":{"encoding":"mapping","key":"t_uint256","label":"mapping(uint256 => struct GovernorAlpha.Proposal)","numberOfBytes":"32","value":"t_struct(Proposal)97_storage"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_struct(Proposal)97_storage":{"encoding":"inplace","label":"struct GovernorAlpha.Proposal","members":[{"astId":64,"contract":"contracts/legacy/GovernorAlpha.sol:GovernorAlpha","label":"id","offset":0,"slot":"0","type":"t_uint256"},{"astId":66,"contract":"contracts/legacy/GovernorAlpha.sol:GovernorAlpha","label":"proposer","offset":0,"slot":"1","type":"t_address"},{"astId":68,"contract":"contracts/legacy/GovernorAlpha.sol:GovernorAlpha","label":"eta","offset":0,"slot":"2","type":"t_uint256"},{"astId":71,"contract":"contracts/legacy/GovernorAlpha.sol:GovernorAlpha","label":"targets","offset":0,"slot":"3","type":"t_array(t_address)dyn_storage"},{"astId":74,"contract":"contracts/legacy/GovernorAlpha.sol:GovernorAlpha","label":"values","offset":0,"slot":"4","type":"t_array(t_uint256)dyn_storage"},{"astId":77,"contract":"contracts/legacy/GovernorAlpha.sol:GovernorAlpha","label":"signatures","offset":0,"slot":"5","type":"t_array(t_string_storage)dyn_storage"},{"astId":80,"contract":"contracts/legacy/GovernorAlpha.sol:GovernorAlpha","label":"calldatas","offset":0,"slot":"6","type":"t_array(t_bytes_storage)dyn_storage"},{"astId":82,"contract":"contracts/legacy/GovernorAlpha.sol:GovernorAlpha","label":"startBlock","offset":0,"slot":"7","type":"t_uint256"},{"astId":84,"contract":"contracts/legacy/GovernorAlpha.sol:GovernorAlpha","label":"endBlock","offset":0,"slot":"8","type":"t_uint256"},{"astId":86,"contract":"contracts/legacy/GovernorAlpha.sol:GovernorAlpha","label":"forVotes","offset":0,"slot":"9","type":"t_uint256"},{"astId":88,"contract":"contracts/legacy/GovernorAlpha.sol:GovernorAlpha","label":"againstVotes","offset":0,"slot":"10","type":"t_uint256"},{"astId":90,"contract":"contracts/legacy/GovernorAlpha.sol:GovernorAlpha","label":"canceled","offset":0,"slot":"11","type":"t_bool"},{"astId":92,"contract":"contracts/legacy/GovernorAlpha.sol:GovernorAlpha","label":"executed","offset":1,"slot":"11","type":"t_bool"},{"astId":96,"contract":"contracts/legacy/GovernorAlpha.sol:GovernorAlpha","label":"receipts","offset":0,"slot":"12","type":"t_mapping(t_address,t_struct(Receipt)104_storage)"}],"numberOfBytes":"416"},"t_struct(Receipt)104_storage":{"encoding":"inplace","label":"struct GovernorAlpha.Receipt","members":[{"astId":99,"contract":"contracts/legacy/GovernorAlpha.sol:GovernorAlpha","label":"hasVoted","offset":0,"slot":"0","type":"t_bool"},{"astId":101,"contract":"contracts/legacy/GovernorAlpha.sol:GovernorAlpha","label":"support","offset":1,"slot":"0","type":"t_bool"},{"astId":103,"contract":"contracts/legacy/GovernorAlpha.sol:GovernorAlpha","label":"votes","offset":2,"slot":"0","type":"t_uint96"}],"numberOfBytes":"32"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint96":{"encoding":"inplace","label":"uint96","numberOfBytes":"12"}}},"userdoc":{"methods":{"proposalMaxOperations()":{"notice":"The maximum number of actions that can be included in a proposal"},"proposalThreshold()":{"notice":"The number of votes required in order for a voter to become a proposer"},"quorumVotes()":{"notice":"The number of votes in support of a proposal required in order for a quorum to be reached and for a vote to succeed"},"votingDelay()":{"notice":"The delay before voting on a proposal may take place, once proposed"},"votingPeriod()":{"notice":"The duration of voting on a proposal, in blocks"}}}},"TimelockInterface":{"abi":[{"constant":true,"inputs":[],"name":"GRACE_PERIOD","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"acceptAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"string","name":"signature","type":"string"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"eta","type":"uint256"}],"name":"cancelTransaction","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"delay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"string","name":"signature","type":"string"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"eta","type":"uint256"}],"name":"executeTransaction","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"string","name":"signature","type":"string"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"eta","type":"uint256"}],"name":"queueTransaction","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32","name":"hash","type":"bytes32"}],"name":"queuedTransactions","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"}],"devdoc":{"methods":{}},"evm":{"bytecode":{"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"GRACE_PERIOD()":"c1a287e2","acceptAdmin()":"0e18b681","cancelTransaction(address,uint256,string,bytes,uint256)":"591fcdfe","delay()":"6a42b8f8","executeTransaction(address,uint256,string,bytes,uint256)":"0825f38f","queueTransaction(address,uint256,string,bytes,uint256)":"3a66f901","queuedTransactions(bytes32)":"f2b06537"}},"metadata":"{\"compiler\":{\"version\":\"0.5.16+commit.9c3226ce\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[],\"name\":\"GRACE_PERIOD\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"acceptAdmin\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"signature\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"eta\",\"type\":\"uint256\"}],\"name\":\"cancelTransaction\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"delay\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"signature\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"eta\",\"type\":\"uint256\"}],\"name\":\"executeTransaction\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"signature\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"eta\",\"type\":\"uint256\"}],\"name\":\"queueTransaction\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"}],\"name\":\"queuedTransactions\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"contracts/legacy/GovernorAlpha.sol\":\"TimelockInterface\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/legacy/GovernorAlpha.sol\":{\"content\":\"pragma solidity ^0.5.16;\\npragma experimental ABIEncoderV2;\\n\\ncontract GovernorAlpha {\\n /// @notice The name of this contract\\n string public constant name = \\\"Venus Governor Alpha\\\";\\n\\n /// @notice The number of votes in support of a proposal required in order for a quorum to be reached and for a vote to succeed\\n function quorumVotes() public pure returns (uint) {\\n return 600000e18;\\n } // 600,000 = 2% of XVS\\n\\n /// @notice The number of votes required in order for a voter to become a proposer\\n function proposalThreshold() public pure returns (uint) {\\n return 300000e18;\\n } // 300,000 = 1% of XVS\\n\\n /// @notice The maximum number of actions that can be included in a proposal\\n function proposalMaxOperations() public pure returns (uint) {\\n return 10;\\n } // 10 actions\\n\\n /// @notice The delay before voting on a proposal may take place, once proposed\\n function votingDelay() public pure returns (uint) {\\n return 1;\\n } // 1 block\\n\\n /// @notice The duration of voting on a proposal, in blocks\\n function votingPeriod() public pure returns (uint) {\\n return (60 * 60 * 24 * 3) / 3;\\n } // ~3 days in blocks (assuming 3s blocks)\\n\\n /// @notice The address of the Venus Protocol Timelock\\n TimelockInterface public timelock;\\n\\n /// @notice The address of the Venus governance token\\n XVSInterface public xvs;\\n\\n /// @notice The address of the Governor Guardian\\n address public guardian;\\n\\n /// @notice The total number of proposals\\n uint public proposalCount;\\n\\n struct Proposal {\\n /// @notice Unique id for looking up a proposal\\n uint id;\\n /// @notice Creator of the proposal\\n address proposer;\\n /// @notice The timestamp that the proposal will be available for execution, set once the vote succeeds\\n uint eta;\\n /// @notice the ordered list of target addresses for calls to be made\\n address[] targets;\\n /// @notice The ordered list of values (i.e. msg.value) to be passed to the calls to be made\\n uint[] values;\\n /// @notice The ordered list of function signatures to be called\\n string[] signatures;\\n /// @notice The ordered list of calldata to be passed to each call\\n bytes[] calldatas;\\n /// @notice The block at which voting begins: holders must delegate their votes prior to this block\\n uint startBlock;\\n /// @notice The block at which voting ends: votes must be cast prior to this block\\n uint endBlock;\\n /// @notice Current number of votes in favor of this proposal\\n uint forVotes;\\n /// @notice Current number of votes in opposition to this proposal\\n uint againstVotes;\\n /// @notice Flag marking whether the proposal has been canceled\\n bool canceled;\\n /// @notice Flag marking whether the proposal has been executed\\n bool executed;\\n /// @notice Receipts of ballots for the entire set of voters\\n mapping(address => Receipt) receipts;\\n }\\n\\n /// @notice Ballot receipt record for a voter\\n struct Receipt {\\n /// @notice Whether or not a vote has been cast\\n bool hasVoted;\\n /// @notice Whether or not the voter supports the proposal\\n bool support;\\n /// @notice The number of votes the voter had, which were cast\\n uint96 votes;\\n }\\n\\n /// @notice Possible states that a proposal may be in\\n enum ProposalState {\\n Pending,\\n Active,\\n Canceled,\\n Defeated,\\n Succeeded,\\n Queued,\\n Expired,\\n Executed\\n }\\n\\n /// @notice The official record of all proposals ever proposed\\n mapping(uint => Proposal) public proposals;\\n\\n /// @notice The latest proposal for each proposer\\n mapping(address => uint) public latestProposalIds;\\n\\n /// @notice The EIP-712 typehash for the contract's domain\\n bytes32 public constant DOMAIN_TYPEHASH =\\n keccak256(\\\"EIP712Domain(string name,uint256 chainId,address verifyingContract)\\\");\\n\\n /// @notice The EIP-712 typehash for the ballot struct used by the contract\\n bytes32 public constant BALLOT_TYPEHASH = keccak256(\\\"Ballot(uint256 proposalId,bool support)\\\");\\n\\n /// @notice An event emitted when a new proposal is created\\n event ProposalCreated(\\n uint id,\\n address proposer,\\n address[] targets,\\n uint[] values,\\n string[] signatures,\\n bytes[] calldatas,\\n uint startBlock,\\n uint endBlock,\\n string description\\n );\\n\\n /// @notice An event emitted when a vote has been cast on a proposal\\n event VoteCast(address voter, uint proposalId, bool support, uint votes);\\n\\n /// @notice An event emitted when a proposal has been canceled\\n event ProposalCanceled(uint id);\\n\\n /// @notice An event emitted when a proposal has been queued in the Timelock\\n event ProposalQueued(uint id, uint eta);\\n\\n /// @notice An event emitted when a proposal has been executed in the Timelock\\n event ProposalExecuted(uint id);\\n\\n constructor(address timelock_, address xvs_, address guardian_) public {\\n timelock = TimelockInterface(timelock_);\\n xvs = XVSInterface(xvs_);\\n guardian = guardian_;\\n }\\n\\n function propose(\\n address[] memory targets,\\n uint[] memory values,\\n string[] memory signatures,\\n bytes[] memory calldatas,\\n string memory description\\n ) public returns (uint) {\\n require(\\n xvs.getPriorVotes(msg.sender, sub256(block.number, 1)) > proposalThreshold(),\\n \\\"GovernorAlpha::propose: proposer votes below proposal threshold\\\"\\n );\\n require(\\n targets.length == values.length &&\\n targets.length == signatures.length &&\\n targets.length == calldatas.length,\\n \\\"GovernorAlpha::propose: proposal function information arity mismatch\\\"\\n );\\n require(targets.length != 0, \\\"GovernorAlpha::propose: must provide actions\\\");\\n require(targets.length <= proposalMaxOperations(), \\\"GovernorAlpha::propose: too many actions\\\");\\n\\n uint latestProposalId = latestProposalIds[msg.sender];\\n if (latestProposalId != 0) {\\n ProposalState proposersLatestProposalState = state(latestProposalId);\\n require(\\n proposersLatestProposalState != ProposalState.Active,\\n \\\"GovernorAlpha::propose: found an already active proposal\\\"\\n );\\n require(\\n proposersLatestProposalState != ProposalState.Pending,\\n \\\"GovernorAlpha::propose: found an already pending proposal\\\"\\n );\\n }\\n\\n uint startBlock = add256(block.number, votingDelay());\\n uint endBlock = add256(startBlock, votingPeriod());\\n\\n proposalCount++;\\n Proposal memory newProposal = Proposal({\\n id: proposalCount,\\n proposer: msg.sender,\\n eta: 0,\\n targets: targets,\\n values: values,\\n signatures: signatures,\\n calldatas: calldatas,\\n startBlock: startBlock,\\n endBlock: endBlock,\\n forVotes: 0,\\n againstVotes: 0,\\n canceled: false,\\n executed: false\\n });\\n\\n proposals[newProposal.id] = newProposal;\\n latestProposalIds[newProposal.proposer] = newProposal.id;\\n\\n emit ProposalCreated(\\n newProposal.id,\\n msg.sender,\\n targets,\\n values,\\n signatures,\\n calldatas,\\n startBlock,\\n endBlock,\\n description\\n );\\n return newProposal.id;\\n }\\n\\n function queue(uint proposalId) public {\\n require(\\n state(proposalId) == ProposalState.Succeeded,\\n \\\"GovernorAlpha::queue: proposal can only be queued if it is succeeded\\\"\\n );\\n Proposal storage proposal = proposals[proposalId];\\n uint eta = add256(block.timestamp, timelock.delay());\\n for (uint i = 0; i < proposal.targets.length; i++) {\\n _queueOrRevert(proposal.targets[i], proposal.values[i], proposal.signatures[i], proposal.calldatas[i], eta);\\n }\\n proposal.eta = eta;\\n emit ProposalQueued(proposalId, eta);\\n }\\n\\n function _queueOrRevert(address target, uint value, string memory signature, bytes memory data, uint eta) internal {\\n require(\\n !timelock.queuedTransactions(keccak256(abi.encode(target, value, signature, data, eta))),\\n \\\"GovernorAlpha::_queueOrRevert: proposal action already queued at eta\\\"\\n );\\n timelock.queueTransaction(target, value, signature, data, eta);\\n }\\n\\n function execute(uint proposalId) public payable {\\n require(\\n state(proposalId) == ProposalState.Queued,\\n \\\"GovernorAlpha::execute: proposal can only be executed if it is queued\\\"\\n );\\n Proposal storage proposal = proposals[proposalId];\\n proposal.executed = true;\\n for (uint i = 0; i < proposal.targets.length; i++) {\\n timelock.executeTransaction.value(proposal.values[i])(\\n proposal.targets[i],\\n proposal.values[i],\\n proposal.signatures[i],\\n proposal.calldatas[i],\\n proposal.eta\\n );\\n }\\n emit ProposalExecuted(proposalId);\\n }\\n\\n function cancel(uint proposalId) public {\\n ProposalState state = state(proposalId);\\n require(state != ProposalState.Executed, \\\"GovernorAlpha::cancel: cannot cancel executed proposal\\\");\\n\\n Proposal storage proposal = proposals[proposalId];\\n require(\\n msg.sender == guardian ||\\n xvs.getPriorVotes(proposal.proposer, sub256(block.number, 1)) < proposalThreshold(),\\n \\\"GovernorAlpha::cancel: proposer above threshold\\\"\\n );\\n\\n proposal.canceled = true;\\n for (uint i = 0; i < proposal.targets.length; i++) {\\n timelock.cancelTransaction(\\n proposal.targets[i],\\n proposal.values[i],\\n proposal.signatures[i],\\n proposal.calldatas[i],\\n proposal.eta\\n );\\n }\\n\\n emit ProposalCanceled(proposalId);\\n }\\n\\n function getActions(\\n uint proposalId\\n )\\n public\\n view\\n returns (address[] memory targets, uint[] memory values, string[] memory signatures, bytes[] memory calldatas)\\n {\\n Proposal storage p = proposals[proposalId];\\n return (p.targets, p.values, p.signatures, p.calldatas);\\n }\\n\\n function getReceipt(uint proposalId, address voter) public view returns (Receipt memory) {\\n return proposals[proposalId].receipts[voter];\\n }\\n\\n function state(uint proposalId) public view returns (ProposalState) {\\n require(proposalCount >= proposalId && proposalId > 0, \\\"GovernorAlpha::state: invalid proposal id\\\");\\n Proposal storage proposal = proposals[proposalId];\\n if (proposal.canceled) {\\n return ProposalState.Canceled;\\n } else if (block.number <= proposal.startBlock) {\\n return ProposalState.Pending;\\n } else if (block.number <= proposal.endBlock) {\\n return ProposalState.Active;\\n } else if (proposal.forVotes <= proposal.againstVotes || proposal.forVotes < quorumVotes()) {\\n return ProposalState.Defeated;\\n } else if (proposal.eta == 0) {\\n return ProposalState.Succeeded;\\n } else if (proposal.executed) {\\n return ProposalState.Executed;\\n } else if (block.timestamp >= add256(proposal.eta, timelock.GRACE_PERIOD())) {\\n return ProposalState.Expired;\\n } else {\\n return ProposalState.Queued;\\n }\\n }\\n\\n function castVote(uint proposalId, bool support) public {\\n return _castVote(msg.sender, proposalId, support);\\n }\\n\\n function castVoteBySig(uint proposalId, bool support, uint8 v, bytes32 r, bytes32 s) public {\\n bytes32 domainSeparator = keccak256(\\n abi.encode(DOMAIN_TYPEHASH, keccak256(bytes(name)), getChainId(), address(this))\\n );\\n bytes32 structHash = keccak256(abi.encode(BALLOT_TYPEHASH, proposalId, support));\\n bytes32 digest = keccak256(abi.encodePacked(\\\"\\\\x19\\\\x01\\\", domainSeparator, structHash));\\n address signatory = ecrecover(digest, v, r, s);\\n require(signatory != address(0), \\\"GovernorAlpha::castVoteBySig: invalid signature\\\");\\n return _castVote(signatory, proposalId, support);\\n }\\n\\n function _castVote(address voter, uint proposalId, bool support) internal {\\n require(state(proposalId) == ProposalState.Active, \\\"GovernorAlpha::_castVote: voting is closed\\\");\\n Proposal storage proposal = proposals[proposalId];\\n Receipt storage receipt = proposal.receipts[voter];\\n require(receipt.hasVoted == false, \\\"GovernorAlpha::_castVote: voter already voted\\\");\\n uint96 votes = xvs.getPriorVotes(voter, proposal.startBlock);\\n\\n if (support) {\\n proposal.forVotes = add256(proposal.forVotes, votes);\\n } else {\\n proposal.againstVotes = add256(proposal.againstVotes, votes);\\n }\\n\\n receipt.hasVoted = true;\\n receipt.support = support;\\n receipt.votes = votes;\\n\\n emit VoteCast(voter, proposalId, support, votes);\\n }\\n\\n function __acceptAdmin() public {\\n require(msg.sender == guardian, \\\"GovernorAlpha::__acceptAdmin: sender must be gov guardian\\\");\\n timelock.acceptAdmin();\\n }\\n\\n function __abdicate() public {\\n require(msg.sender == guardian, \\\"GovernorAlpha::__abdicate: sender must be gov guardian\\\");\\n guardian = address(0);\\n }\\n\\n function __queueSetTimelockPendingAdmin(address newPendingAdmin, uint eta) public {\\n require(msg.sender == guardian, \\\"GovernorAlpha::__queueSetTimelockPendingAdmin: sender must be gov guardian\\\");\\n timelock.queueTransaction(address(timelock), 0, \\\"setPendingAdmin(address)\\\", abi.encode(newPendingAdmin), eta);\\n }\\n\\n function __executeSetTimelockPendingAdmin(address newPendingAdmin, uint eta) public {\\n require(msg.sender == guardian, \\\"GovernorAlpha::__executeSetTimelockPendingAdmin: sender must be gov guardian\\\");\\n timelock.executeTransaction(address(timelock), 0, \\\"setPendingAdmin(address)\\\", abi.encode(newPendingAdmin), eta);\\n }\\n\\n function add256(uint256 a, uint256 b) internal pure returns (uint) {\\n uint c = a + b;\\n require(c >= a, \\\"addition overflow\\\");\\n return c;\\n }\\n\\n function sub256(uint256 a, uint256 b) internal pure returns (uint) {\\n require(b <= a, \\\"subtraction underflow\\\");\\n return a - b;\\n }\\n\\n function getChainId() internal pure returns (uint) {\\n uint chainId;\\n assembly {\\n chainId := chainid()\\n }\\n return chainId;\\n }\\n}\\n\\ninterface TimelockInterface {\\n function delay() external view returns (uint);\\n\\n function GRACE_PERIOD() external view returns (uint);\\n\\n function acceptAdmin() external;\\n\\n function queuedTransactions(bytes32 hash) external view returns (bool);\\n\\n function queueTransaction(\\n address target,\\n uint value,\\n string calldata signature,\\n bytes calldata data,\\n uint eta\\n ) external returns (bytes32);\\n\\n function cancelTransaction(\\n address target,\\n uint value,\\n string calldata signature,\\n bytes calldata data,\\n uint eta\\n ) external;\\n\\n function executeTransaction(\\n address target,\\n uint value,\\n string calldata signature,\\n bytes calldata data,\\n uint eta\\n ) external payable returns (bytes memory);\\n}\\n\\ninterface XVSInterface {\\n function getPriorVotes(address account, uint blockNumber) external view returns (uint96);\\n}\\n\",\"keccak256\":\"0x9b3959b209c99146aedda6bdcc0791744f8decf56a3172c7022a3366341b5a34\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"methods":{}}},"XVSInterface":{"abi":[{"constant":true,"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"name":"getPriorVotes","outputs":[{"internalType":"uint96","name":"","type":"uint96"}],"payable":false,"stateMutability":"view","type":"function"}],"devdoc":{"methods":{}},"evm":{"bytecode":{"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"getPriorVotes(address,uint256)":"782d6fe1"}},"metadata":"{\"compiler\":{\"version\":\"0.5.16+commit.9c3226ce\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"getPriorVotes\",\"outputs\":[{\"internalType\":\"uint96\",\"name\":\"\",\"type\":\"uint96\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"contracts/legacy/GovernorAlpha.sol\":\"XVSInterface\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/legacy/GovernorAlpha.sol\":{\"content\":\"pragma solidity ^0.5.16;\\npragma experimental ABIEncoderV2;\\n\\ncontract GovernorAlpha {\\n /// @notice The name of this contract\\n string public constant name = \\\"Venus Governor Alpha\\\";\\n\\n /// @notice The number of votes in support of a proposal required in order for a quorum to be reached and for a vote to succeed\\n function quorumVotes() public pure returns (uint) {\\n return 600000e18;\\n } // 600,000 = 2% of XVS\\n\\n /// @notice The number of votes required in order for a voter to become a proposer\\n function proposalThreshold() public pure returns (uint) {\\n return 300000e18;\\n } // 300,000 = 1% of XVS\\n\\n /// @notice The maximum number of actions that can be included in a proposal\\n function proposalMaxOperations() public pure returns (uint) {\\n return 10;\\n } // 10 actions\\n\\n /// @notice The delay before voting on a proposal may take place, once proposed\\n function votingDelay() public pure returns (uint) {\\n return 1;\\n } // 1 block\\n\\n /// @notice The duration of voting on a proposal, in blocks\\n function votingPeriod() public pure returns (uint) {\\n return (60 * 60 * 24 * 3) / 3;\\n } // ~3 days in blocks (assuming 3s blocks)\\n\\n /// @notice The address of the Venus Protocol Timelock\\n TimelockInterface public timelock;\\n\\n /// @notice The address of the Venus governance token\\n XVSInterface public xvs;\\n\\n /// @notice The address of the Governor Guardian\\n address public guardian;\\n\\n /// @notice The total number of proposals\\n uint public proposalCount;\\n\\n struct Proposal {\\n /// @notice Unique id for looking up a proposal\\n uint id;\\n /// @notice Creator of the proposal\\n address proposer;\\n /// @notice The timestamp that the proposal will be available for execution, set once the vote succeeds\\n uint eta;\\n /// @notice the ordered list of target addresses for calls to be made\\n address[] targets;\\n /// @notice The ordered list of values (i.e. msg.value) to be passed to the calls to be made\\n uint[] values;\\n /// @notice The ordered list of function signatures to be called\\n string[] signatures;\\n /// @notice The ordered list of calldata to be passed to each call\\n bytes[] calldatas;\\n /// @notice The block at which voting begins: holders must delegate their votes prior to this block\\n uint startBlock;\\n /// @notice The block at which voting ends: votes must be cast prior to this block\\n uint endBlock;\\n /// @notice Current number of votes in favor of this proposal\\n uint forVotes;\\n /// @notice Current number of votes in opposition to this proposal\\n uint againstVotes;\\n /// @notice Flag marking whether the proposal has been canceled\\n bool canceled;\\n /// @notice Flag marking whether the proposal has been executed\\n bool executed;\\n /// @notice Receipts of ballots for the entire set of voters\\n mapping(address => Receipt) receipts;\\n }\\n\\n /// @notice Ballot receipt record for a voter\\n struct Receipt {\\n /// @notice Whether or not a vote has been cast\\n bool hasVoted;\\n /// @notice Whether or not the voter supports the proposal\\n bool support;\\n /// @notice The number of votes the voter had, which were cast\\n uint96 votes;\\n }\\n\\n /// @notice Possible states that a proposal may be in\\n enum ProposalState {\\n Pending,\\n Active,\\n Canceled,\\n Defeated,\\n Succeeded,\\n Queued,\\n Expired,\\n Executed\\n }\\n\\n /// @notice The official record of all proposals ever proposed\\n mapping(uint => Proposal) public proposals;\\n\\n /// @notice The latest proposal for each proposer\\n mapping(address => uint) public latestProposalIds;\\n\\n /// @notice The EIP-712 typehash for the contract's domain\\n bytes32 public constant DOMAIN_TYPEHASH =\\n keccak256(\\\"EIP712Domain(string name,uint256 chainId,address verifyingContract)\\\");\\n\\n /// @notice The EIP-712 typehash for the ballot struct used by the contract\\n bytes32 public constant BALLOT_TYPEHASH = keccak256(\\\"Ballot(uint256 proposalId,bool support)\\\");\\n\\n /// @notice An event emitted when a new proposal is created\\n event ProposalCreated(\\n uint id,\\n address proposer,\\n address[] targets,\\n uint[] values,\\n string[] signatures,\\n bytes[] calldatas,\\n uint startBlock,\\n uint endBlock,\\n string description\\n );\\n\\n /// @notice An event emitted when a vote has been cast on a proposal\\n event VoteCast(address voter, uint proposalId, bool support, uint votes);\\n\\n /// @notice An event emitted when a proposal has been canceled\\n event ProposalCanceled(uint id);\\n\\n /// @notice An event emitted when a proposal has been queued in the Timelock\\n event ProposalQueued(uint id, uint eta);\\n\\n /// @notice An event emitted when a proposal has been executed in the Timelock\\n event ProposalExecuted(uint id);\\n\\n constructor(address timelock_, address xvs_, address guardian_) public {\\n timelock = TimelockInterface(timelock_);\\n xvs = XVSInterface(xvs_);\\n guardian = guardian_;\\n }\\n\\n function propose(\\n address[] memory targets,\\n uint[] memory values,\\n string[] memory signatures,\\n bytes[] memory calldatas,\\n string memory description\\n ) public returns (uint) {\\n require(\\n xvs.getPriorVotes(msg.sender, sub256(block.number, 1)) > proposalThreshold(),\\n \\\"GovernorAlpha::propose: proposer votes below proposal threshold\\\"\\n );\\n require(\\n targets.length == values.length &&\\n targets.length == signatures.length &&\\n targets.length == calldatas.length,\\n \\\"GovernorAlpha::propose: proposal function information arity mismatch\\\"\\n );\\n require(targets.length != 0, \\\"GovernorAlpha::propose: must provide actions\\\");\\n require(targets.length <= proposalMaxOperations(), \\\"GovernorAlpha::propose: too many actions\\\");\\n\\n uint latestProposalId = latestProposalIds[msg.sender];\\n if (latestProposalId != 0) {\\n ProposalState proposersLatestProposalState = state(latestProposalId);\\n require(\\n proposersLatestProposalState != ProposalState.Active,\\n \\\"GovernorAlpha::propose: found an already active proposal\\\"\\n );\\n require(\\n proposersLatestProposalState != ProposalState.Pending,\\n \\\"GovernorAlpha::propose: found an already pending proposal\\\"\\n );\\n }\\n\\n uint startBlock = add256(block.number, votingDelay());\\n uint endBlock = add256(startBlock, votingPeriod());\\n\\n proposalCount++;\\n Proposal memory newProposal = Proposal({\\n id: proposalCount,\\n proposer: msg.sender,\\n eta: 0,\\n targets: targets,\\n values: values,\\n signatures: signatures,\\n calldatas: calldatas,\\n startBlock: startBlock,\\n endBlock: endBlock,\\n forVotes: 0,\\n againstVotes: 0,\\n canceled: false,\\n executed: false\\n });\\n\\n proposals[newProposal.id] = newProposal;\\n latestProposalIds[newProposal.proposer] = newProposal.id;\\n\\n emit ProposalCreated(\\n newProposal.id,\\n msg.sender,\\n targets,\\n values,\\n signatures,\\n calldatas,\\n startBlock,\\n endBlock,\\n description\\n );\\n return newProposal.id;\\n }\\n\\n function queue(uint proposalId) public {\\n require(\\n state(proposalId) == ProposalState.Succeeded,\\n \\\"GovernorAlpha::queue: proposal can only be queued if it is succeeded\\\"\\n );\\n Proposal storage proposal = proposals[proposalId];\\n uint eta = add256(block.timestamp, timelock.delay());\\n for (uint i = 0; i < proposal.targets.length; i++) {\\n _queueOrRevert(proposal.targets[i], proposal.values[i], proposal.signatures[i], proposal.calldatas[i], eta);\\n }\\n proposal.eta = eta;\\n emit ProposalQueued(proposalId, eta);\\n }\\n\\n function _queueOrRevert(address target, uint value, string memory signature, bytes memory data, uint eta) internal {\\n require(\\n !timelock.queuedTransactions(keccak256(abi.encode(target, value, signature, data, eta))),\\n \\\"GovernorAlpha::_queueOrRevert: proposal action already queued at eta\\\"\\n );\\n timelock.queueTransaction(target, value, signature, data, eta);\\n }\\n\\n function execute(uint proposalId) public payable {\\n require(\\n state(proposalId) == ProposalState.Queued,\\n \\\"GovernorAlpha::execute: proposal can only be executed if it is queued\\\"\\n );\\n Proposal storage proposal = proposals[proposalId];\\n proposal.executed = true;\\n for (uint i = 0; i < proposal.targets.length; i++) {\\n timelock.executeTransaction.value(proposal.values[i])(\\n proposal.targets[i],\\n proposal.values[i],\\n proposal.signatures[i],\\n proposal.calldatas[i],\\n proposal.eta\\n );\\n }\\n emit ProposalExecuted(proposalId);\\n }\\n\\n function cancel(uint proposalId) public {\\n ProposalState state = state(proposalId);\\n require(state != ProposalState.Executed, \\\"GovernorAlpha::cancel: cannot cancel executed proposal\\\");\\n\\n Proposal storage proposal = proposals[proposalId];\\n require(\\n msg.sender == guardian ||\\n xvs.getPriorVotes(proposal.proposer, sub256(block.number, 1)) < proposalThreshold(),\\n \\\"GovernorAlpha::cancel: proposer above threshold\\\"\\n );\\n\\n proposal.canceled = true;\\n for (uint i = 0; i < proposal.targets.length; i++) {\\n timelock.cancelTransaction(\\n proposal.targets[i],\\n proposal.values[i],\\n proposal.signatures[i],\\n proposal.calldatas[i],\\n proposal.eta\\n );\\n }\\n\\n emit ProposalCanceled(proposalId);\\n }\\n\\n function getActions(\\n uint proposalId\\n )\\n public\\n view\\n returns (address[] memory targets, uint[] memory values, string[] memory signatures, bytes[] memory calldatas)\\n {\\n Proposal storage p = proposals[proposalId];\\n return (p.targets, p.values, p.signatures, p.calldatas);\\n }\\n\\n function getReceipt(uint proposalId, address voter) public view returns (Receipt memory) {\\n return proposals[proposalId].receipts[voter];\\n }\\n\\n function state(uint proposalId) public view returns (ProposalState) {\\n require(proposalCount >= proposalId && proposalId > 0, \\\"GovernorAlpha::state: invalid proposal id\\\");\\n Proposal storage proposal = proposals[proposalId];\\n if (proposal.canceled) {\\n return ProposalState.Canceled;\\n } else if (block.number <= proposal.startBlock) {\\n return ProposalState.Pending;\\n } else if (block.number <= proposal.endBlock) {\\n return ProposalState.Active;\\n } else if (proposal.forVotes <= proposal.againstVotes || proposal.forVotes < quorumVotes()) {\\n return ProposalState.Defeated;\\n } else if (proposal.eta == 0) {\\n return ProposalState.Succeeded;\\n } else if (proposal.executed) {\\n return ProposalState.Executed;\\n } else if (block.timestamp >= add256(proposal.eta, timelock.GRACE_PERIOD())) {\\n return ProposalState.Expired;\\n } else {\\n return ProposalState.Queued;\\n }\\n }\\n\\n function castVote(uint proposalId, bool support) public {\\n return _castVote(msg.sender, proposalId, support);\\n }\\n\\n function castVoteBySig(uint proposalId, bool support, uint8 v, bytes32 r, bytes32 s) public {\\n bytes32 domainSeparator = keccak256(\\n abi.encode(DOMAIN_TYPEHASH, keccak256(bytes(name)), getChainId(), address(this))\\n );\\n bytes32 structHash = keccak256(abi.encode(BALLOT_TYPEHASH, proposalId, support));\\n bytes32 digest = keccak256(abi.encodePacked(\\\"\\\\x19\\\\x01\\\", domainSeparator, structHash));\\n address signatory = ecrecover(digest, v, r, s);\\n require(signatory != address(0), \\\"GovernorAlpha::castVoteBySig: invalid signature\\\");\\n return _castVote(signatory, proposalId, support);\\n }\\n\\n function _castVote(address voter, uint proposalId, bool support) internal {\\n require(state(proposalId) == ProposalState.Active, \\\"GovernorAlpha::_castVote: voting is closed\\\");\\n Proposal storage proposal = proposals[proposalId];\\n Receipt storage receipt = proposal.receipts[voter];\\n require(receipt.hasVoted == false, \\\"GovernorAlpha::_castVote: voter already voted\\\");\\n uint96 votes = xvs.getPriorVotes(voter, proposal.startBlock);\\n\\n if (support) {\\n proposal.forVotes = add256(proposal.forVotes, votes);\\n } else {\\n proposal.againstVotes = add256(proposal.againstVotes, votes);\\n }\\n\\n receipt.hasVoted = true;\\n receipt.support = support;\\n receipt.votes = votes;\\n\\n emit VoteCast(voter, proposalId, support, votes);\\n }\\n\\n function __acceptAdmin() public {\\n require(msg.sender == guardian, \\\"GovernorAlpha::__acceptAdmin: sender must be gov guardian\\\");\\n timelock.acceptAdmin();\\n }\\n\\n function __abdicate() public {\\n require(msg.sender == guardian, \\\"GovernorAlpha::__abdicate: sender must be gov guardian\\\");\\n guardian = address(0);\\n }\\n\\n function __queueSetTimelockPendingAdmin(address newPendingAdmin, uint eta) public {\\n require(msg.sender == guardian, \\\"GovernorAlpha::__queueSetTimelockPendingAdmin: sender must be gov guardian\\\");\\n timelock.queueTransaction(address(timelock), 0, \\\"setPendingAdmin(address)\\\", abi.encode(newPendingAdmin), eta);\\n }\\n\\n function __executeSetTimelockPendingAdmin(address newPendingAdmin, uint eta) public {\\n require(msg.sender == guardian, \\\"GovernorAlpha::__executeSetTimelockPendingAdmin: sender must be gov guardian\\\");\\n timelock.executeTransaction(address(timelock), 0, \\\"setPendingAdmin(address)\\\", abi.encode(newPendingAdmin), eta);\\n }\\n\\n function add256(uint256 a, uint256 b) internal pure returns (uint) {\\n uint c = a + b;\\n require(c >= a, \\\"addition overflow\\\");\\n return c;\\n }\\n\\n function sub256(uint256 a, uint256 b) internal pure returns (uint) {\\n require(b <= a, \\\"subtraction underflow\\\");\\n return a - b;\\n }\\n\\n function getChainId() internal pure returns (uint) {\\n uint chainId;\\n assembly {\\n chainId := chainid()\\n }\\n return chainId;\\n }\\n}\\n\\ninterface TimelockInterface {\\n function delay() external view returns (uint);\\n\\n function GRACE_PERIOD() external view returns (uint);\\n\\n function acceptAdmin() external;\\n\\n function queuedTransactions(bytes32 hash) external view returns (bool);\\n\\n function queueTransaction(\\n address target,\\n uint value,\\n string calldata signature,\\n bytes calldata data,\\n uint eta\\n ) external returns (bytes32);\\n\\n function cancelTransaction(\\n address target,\\n uint value,\\n string calldata signature,\\n bytes calldata data,\\n uint eta\\n ) external;\\n\\n function executeTransaction(\\n address target,\\n uint value,\\n string calldata signature,\\n bytes calldata data,\\n uint eta\\n ) external payable returns (bytes memory);\\n}\\n\\ninterface XVSInterface {\\n function getPriorVotes(address account, uint blockNumber) external view returns (uint96);\\n}\\n\",\"keccak256\":\"0x9b3959b209c99146aedda6bdcc0791744f8decf56a3172c7022a3366341b5a34\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"methods":{}}}}}}}
|