{"id":"3b47d4ce14ec7fb090660b6af43c54be","_format":"hh-sol-build-info-1","solcVersion":"0.5.16","solcLongVersion":"0.5.16+commit.9c3226ce","input":{"language":"Solidity","sources":{"contracts/Governance/GovernorBravoDelegate.sol":{"content":"pragma solidity ^0.5.16;\npragma experimental ABIEncoderV2;\n\nimport \"./GovernorBravoInterfaces.sol\";\n\n/**\n * @title GovernorBravoDelegate\n * @notice Venus Governance latest on chain governance includes several new features including variable proposal routes and fine grained pause control.\n * Variable routes for proposals allows for governance paramaters such as voting threshold and timelocks to be customized based on the risk level and\n * impact of the proposal. Added granularity to the pause control mechanism allows governance to pause individual actions on specific markets,\n * which reduces impact on the protocol as a whole. This is particularly useful when applied to isolated pools.\n *\n * The goal of **Governance** is to increase governance efficiency, while mitigating and eliminating malicious or erroneous proposals.\n *\n * ## Details\n *\n * Governance has **3 main contracts**: **GovernanceBravoDelegate, XVSVault, XVS** token.\n *\n * - XVS token is the protocol token used for protocol users to cast their vote on submitted proposals.\n * - XVSVault is the main staking contract for XVS. Users first stake their XVS in the vault and receive voting power proportional to their staked\n * tokens that they can use to vote on proposals. Users also can choose to delegate their voting power to other users.\n *\n * # Governor Bravo\n *\n * `GovernanceBravoDelegate` is main Venus Governance contract. Users interact with it to:\n * - Submit new proposal\n * - Vote on a proposal\n * - Cancel a proposal\n * - Queue a proposal for execution with a timelock executor contract.\n * `GovernanceBravoDelegate` uses the XVSVault to get restrict certain actions based on a user's voting power. The governance rules it inforces are:\n * - A user's voting power must be greater than the `proposalThreshold` to submit a proposal\n * - If a user's voting power drops below certain amount, anyone can cancel the the proposal. The governance guardian and proposal creator can also\n * cancel a proposal at anytime before it is queued for execution.\n *\n * ## Venus Improvement Proposal\n *\n * Venus Governance allows for Venus Improvement Proposals (VIPs) to be categorized based on their impact and risk levels. This allows for optimizing proposals\n * execution to allow for things such as expediting interest rate changes and quickly updating risk parameters, while moving slower on other types of proposals\n * that can prevent a larger risk to the protocol and are not urgent. There are three different types of VIPs with different proposal paramters:\n *\n * - `NORMAL`\n * - `FASTTRACK`\n * - `CRITICAL`\n *\n * When initializing the `GovernorBravo` contract, the parameters for the three routes are set. The parameters are:\n *\n * - `votingDelay`: The delay in blocks between submitting a proposal and when voting begins\n * - `votingPeriod`: The number of blocks where voting will be open\n * - `proposalThreshold`: The number of votes required in order submit a proposal\n *\n * There is also a separate timelock executor contract for each route, which is used to dispatch the VIP for execution, giving even more control over the\n * flow of each type of VIP.\n *\n * ## Voting\n *\n * After a VIP is proposed, voting is opened after the `votingDelay` has passed. For example, if `votingDelay = 0`, then voting will begin in the next block\n * after the proposal has been submitted. After the delay, the proposal state is `ACTIVE` and users can cast their vote `for`, `against`, or `abstain`,\n * weighted by their total voting power (tokens + delegated voting power). Abstaining from a voting allows for a vote to be cast and optionally include a\n * comment, without the incrementing for or against vote count. The total voting power for the user is obtained by calling XVSVault's `getPriorVotes`.\n *\n * `GovernorBravoDelegate` also accepts [EIP-712](https://eips.ethereum.org/EIPS/eip-712) signatures for voting on proposals via the external function\n * `castVoteBySig`.\n *\n * ## Delegating\n *\n * A users voting power includes the amount of staked XVS the have staked as well as the votes delegate to them. Delegating is the process of a user loaning\n * their voting power to another, so that the latter has the combined voting power of both users. This is an important feature because it allows for a user\n * to let another user who they trust propose or vote in their place.\n *\n * The delegation of votes happens through the `XVSVault` contract by calling the `delegate` or `delegateBySig` functions. These same functions can revert\n * vote delegation by calling the same function with a value of `0`.\n */\ncontract GovernorBravoDelegate is GovernorBravoDelegateStorageV3, GovernorBravoEvents {\n    /// @notice The name of this contract\n    string public constant name = \"Venus Governor Bravo\";\n\n    /// @notice The minimum setable proposal threshold\n    uint public constant MIN_PROPOSAL_THRESHOLD = 150000e18; // 150,000 Xvs\n\n    /// @notice The maximum setable proposal threshold\n    uint public constant MAX_PROPOSAL_THRESHOLD = 300000e18; //300,000 Xvs\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    uint public constant quorumVotes = 600000e18; // 600,000 = 2% of Xvs\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,uint8 support)\");\n\n    /**\n     * @notice Used to initialize the contract during delegator contructor\n     * @param xvsVault_ The address of the XvsVault\n     * @param proposalConfigs_ Governance configs for each governance route\n     * @param timelocks Timelock addresses for each governance route\n     */\n    function initialize(\n        address xvsVault_,\n        ValidationParams memory validationParams_,\n        ProposalConfig[] memory proposalConfigs_,\n        TimelockInterface[] memory timelocks,\n        address guardian_\n    ) public {\n        require(address(proposalTimelocks[0]) == address(0), \"GovernorBravo::initialize: cannot initialize twice\");\n        require(msg.sender == admin, \"GovernorBravo::initialize: admin only\");\n        require(xvsVault_ != address(0), \"GovernorBravo::initialize: invalid xvs vault address\");\n        require(guardian_ != address(0), \"GovernorBravo::initialize: invalid guardian\");\n        require(\n            timelocks.length == getGovernanceRouteCount(),\n            \"GovernorBravo::initialize:number of timelocks should match number of governance routes\"\n        );\n        require(\n            proposalConfigs_.length == getGovernanceRouteCount(),\n            \"GovernorBravo::initialize:number of proposal configs should match number of governance routes\"\n        );\n\n        xvsVault = XvsVaultInterface(xvsVault_);\n        proposalMaxOperations = 10;\n        guardian = guardian_;\n\n        // Set parameters for each Governance Route\n        setValidationParams(validationParams_);\n        setProposalConfigs(proposalConfigs_);\n\n        uint256 arrLength = timelocks.length;\n        for (uint256 i; i < arrLength; ++i) {\n            require(address(timelocks[i]) != address(0), \"GovernorBravo::initialize:invalid timelock address\");\n            proposalTimelocks[i] = timelocks[i];\n        }\n    }\n\n    /**\n     ** @notice Sets the validation parameters for voting delay and voting period\n     ** @param newValidationParams Struct containing new minimum and maximum voting period and delay\n     */\n    function setValidationParams(ValidationParams memory newValidationParams) public {\n        require(msg.sender == admin, \"GovernorBravo::setValidationParams: admin only\");\n        require(\n            newValidationParams.minVotingPeriod > 0 &&\n                newValidationParams.minVotingDelay > 0 &&\n                newValidationParams.minVotingDelay < newValidationParams.maxVotingDelay &&\n                newValidationParams.minVotingPeriod < newValidationParams.maxVotingPeriod,\n            \"GovernorBravo::setValidationParams: invalid params\"\n        );\n        emit SetValidationParams(\n            validationParams.minVotingPeriod,\n            newValidationParams.minVotingPeriod,\n            validationParams.maxVotingPeriod,\n            newValidationParams.maxVotingPeriod,\n            validationParams.minVotingDelay,\n            newValidationParams.minVotingDelay,\n            validationParams.maxVotingDelay,\n            newValidationParams.maxVotingDelay\n        );\n        validationParams = newValidationParams;\n    }\n\n    /**\n     ** @notice Sets the configuration for different proposal types\n     ** @dev Requires validationParams to be configured before also it will set proposal config for all proposal types\n     ** @param proposalConfigs_ Array of proposal configuration structs to update\n     */\n    function setProposalConfigs(ProposalConfig[] memory proposalConfigs_) public {\n        require(msg.sender == admin, \"GovernorBravo::setProposalConfigs: admin only\");\n        require(\n            validationParams.minVotingPeriod > 0 &&\n                validationParams.maxVotingPeriod > 0 &&\n                validationParams.minVotingDelay > 0 &&\n                validationParams.maxVotingDelay > 0,\n            \"GovernorBravo::setProposalConfigs: validation params not configured yet\"\n        );\n        uint256 arrLength = proposalConfigs_.length;\n        require(\n            arrLength == getGovernanceRouteCount(),\n            \"GovernorBravo::setProposalConfigs: invalid proposal config length\"\n        );\n        for (uint256 i; i < arrLength; ++i) {\n            require(\n                proposalConfigs_[i].votingPeriod >= validationParams.minVotingPeriod,\n                \"GovernorBravo::setProposalConfigs: invalid min voting period\"\n            );\n            require(\n                proposalConfigs_[i].votingPeriod <= validationParams.maxVotingPeriod,\n                \"GovernorBravo::setProposalConfigs: invalid max voting period\"\n            );\n            require(\n                proposalConfigs_[i].votingDelay >= validationParams.minVotingDelay,\n                \"GovernorBravo::setProposalConfigs: invalid min voting delay\"\n            );\n            require(\n                proposalConfigs_[i].votingDelay <= validationParams.maxVotingDelay,\n                \"GovernorBravo::setProposalConfigs: invalid max voting delay\"\n            );\n            require(\n                proposalConfigs_[i].proposalThreshold >= MIN_PROPOSAL_THRESHOLD,\n                \"GovernorBravo::setProposalConfigs: invalid min proposal threshold\"\n            );\n            require(\n                proposalConfigs_[i].proposalThreshold <= MAX_PROPOSAL_THRESHOLD,\n                \"GovernorBravo::setProposalConfigs: invalid max proposal threshold\"\n            );\n\n            proposalConfigs[i] = proposalConfigs_[i];\n            emit SetProposalConfigs(\n                proposalConfigs_[i].votingPeriod,\n                proposalConfigs_[i].votingDelay,\n                proposalConfigs_[i].proposalThreshold\n            );\n        }\n    }\n\n    /**\n     * @notice Function used to propose a new proposal. Sender must have delegates above the proposal threshold.\n     * targets, values, signatures, and calldatas must be of equal length\n     * @dev NOTE: Proposals with duplicate set of actions can not be queued for execution. If the proposals consists\n     *  of duplicate actions, it's recommended to split those actions into separate proposals\n     * @param targets Target addresses for proposal calls\n     * @param values BNB values for proposal calls\n     * @param signatures Function signatures for proposal calls\n     * @param calldatas Calldatas for proposal calls\n     * @param description String description of the proposal\n     * @param proposalType the type of the proposal (e.g NORMAL, FASTTRACK, CRITICAL)\n     * @return Proposal id of new proposal\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        ProposalType proposalType\n    ) public returns (uint) {\n        // Reject proposals before initiating as Governor\n        require(initialProposalId != 0, \"GovernorBravo::propose: Governor Bravo not active\");\n        require(\n            xvsVault.getPriorVotes(msg.sender, sub256(block.number, 1)) >=\n                proposalConfigs[uint8(proposalType)].proposalThreshold,\n            \"GovernorBravo::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            \"GovernorBravo::propose: proposal function information arity mismatch\"\n        );\n        require(targets.length != 0, \"GovernorBravo::propose: must provide actions\");\n        require(targets.length <= proposalMaxOperations, \"GovernorBravo::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                \"GovernorBravo::propose: one live proposal per proposer, found an already active proposal\"\n            );\n            require(\n                proposersLatestProposalState != ProposalState.Pending,\n                \"GovernorBravo::propose: one live proposal per proposer, found an already pending proposal\"\n            );\n        }\n\n        uint startBlock = add256(block.number, proposalConfigs[uint8(proposalType)].votingDelay);\n        uint endBlock = add256(startBlock, proposalConfigs[uint8(proposalType)].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            abstainVotes: 0,\n            canceled: false,\n            executed: false,\n            proposalType: uint8(proposalType)\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            uint8(proposalType)\n        );\n        return newProposal.id;\n    }\n\n    /**\n     * @notice Queues a proposal of state succeeded\n     * @param proposalId The id of the proposal to queue\n     */\n    function queue(uint proposalId) external {\n        require(\n            state(proposalId) == ProposalState.Succeeded,\n            \"GovernorBravo::queue: proposal can only be queued if it is succeeded\"\n        );\n        Proposal storage proposal = proposals[proposalId];\n        uint eta = add256(block.timestamp, proposalTimelocks[uint8(proposal.proposalType)].delay());\n        for (uint i; i < proposal.targets.length; ++i) {\n            queueOrRevertInternal(\n                proposal.targets[i],\n                proposal.values[i],\n                proposal.signatures[i],\n                proposal.calldatas[i],\n                eta,\n                uint8(proposal.proposalType)\n            );\n        }\n        proposal.eta = eta;\n        emit ProposalQueued(proposalId, eta);\n    }\n\n    function queueOrRevertInternal(\n        address target,\n        uint value,\n        string memory signature,\n        bytes memory data,\n        uint eta,\n        uint8 proposalType\n    ) internal {\n        require(\n            !proposalTimelocks[proposalType].queuedTransactions(\n                keccak256(abi.encode(target, value, signature, data, eta))\n            ),\n            \"GovernorBravo::queueOrRevertInternal: identical proposal action already queued at eta\"\n        );\n        proposalTimelocks[proposalType].queueTransaction(target, value, signature, data, eta);\n    }\n\n    /**\n     * @notice Executes a queued proposal if eta has passed\n     * @param proposalId The id of the proposal to execute\n     */\n    function execute(uint proposalId) external {\n        require(\n            state(proposalId) == ProposalState.Queued,\n            \"GovernorBravo::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; i < proposal.targets.length; ++i) {\n            proposalTimelocks[uint8(proposal.proposalType)].executeTransaction(\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    /**\n     * @notice Cancels a proposal only if sender is the proposer, or proposer delegates dropped below proposal threshold\n     * @param proposalId The id of the proposal to cancel\n     */\n    function cancel(uint proposalId) external {\n        require(state(proposalId) != ProposalState.Executed, \"GovernorBravo::cancel: cannot cancel executed proposal\");\n\n        Proposal storage proposal = proposals[proposalId];\n        require(\n            msg.sender == guardian ||\n                msg.sender == proposal.proposer ||\n                xvsVault.getPriorVotes(proposal.proposer, sub256(block.number, 1)) <\n                proposalConfigs[proposal.proposalType].proposalThreshold,\n            \"GovernorBravo::cancel: proposer above threshold\"\n        );\n\n        proposal.canceled = true;\n        for (uint i = 0; i < proposal.targets.length; i++) {\n            proposalTimelocks[proposal.proposalType].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    /**\n     * @notice Gets actions of a proposal\n     * @param proposalId the id of the proposal\n     * @return targets, values, signatures, and calldatas of the proposal actions\n     */\n    function getActions(\n        uint proposalId\n    )\n        external\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    /**\n     * @notice Gets the receipt for a voter on a given proposal\n     * @param proposalId the id of proposal\n     * @param voter The address of the voter\n     * @return The voting receipt\n     */\n    function getReceipt(uint proposalId, address voter) external view returns (Receipt memory) {\n        return proposals[proposalId].receipts[voter];\n    }\n\n    /**\n     * @notice Gets the state of a proposal\n     * @param proposalId The id of the proposal\n     * @return Proposal state\n     */\n    function state(uint proposalId) public view returns (ProposalState) {\n        require(\n            proposalCount >= proposalId && proposalId > initialProposalId,\n            \"GovernorBravo::state: invalid proposal id\"\n        );\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 (\n            block.timestamp >= add256(proposal.eta, proposalTimelocks[uint8(proposal.proposalType)].GRACE_PERIOD())\n        ) {\n            return ProposalState.Expired;\n        } else {\n            return ProposalState.Queued;\n        }\n    }\n\n    /**\n     * @notice Cast a vote for a proposal\n     * @param proposalId The id of the proposal to vote on\n     * @param support The support value for the vote. 0=against, 1=for, 2=abstain\n     */\n    function castVote(uint proposalId, uint8 support) external {\n        emit VoteCast(msg.sender, proposalId, support, castVoteInternal(msg.sender, proposalId, support), \"\");\n    }\n\n    /**\n     * @notice Cast a vote for a proposal with a reason\n     * @param proposalId The id of the proposal to vote on\n     * @param support The support value for the vote. 0=against, 1=for, 2=abstain\n     * @param reason The reason given for the vote by the voter\n     */\n    function castVoteWithReason(uint proposalId, uint8 support, string calldata reason) external {\n        emit VoteCast(msg.sender, proposalId, support, castVoteInternal(msg.sender, proposalId, support), reason);\n    }\n\n    /**\n     * @notice Cast a vote for a proposal by signature\n     * @dev External function that accepts EIP-712 signatures for voting on proposals.\n     * @param proposalId The id of the proposal to vote on\n     * @param support The support value for the vote. 0=against, 1=for, 2=abstain\n     * @param v recovery id of ECDSA signature\n     * @param r part of the ECDSA sig output\n     * @param s part of the ECDSA sig output\n     */\n    function castVoteBySig(uint proposalId, uint8 support, uint8 v, bytes32 r, bytes32 s) external {\n        bytes32 domainSeparator = keccak256(\n            abi.encode(DOMAIN_TYPEHASH, keccak256(bytes(name)), getChainIdInternal(), 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), \"GovernorBravo::castVoteBySig: invalid signature\");\n        emit VoteCast(signatory, proposalId, support, castVoteInternal(signatory, proposalId, support), \"\");\n    }\n\n    /**\n     * @notice Internal function that caries out voting logic\n     * @param voter The voter that is casting their vote\n     * @param proposalId The id of the proposal to vote on\n     * @param support The support value for the vote. 0=against, 1=for, 2=abstain\n     * @return The number of votes cast\n     */\n    function castVoteInternal(address voter, uint proposalId, uint8 support) internal returns (uint96) {\n        require(state(proposalId) == ProposalState.Active, \"GovernorBravo::castVoteInternal: voting is closed\");\n        require(support <= 2, \"GovernorBravo::castVoteInternal: invalid vote type\");\n        Proposal storage proposal = proposals[proposalId];\n        Receipt storage receipt = proposal.receipts[voter];\n        require(receipt.hasVoted == false, \"GovernorBravo::castVoteInternal: voter already voted\");\n        uint96 votes = xvsVault.getPriorVotes(voter, proposal.startBlock);\n\n        if (support == 0) {\n            proposal.againstVotes = add256(proposal.againstVotes, votes);\n        } else if (support == 1) {\n            proposal.forVotes = add256(proposal.forVotes, votes);\n        } else if (support == 2) {\n            proposal.abstainVotes = add256(proposal.abstainVotes, votes);\n        }\n\n        receipt.hasVoted = true;\n        receipt.support = support;\n        receipt.votes = votes;\n\n        return votes;\n    }\n\n    /**\n     * @notice Sets the new governance guardian\n     * @param newGuardian the address of the new guardian\n     */\n    function _setGuardian(address newGuardian) external {\n        require(msg.sender == guardian || msg.sender == admin, \"GovernorBravo::_setGuardian: admin or guardian only\");\n        require(newGuardian != address(0), \"GovernorBravo::_setGuardian: cannot live without a guardian\");\n        address oldGuardian = guardian;\n        guardian = newGuardian;\n\n        emit NewGuardian(oldGuardian, newGuardian);\n    }\n\n    /**\n     * @notice Initiate the GovernorBravo contract\n     * @dev Admin only. Sets initial proposal id which initiates the contract, ensuring a continuous proposal id count\n     * @param governorAlpha The address for the Governor to continue the proposal id count from\n     */\n    function _initiate(address governorAlpha) external {\n        require(msg.sender == admin, \"GovernorBravo::_initiate: admin only\");\n        require(initialProposalId == 0, \"GovernorBravo::_initiate: can only initiate once\");\n        proposalCount = GovernorAlphaInterface(governorAlpha).proposalCount();\n        initialProposalId = proposalCount;\n        for (uint256 i; i < getGovernanceRouteCount(); ++i) {\n            proposalTimelocks[i].acceptAdmin();\n        }\n    }\n\n    /**\n     * @notice Set max proposal operations\n     * @dev Admin only.\n     * @param proposalMaxOperations_ Max proposal operations\n     */\n    function _setProposalMaxOperations(uint proposalMaxOperations_) external {\n        require(msg.sender == admin, \"GovernorBravo::_setProposalMaxOperations: admin only\");\n        uint oldProposalMaxOperations = proposalMaxOperations;\n        proposalMaxOperations = proposalMaxOperations_;\n\n        emit ProposalMaxOperationsUpdated(oldProposalMaxOperations, proposalMaxOperations_);\n    }\n\n    /**\n     * @notice Begins transfer of admin rights. The newPendingAdmin must call `_acceptAdmin` to finalize the transfer.\n     * @dev Admin function to begin change of admin. The newPendingAdmin must call `_acceptAdmin` to finalize the transfer.\n     * @param newPendingAdmin New pending admin.\n     */\n    function _setPendingAdmin(address newPendingAdmin) external {\n        // Check caller = admin\n        require(msg.sender == admin, \"GovernorBravo:_setPendingAdmin: admin only\");\n\n        // Save current value, if any, for inclusion in log\n        address oldPendingAdmin = pendingAdmin;\n\n        // Store pendingAdmin with value newPendingAdmin\n        pendingAdmin = newPendingAdmin;\n\n        // Emit NewPendingAdmin(oldPendingAdmin, newPendingAdmin)\n        emit NewPendingAdmin(oldPendingAdmin, newPendingAdmin);\n    }\n\n    /**\n     * @notice Accepts transfer of admin rights. msg.sender must be pendingAdmin\n     * @dev Admin function for pending admin to accept role and update admin\n     */\n    function _acceptAdmin() external {\n        // Check caller is pendingAdmin and pendingAdmin ≠ address(0)\n        require(\n            msg.sender == pendingAdmin && msg.sender != address(0),\n            \"GovernorBravo:_acceptAdmin: pending admin only\"\n        );\n\n        // Save current values for inclusion in log\n        address oldAdmin = admin;\n        address oldPendingAdmin = pendingAdmin;\n\n        // Store admin with value pendingAdmin\n        admin = pendingAdmin;\n\n        // Clear the pending value\n        pendingAdmin = address(0);\n\n        emit NewAdmin(oldAdmin, admin);\n        emit NewPendingAdmin(oldPendingAdmin, pendingAdmin);\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 getChainIdInternal() internal pure returns (uint) {\n        uint chainId;\n        assembly {\n            chainId := chainid()\n        }\n        return chainId;\n    }\n\n    function getGovernanceRouteCount() internal pure returns (uint8) {\n        return uint8(ProposalType.CRITICAL) + 1;\n    }\n}\n"},"contracts/Governance/GovernorBravoDelegator.sol":{"content":"pragma solidity ^0.5.16;\npragma experimental ABIEncoderV2;\n\nimport \"./GovernorBravoInterfaces.sol\";\n\n/**\n * @title GovernorBravoDelegator\n * @author Venus\n * @notice The `GovernorBravoDelegator` contract.\n */\ncontract GovernorBravoDelegator is GovernorBravoDelegatorStorage, GovernorBravoEvents {\n    constructor(\n        address timelock_,\n        address xvsVault_,\n        address admin_,\n        address implementation_,\n        uint votingPeriod_,\n        uint votingDelay_,\n        uint proposalThreshold_,\n        address guardian_\n    ) public {\n        // Admin set to msg.sender for initialization\n        admin = msg.sender;\n\n        delegateTo(\n            implementation_,\n            abi.encodeWithSignature(\n                \"initialize(address,address,uint256,uint256,uint256,address)\",\n                timelock_,\n                xvsVault_,\n                votingPeriod_,\n                votingDelay_,\n                proposalThreshold_,\n                guardian_\n            )\n        );\n\n        _setImplementation(implementation_);\n\n        admin = admin_;\n    }\n\n    /**\n     * @notice Called by the admin to update the implementation of the delegator\n     * @param implementation_ The address of the new implementation for delegation\n     */\n    function _setImplementation(address implementation_) public {\n        require(msg.sender == admin, \"GovernorBravoDelegator::_setImplementation: admin only\");\n        require(\n            implementation_ != address(0),\n            \"GovernorBravoDelegator::_setImplementation: invalid implementation address\"\n        );\n\n        address oldImplementation = implementation;\n        implementation = implementation_;\n\n        emit NewImplementation(oldImplementation, implementation);\n    }\n\n    /**\n     * @notice Internal method to delegate execution to another contract\n     * @dev It returns to the external caller whatever the implementation returns or forwards reverts\n     * @param callee The contract to delegatecall\n     * @param data The raw data to delegatecall\n     */\n    function delegateTo(address callee, bytes memory data) internal {\n        (bool success, bytes memory returnData) = callee.delegatecall(data);\n        assembly {\n            if eq(success, 0) {\n                revert(add(returnData, 0x20), returndatasize)\n            }\n        }\n    }\n\n    /**\n     * @dev Delegates execution to an implementation contract.\n     * It returns to the external caller whatever the implementation returns\n     * or forwards reverts.\n     */\n    function() external payable {\n        // delegate all other functions to current implementation\n        (bool success, ) = implementation.delegatecall(msg.data);\n\n        assembly {\n            let free_mem_ptr := mload(0x40)\n            returndatacopy(free_mem_ptr, 0, returndatasize)\n\n            switch success\n            case 0 {\n                revert(free_mem_ptr, returndatasize)\n            }\n            default {\n                return(free_mem_ptr, returndatasize)\n            }\n        }\n    }\n}\n"},"contracts/Governance/GovernorBravoInterfaces.sol":{"content":"pragma solidity ^0.5.16;\npragma experimental ABIEncoderV2;\n\n/**\n * @title GovernorBravoEvents\n * @author Venus\n * @notice Set of events emitted by the GovernorBravo contracts.\n */\ncontract GovernorBravoEvents {\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        uint8 proposalType\n    );\n\n    /// @notice An event emitted when a vote has been cast on a proposal\n    /// @param voter The address which casted a vote\n    /// @param proposalId The proposal id which was voted on\n    /// @param support Support value for the vote. 0=against, 1=for, 2=abstain\n    /// @param votes Number of votes which were cast by the voter\n    /// @param reason The reason given for the vote by the voter\n    event VoteCast(address indexed voter, uint proposalId, uint8 support, uint votes, string reason);\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    /// @notice An event emitted when the voting delay is set\n    event VotingDelaySet(uint oldVotingDelay, uint newVotingDelay);\n\n    /// @notice An event emitted when the voting period is set\n    event VotingPeriodSet(uint oldVotingPeriod, uint newVotingPeriod);\n\n    /// @notice Emitted when implementation is changed\n    event NewImplementation(address oldImplementation, address newImplementation);\n\n    /// @notice Emitted when proposal threshold is set\n    event ProposalThresholdSet(uint oldProposalThreshold, uint newProposalThreshold);\n\n    /// @notice Emitted when pendingAdmin is changed\n    event NewPendingAdmin(address oldPendingAdmin, address newPendingAdmin);\n\n    /// @notice Emitted when pendingAdmin is accepted, which means admin is updated\n    event NewAdmin(address oldAdmin, address newAdmin);\n\n    /// @notice Emitted when the new guardian address is set\n    event NewGuardian(address oldGuardian, address newGuardian);\n\n    /// @notice Emitted when the maximum number of operations in one proposal is updated\n    event ProposalMaxOperationsUpdated(uint oldMaxOperations, uint newMaxOperations);\n\n    /// @notice Emitted when the new validation params are set\n    event SetValidationParams(\n        uint256 oldMinVotingPeriod,\n        uint256 newMinVotingPeriod,\n        uint256 oldmaxVotingPeriod,\n        uint256 newmaxVotingPeriod,\n        uint256 oldminVotingDelay,\n        uint256 newminVotingDelay,\n        uint256 oldmaxVotingDelay,\n        uint256 newmaxVotingDelay\n    );\n\n    /// @notice Emitted when new Proposal configs added\n    event SetProposalConfigs(uint256 votingPeriod, uint256 votingDelay, uint256 proposalThreshold);\n}\n\n/**\n * @title GovernorBravoDelegatorStorage\n * @author Venus\n * @notice Storage layout of the `GovernorBravoDelegator` contract\n */\ncontract GovernorBravoDelegatorStorage {\n    /// @notice Administrator for this contract\n    address public admin;\n\n    /// @notice Pending administrator for this contract\n    address public pendingAdmin;\n\n    /// @notice Active brains of Governor\n    address public implementation;\n}\n\n/**\n * @title GovernorBravoDelegateStorageV1\n * @dev For future upgrades, do not change GovernorBravoDelegateStorageV1. Create a new\n * contract which implements GovernorBravoDelegateStorageV1 and following the naming convention\n * GovernorBravoDelegateStorageVX.\n */\ncontract GovernorBravoDelegateStorageV1 is GovernorBravoDelegatorStorage {\n    /// @notice DEPRECATED The delay before voting on a proposal may take place, once proposed, in blocks\n    uint public votingDelay;\n\n    /// @notice DEPRECATED The duration of voting on a proposal, in blocks\n    uint public votingPeriod;\n\n    /// @notice DEPRECATED The number of votes required in order for a voter to become a proposer\n    uint public proposalThreshold;\n\n    /// @notice Initial proposal id set at become\n    uint public initialProposalId;\n\n    /// @notice The total number of proposals\n    uint public proposalCount;\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    XvsVaultInterface public xvsVault;\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    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 Current number of votes for abstaining for this proposal\n        uint abstainVotes;\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        /// @notice The type of the proposal\n        uint8 proposalType;\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 or abstains\n        uint8 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 maximum number of actions that can be included in a proposal\n    uint public proposalMaxOperations;\n\n    /// @notice A privileged role that can cancel any proposal\n    address public guardian;\n}\n\n/**\n * @title GovernorBravoDelegateStorageV2\n * @dev For future upgrades, do not change GovernorBravoDelegateStorageV2. Create a new\n * contract which implements GovernorBravoDelegateStorageV2 and following the naming convention\n * GovernorBravoDelegateStorageVX.\n */\ncontract GovernorBravoDelegateStorageV2 is GovernorBravoDelegateStorageV1 {\n    enum ProposalType {\n        NORMAL,\n        FASTTRACK,\n        CRITICAL\n    }\n\n    struct ProposalConfig {\n        /// @notice The delay before voting on a proposal may take place, once proposed, in blocks\n        uint256 votingDelay;\n        /// @notice The duration of voting on a proposal, in blocks\n        uint256 votingPeriod;\n        /// @notice The number of votes required in order for a voter to become a proposer\n        uint256 proposalThreshold;\n    }\n\n    /// @notice mapping containing configuration for each proposal type\n    mapping(uint => ProposalConfig) public proposalConfigs;\n\n    /// @notice mapping containing Timelock addresses for each proposal type\n    mapping(uint => TimelockInterface) public proposalTimelocks;\n}\n\n/**\n * @title GovernorBravoDelegateStorageV3\n * @dev For future upgrades, do not change GovernorBravoDelegateStorageV3. Create a new\n * contract which implements GovernorBravoDelegateStorageV3 and following the naming convention\n * GovernorBravoDelegateStorageVX.\n */\ncontract GovernorBravoDelegateStorageV3 is GovernorBravoDelegateStorageV2 {\n    struct ValidationParams {\n        uint256 minVotingPeriod;\n        uint256 maxVotingPeriod;\n        uint256 minVotingDelay;\n        uint256 maxVotingDelay;\n    }\n    /// @notice Stores the current minimum and maximum values of voting delay and voting period\n    ValidationParams public validationParams;\n}\n\n/**\n * @title TimelockInterface\n * @author Venus\n * @notice Interface implemented by the Timelock contract.\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 XvsVaultInterface {\n    function getPriorVotes(address account, uint blockNumber) external view returns (uint96);\n}\n\ninterface GovernorAlphaInterface {\n    /// @notice The total number of proposals\n    function proposalCount() external returns (uint);\n}\n"},"contracts/legacy/GovenorBravoV1.sol":{"content":"pragma solidity ^0.5.16;\npragma experimental ABIEncoderV2;\n\nimport \"./GovernorBravoInterfaces.sol\";\n\n/**\n * @title GovernorBravoDelegator\n * @author Venus\n * @notice The `GovernorBravoDelegator` contract.\n */\ncontract GovernorBravoDelegatorV1 is GovernorBravoDelegatorStorage, GovernorBravoEventsV1 {\n    constructor(\n        address timelock_,\n        address xvsVault_,\n        address admin_,\n        address implementation_,\n        uint votingPeriod_,\n        uint votingDelay_,\n        uint proposalThreshold_,\n        address guardian_\n    ) public {\n        // Admin set to msg.sender for initialization\n        admin = msg.sender;\n\n        delegateTo(\n            implementation_,\n            abi.encodeWithSignature(\n                \"initialize(address,address,uint256,uint256,uint256,address)\",\n                timelock_,\n                xvsVault_,\n                votingPeriod_,\n                votingDelay_,\n                proposalThreshold_,\n                guardian_\n            )\n        );\n\n        _setImplementation(implementation_);\n\n        admin = admin_;\n    }\n\n    /**\n     * @notice Called by the admin to update the implementation of the delegator\n     * @param implementation_ The address of the new implementation for delegation\n     */\n    function _setImplementation(address implementation_) public {\n        require(msg.sender == admin, \"GovernorBravoDelegator::_setImplementation: admin only\");\n        require(\n            implementation_ != address(0),\n            \"GovernorBravoDelegator::_setImplementation: invalid implementation address\"\n        );\n\n        address oldImplementation = implementation;\n        implementation = implementation_;\n\n        emit NewImplementation(oldImplementation, implementation);\n    }\n\n    /**\n     * @notice Internal method to delegate execution to another contract\n     * @dev It returns to the external caller whatever the implementation returns or forwards reverts\n     * @param callee The contract to delegatecall\n     * @param data The raw data to delegatecall\n     */\n    function delegateTo(address callee, bytes memory data) internal {\n        (bool success, bytes memory returnData) = callee.delegatecall(data);\n        assembly {\n            if eq(success, 0) {\n                revert(add(returnData, 0x20), returndatasize)\n            }\n        }\n    }\n\n    /**\n     * @dev Delegates execution to an implementation contract.\n     * It returns to the external caller whatever the implementation returns\n     * or forwards reverts.\n     */\n    function() external payable {\n        // delegate all other functions to current implementation\n        (bool success, ) = implementation.delegatecall(msg.data);\n\n        assembly {\n            let free_mem_ptr := mload(0x40)\n            returndatacopy(free_mem_ptr, 0, returndatasize)\n\n            switch success\n            case 0 {\n                revert(free_mem_ptr, returndatasize)\n            }\n            default {\n                return(free_mem_ptr, returndatasize)\n            }\n        }\n    }\n}\n"},"contracts/legacy/GovenorBravoV2.sol":{"content":"pragma solidity ^0.5.16;\npragma experimental ABIEncoderV2;\n\nimport \"./GovernorBravoInterfaces.sol\";\n\n/**\n * @title GovernorBravoDelegator\n * @author Venus\n * @notice The `GovernorBravoDelegator` contract.\n */\ncontract GovernorBravoDelegatorV1 is GovernorBravoDelegatorStorage, GovernorBravoEventsV1 {\n    constructor(\n        address timelock_,\n        address xvsVault_,\n        address admin_,\n        address implementation_,\n        uint votingPeriod_,\n        uint votingDelay_,\n        uint proposalThreshold_,\n        address guardian_\n    ) public {\n        // Admin set to msg.sender for initialization\n        admin = msg.sender;\n\n        delegateTo(\n            implementation_,\n            abi.encodeWithSignature(\n                \"initialize(address,address,uint256,uint256,uint256,address)\",\n                timelock_,\n                xvsVault_,\n                votingPeriod_,\n                votingDelay_,\n                proposalThreshold_,\n                guardian_\n            )\n        );\n\n        _setImplementation(implementation_);\n\n        admin = admin_;\n    }\n\n    /**\n     * @notice Called by the admin to update the implementation of the delegator\n     * @param implementation_ The address of the new implementation for delegation\n     */\n    function _setImplementation(address implementation_) public {\n        require(msg.sender == admin, \"GovernorBravoDelegator::_setImplementation: admin only\");\n        require(\n            implementation_ != address(0),\n            \"GovernorBravoDelegator::_setImplementation: invalid implementation address\"\n        );\n\n        address oldImplementation = implementation;\n        implementation = implementation_;\n\n        emit NewImplementation(oldImplementation, implementation);\n    }\n\n    /**\n     * @notice Internal method to delegate execution to another contract\n     * @dev It returns to the external caller whatever the implementation returns or forwards reverts\n     * @param callee The contract to delegatecall\n     * @param data The raw data to delegatecall\n     */\n    function delegateTo(address callee, bytes memory data) internal {\n        (bool success, bytes memory returnData) = callee.delegatecall(data);\n        assembly {\n            if eq(success, 0) {\n                revert(add(returnData, 0x20), returndatasize)\n            }\n        }\n    }\n\n    /**\n     * @dev Delegates execution to an implementation contract.\n     * It returns to the external caller whatever the implementation returns\n     * or forwards reverts.\n     */\n    function() external payable {\n        // delegate all other functions to current implementation\n        (bool success, ) = implementation.delegatecall(msg.data);\n\n        assembly {\n            let free_mem_ptr := mload(0x40)\n            returndatacopy(free_mem_ptr, 0, returndatasize)\n\n            switch success\n            case 0 {\n                revert(free_mem_ptr, returndatasize)\n            }\n            default {\n                return(free_mem_ptr, returndatasize)\n            }\n        }\n    }\n}\n"},"contracts/legacy/GovernorBravoDelegateV1.sol":{"content":"pragma solidity ^0.5.16;\npragma experimental ABIEncoderV2;\n\nimport \"./GovernorBravoInterfaces.sol\";\n\n/**\n * @title GovernorBravoDelegateV1\n * @dev This contract is the first deployed implementation GovernorBravo.\n * It is included here for testing purposes because it has a different signature for the ProposalCreated event and Proposal struct\n */\ncontract GovernorBravoDelegateV1 is GovernorBravoDelegateStorageV1, GovernorBravoEventsV1 {\n    /// @notice The name of this contract\n    string public constant name = \"Venus Governor Bravo\";\n\n    /// @notice The minimum setable proposal threshold\n    uint public constant MIN_PROPOSAL_THRESHOLD = 150000e18; // 150,000 Xvs\n\n    /// @notice The maximum setable proposal threshold\n    uint public constant MAX_PROPOSAL_THRESHOLD = 300000e18; //300,000 Xvs\n\n    /// @notice The minimum setable voting period\n    uint public constant MIN_VOTING_PERIOD = 20 * 60 * 3; // About 3 hours, 3 secs per block\n\n    /// @notice The max setable voting period\n    uint public constant MAX_VOTING_PERIOD = 20 * 60 * 24 * 14; // About 2 weeks, 3 secs per block\n\n    /// @notice The min setable voting delay\n    uint public constant MIN_VOTING_DELAY = 1;\n\n    /// @notice The max setable voting delay\n    uint public constant MAX_VOTING_DELAY = 20 * 60 * 24 * 7; // About 1 week, 3 secs per block\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    uint public constant quorumVotes = 600000e18; // 600,000 = 2% of Xvs\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,uint8 support)\");\n\n    /**\n     * @notice Used to initialize the contract during delegator contructor\n     * @param timelock_ The address of the Timelock\n     * @param xvsVault_ The address of the XvsVault\n     * @param votingPeriod_ The initial voting period\n     * @param votingDelay_ The initial voting delay\n     * @param proposalThreshold_ The initial proposal threshold\n     */\n    function initialize(\n        address timelock_,\n        address xvsVault_,\n        uint votingPeriod_,\n        uint votingDelay_,\n        uint proposalThreshold_,\n        address guardian_\n    ) public {\n        require(address(timelock) == address(0), \"GovernorBravo::initialize: can only initialize once\");\n        require(msg.sender == admin, \"GovernorBravo::initialize: admin only\");\n        require(timelock_ != address(0), \"GovernorBravo::initialize: invalid timelock address\");\n        require(xvsVault_ != address(0), \"GovernorBravo::initialize: invalid xvs address\");\n        require(\n            votingPeriod_ >= MIN_VOTING_PERIOD && votingPeriod_ <= MAX_VOTING_PERIOD,\n            \"GovernorBravo::initialize: invalid voting period\"\n        );\n        require(\n            votingDelay_ >= MIN_VOTING_DELAY && votingDelay_ <= MAX_VOTING_DELAY,\n            \"GovernorBravo::initialize: invalid voting delay\"\n        );\n        require(\n            proposalThreshold_ >= MIN_PROPOSAL_THRESHOLD && proposalThreshold_ <= MAX_PROPOSAL_THRESHOLD,\n            \"GovernorBravo::initialize: invalid proposal threshold\"\n        );\n        require(guardian_ != address(0), \"GovernorBravo::initialize: invalid guardian\");\n\n        timelock = TimelockInterface(timelock_);\n        xvsVault = XvsVaultInterface(xvsVault_);\n        votingPeriod = votingPeriod_;\n        votingDelay = votingDelay_;\n        proposalThreshold = proposalThreshold_;\n        proposalMaxOperations = 10;\n        guardian = guardian_;\n    }\n\n    /**\n     * @notice Function used to propose a new proposal. Sender must have delegates above the proposal threshold\n     * @param targets Target addresses for proposal calls\n     * @param values Eth values for proposal calls\n     * @param signatures Function signatures for proposal calls\n     * @param calldatas Calldatas for proposal calls\n     * @param description String description of the proposal\n     * @return Proposal id of new proposal\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        // Reject proposals before initiating as Governor\n        require(initialProposalId != 0, \"GovernorBravo::propose: Governor Bravo not active\");\n        require(\n            xvsVault.getPriorVotes(msg.sender, sub256(block.number, 1)) > proposalThreshold,\n            \"GovernorBravo::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            \"GovernorBravo::propose: proposal function information arity mismatch\"\n        );\n        require(targets.length != 0, \"GovernorBravo::propose: must provide actions\");\n        require(targets.length <= proposalMaxOperations, \"GovernorBravo::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                \"GovernorBravo::propose: one live proposal per proposer, found an already active proposal\"\n            );\n            require(\n                proposersLatestProposalState != ProposalState.Pending,\n                \"GovernorBravo::propose: one live proposal per proposer, 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            abstainVotes: 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    /**\n     * @notice Queues a proposal of state succeeded\n     * @param proposalId The id of the proposal to queue\n     */\n    function queue(uint proposalId) external {\n        require(\n            state(proposalId) == ProposalState.Succeeded,\n            \"GovernorBravo::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            queueOrRevertInternal(\n                proposal.targets[i],\n                proposal.values[i],\n                proposal.signatures[i],\n                proposal.calldatas[i],\n                eta\n            );\n        }\n        proposal.eta = eta;\n        emit ProposalQueued(proposalId, eta);\n    }\n\n    function queueOrRevertInternal(\n        address target,\n        uint value,\n        string memory signature,\n        bytes memory data,\n        uint eta\n    ) internal {\n        require(\n            !timelock.queuedTransactions(keccak256(abi.encode(target, value, signature, data, eta))),\n            \"GovernorBravo::queueOrRevertInternal: identical proposal action already queued at eta\"\n        );\n        timelock.queueTransaction(target, value, signature, data, eta);\n    }\n\n    /**\n     * @notice Executes a queued proposal if eta has passed\n     * @param proposalId The id of the proposal to execute\n     */\n    function execute(uint proposalId) external {\n        require(\n            state(proposalId) == ProposalState.Queued,\n            \"GovernorBravo::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(\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    /**\n     * @notice Cancels a proposal only if sender is the proposer, or proposer delegates dropped below proposal threshold\n     * @param proposalId The id of the proposal to cancel\n     */\n    function cancel(uint proposalId) external {\n        require(state(proposalId) != ProposalState.Executed, \"GovernorBravo::cancel: cannot cancel executed proposal\");\n\n        Proposal storage proposal = proposals[proposalId];\n        require(\n            msg.sender == guardian ||\n                msg.sender == proposal.proposer ||\n                xvsVault.getPriorVotes(proposal.proposer, sub256(block.number, 1)) < proposalThreshold,\n            \"GovernorBravo::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    /**\n     * @notice Gets actions of a proposal\n     * @param proposalId the id of the proposal\n     * @return targets, values, signatures, and calldatas of the proposal actions\n     */\n    function getActions(\n        uint proposalId\n    )\n        external\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    /**\n     * @notice Gets the receipt for a voter on a given proposal\n     * @param proposalId the id of proposal\n     * @param voter The address of the voter\n     * @return The voting receipt\n     */\n    function getReceipt(uint proposalId, address voter) external view returns (Receipt memory) {\n        return proposals[proposalId].receipts[voter];\n    }\n\n    /**\n     * @notice Gets the state of a proposal\n     * @param proposalId The id of the proposal\n     * @return Proposal state\n     */\n    function state(uint proposalId) public view returns (ProposalState) {\n        require(\n            proposalCount >= proposalId && proposalId > initialProposalId,\n            \"GovernorBravo::state: invalid proposal id\"\n        );\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    /**\n     * @notice Cast a vote for a proposal\n     * @param proposalId The id of the proposal to vote on\n     * @param support The support value for the vote. 0=against, 1=for, 2=abstain\n     */\n    function castVote(uint proposalId, uint8 support) external {\n        emit VoteCast(msg.sender, proposalId, support, castVoteInternal(msg.sender, proposalId, support), \"\");\n    }\n\n    /**\n     * @notice Cast a vote for a proposal with a reason\n     * @param proposalId The id of the proposal to vote on\n     * @param support The support value for the vote. 0=against, 1=for, 2=abstain\n     * @param reason The reason given for the vote by the voter\n     */\n    function castVoteWithReason(uint proposalId, uint8 support, string calldata reason) external {\n        emit VoteCast(msg.sender, proposalId, support, castVoteInternal(msg.sender, proposalId, support), reason);\n    }\n\n    /**\n     * @notice Cast a vote for a proposal by signature\n     * @dev External function that accepts EIP-712 signatures for voting on proposals.\n     */\n    function castVoteBySig(uint proposalId, uint8 support, uint8 v, bytes32 r, bytes32 s) external {\n        bytes32 domainSeparator = keccak256(\n            abi.encode(DOMAIN_TYPEHASH, keccak256(bytes(name)), getChainIdInternal(), 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), \"GovernorBravo::castVoteBySig: invalid signature\");\n        emit VoteCast(signatory, proposalId, support, castVoteInternal(signatory, proposalId, support), \"\");\n    }\n\n    /**\n     * @notice Internal function that caries out voting logic\n     * @param voter The voter that is casting their vote\n     * @param proposalId The id of the proposal to vote on\n     * @param support The support value for the vote. 0=against, 1=for, 2=abstain\n     * @return The number of votes cast\n     */\n    function castVoteInternal(address voter, uint proposalId, uint8 support) internal returns (uint96) {\n        require(state(proposalId) == ProposalState.Active, \"GovernorBravo::castVoteInternal: voting is closed\");\n        require(support <= 2, \"GovernorBravo::castVoteInternal: invalid vote type\");\n        Proposal storage proposal = proposals[proposalId];\n        Receipt storage receipt = proposal.receipts[voter];\n        require(receipt.hasVoted == false, \"GovernorBravo::castVoteInternal: voter already voted\");\n        uint96 votes = xvsVault.getPriorVotes(voter, proposal.startBlock);\n\n        if (support == 0) {\n            proposal.againstVotes = add256(proposal.againstVotes, votes);\n        } else if (support == 1) {\n            proposal.forVotes = add256(proposal.forVotes, votes);\n        } else if (support == 2) {\n            proposal.abstainVotes = add256(proposal.abstainVotes, votes);\n        }\n\n        receipt.hasVoted = true;\n        receipt.support = support;\n        receipt.votes = votes;\n\n        return votes;\n    }\n\n    /**\n     * @notice Sets the new governance guardian\n     * @param newGuardian the address of the new guardian\n     */\n    function _setGuardian(address newGuardian) external {\n        require(msg.sender == guardian || msg.sender == admin, \"GovernorBravo::_setGuardian: admin or guardian only\");\n        require(newGuardian != address(0), \"GovernorBravo::_setGuardian: cannot live without a guardian\");\n        address oldGuardian = guardian;\n        guardian = newGuardian;\n\n        emit NewGuardian(oldGuardian, newGuardian);\n    }\n\n    /**\n     * @notice Admin function for setting the voting delay\n     * @param newVotingDelay new voting delay, in blocks\n     */\n    function _setVotingDelay(uint newVotingDelay) external {\n        require(msg.sender == admin, \"GovernorBravo::_setVotingDelay: admin only\");\n        require(\n            newVotingDelay >= MIN_VOTING_DELAY && newVotingDelay <= MAX_VOTING_DELAY,\n            \"GovernorBravo::_setVotingDelay: invalid voting delay\"\n        );\n        uint oldVotingDelay = votingDelay;\n        votingDelay = newVotingDelay;\n\n        emit VotingDelaySet(oldVotingDelay, votingDelay);\n    }\n\n    /**\n     * @notice Admin function for setting the voting period\n     * @param newVotingPeriod new voting period, in blocks\n     */\n    function _setVotingPeriod(uint newVotingPeriod) external {\n        require(msg.sender == admin, \"GovernorBravo::_setVotingPeriod: admin only\");\n        require(\n            newVotingPeriod >= MIN_VOTING_PERIOD && newVotingPeriod <= MAX_VOTING_PERIOD,\n            \"GovernorBravo::_setVotingPeriod: invalid voting period\"\n        );\n        uint oldVotingPeriod = votingPeriod;\n        votingPeriod = newVotingPeriod;\n\n        emit VotingPeriodSet(oldVotingPeriod, votingPeriod);\n    }\n\n    /**\n     * @notice Admin function for setting the proposal threshold\n     * @dev newProposalThreshold must be greater than the hardcoded min\n     * @param newProposalThreshold new proposal threshold\n     */\n    function _setProposalThreshold(uint newProposalThreshold) external {\n        require(msg.sender == admin, \"GovernorBravo::_setProposalThreshold: admin only\");\n        require(\n            newProposalThreshold >= MIN_PROPOSAL_THRESHOLD && newProposalThreshold <= MAX_PROPOSAL_THRESHOLD,\n            \"GovernorBravo::_setProposalThreshold: invalid proposal threshold\"\n        );\n        uint oldProposalThreshold = proposalThreshold;\n        proposalThreshold = newProposalThreshold;\n\n        emit ProposalThresholdSet(oldProposalThreshold, proposalThreshold);\n    }\n\n    /**\n     * @notice Initiate the GovernorBravo contract\n     * @dev Admin only. Sets initial proposal id which initiates the contract, ensuring a continuous proposal id count\n     * @param governorAlpha The address for the Governor to continue the proposal id count from\n     */\n    function _initiate(address governorAlpha) external {\n        require(msg.sender == admin, \"GovernorBravo::_initiate: admin only\");\n        require(initialProposalId == 0, \"GovernorBravo::_initiate: can only initiate once\");\n        proposalCount = GovernorAlphaInterface(governorAlpha).proposalCount();\n        initialProposalId = proposalCount;\n        timelock.acceptAdmin();\n    }\n\n    /**\n     * @notice Set max proposal operations\n     * @dev Admin only.\n     * @param proposalMaxOperations_ Max proposal operations\n     */\n    function _setProposalMaxOperations(uint proposalMaxOperations_) external {\n        require(msg.sender == admin, \"GovernorBravo::_setProposalMaxOperations: admin only\");\n        uint oldProposalMaxOperations = proposalMaxOperations;\n        proposalMaxOperations = proposalMaxOperations_;\n\n        emit ProposalMaxOperationsUpdated(oldProposalMaxOperations, proposalMaxOperations_);\n    }\n\n    /**\n     * @notice Begins transfer of admin rights. The newPendingAdmin must call `_acceptAdmin` to finalize the transfer.\n     * @dev Admin function to begin change of admin. The newPendingAdmin must call `_acceptAdmin` to finalize the transfer.\n     * @param newPendingAdmin New pending admin.\n     */\n    function _setPendingAdmin(address newPendingAdmin) external {\n        // Check caller = admin\n        require(msg.sender == admin, \"GovernorBravo:_setPendingAdmin: admin only\");\n\n        // Save current value, if any, for inclusion in log\n        address oldPendingAdmin = pendingAdmin;\n\n        // Store pendingAdmin with value newPendingAdmin\n        pendingAdmin = newPendingAdmin;\n\n        // Emit NewPendingAdmin(oldPendingAdmin, newPendingAdmin)\n        emit NewPendingAdmin(oldPendingAdmin, newPendingAdmin);\n    }\n\n    /**\n     * @notice Accepts transfer of admin rights. msg.sender must be pendingAdmin\n     * @dev Admin function for pending admin to accept role and update admin\n     */\n    function _acceptAdmin() external {\n        // Check caller is pendingAdmin and pendingAdmin ≠ address(0)\n        require(\n            msg.sender == pendingAdmin && msg.sender != address(0),\n            \"GovernorBravo:_acceptAdmin: pending admin only\"\n        );\n\n        // Save current values for inclusion in log\n        address oldAdmin = admin;\n        address oldPendingAdmin = pendingAdmin;\n\n        // Store admin with value pendingAdmin\n        admin = pendingAdmin;\n\n        // Clear the pending value\n        pendingAdmin = address(0);\n\n        emit NewAdmin(oldAdmin, admin);\n        emit NewPendingAdmin(oldPendingAdmin, pendingAdmin);\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 getChainIdInternal() internal pure returns (uint) {\n        uint chainId;\n        assembly {\n            chainId := chainid()\n        }\n        return chainId;\n    }\n}\n"},"contracts/legacy/GovernorBravoDelegateV2.sol":{"content":"pragma solidity ^0.5.16;\npragma experimental ABIEncoderV2;\n\nimport \"./GovernorBravoInterfacesV2.sol\";\n\n/**\n * @title GovernorBravoDelegateV2\n * @dev This contract is the second deployed implementation GovernorBravo.\n * It is included here for testing purposes because it is not completely compatible with new block rate of BSC.\n */\ncontract GovernorBravoDelegateV2 is GovernorBravoDelegateStorageV2, GovernorBravoEventsV2 {\n    /// @notice The name of this contract\n    string public constant name = \"Venus Governor Bravo\";\n\n    /// @notice The minimum setable proposal threshold\n    uint public constant MIN_PROPOSAL_THRESHOLD = 150000e18; // 150,000 Xvs\n\n    /// @notice The maximum setable proposal threshold\n    uint public constant MAX_PROPOSAL_THRESHOLD = 300000e18; //300,000 Xvs\n\n    /// @notice The minimum setable voting period\n    uint public constant MIN_VOTING_PERIOD = 20 * 60 * 3; // About 3 hours, 3 secs per block\n\n    /// @notice The max setable voting period\n    uint public constant MAX_VOTING_PERIOD = 20 * 60 * 24 * 14; // About 2 weeks, 3 secs per block\n\n    /// @notice The min setable voting delay\n    uint public constant MIN_VOTING_DELAY = 1;\n\n    /// @notice The max setable voting delay\n    uint public constant MAX_VOTING_DELAY = 20 * 60 * 24 * 7; // About 1 week, 3 secs per block\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    uint public constant quorumVotes = 600000e18; // 600,000 = 2% of Xvs\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,uint8 support)\");\n\n    /**\n     * @notice Used to initialize the contract during delegator contructor\n     * @param xvsVault_ The address of the XvsVault\n     * @param proposalConfigs_ Governance configs for each governance route\n     * @param timelocks Timelock addresses for each governance route\n     */\n    function initialize(\n        address xvsVault_,\n        ProposalConfig[] memory proposalConfigs_,\n        TimelockInterface[] memory timelocks,\n        address guardian_\n    ) public {\n        require(address(proposalTimelocks[0]) == address(0), \"GovernorBravo::initialize: cannot initialize twice\");\n        require(msg.sender == admin, \"GovernorBravo::initialize: admin only\");\n        require(xvsVault_ != address(0), \"GovernorBravo::initialize: invalid xvs address\");\n        require(guardian_ != address(0), \"GovernorBravo::initialize: invalid guardian\");\n        require(\n            timelocks.length == uint8(ProposalType.CRITICAL) + 1,\n            \"GovernorBravo::initialize:number of timelocks should match number of governance routes\"\n        );\n        require(\n            proposalConfigs_.length == uint8(ProposalType.CRITICAL) + 1,\n            \"GovernorBravo::initialize:number of proposal configs should match number of governance routes\"\n        );\n\n        xvsVault = XvsVaultInterface(xvsVault_);\n        proposalMaxOperations = 10;\n        guardian = guardian_;\n\n        //Set parameters for each Governance Route\n        uint256 arrLength = proposalConfigs_.length;\n        for (uint256 i; i < arrLength; ++i) {\n            require(\n                proposalConfigs_[i].votingPeriod >= MIN_VOTING_PERIOD,\n                \"GovernorBravo::initialize: invalid min voting period\"\n            );\n            require(\n                proposalConfigs_[i].votingPeriod <= MAX_VOTING_PERIOD,\n                \"GovernorBravo::initialize: invalid max voting period\"\n            );\n            require(\n                proposalConfigs_[i].votingDelay >= MIN_VOTING_DELAY,\n                \"GovernorBravo::initialize: invalid min voting delay\"\n            );\n            require(\n                proposalConfigs_[i].votingDelay <= MAX_VOTING_DELAY,\n                \"GovernorBravo::initialize: invalid max voting delay\"\n            );\n            require(\n                proposalConfigs_[i].proposalThreshold >= MIN_PROPOSAL_THRESHOLD,\n                \"GovernorBravo::initialize: invalid min proposal threshold\"\n            );\n            require(\n                proposalConfigs_[i].proposalThreshold <= MAX_PROPOSAL_THRESHOLD,\n                \"GovernorBravo::initialize: invalid max proposal threshold\"\n            );\n            require(address(timelocks[i]) != address(0), \"GovernorBravo::initialize:invalid timelock address\");\n\n            proposalConfigs[i] = proposalConfigs_[i];\n            proposalTimelocks[i] = timelocks[i];\n        }\n    }\n\n    /**\n     * @notice Function used to propose a new proposal. Sender must have delegates above the proposal threshold.\n     * targets, values, signatures, and calldatas must be of equal length\n     * @dev NOTE: Proposals with duplicate set of actions can not be queued for execution. If the proposals consists\n     *  of duplicate actions, it's recommended to split those actions into separate proposals\n     * @param targets Target addresses for proposal calls\n     * @param values BNB values for proposal calls\n     * @param signatures Function signatures for proposal calls\n     * @param calldatas Calldatas for proposal calls\n     * @param description String description of the proposal\n     * @param proposalType the type of the proposal (e.g NORMAL, FASTTRACK, CRITICAL)\n     * @return Proposal id of new proposal\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        ProposalType proposalType\n    ) public returns (uint) {\n        // Reject proposals before initiating as Governor\n        require(initialProposalId != 0, \"GovernorBravo::propose: Governor Bravo not active\");\n        require(\n            xvsVault.getPriorVotes(msg.sender, sub256(block.number, 1)) >=\n                proposalConfigs[uint8(proposalType)].proposalThreshold,\n            \"GovernorBravo::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            \"GovernorBravo::propose: proposal function information arity mismatch\"\n        );\n        require(targets.length != 0, \"GovernorBravo::propose: must provide actions\");\n        require(targets.length <= proposalMaxOperations, \"GovernorBravo::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                \"GovernorBravo::propose: one live proposal per proposer, found an already active proposal\"\n            );\n            require(\n                proposersLatestProposalState != ProposalState.Pending,\n                \"GovernorBravo::propose: one live proposal per proposer, found an already pending proposal\"\n            );\n        }\n\n        uint startBlock = add256(block.number, proposalConfigs[uint8(proposalType)].votingDelay);\n        uint endBlock = add256(startBlock, proposalConfigs[uint8(proposalType)].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            abstainVotes: 0,\n            canceled: false,\n            executed: false,\n            proposalType: uint8(proposalType)\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            uint8(proposalType)\n        );\n        return newProposal.id;\n    }\n\n    /**\n     * @notice Queues a proposal of state succeeded\n     * @param proposalId The id of the proposal to queue\n     */\n    function queue(uint proposalId) external {\n        require(\n            state(proposalId) == ProposalState.Succeeded,\n            \"GovernorBravo::queue: proposal can only be queued if it is succeeded\"\n        );\n        Proposal storage proposal = proposals[proposalId];\n        uint eta = add256(block.timestamp, proposalTimelocks[uint8(proposal.proposalType)].delay());\n        for (uint i; i < proposal.targets.length; ++i) {\n            queueOrRevertInternal(\n                proposal.targets[i],\n                proposal.values[i],\n                proposal.signatures[i],\n                proposal.calldatas[i],\n                eta,\n                uint8(proposal.proposalType)\n            );\n        }\n        proposal.eta = eta;\n        emit ProposalQueued(proposalId, eta);\n    }\n\n    function queueOrRevertInternal(\n        address target,\n        uint value,\n        string memory signature,\n        bytes memory data,\n        uint eta,\n        uint8 proposalType\n    ) internal {\n        require(\n            !proposalTimelocks[proposalType].queuedTransactions(\n                keccak256(abi.encode(target, value, signature, data, eta))\n            ),\n            \"GovernorBravo::queueOrRevertInternal: identical proposal action already queued at eta\"\n        );\n        proposalTimelocks[proposalType].queueTransaction(target, value, signature, data, eta);\n    }\n\n    /**\n     * @notice Executes a queued proposal if eta has passed\n     * @param proposalId The id of the proposal to execute\n     */\n    function execute(uint proposalId) external {\n        require(\n            state(proposalId) == ProposalState.Queued,\n            \"GovernorBravo::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; i < proposal.targets.length; ++i) {\n            proposalTimelocks[uint8(proposal.proposalType)].executeTransaction(\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    /**\n     * @notice Cancels a proposal only if sender is the proposer, or proposer delegates dropped below proposal threshold\n     * @param proposalId The id of the proposal to cancel\n     */\n    function cancel(uint proposalId) external {\n        require(state(proposalId) != ProposalState.Executed, \"GovernorBravo::cancel: cannot cancel executed proposal\");\n\n        Proposal storage proposal = proposals[proposalId];\n        require(\n            msg.sender == guardian ||\n                msg.sender == proposal.proposer ||\n                xvsVault.getPriorVotes(proposal.proposer, sub256(block.number, 1)) <\n                proposalConfigs[proposal.proposalType].proposalThreshold,\n            \"GovernorBravo::cancel: proposer above threshold\"\n        );\n\n        proposal.canceled = true;\n        for (uint i = 0; i < proposal.targets.length; i++) {\n            proposalTimelocks[proposal.proposalType].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    /**\n     * @notice Gets actions of a proposal\n     * @param proposalId the id of the proposal\n     * @return targets, values, signatures, and calldatas of the proposal actions\n     */\n    function getActions(\n        uint proposalId\n    )\n        external\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    /**\n     * @notice Gets the receipt for a voter on a given proposal\n     * @param proposalId the id of proposal\n     * @param voter The address of the voter\n     * @return The voting receipt\n     */\n    function getReceipt(uint proposalId, address voter) external view returns (Receipt memory) {\n        return proposals[proposalId].receipts[voter];\n    }\n\n    /**\n     * @notice Gets the state of a proposal\n     * @param proposalId The id of the proposal\n     * @return Proposal state\n     */\n    function state(uint proposalId) public view returns (ProposalState) {\n        require(\n            proposalCount >= proposalId && proposalId > initialProposalId,\n            \"GovernorBravo::state: invalid proposal id\"\n        );\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 (\n            block.timestamp >= add256(proposal.eta, proposalTimelocks[uint8(proposal.proposalType)].GRACE_PERIOD())\n        ) {\n            return ProposalState.Expired;\n        } else {\n            return ProposalState.Queued;\n        }\n    }\n\n    /**\n     * @notice Cast a vote for a proposal\n     * @param proposalId The id of the proposal to vote on\n     * @param support The support value for the vote. 0=against, 1=for, 2=abstain\n     */\n    function castVote(uint proposalId, uint8 support) external {\n        emit VoteCast(msg.sender, proposalId, support, castVoteInternal(msg.sender, proposalId, support), \"\");\n    }\n\n    /**\n     * @notice Cast a vote for a proposal with a reason\n     * @param proposalId The id of the proposal to vote on\n     * @param support The support value for the vote. 0=against, 1=for, 2=abstain\n     * @param reason The reason given for the vote by the voter\n     */\n    function castVoteWithReason(uint proposalId, uint8 support, string calldata reason) external {\n        emit VoteCast(msg.sender, proposalId, support, castVoteInternal(msg.sender, proposalId, support), reason);\n    }\n\n    /**\n     * @notice Cast a vote for a proposal by signature\n     * @dev External function that accepts EIP-712 signatures for voting on proposals.\n     * @param proposalId The id of the proposal to vote on\n     * @param support The support value for the vote. 0=against, 1=for, 2=abstain\n     * @param v recovery id of ECDSA signature\n     * @param r part of the ECDSA sig output\n     * @param s part of the ECDSA sig output\n     */\n    function castVoteBySig(uint proposalId, uint8 support, uint8 v, bytes32 r, bytes32 s) external {\n        bytes32 domainSeparator = keccak256(\n            abi.encode(DOMAIN_TYPEHASH, keccak256(bytes(name)), getChainIdInternal(), 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), \"GovernorBravo::castVoteBySig: invalid signature\");\n        emit VoteCast(signatory, proposalId, support, castVoteInternal(signatory, proposalId, support), \"\");\n    }\n\n    /**\n     * @notice Internal function that caries out voting logic\n     * @param voter The voter that is casting their vote\n     * @param proposalId The id of the proposal to vote on\n     * @param support The support value for the vote. 0=against, 1=for, 2=abstain\n     * @return The number of votes cast\n     */\n    function castVoteInternal(address voter, uint proposalId, uint8 support) internal returns (uint96) {\n        require(state(proposalId) == ProposalState.Active, \"GovernorBravo::castVoteInternal: voting is closed\");\n        require(support <= 2, \"GovernorBravo::castVoteInternal: invalid vote type\");\n        Proposal storage proposal = proposals[proposalId];\n        Receipt storage receipt = proposal.receipts[voter];\n        require(receipt.hasVoted == false, \"GovernorBravo::castVoteInternal: voter already voted\");\n        uint96 votes = xvsVault.getPriorVotes(voter, proposal.startBlock);\n\n        if (support == 0) {\n            proposal.againstVotes = add256(proposal.againstVotes, votes);\n        } else if (support == 1) {\n            proposal.forVotes = add256(proposal.forVotes, votes);\n        } else if (support == 2) {\n            proposal.abstainVotes = add256(proposal.abstainVotes, votes);\n        }\n\n        receipt.hasVoted = true;\n        receipt.support = support;\n        receipt.votes = votes;\n\n        return votes;\n    }\n\n    /**\n     * @notice Sets the new governance guardian\n     * @param newGuardian the address of the new guardian\n     */\n    function _setGuardian(address newGuardian) external {\n        require(msg.sender == guardian || msg.sender == admin, \"GovernorBravo::_setGuardian: admin or guardian only\");\n        require(newGuardian != address(0), \"GovernorBravo::_setGuardian: cannot live without a guardian\");\n        address oldGuardian = guardian;\n        guardian = newGuardian;\n\n        emit NewGuardian(oldGuardian, newGuardian);\n    }\n\n    /**\n     * @notice Initiate the GovernorBravo contract\n     * @dev Admin only. Sets initial proposal id which initiates the contract, ensuring a continuous proposal id count\n     * @param governorAlpha The address for the Governor to continue the proposal id count from\n     */\n    function _initiate(address governorAlpha) external {\n        require(msg.sender == admin, \"GovernorBravo::_initiate: admin only\");\n        require(initialProposalId == 0, \"GovernorBravo::_initiate: can only initiate once\");\n        proposalCount = GovernorAlphaInterface(governorAlpha).proposalCount();\n        initialProposalId = proposalCount;\n        for (uint256 i; i < uint8(ProposalType.CRITICAL) + 1; ++i) {\n            proposalTimelocks[i].acceptAdmin();\n        }\n    }\n\n    /**\n     * @notice Set max proposal operations\n     * @dev Admin only.\n     * @param proposalMaxOperations_ Max proposal operations\n     */\n    function _setProposalMaxOperations(uint proposalMaxOperations_) external {\n        require(msg.sender == admin, \"GovernorBravo::_setProposalMaxOperations: admin only\");\n        uint oldProposalMaxOperations = proposalMaxOperations;\n        proposalMaxOperations = proposalMaxOperations_;\n\n        emit ProposalMaxOperationsUpdated(oldProposalMaxOperations, proposalMaxOperations_);\n    }\n\n    /**\n     * @notice Begins transfer of admin rights. The newPendingAdmin must call `_acceptAdmin` to finalize the transfer.\n     * @dev Admin function to begin change of admin. The newPendingAdmin must call `_acceptAdmin` to finalize the transfer.\n     * @param newPendingAdmin New pending admin.\n     */\n    function _setPendingAdmin(address newPendingAdmin) external {\n        // Check caller = admin\n        require(msg.sender == admin, \"GovernorBravo:_setPendingAdmin: admin only\");\n\n        // Save current value, if any, for inclusion in log\n        address oldPendingAdmin = pendingAdmin;\n\n        // Store pendingAdmin with value newPendingAdmin\n        pendingAdmin = newPendingAdmin;\n\n        // Emit NewPendingAdmin(oldPendingAdmin, newPendingAdmin)\n        emit NewPendingAdmin(oldPendingAdmin, newPendingAdmin);\n    }\n\n    /**\n     * @notice Accepts transfer of admin rights. msg.sender must be pendingAdmin\n     * @dev Admin function for pending admin to accept role and update admin\n     */\n    function _acceptAdmin() external {\n        // Check caller is pendingAdmin and pendingAdmin ≠ address(0)\n        require(\n            msg.sender == pendingAdmin && msg.sender != address(0),\n            \"GovernorBravo:_acceptAdmin: pending admin only\"\n        );\n\n        // Save current values for inclusion in log\n        address oldAdmin = admin;\n        address oldPendingAdmin = pendingAdmin;\n\n        // Store admin with value pendingAdmin\n        admin = pendingAdmin;\n\n        // Clear the pending value\n        pendingAdmin = address(0);\n\n        emit NewAdmin(oldAdmin, admin);\n        emit NewPendingAdmin(oldPendingAdmin, pendingAdmin);\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 getChainIdInternal() internal pure returns (uint) {\n        uint chainId;\n        assembly {\n            chainId := chainid()\n        }\n        return chainId;\n    }\n}\n"},"contracts/legacy/GovernorBravoInterfaces.sol":{"content":"pragma solidity ^0.5.16;\npragma experimental ABIEncoderV2;\n\nimport { XvsVaultInterface, TimelockInterface, GovernorAlphaInterface } from \"../Governance/GovernorBravoInterfaces.sol\";\n\n/**\n * @title GovernorBravoEvents\n * @author Venus\n * @notice Set of events emitted by the first GovernorBravo implementation contract.\n * @dev This contract is included for archival and testing purposes as the ProposalCreated event has a different signature than the latest implementation.\n */\ncontract GovernorBravoEventsV1 {\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    /// @param voter The address which casted a vote\n    /// @param proposalId The proposal id which was voted on\n    /// @param support Support value for the vote. 0=against, 1=for, 2=abstain\n    /// @param votes Number of votes which were cast by the voter\n    /// @param reason The reason given for the vote by the voter\n    event VoteCast(address indexed voter, uint proposalId, uint8 support, uint votes, string reason);\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    /// @notice An event emitted when the voting delay is set\n    event VotingDelaySet(uint oldVotingDelay, uint newVotingDelay);\n\n    /// @notice An event emitted when the voting period is set\n    event VotingPeriodSet(uint oldVotingPeriod, uint newVotingPeriod);\n\n    /// @notice Emitted when implementation is changed\n    event NewImplementation(address oldImplementation, address newImplementation);\n\n    /// @notice Emitted when proposal threshold is set\n    event ProposalThresholdSet(uint oldProposalThreshold, uint newProposalThreshold);\n\n    /// @notice Emitted when pendingAdmin is changed\n    event NewPendingAdmin(address oldPendingAdmin, address newPendingAdmin);\n\n    /// @notice Emitted when pendingAdmin is accepted, which means admin is updated\n    event NewAdmin(address oldAdmin, address newAdmin);\n\n    /// @notice Emitted when the new guardian address is set\n    event NewGuardian(address oldGuardian, address newGuardian);\n\n    /// @notice Emitted when the maximum number of operations in one proposal is updated\n    event ProposalMaxOperationsUpdated(uint oldMaxOperations, uint newMaxOperations);\n}\n\n/**\n * @title GovernorBravoDelegatorStorage\n * @author Venus\n * @notice Storage layout of the `GovernorBravoDelegator` contract\n */\ncontract GovernorBravoDelegatorStorage {\n    /// @notice Administrator for this contract\n    address public admin;\n\n    /// @notice Pending administrator for this contract\n    address public pendingAdmin;\n\n    /// @notice Active brains of Governor\n    address public implementation;\n}\n\n/**\n * @title GovernorBravoDelegateStorageV1\n * @dev This contract is included for archival and testing purposes as the Proposal struct has a different shape than the latest implementation.\n */\ncontract GovernorBravoDelegateStorageV1 is GovernorBravoDelegatorStorage {\n    /// @notice DEPRECATED The delay before voting on a proposal may take place, once proposed, in blocks\n    uint public votingDelay;\n\n    /// @notice DEPRECATED The duration of voting on a proposal, in blocks\n    uint public votingPeriod;\n\n    /// @notice DEPRECATED The number of votes required in order for a voter to become a proposer\n    uint public proposalThreshold;\n\n    /// @notice Initial proposal id set at become\n    uint public initialProposalId;\n\n    /// @notice The total number of proposals\n    uint public proposalCount;\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    XvsVaultInterface public xvsVault;\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    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 Current number of votes for abstaining for this proposal\n        uint abstainVotes;\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 or abstains\n        uint8 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 maximum number of actions that can be included in a proposal\n    uint public proposalMaxOperations;\n\n    /// @notice A privileged role that can cancel any proposal\n    address public guardian;\n}\n"},"contracts/legacy/GovernorBravoInterfacesV2.sol":{"content":"pragma solidity ^0.5.16;\npragma experimental ABIEncoderV2;\n\nimport { XvsVaultInterface, TimelockInterface, GovernorAlphaInterface } from \"../Governance/GovernorBravoInterfaces.sol\";\n\n/**\n * @title GovernorBravoEvents\n * @author Venus\n * @notice Set of events emitted by the second GovernorBravo implementation contract.\n * @dev This contract is included for archival and testing purposes.\n */\ncontract GovernorBravoEventsV2 {\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        uint8 proposalType\n    );\n\n    /// @notice An event emitted when a vote has been cast on a proposal\n    /// @param voter The address which casted a vote\n    /// @param proposalId The proposal id which was voted on\n    /// @param support Support value for the vote. 0=against, 1=for, 2=abstain\n    /// @param votes Number of votes which were cast by the voter\n    /// @param reason The reason given for the vote by the voter\n    event VoteCast(address indexed voter, uint proposalId, uint8 support, uint votes, string reason);\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    /// @notice An event emitted when the voting delay is set\n    event VotingDelaySet(uint oldVotingDelay, uint newVotingDelay);\n\n    /// @notice An event emitted when the voting period is set\n    event VotingPeriodSet(uint oldVotingPeriod, uint newVotingPeriod);\n\n    /// @notice Emitted when implementation is changed\n    event NewImplementation(address oldImplementation, address newImplementation);\n\n    /// @notice Emitted when proposal threshold is set\n    event ProposalThresholdSet(uint oldProposalThreshold, uint newProposalThreshold);\n\n    /// @notice Emitted when pendingAdmin is changed\n    event NewPendingAdmin(address oldPendingAdmin, address newPendingAdmin);\n\n    /// @notice Emitted when pendingAdmin is accepted, which means admin is updated\n    event NewAdmin(address oldAdmin, address newAdmin);\n\n    /// @notice Emitted when the new guardian address is set\n    event NewGuardian(address oldGuardian, address newGuardian);\n\n    /// @notice Emitted when the maximum number of operations in one proposal is updated\n    event ProposalMaxOperationsUpdated(uint oldMaxOperations, uint newMaxOperations);\n}\n\n/**\n * @title GovernorBravoDelegatorStorage\n * @author Venus\n * @notice Storage layout of the `GovernorBravoDelegator` contract\n */\ncontract GovernorBravoDelegatorStorage {\n    /// @notice Administrator for this contract\n    address public admin;\n\n    /// @notice Pending administrator for this contract\n    address public pendingAdmin;\n\n    /// @notice Active brains of Governor\n    address public implementation;\n}\n\n/**\n * @title GovernorBravoDelegateStorageV1\n * @dev This contract is included for archival and testing purposes.\n */\ncontract GovernorBravoDelegateStorageV1 is GovernorBravoDelegatorStorage {\n    /// @notice DEPRECATED The delay before voting on a proposal may take place, once proposed, in blocks\n    uint public votingDelay;\n\n    /// @notice DEPRECATED The duration of voting on a proposal, in blocks\n    uint public votingPeriod;\n\n    /// @notice DEPRECATED The number of votes required in order for a voter to become a proposer\n    uint public proposalThreshold;\n\n    /// @notice Initial proposal id set at become\n    uint public initialProposalId;\n\n    /// @notice The total number of proposals\n    uint public proposalCount;\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    XvsVaultInterface public xvsVault;\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    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 Current number of votes for abstaining for this proposal\n        uint abstainVotes;\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        /// @notice The type of the proposal\n        uint8 proposalType;\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 or abstains\n        uint8 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 maximum number of actions that can be included in a proposal\n    uint public proposalMaxOperations;\n\n    /// @notice A privileged role that can cancel any proposal\n    address public guardian;\n}\n\n/**\n * @title GovernorBravoDelegateStorageV2\n * @dev For future upgrades, do not change GovernorBravoDelegateStorageV2. Create a new\n * contract which implements GovernorBravoDelegateStorageV2 and following the naming convention\n * GovernorBravoDelegateStorageVX.\n */\ncontract GovernorBravoDelegateStorageV2 is GovernorBravoDelegateStorageV1 {\n    enum ProposalType {\n        NORMAL,\n        FASTTRACK,\n        CRITICAL\n    }\n\n    struct ProposalConfig {\n        /// @notice The delay before voting on a proposal may take place, once proposed, in blocks\n        uint256 votingDelay;\n        /// @notice The duration of voting on a proposal, in blocks\n        uint256 votingPeriod;\n        /// @notice The number of votes required in order for a voter to become a proposer\n        uint256 proposalThreshold;\n    }\n\n    /// @notice mapping containing configuration for each proposal type\n    mapping(uint => ProposalConfig) public proposalConfigs;\n\n    /// @notice mapping containing Timelock addresses for each proposal type\n    mapping(uint => TimelockInterface) public proposalTimelocks;\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/Governance/GovernorBravoInterfaces.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/Governance/GovernorBravoInterfaces.sol","start":25},"type":"Warning"},{"component":"general","formattedMessage":"contracts/Governance/GovernorBravoDelegate.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/Governance/GovernorBravoDelegate.sol","start":25},"type":"Warning"},{"component":"general","formattedMessage":"contracts/Governance/GovernorBravoDelegator.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/Governance/GovernorBravoDelegator.sol","start":25},"type":"Warning"},{"component":"general","formattedMessage":"contracts/legacy/GovernorBravoInterfaces.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/GovernorBravoInterfaces.sol","start":25},"type":"Warning"},{"component":"general","formattedMessage":"contracts/legacy/GovenorBravoV1.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/GovenorBravoV1.sol","start":25},"type":"Warning"},{"component":"general","formattedMessage":"contracts/legacy/GovenorBravoV2.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/GovenorBravoV2.sol","start":25},"type":"Warning"},{"component":"general","formattedMessage":"contracts/legacy/GovernorBravoDelegateV1.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/GovernorBravoDelegateV1.sol","start":25},"type":"Warning"},{"component":"general","formattedMessage":"contracts/legacy/GovernorBravoInterfacesV2.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/GovernorBravoInterfacesV2.sol","start":25},"type":"Warning"},{"component":"general","formattedMessage":"contracts/legacy/GovernorBravoDelegateV2.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/GovernorBravoDelegateV2.sol","start":25},"type":"Warning"}],"sources":{"contracts/Governance/GovernorBravoDelegate.sol":{"ast":{"absolutePath":"contracts/Governance/GovernorBravoDelegate.sol","exportedSymbols":{"GovernorBravoDelegate":[1563]},"id":1564,"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"},{"absolutePath":"contracts/Governance/GovernorBravoInterfaces.sol","file":"./GovernorBravoInterfaces.sol","id":3,"nodeType":"ImportDirective","scope":1564,"sourceUnit":2024,"src":"60:39:0","symbolAliases":[],"unitAlias":""},{"baseContracts":[{"arguments":null,"baseName":{"contractScope":null,"id":4,"name":"GovernorBravoDelegateStorageV3","nodeType":"UserDefinedTypeName","referencedDeclaration":1943,"src":"4615:30:0","typeDescriptions":{"typeIdentifier":"t_contract$_GovernorBravoDelegateStorageV3_$1943","typeString":"contract GovernorBravoDelegateStorageV3"}},"id":5,"nodeType":"InheritanceSpecifier","src":"4615:30:0"},{"arguments":null,"baseName":{"contractScope":null,"id":6,"name":"GovernorBravoEvents","nodeType":"UserDefinedTypeName","referencedDeclaration":1816,"src":"4647:19:0","typeDescriptions":{"typeIdentifier":"t_contract$_GovernorBravoEvents_$1816","typeString":"contract GovernorBravoEvents"}},"id":7,"nodeType":"InheritanceSpecifier","src":"4647:19:0"}],"contractDependencies":[1816,1823,1907,1929,1943],"contractKind":"contract","documentation":"@title GovernorBravoDelegate\n@notice Venus Governance latest on chain governance includes several new features including variable proposal routes and fine grained pause control.\nVariable routes for proposals allows for governance paramaters such as voting threshold and timelocks to be customized based on the risk level and\nimpact of the proposal. Added granularity to the pause control mechanism allows governance to pause individual actions on specific markets,\nwhich reduces impact on the protocol as a whole. This is particularly useful when applied to isolated pools.\n * The goal of **Governance** is to increase governance efficiency, while mitigating and eliminating malicious or erroneous proposals.\n * ## Details\n * Governance has **3 main contracts**: **GovernanceBravoDelegate, XVSVault, XVS** token.\n * - XVS token is the protocol token used for protocol users to cast their vote on submitted proposals.\n- XVSVault is the main staking contract for XVS. Users first stake their XVS in the vault and receive voting power proportional to their staked\ntokens that they can use to vote on proposals. Users also can choose to delegate their voting power to other users.\n * # Governor Bravo\n * `GovernanceBravoDelegate` is main Venus Governance contract. Users interact with it to:\n- Submit new proposal\n- Vote on a proposal\n- Cancel a proposal\n- Queue a proposal for execution with a timelock executor contract.\n`GovernanceBravoDelegate` uses the XVSVault to get restrict certain actions based on a user's voting power. The governance rules it inforces are:\n- A user's voting power must be greater than the `proposalThreshold` to submit a proposal\n- If a user's voting power drops below certain amount, anyone can cancel the the proposal. The governance guardian and proposal creator can also\ncancel a proposal at anytime before it is queued for execution.\n * ## Venus Improvement Proposal\n * Venus Governance allows for Venus Improvement Proposals (VIPs) to be categorized based on their impact and risk levels. This allows for optimizing proposals\nexecution to allow for things such as expediting interest rate changes and quickly updating risk parameters, while moving slower on other types of proposals\nthat can prevent a larger risk to the protocol and are not urgent. There are three different types of VIPs with different proposal paramters:\n * - `NORMAL`\n- `FASTTRACK`\n- `CRITICAL`\n * When initializing the `GovernorBravo` contract, the parameters for the three routes are set. The parameters are:\n * - `votingDelay`: The delay in blocks between submitting a proposal and when voting begins\n- `votingPeriod`: The number of blocks where voting will be open\n- `proposalThreshold`: The number of votes required in order submit a proposal\n * There is also a separate timelock executor contract for each route, which is used to dispatch the VIP for execution, giving even more control over the\nflow of each type of VIP.\n * ## Voting\n * After a VIP is proposed, voting is opened after the `votingDelay` has passed. For example, if `votingDelay = 0`, then voting will begin in the next block\nafter the proposal has been submitted. After the delay, the proposal state is `ACTIVE` and users can cast their vote `for`, `against`, or `abstain`,\nweighted by their total voting power (tokens + delegated voting power). Abstaining from a voting allows for a vote to be cast and optionally include a\ncomment, without the incrementing for or against vote count. The total voting power for the user is obtained by calling XVSVault's `getPriorVotes`.\n * `GovernorBravoDelegate` also accepts [EIP-712](https://eips.ethereum.org/EIPS/eip-712) signatures for voting on proposals via the external function\n`castVoteBySig`.\n * ## Delegating\n * A users voting power includes the amount of staked XVS the have staked as well as the votes delegate to them. Delegating is the process of a user loaning\ntheir voting power to another, so that the latter has the combined voting power of both users. This is an important feature because it allows for a user\nto let another user who they trust propose or vote in their place.\n * The delegation of votes happens through the `XVSVault` contract by calling the `delegate` or `delegateBySig` functions. These same functions can revert\nvote delegation by calling the same function with a value of `0`.","fullyImplemented":true,"id":1563,"linearizedBaseContracts":[1563,1816,1943,1929,1907,1823],"name":"GovernorBravoDelegate","nodeType":"ContractDefinition","nodes":[{"constant":true,"id":10,"name":"name","nodeType":"VariableDeclaration","scope":1563,"src":"4715:52:0","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory","typeString":"string"},"typeName":{"id":8,"name":"string","nodeType":"ElementaryTypeName","src":"4715:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"argumentTypes":null,"hexValue":"56656e757320476f7665726e6f7220427261766f","id":9,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4745:22:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_157d76627a3b71c0167806f5879f7a61d3e301322f3a3b9f900315f15937671a","typeString":"literal_string \"Venus Governor Bravo\""},"value":"Venus Governor Bravo"},"visibility":"public"},{"constant":true,"id":13,"name":"MIN_PROPOSAL_THRESHOLD","nodeType":"VariableDeclaration","scope":1563,"src":"4829:55:0","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11,"name":"uint","nodeType":"ElementaryTypeName","src":"4829:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"argumentTypes":null,"hexValue":"313530303030653138","id":12,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4875:9:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_150000000000000000000000_by_1","typeString":"int_const 150000000000000000000000"},"value":"150000e18"},"visibility":"public"},{"constant":true,"id":16,"name":"MAX_PROPOSAL_THRESHOLD","nodeType":"VariableDeclaration","scope":1563,"src":"4961:55:0","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14,"name":"uint","nodeType":"ElementaryTypeName","src":"4961:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"argumentTypes":null,"hexValue":"333030303030653138","id":15,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5007:9:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_300000000000000000000000_by_1","typeString":"int_const 300000000000000000000000"},"value":"300000e18"},"visibility":"public"},{"constant":true,"id":19,"name":"quorumVotes","nodeType":"VariableDeclaration","scope":1563,"src":"5169:44:0","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17,"name":"uint","nodeType":"ElementaryTypeName","src":"5169:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"argumentTypes":null,"hexValue":"363030303030653138","id":18,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5204:9:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_600000000000000000000000_by_1","typeString":"int_const 600000000000000000000000"},"value":"600000e18"},"visibility":"public"},{"constant":true,"id":24,"name":"DOMAIN_TYPEHASH","nodeType":"VariableDeclaration","scope":1563,"src":"5306:130:0","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":20,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5306:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"454950373132446f6d61696e28737472696e67206e616d652c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429","id":22,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5366: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":21,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5546,"src":"5356:9:0","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":23,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5356:80:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"constant":true,"id":29,"name":"BALLOT_TYPEHASH","nodeType":"VariableDeclaration","scope":1563,"src":"5523:95:0","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":25,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5523:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"42616c6c6f742875696e743235362070726f706f73616c49642c75696e743820737570706f727429","id":27,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5575:42:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_150214d74d59b7d1e90c73fc22ef3d991dd0a76b046543d4d80ab92d2a50328f","typeString":"literal_string \"Ballot(uint256 proposalId,uint8 support)\""},"value":"Ballot(uint256 proposalId,uint8 support)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_150214d74d59b7d1e90c73fc22ef3d991dd0a76b046543d4d80ab92d2a50328f","typeString":"literal_string \"Ballot(uint256 proposalId,uint8 support)\""}],"id":26,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5546,"src":"5565:9:0","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":28,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5565:53:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"body":{"id":160,"nodeType":"Block","src":"6147:1306:0","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":53,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":46,"name":"proposalTimelocks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1928,"src":"6173:17:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_contract$_TimelockInterface_$2007_$","typeString":"mapping(uint256 => contract TimelockInterface)"}},"id":48,"indexExpression":{"argumentTypes":null,"hexValue":"30","id":47,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6191:1:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6173:20:0","typeDescriptions":{"typeIdentifier":"t_contract$_TimelockInterface_$2007","typeString":"contract TimelockInterface"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_TimelockInterface_$2007","typeString":"contract TimelockInterface"}],"id":45,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6165:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":49,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6165:29:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":51,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6206: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":50,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6198:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":52,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6198:10:0","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"6165:43:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"476f7665726e6f72427261766f3a3a696e697469616c697a653a2063616e6e6f7420696e697469616c697a65207477696365","id":54,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6210:52:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_6f25ac680854b8c781b119c16680227155e4449b9a60b6c60ebf94217e242a05","typeString":"literal_string \"GovernorBravo::initialize: cannot initialize twice\""},"value":"GovernorBravo::initialize: cannot initialize twice"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6f25ac680854b8c781b119c16680227155e4449b9a60b6c60ebf94217e242a05","typeString":"literal_string \"GovernorBravo::initialize: cannot initialize twice\""}],"id":44,"name":"require","nodeType":"Identifier","overloadedDeclarations":[5555,5556],"referencedDeclaration":5556,"src":"6157:7:0","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6157:106:0","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56,"nodeType":"ExpressionStatement","src":"6157:106:0"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":61,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":58,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5552,"src":"6281:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":59,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"6281:10:0","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"id":60,"name":"admin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1818,"src":"6295:5:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6281:19:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"476f7665726e6f72427261766f3a3a696e697469616c697a653a2061646d696e206f6e6c79","id":62,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6302:39:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_6e47288757825adad4754037a004a97a318622f53744b99fe46d86485d9a8b20","typeString":"literal_string \"GovernorBravo::initialize: admin only\""},"value":"GovernorBravo::initialize: admin only"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6e47288757825adad4754037a004a97a318622f53744b99fe46d86485d9a8b20","typeString":"literal_string \"GovernorBravo::initialize: admin only\""}],"id":57,"name":"require","nodeType":"Identifier","overloadedDeclarations":[5555,5556],"referencedDeclaration":5556,"src":"6273:7:0","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":63,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6273:69:0","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":64,"nodeType":"ExpressionStatement","src":"6273:69:0"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":70,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":66,"name":"xvsVault_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31,"src":"6360:9:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":68,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6381: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":67,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6373:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":69,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6373:10:0","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"6360:23:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"476f7665726e6f72427261766f3a3a696e697469616c697a653a20696e76616c696420787673207661756c742061646472657373","id":71,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6385:54:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_5ab034f1a77a9b76700fd7c58d31ab00d0df5756ff073b7bc6308cbb6e53ba63","typeString":"literal_string \"GovernorBravo::initialize: invalid xvs vault address\""},"value":"GovernorBravo::initialize: invalid xvs vault address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5ab034f1a77a9b76700fd7c58d31ab00d0df5756ff073b7bc6308cbb6e53ba63","typeString":"literal_string \"GovernorBravo::initialize: invalid xvs vault address\""}],"id":65,"name":"require","nodeType":"Identifier","overloadedDeclarations":[5555,5556],"referencedDeclaration":5556,"src":"6352:7:0","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":72,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6352:88:0","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73,"nodeType":"ExpressionStatement","src":"6352:88:0"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":79,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":75,"name":"guardian_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41,"src":"6458:9:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":77,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6479: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":76,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6471:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":78,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6471:10:0","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"6458:23:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"476f7665726e6f72427261766f3a3a696e697469616c697a653a20696e76616c696420677561726469616e","id":80,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6483:45:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_b338c931b78836fd9f8d991c91d03bb69b9ce31c3938b98e6cf724626c475813","typeString":"literal_string \"GovernorBravo::initialize: invalid guardian\""},"value":"GovernorBravo::initialize: invalid guardian"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b338c931b78836fd9f8d991c91d03bb69b9ce31c3938b98e6cf724626c475813","typeString":"literal_string \"GovernorBravo::initialize: invalid guardian\""}],"id":74,"name":"require","nodeType":"Identifier","overloadedDeclarations":[5555,5556],"referencedDeclaration":5556,"src":"6450:7:0","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":81,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6450:79:0","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82,"nodeType":"ExpressionStatement","src":"6450:79:0"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":88,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":84,"name":"timelocks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39,"src":"6560:9:0","typeDescriptions":{"typeIdentifier":"t_array$_t_contract$_TimelockInterface_$2007_$dyn_memory_ptr","typeString":"contract TimelockInterface[] memory"}},"id":85,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"6560:16:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"id":86,"name":"getGovernanceRouteCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1562,"src":"6580:23:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_uint8_$","typeString":"function () pure returns (uint8)"}},"id":87,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6580:25:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"6560:45:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"476f7665726e6f72427261766f3a3a696e697469616c697a653a6e756d626572206f662074696d656c6f636b732073686f756c64206d61746368206e756d626572206f6620676f7665726e616e636520726f75746573","id":89,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6619:88:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_2cbe57922e8750dfed644cdf2c609422aa63934a21c1a15af3627d7d8d8b5c40","typeString":"literal_string \"GovernorBravo::initialize:number of timelocks should match number of governance routes\""},"value":"GovernorBravo::initialize:number of timelocks should match number of governance routes"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_2cbe57922e8750dfed644cdf2c609422aa63934a21c1a15af3627d7d8d8b5c40","typeString":"literal_string \"GovernorBravo::initialize:number of timelocks should match number of governance routes\""}],"id":83,"name":"require","nodeType":"Identifier","overloadedDeclarations":[5555,5556],"referencedDeclaration":5556,"src":"6539:7:0","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":90,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6539:178:0","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":91,"nodeType":"ExpressionStatement","src":"6539:178:0"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":97,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":93,"name":"proposalConfigs_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36,"src":"6748:16:0","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalConfig_$1920_memory_$dyn_memory_ptr","typeString":"struct GovernorBravoDelegateStorageV2.ProposalConfig memory[] memory"}},"id":94,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"6748:23:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"id":95,"name":"getGovernanceRouteCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1562,"src":"6775:23:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_uint8_$","typeString":"function () pure returns (uint8)"}},"id":96,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6775:25:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"6748:52:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"476f7665726e6f72427261766f3a3a696e697469616c697a653a6e756d626572206f662070726f706f73616c20636f6e666967732073686f756c64206d61746368206e756d626572206f6620676f7665726e616e636520726f75746573","id":98,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6814:95:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_ed7e6cd98a98fd39ec52e1875c12a0ba22b6df90076227f657dd19c7008e88d5","typeString":"literal_string \"GovernorBravo::initialize:number of proposal configs should match number of governance routes\""},"value":"GovernorBravo::initialize:number of proposal configs should match number of governance routes"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ed7e6cd98a98fd39ec52e1875c12a0ba22b6df90076227f657dd19c7008e88d5","typeString":"literal_string \"GovernorBravo::initialize:number of proposal configs should match number of governance routes\""}],"id":92,"name":"require","nodeType":"Identifier","overloadedDeclarations":[5555,5556],"referencedDeclaration":5556,"src":"6727:7:0","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":99,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6727:192:0","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":100,"nodeType":"ExpressionStatement","src":"6727:192:0"},{"expression":{"argumentTypes":null,"id":105,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":101,"name":"xvsVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1839,"src":"6930:8:0","typeDescriptions":{"typeIdentifier":"t_contract$_XvsVaultInterface_$2017","typeString":"contract XvsVaultInterface"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":103,"name":"xvsVault_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31,"src":"6959:9:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":102,"name":"XvsVaultInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2017,"src":"6941:17:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_XvsVaultInterface_$2017_$","typeString":"type(contract XvsVaultInterface)"}},"id":104,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6941:28:0","typeDescriptions":{"typeIdentifier":"t_contract$_XvsVaultInterface_$2017","typeString":"contract XvsVaultInterface"}},"src":"6930:39:0","typeDescriptions":{"typeIdentifier":"t_contract$_XvsVaultInterface_$2017","typeString":"contract XvsVaultInterface"}},"id":106,"nodeType":"ExpressionStatement","src":"6930:39:0"},{"expression":{"argumentTypes":null,"id":109,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":107,"name":"proposalMaxOperations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1904,"src":"6979:21:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"hexValue":"3130","id":108,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7003:2:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"src":"6979:26:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":110,"nodeType":"ExpressionStatement","src":"6979:26:0"},{"expression":{"argumentTypes":null,"id":113,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":111,"name":"guardian","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1906,"src":"7015:8:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":112,"name":"guardian_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41,"src":"7026:9:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7015:20:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":114,"nodeType":"ExpressionStatement","src":"7015:20:0"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":116,"name":"validationParams_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33,"src":"7118:17:0","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationParams_$1940_memory_ptr","typeString":"struct GovernorBravoDelegateStorageV3.ValidationParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidationParams_$1940_memory_ptr","typeString":"struct GovernorBravoDelegateStorageV3.ValidationParams memory"}],"id":115,"name":"setValidationParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":223,"src":"7098:19:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_ValidationParams_$1940_memory_ptr_$returns$__$","typeString":"function (struct GovernorBravoDelegateStorageV3.ValidationParams memory)"}},"id":117,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7098:38:0","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":118,"nodeType":"ExpressionStatement","src":"7098:38:0"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":120,"name":"proposalConfigs_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36,"src":"7165:16:0","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalConfig_$1920_memory_$dyn_memory_ptr","typeString":"struct GovernorBravoDelegateStorageV2.ProposalConfig memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_ProposalConfig_$1920_memory_$dyn_memory_ptr","typeString":"struct GovernorBravoDelegateStorageV2.ProposalConfig memory[] memory"}],"id":119,"name":"setProposalConfigs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":372,"src":"7146:18:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_struct$_ProposalConfig_$1920_memory_$dyn_memory_ptr_$returns$__$","typeString":"function (struct GovernorBravoDelegateStorageV2.ProposalConfig memory[] memory)"}},"id":121,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7146:36:0","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":122,"nodeType":"ExpressionStatement","src":"7146:36:0"},{"assignments":[124],"declarations":[{"constant":false,"id":124,"name":"arrLength","nodeType":"VariableDeclaration","scope":160,"src":"7193:17:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":123,"name":"uint256","nodeType":"ElementaryTypeName","src":"7193:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":127,"initialValue":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":125,"name":"timelocks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39,"src":"7213:9:0","typeDescriptions":{"typeIdentifier":"t_array$_t_contract$_TimelockInterface_$2007_$dyn_memory_ptr","typeString":"contract TimelockInterface[] memory"}},"id":126,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"7213:16:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7193:36:0"},{"body":{"id":158,"nodeType":"Block","src":"7275:172:0","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":146,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":139,"name":"timelocks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39,"src":"7305:9:0","typeDescriptions":{"typeIdentifier":"t_array$_t_contract$_TimelockInterface_$2007_$dyn_memory_ptr","typeString":"contract TimelockInterface[] memory"}},"id":141,"indexExpression":{"argumentTypes":null,"id":140,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":129,"src":"7315:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7305:12:0","typeDescriptions":{"typeIdentifier":"t_contract$_TimelockInterface_$2007","typeString":"contract TimelockInterface"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_TimelockInterface_$2007","typeString":"contract TimelockInterface"}],"id":138,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7297:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":142,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7297:21:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":144,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7330: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":143,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7322:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":145,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7322:10:0","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"7297:35:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"476f7665726e6f72427261766f3a3a696e697469616c697a653a696e76616c69642074696d656c6f636b2061646472657373","id":147,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7334:52:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_b8067cd3d222ecf6e5c0d3ecc90f1955f3fe41146bbafa2a4e3a0409914f3f29","typeString":"literal_string \"GovernorBravo::initialize:invalid timelock address\""},"value":"GovernorBravo::initialize:invalid timelock address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b8067cd3d222ecf6e5c0d3ecc90f1955f3fe41146bbafa2a4e3a0409914f3f29","typeString":"literal_string \"GovernorBravo::initialize:invalid timelock address\""}],"id":137,"name":"require","nodeType":"Identifier","overloadedDeclarations":[5555,5556],"referencedDeclaration":5556,"src":"7289:7:0","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":148,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7289:98:0","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":149,"nodeType":"ExpressionStatement","src":"7289:98:0"},{"expression":{"argumentTypes":null,"id":156,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":150,"name":"proposalTimelocks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1928,"src":"7401:17:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_contract$_TimelockInterface_$2007_$","typeString":"mapping(uint256 => contract TimelockInterface)"}},"id":152,"indexExpression":{"argumentTypes":null,"id":151,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":129,"src":"7419:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7401:20:0","typeDescriptions":{"typeIdentifier":"t_contract$_TimelockInterface_$2007","typeString":"contract TimelockInterface"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":153,"name":"timelocks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":39,"src":"7424:9:0","typeDescriptions":{"typeIdentifier":"t_array$_t_contract$_TimelockInterface_$2007_$dyn_memory_ptr","typeString":"contract TimelockInterface[] memory"}},"id":155,"indexExpression":{"argumentTypes":null,"id":154,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":129,"src":"7434:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7424:12:0","typeDescriptions":{"typeIdentifier":"t_contract$_TimelockInterface_$2007","typeString":"contract TimelockInterface"}},"src":"7401:35:0","typeDescriptions":{"typeIdentifier":"t_contract$_TimelockInterface_$2007","typeString":"contract TimelockInterface"}},"id":157,"nodeType":"ExpressionStatement","src":"7401:35:0"}]},"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":133,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":131,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":129,"src":"7255:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"id":132,"name":"arrLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":124,"src":"7259:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7255:13:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":159,"initializationExpression":{"assignments":[129],"declarations":[{"constant":false,"id":129,"name":"i","nodeType":"VariableDeclaration","scope":159,"src":"7244:9:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":128,"name":"uint256","nodeType":"ElementaryTypeName","src":"7244:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":130,"initialValue":null,"nodeType":"VariableDeclarationStatement","src":"7244:9:0"},"loopExpression":{"expression":{"argumentTypes":null,"id":135,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"7270:3:0","subExpression":{"argumentTypes":null,"id":134,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":129,"src":"7272:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":136,"nodeType":"ExpressionStatement","src":"7270:3:0"},"nodeType":"ForStatement","src":"7239:208:0"}]},"documentation":"@notice Used to initialize the contract during delegator contructor\n@param xvsVault_ The address of the XvsVault\n@param proposalConfigs_ Governance configs for each governance route\n@param timelocks Timelock addresses for each governance route","id":161,"implemented":true,"kind":"function","modifiers":[],"name":"initialize","nodeType":"FunctionDefinition","parameters":{"id":42,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31,"name":"xvsVault_","nodeType":"VariableDeclaration","scope":161,"src":"5942:17:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":30,"name":"address","nodeType":"ElementaryTypeName","src":"5942:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":33,"name":"validationParams_","nodeType":"VariableDeclaration","scope":161,"src":"5969:41:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationParams_$1940_memory_ptr","typeString":"struct GovernorBravoDelegateStorageV3.ValidationParams"},"typeName":{"contractScope":null,"id":32,"name":"ValidationParams","nodeType":"UserDefinedTypeName","referencedDeclaration":1940,"src":"5969:16:0","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationParams_$1940_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV3.ValidationParams"}},"value":null,"visibility":"internal"},{"constant":false,"id":36,"name":"proposalConfigs_","nodeType":"VariableDeclaration","scope":161,"src":"6020:40:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalConfig_$1920_memory_$dyn_memory_ptr","typeString":"struct GovernorBravoDelegateStorageV2.ProposalConfig[]"},"typeName":{"baseType":{"contractScope":null,"id":34,"name":"ProposalConfig","nodeType":"UserDefinedTypeName","referencedDeclaration":1920,"src":"6020:14:0","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalConfig_$1920_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV2.ProposalConfig"}},"id":35,"length":null,"nodeType":"ArrayTypeName","src":"6020:16:0","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalConfig_$1920_storage_$dyn_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV2.ProposalConfig[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":39,"name":"timelocks","nodeType":"VariableDeclaration","scope":161,"src":"6070:36:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_contract$_TimelockInterface_$2007_$dyn_memory_ptr","typeString":"contract TimelockInterface[]"},"typeName":{"baseType":{"contractScope":null,"id":37,"name":"TimelockInterface","nodeType":"UserDefinedTypeName","referencedDeclaration":2007,"src":"6070:17:0","typeDescriptions":{"typeIdentifier":"t_contract$_TimelockInterface_$2007","typeString":"contract TimelockInterface"}},"id":38,"length":null,"nodeType":"ArrayTypeName","src":"6070:19:0","typeDescriptions":{"typeIdentifier":"t_array$_t_contract$_TimelockInterface_$2007_$dyn_storage_ptr","typeString":"contract TimelockInterface[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":41,"name":"guardian_","nodeType":"VariableDeclaration","scope":161,"src":"6116:17:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":40,"name":"address","nodeType":"ElementaryTypeName","src":"6116:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"5932:207:0"},"returnParameters":{"id":43,"nodeType":"ParameterList","parameters":[],"src":"6147:0:0"},"scope":1563,"src":"5913:1540:0","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":222,"nodeType":"Block","src":"7739:951:0","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":170,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":167,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5552,"src":"7757:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":168,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"7757:10:0","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"id":169,"name":"admin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1818,"src":"7771:5:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7757:19:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"476f7665726e6f72427261766f3a3a73657456616c69646174696f6e506172616d733a2061646d696e206f6e6c79","id":171,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7778:48:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_9249543d475667ab11a15df0c696ac156e6f321ce45279cb4ce2779d4b2a0777","typeString":"literal_string \"GovernorBravo::setValidationParams: admin only\""},"value":"GovernorBravo::setValidationParams: admin only"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9249543d475667ab11a15df0c696ac156e6f321ce45279cb4ce2779d4b2a0777","typeString":"literal_string \"GovernorBravo::setValidationParams: admin only\""}],"id":166,"name":"require","nodeType":"Identifier","overloadedDeclarations":[5555,5556],"referencedDeclaration":5556,"src":"7749:7:0","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":172,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7749:78:0","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":173,"nodeType":"ExpressionStatement","src":"7749:78:0"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":195,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":189,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":183,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":178,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":175,"name":"newValidationParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":163,"src":"7858:19:0","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationParams_$1940_memory_ptr","typeString":"struct GovernorBravoDelegateStorageV3.ValidationParams memory"}},"id":176,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"minVotingPeriod","nodeType":"MemberAccess","referencedDeclaration":1933,"src":"7858:35:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":177,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7896:1:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7858:39:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":182,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":179,"name":"newValidationParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":163,"src":"7917:19:0","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationParams_$1940_memory_ptr","typeString":"struct GovernorBravoDelegateStorageV3.ValidationParams memory"}},"id":180,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"minVotingDelay","nodeType":"MemberAccess","referencedDeclaration":1937,"src":"7917:34:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":181,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7954:1:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7917:38:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"7858:97:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":188,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":184,"name":"newValidationParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":163,"src":"7975:19:0","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationParams_$1940_memory_ptr","typeString":"struct GovernorBravoDelegateStorageV3.ValidationParams memory"}},"id":185,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"minVotingDelay","nodeType":"MemberAccess","referencedDeclaration":1937,"src":"7975:34:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":186,"name":"newValidationParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":163,"src":"8012:19:0","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationParams_$1940_memory_ptr","typeString":"struct GovernorBravoDelegateStorageV3.ValidationParams memory"}},"id":187,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"maxVotingDelay","nodeType":"MemberAccess","referencedDeclaration":1939,"src":"8012:34:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7975:71:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"7858:188:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":194,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":190,"name":"newValidationParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":163,"src":"8066:19:0","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationParams_$1940_memory_ptr","typeString":"struct GovernorBravoDelegateStorageV3.ValidationParams memory"}},"id":191,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"minVotingPeriod","nodeType":"MemberAccess","referencedDeclaration":1933,"src":"8066:35:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":192,"name":"newValidationParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":163,"src":"8104:19:0","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationParams_$1940_memory_ptr","typeString":"struct GovernorBravoDelegateStorageV3.ValidationParams memory"}},"id":193,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"maxVotingPeriod","nodeType":"MemberAccess","referencedDeclaration":1935,"src":"8104:35:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8066:73:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"7858:281:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"476f7665726e6f72427261766f3a3a73657456616c69646174696f6e506172616d733a20696e76616c696420706172616d73","id":196,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8153:52:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_cd364ff71d1c9ccb9fb26ff33a8b50c10bbe4e457b608b727daf24b0b8c2c10a","typeString":"literal_string \"GovernorBravo::setValidationParams: invalid params\""},"value":"GovernorBravo::setValidationParams: invalid params"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_cd364ff71d1c9ccb9fb26ff33a8b50c10bbe4e457b608b727daf24b0b8c2c10a","typeString":"literal_string \"GovernorBravo::setValidationParams: invalid params\""}],"id":174,"name":"require","nodeType":"Identifier","overloadedDeclarations":[5555,5556],"referencedDeclaration":5556,"src":"7837:7:0","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":197,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7837:378:0","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":198,"nodeType":"ExpressionStatement","src":"7837:378:0"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":200,"name":"validationParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1942,"src":"8263:16:0","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationParams_$1940_storage","typeString":"struct GovernorBravoDelegateStorageV3.ValidationParams storage ref"}},"id":201,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"minVotingPeriod","nodeType":"MemberAccess","referencedDeclaration":1933,"src":"8263:32:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":202,"name":"newValidationParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":163,"src":"8309:19:0","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationParams_$1940_memory_ptr","typeString":"struct GovernorBravoDelegateStorageV3.ValidationParams memory"}},"id":203,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"minVotingPeriod","nodeType":"MemberAccess","referencedDeclaration":1933,"src":"8309:35:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":204,"name":"validationParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1942,"src":"8358:16:0","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationParams_$1940_storage","typeString":"struct GovernorBravoDelegateStorageV3.ValidationParams storage ref"}},"id":205,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"maxVotingPeriod","nodeType":"MemberAccess","referencedDeclaration":1935,"src":"8358:32:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":206,"name":"newValidationParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":163,"src":"8404:19:0","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationParams_$1940_memory_ptr","typeString":"struct GovernorBravoDelegateStorageV3.ValidationParams memory"}},"id":207,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"maxVotingPeriod","nodeType":"MemberAccess","referencedDeclaration":1935,"src":"8404:35:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":208,"name":"validationParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1942,"src":"8453:16:0","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationParams_$1940_storage","typeString":"struct GovernorBravoDelegateStorageV3.ValidationParams storage ref"}},"id":209,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"minVotingDelay","nodeType":"MemberAccess","referencedDeclaration":1937,"src":"8453:31:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":210,"name":"newValidationParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":163,"src":"8498:19:0","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationParams_$1940_memory_ptr","typeString":"struct GovernorBravoDelegateStorageV3.ValidationParams memory"}},"id":211,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"minVotingDelay","nodeType":"MemberAccess","referencedDeclaration":1937,"src":"8498:34:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":212,"name":"validationParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1942,"src":"8546:16:0","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationParams_$1940_storage","typeString":"struct GovernorBravoDelegateStorageV3.ValidationParams storage ref"}},"id":213,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"maxVotingDelay","nodeType":"MemberAccess","referencedDeclaration":1939,"src":"8546:31:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":214,"name":"newValidationParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":163,"src":"8591:19:0","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationParams_$1940_memory_ptr","typeString":"struct GovernorBravoDelegateStorageV3.ValidationParams memory"}},"id":215,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"maxVotingDelay","nodeType":"MemberAccess","referencedDeclaration":1939,"src":"8591:34:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":199,"name":"SetValidationParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1807,"src":"8230:19:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256)"}},"id":216,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8230:405:0","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":217,"nodeType":"EmitStatement","src":"8225:410:0"},{"expression":{"argumentTypes":null,"id":220,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":218,"name":"validationParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1942,"src":"8645:16:0","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationParams_$1940_storage","typeString":"struct GovernorBravoDelegateStorageV3.ValidationParams storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":219,"name":"newValidationParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":163,"src":"8664:19:0","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationParams_$1940_memory_ptr","typeString":"struct GovernorBravoDelegateStorageV3.ValidationParams memory"}},"src":"8645:38:0","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationParams_$1940_storage","typeString":"struct GovernorBravoDelegateStorageV3.ValidationParams storage ref"}},"id":221,"nodeType":"ExpressionStatement","src":"8645:38:0"}]},"documentation":"** @notice Sets the validation parameters for voting delay and voting period** @param newValidationParams Struct containing new minimum and maximum voting period and delay","id":223,"implemented":true,"kind":"function","modifiers":[],"name":"setValidationParams","nodeType":"FunctionDefinition","parameters":{"id":164,"nodeType":"ParameterList","parameters":[{"constant":false,"id":163,"name":"newValidationParams","nodeType":"VariableDeclaration","scope":223,"src":"7687:43:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationParams_$1940_memory_ptr","typeString":"struct GovernorBravoDelegateStorageV3.ValidationParams"},"typeName":{"contractScope":null,"id":162,"name":"ValidationParams","nodeType":"UserDefinedTypeName","referencedDeclaration":1940,"src":"7687:16:0","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationParams_$1940_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV3.ValidationParams"}},"value":null,"visibility":"internal"}],"src":"7686:45:0"},"returnParameters":{"id":165,"nodeType":"ParameterList","parameters":[],"src":"7739:0:0"},"scope":1563,"src":"7658:1032:0","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":371,"nodeType":"Block","src":"9058:2153:0","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":233,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":230,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5552,"src":"9076:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":231,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"9076:10:0","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"id":232,"name":"admin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1818,"src":"9090:5:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9076:19:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"476f7665726e6f72427261766f3a3a73657450726f706f73616c436f6e666967733a2061646d696e206f6e6c79","id":234,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9097:47:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_61c3f808b5608b95fe2ffe63aac48147971bbba021cb60a3575a2f00ad1acfb9","typeString":"literal_string \"GovernorBravo::setProposalConfigs: admin only\""},"value":"GovernorBravo::setProposalConfigs: admin only"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_61c3f808b5608b95fe2ffe63aac48147971bbba021cb60a3575a2f00ad1acfb9","typeString":"literal_string \"GovernorBravo::setProposalConfigs: admin only\""}],"id":229,"name":"require","nodeType":"Identifier","overloadedDeclarations":[5555,5556],"referencedDeclaration":5556,"src":"9068:7:0","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":235,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9068:77:0","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":236,"nodeType":"ExpressionStatement","src":"9068:77:0"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":256,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":251,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":246,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":241,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":238,"name":"validationParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1942,"src":"9176:16:0","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationParams_$1940_storage","typeString":"struct GovernorBravoDelegateStorageV3.ValidationParams storage ref"}},"id":239,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"minVotingPeriod","nodeType":"MemberAccess","referencedDeclaration":1933,"src":"9176:32:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":240,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9211:1:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9176:36:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":245,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":242,"name":"validationParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1942,"src":"9232:16:0","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationParams_$1940_storage","typeString":"struct GovernorBravoDelegateStorageV3.ValidationParams storage ref"}},"id":243,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"maxVotingPeriod","nodeType":"MemberAccess","referencedDeclaration":1935,"src":"9232:32:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":244,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9267:1:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9232:36:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"9176:92:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":250,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":247,"name":"validationParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1942,"src":"9288:16:0","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationParams_$1940_storage","typeString":"struct GovernorBravoDelegateStorageV3.ValidationParams storage ref"}},"id":248,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"minVotingDelay","nodeType":"MemberAccess","referencedDeclaration":1937,"src":"9288:31:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":249,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9322:1:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9288:35:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"9176:147:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":255,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":252,"name":"validationParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1942,"src":"9343:16:0","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationParams_$1940_storage","typeString":"struct GovernorBravoDelegateStorageV3.ValidationParams storage ref"}},"id":253,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"maxVotingDelay","nodeType":"MemberAccess","referencedDeclaration":1939,"src":"9343:31:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":254,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9377:1:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9343:35:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"9176:202:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"476f7665726e6f72427261766f3a3a73657450726f706f73616c436f6e666967733a2076616c69646174696f6e20706172616d73206e6f7420636f6e6669677572656420796574","id":257,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9392:73:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_13f7dd7828bf10bc6ba8c05b8552739593d8700d84a90bf37cfea7435c1b98bf","typeString":"literal_string \"GovernorBravo::setProposalConfigs: validation params not configured yet\""},"value":"GovernorBravo::setProposalConfigs: validation params not configured yet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_13f7dd7828bf10bc6ba8c05b8552739593d8700d84a90bf37cfea7435c1b98bf","typeString":"literal_string \"GovernorBravo::setProposalConfigs: validation params not configured yet\""}],"id":237,"name":"require","nodeType":"Identifier","overloadedDeclarations":[5555,5556],"referencedDeclaration":5556,"src":"9155:7:0","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":258,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9155:320:0","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":259,"nodeType":"ExpressionStatement","src":"9155:320:0"},{"assignments":[261],"declarations":[{"constant":false,"id":261,"name":"arrLength","nodeType":"VariableDeclaration","scope":371,"src":"9485:17:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":260,"name":"uint256","nodeType":"ElementaryTypeName","src":"9485:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":264,"initialValue":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":262,"name":"proposalConfigs_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":226,"src":"9505:16:0","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalConfig_$1920_memory_$dyn_memory_ptr","typeString":"struct GovernorBravoDelegateStorageV2.ProposalConfig memory[] memory"}},"id":263,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"9505:23:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9485:43:0"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":269,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":266,"name":"arrLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":261,"src":"9559:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"id":267,"name":"getGovernanceRouteCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1562,"src":"9572:23:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_uint8_$","typeString":"function () pure returns (uint8)"}},"id":268,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9572:25:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"9559:38:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"476f7665726e6f72427261766f3a3a73657450726f706f73616c436f6e666967733a20696e76616c69642070726f706f73616c20636f6e666967206c656e677468","id":270,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9611:67:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_071b71d63813d4a31b341b84998bd3de464acb320be495a258f57e3250d26460","typeString":"literal_string \"GovernorBravo::setProposalConfigs: invalid proposal config length\""},"value":"GovernorBravo::setProposalConfigs: invalid proposal config length"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_071b71d63813d4a31b341b84998bd3de464acb320be495a258f57e3250d26460","typeString":"literal_string \"GovernorBravo::setProposalConfigs: invalid proposal config length\""}],"id":265,"name":"require","nodeType":"Identifier","overloadedDeclarations":[5555,5556],"referencedDeclaration":5556,"src":"9538:7:0","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":271,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9538:150:0","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":272,"nodeType":"ExpressionStatement","src":"9538:150:0"},{"body":{"id":369,"nodeType":"Block","src":"9734:1471:0","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":289,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":283,"name":"proposalConfigs_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":226,"src":"9773:16:0","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalConfig_$1920_memory_$dyn_memory_ptr","typeString":"struct GovernorBravoDelegateStorageV2.ProposalConfig memory[] memory"}},"id":285,"indexExpression":{"argumentTypes":null,"id":284,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":274,"src":"9790:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9773:19:0","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalConfig_$1920_memory","typeString":"struct GovernorBravoDelegateStorageV2.ProposalConfig memory"}},"id":286,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"votingPeriod","nodeType":"MemberAccess","referencedDeclaration":1917,"src":"9773:32:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":287,"name":"validationParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1942,"src":"9809:16:0","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationParams_$1940_storage","typeString":"struct GovernorBravoDelegateStorageV3.ValidationParams storage ref"}},"id":288,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"minVotingPeriod","nodeType":"MemberAccess","referencedDeclaration":1933,"src":"9809:32:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9773:68:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"476f7665726e6f72427261766f3a3a73657450726f706f73616c436f6e666967733a20696e76616c6964206d696e20766f74696e6720706572696f64","id":290,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9859:62:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_288a3f3cb7aa52f5b61db10635c290ffb8916c269372f6fb7f83afc80370224c","typeString":"literal_string \"GovernorBravo::setProposalConfigs: invalid min voting period\""},"value":"GovernorBravo::setProposalConfigs: invalid min voting period"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_288a3f3cb7aa52f5b61db10635c290ffb8916c269372f6fb7f83afc80370224c","typeString":"literal_string \"GovernorBravo::setProposalConfigs: invalid min voting period\""}],"id":282,"name":"require","nodeType":"Identifier","overloadedDeclarations":[5555,5556],"referencedDeclaration":5556,"src":"9748:7:0","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":291,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9748:187:0","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":292,"nodeType":"ExpressionStatement","src":"9748:187:0"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":300,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":294,"name":"proposalConfigs_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":226,"src":"9974:16:0","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalConfig_$1920_memory_$dyn_memory_ptr","typeString":"struct GovernorBravoDelegateStorageV2.ProposalConfig memory[] memory"}},"id":296,"indexExpression":{"argumentTypes":null,"id":295,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":274,"src":"9991:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9974:19:0","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalConfig_$1920_memory","typeString":"struct GovernorBravoDelegateStorageV2.ProposalConfig memory"}},"id":297,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"votingPeriod","nodeType":"MemberAccess","referencedDeclaration":1917,"src":"9974:32:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":298,"name":"validationParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1942,"src":"10010:16:0","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationParams_$1940_storage","typeString":"struct GovernorBravoDelegateStorageV3.ValidationParams storage ref"}},"id":299,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"maxVotingPeriod","nodeType":"MemberAccess","referencedDeclaration":1935,"src":"10010:32:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9974:68:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"476f7665726e6f72427261766f3a3a73657450726f706f73616c436f6e666967733a20696e76616c6964206d617820766f74696e6720706572696f64","id":301,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10060:62:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_fa35c580255f15542f061ad4601fd20b6c551ec182a551e8edfd451496850794","typeString":"literal_string \"GovernorBravo::setProposalConfigs: invalid max voting period\""},"value":"GovernorBravo::setProposalConfigs: invalid max voting period"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_fa35c580255f15542f061ad4601fd20b6c551ec182a551e8edfd451496850794","typeString":"literal_string \"GovernorBravo::setProposalConfigs: invalid max voting period\""}],"id":293,"name":"require","nodeType":"Identifier","overloadedDeclarations":[5555,5556],"referencedDeclaration":5556,"src":"9949:7:0","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":302,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9949:187:0","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":303,"nodeType":"ExpressionStatement","src":"9949:187:0"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":311,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":305,"name":"proposalConfigs_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":226,"src":"10175:16:0","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalConfig_$1920_memory_$dyn_memory_ptr","typeString":"struct GovernorBravoDelegateStorageV2.ProposalConfig memory[] memory"}},"id":307,"indexExpression":{"argumentTypes":null,"id":306,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":274,"src":"10192:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10175:19:0","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalConfig_$1920_memory","typeString":"struct GovernorBravoDelegateStorageV2.ProposalConfig memory"}},"id":308,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"votingDelay","nodeType":"MemberAccess","referencedDeclaration":1915,"src":"10175:31:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":309,"name":"validationParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1942,"src":"10210:16:0","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationParams_$1940_storage","typeString":"struct GovernorBravoDelegateStorageV3.ValidationParams storage ref"}},"id":310,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"minVotingDelay","nodeType":"MemberAccess","referencedDeclaration":1937,"src":"10210:31:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10175:66:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"476f7665726e6f72427261766f3a3a73657450726f706f73616c436f6e666967733a20696e76616c6964206d696e20766f74696e672064656c6179","id":312,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10259:61:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_a21aea780f1010450247b8365866570e34672d8247a00443eea188e5ef73a6ba","typeString":"literal_string \"GovernorBravo::setProposalConfigs: invalid min voting delay\""},"value":"GovernorBravo::setProposalConfigs: invalid min voting delay"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_a21aea780f1010450247b8365866570e34672d8247a00443eea188e5ef73a6ba","typeString":"literal_string \"GovernorBravo::setProposalConfigs: invalid min voting delay\""}],"id":304,"name":"require","nodeType":"Identifier","overloadedDeclarations":[5555,5556],"referencedDeclaration":5556,"src":"10150:7:0","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":313,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10150:184:0","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":314,"nodeType":"ExpressionStatement","src":"10150:184:0"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":322,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":316,"name":"proposalConfigs_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":226,"src":"10373:16:0","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalConfig_$1920_memory_$dyn_memory_ptr","typeString":"struct GovernorBravoDelegateStorageV2.ProposalConfig memory[] memory"}},"id":318,"indexExpression":{"argumentTypes":null,"id":317,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":274,"src":"10390:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10373:19:0","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalConfig_$1920_memory","typeString":"struct GovernorBravoDelegateStorageV2.ProposalConfig memory"}},"id":319,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"votingDelay","nodeType":"MemberAccess","referencedDeclaration":1915,"src":"10373:31:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":320,"name":"validationParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1942,"src":"10408:16:0","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationParams_$1940_storage","typeString":"struct GovernorBravoDelegateStorageV3.ValidationParams storage ref"}},"id":321,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"maxVotingDelay","nodeType":"MemberAccess","referencedDeclaration":1939,"src":"10408:31:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10373:66:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"476f7665726e6f72427261766f3a3a73657450726f706f73616c436f6e666967733a20696e76616c6964206d617820766f74696e672064656c6179","id":323,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10457:61:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_9594eeae41e4e8cc242e5f508cbdf21e9da924817d8c9baa86a7b47681829e11","typeString":"literal_string \"GovernorBravo::setProposalConfigs: invalid max voting delay\""},"value":"GovernorBravo::setProposalConfigs: invalid max voting delay"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9594eeae41e4e8cc242e5f508cbdf21e9da924817d8c9baa86a7b47681829e11","typeString":"literal_string \"GovernorBravo::setProposalConfigs: invalid max voting delay\""}],"id":315,"name":"require","nodeType":"Identifier","overloadedDeclarations":[5555,5556],"referencedDeclaration":5556,"src":"10348:7:0","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":324,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10348:184:0","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":325,"nodeType":"ExpressionStatement","src":"10348:184:0"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":332,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":327,"name":"proposalConfigs_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":226,"src":"10571:16:0","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalConfig_$1920_memory_$dyn_memory_ptr","typeString":"struct GovernorBravoDelegateStorageV2.ProposalConfig memory[] memory"}},"id":329,"indexExpression":{"argumentTypes":null,"id":328,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":274,"src":"10588:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10571:19:0","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalConfig_$1920_memory","typeString":"struct GovernorBravoDelegateStorageV2.ProposalConfig memory"}},"id":330,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"proposalThreshold","nodeType":"MemberAccess","referencedDeclaration":1919,"src":"10571:37:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"argumentTypes":null,"id":331,"name":"MIN_PROPOSAL_THRESHOLD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13,"src":"10612:22:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10571:63:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"476f7665726e6f72427261766f3a3a73657450726f706f73616c436f6e666967733a20696e76616c6964206d696e2070726f706f73616c207468726573686f6c64","id":333,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10652:67:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_e68ad4824d0f6bf4ad43061ea0313645f403d31589a51d69273a3988fdd34db5","typeString":"literal_string \"GovernorBravo::setProposalConfigs: invalid min proposal threshold\""},"value":"GovernorBravo::setProposalConfigs: invalid min proposal threshold"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e68ad4824d0f6bf4ad43061ea0313645f403d31589a51d69273a3988fdd34db5","typeString":"literal_string \"GovernorBravo::setProposalConfigs: invalid min proposal threshold\""}],"id":326,"name":"require","nodeType":"Identifier","overloadedDeclarations":[5555,5556],"referencedDeclaration":5556,"src":"10546:7:0","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":334,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10546:187:0","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":335,"nodeType":"ExpressionStatement","src":"10546:187:0"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":342,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":337,"name":"proposalConfigs_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":226,"src":"10772:16:0","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalConfig_$1920_memory_$dyn_memory_ptr","typeString":"struct GovernorBravoDelegateStorageV2.ProposalConfig memory[] memory"}},"id":339,"indexExpression":{"argumentTypes":null,"id":338,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":274,"src":"10789:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10772:19:0","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalConfig_$1920_memory","typeString":"struct GovernorBravoDelegateStorageV2.ProposalConfig memory"}},"id":340,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"proposalThreshold","nodeType":"MemberAccess","referencedDeclaration":1919,"src":"10772:37:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"argumentTypes":null,"id":341,"name":"MAX_PROPOSAL_THRESHOLD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16,"src":"10813:22:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10772:63:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"476f7665726e6f72427261766f3a3a73657450726f706f73616c436f6e666967733a20696e76616c6964206d61782070726f706f73616c207468726573686f6c64","id":343,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10853:67:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_079c8cdbb783e360009b093884e2fa0239819e80f7446387c8b96e628005976d","typeString":"literal_string \"GovernorBravo::setProposalConfigs: invalid max proposal threshold\""},"value":"GovernorBravo::setProposalConfigs: invalid max proposal threshold"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_079c8cdbb783e360009b093884e2fa0239819e80f7446387c8b96e628005976d","typeString":"literal_string \"GovernorBravo::setProposalConfigs: invalid max proposal threshold\""}],"id":336,"name":"require","nodeType":"Identifier","overloadedDeclarations":[5555,5556],"referencedDeclaration":5556,"src":"10747:7:0","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":344,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10747:187:0","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":345,"nodeType":"ExpressionStatement","src":"10747:187:0"},{"expression":{"argumentTypes":null,"id":352,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":346,"name":"proposalConfigs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1924,"src":"10949:15:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_ProposalConfig_$1920_storage_$","typeString":"mapping(uint256 => struct GovernorBravoDelegateStorageV2.ProposalConfig storage ref)"}},"id":348,"indexExpression":{"argumentTypes":null,"id":347,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":274,"src":"10965:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10949:18:0","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalConfig_$1920_storage","typeString":"struct GovernorBravoDelegateStorageV2.ProposalConfig storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":349,"name":"proposalConfigs_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":226,"src":"10970:16:0","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalConfig_$1920_memory_$dyn_memory_ptr","typeString":"struct GovernorBravoDelegateStorageV2.ProposalConfig memory[] memory"}},"id":351,"indexExpression":{"argumentTypes":null,"id":350,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":274,"src":"10987:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10970:19:0","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalConfig_$1920_memory","typeString":"struct GovernorBravoDelegateStorageV2.ProposalConfig memory"}},"src":"10949:40:0","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalConfig_$1920_storage","typeString":"struct GovernorBravoDelegateStorageV2.ProposalConfig storage ref"}},"id":353,"nodeType":"ExpressionStatement","src":"10949:40:0"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":355,"name":"proposalConfigs_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":226,"src":"11044:16:0","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalConfig_$1920_memory_$dyn_memory_ptr","typeString":"struct GovernorBravoDelegateStorageV2.ProposalConfig memory[] memory"}},"id":357,"indexExpression":{"argumentTypes":null,"id":356,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":274,"src":"11061:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11044:19:0","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalConfig_$1920_memory","typeString":"struct GovernorBravoDelegateStorageV2.ProposalConfig memory"}},"id":358,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"votingPeriod","nodeType":"MemberAccess","referencedDeclaration":1917,"src":"11044:32:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":359,"name":"proposalConfigs_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":226,"src":"11094:16:0","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalConfig_$1920_memory_$dyn_memory_ptr","typeString":"struct GovernorBravoDelegateStorageV2.ProposalConfig memory[] memory"}},"id":361,"indexExpression":{"argumentTypes":null,"id":360,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":274,"src":"11111:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11094:19:0","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalConfig_$1920_memory","typeString":"struct GovernorBravoDelegateStorageV2.ProposalConfig memory"}},"id":362,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"votingDelay","nodeType":"MemberAccess","referencedDeclaration":1915,"src":"11094:31:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":363,"name":"proposalConfigs_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":226,"src":"11143:16:0","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalConfig_$1920_memory_$dyn_memory_ptr","typeString":"struct GovernorBravoDelegateStorageV2.ProposalConfig memory[] memory"}},"id":365,"indexExpression":{"argumentTypes":null,"id":364,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":274,"src":"11160:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11143:19:0","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalConfig_$1920_memory","typeString":"struct GovernorBravoDelegateStorageV2.ProposalConfig memory"}},"id":366,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"proposalThreshold","nodeType":"MemberAccess","referencedDeclaration":1919,"src":"11143:37:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":354,"name":"SetProposalConfigs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1815,"src":"11008:18:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256,uint256)"}},"id":367,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11008:186:0","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":368,"nodeType":"EmitStatement","src":"11003:191:0"}]},"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":278,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":276,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":274,"src":"9714:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"id":277,"name":"arrLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":261,"src":"9718:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9714:13:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":370,"initializationExpression":{"assignments":[274],"declarations":[{"constant":false,"id":274,"name":"i","nodeType":"VariableDeclaration","scope":370,"src":"9703:9:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":273,"name":"uint256","nodeType":"ElementaryTypeName","src":"9703:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":275,"initialValue":null,"nodeType":"VariableDeclarationStatement","src":"9703:9:0"},"loopExpression":{"expression":{"argumentTypes":null,"id":280,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"9729:3:0","subExpression":{"argumentTypes":null,"id":279,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":274,"src":"9731:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":281,"nodeType":"ExpressionStatement","src":"9729:3:0"},"nodeType":"ForStatement","src":"9698:1507:0"}]},"documentation":"** @notice Sets the configuration for different proposal types** @dev Requires validationParams to be configured before also it will set proposal config for all proposal types** @param proposalConfigs_ Array of proposal configuration structs to update","id":372,"implemented":true,"kind":"function","modifiers":[],"name":"setProposalConfigs","nodeType":"FunctionDefinition","parameters":{"id":227,"nodeType":"ParameterList","parameters":[{"constant":false,"id":226,"name":"proposalConfigs_","nodeType":"VariableDeclaration","scope":372,"src":"9009:40:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalConfig_$1920_memory_$dyn_memory_ptr","typeString":"struct GovernorBravoDelegateStorageV2.ProposalConfig[]"},"typeName":{"baseType":{"contractScope":null,"id":224,"name":"ProposalConfig","nodeType":"UserDefinedTypeName","referencedDeclaration":1920,"src":"9009:14:0","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalConfig_$1920_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV2.ProposalConfig"}},"id":225,"length":null,"nodeType":"ArrayTypeName","src":"9009:16:0","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalConfig_$1920_storage_$dyn_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV2.ProposalConfig[]"}},"value":null,"visibility":"internal"}],"src":"9008:42:0"},"returnParameters":{"id":228,"nodeType":"ParameterList","parameters":[],"src":"9058:0:0"},"scope":1563,"src":"8981:2230:0","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":578,"nodeType":"Block","src":"12296:2667:0","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":396,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":394,"name":"initialProposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1833,"src":"12372:17:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"hexValue":"30","id":395,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12393:1:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12372:22:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"476f7665726e6f72427261766f3a3a70726f706f73653a20476f7665726e6f7220427261766f206e6f7420616374697665","id":397,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12396:51:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_2f7689ed1f85dde3dc8971cd363eb00503765913f120e6240508da9a370f15c7","typeString":"literal_string \"GovernorBravo::propose: Governor Bravo not active\""},"value":"GovernorBravo::propose: Governor Bravo not active"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_2f7689ed1f85dde3dc8971cd363eb00503765913f120e6240508da9a370f15c7","typeString":"literal_string \"GovernorBravo::propose: Governor Bravo not active\""}],"id":393,"name":"require","nodeType":"Identifier","overloadedDeclarations":[5555,5556],"referencedDeclaration":5556,"src":"12364: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":"12364:84:0","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":399,"nodeType":"ExpressionStatement","src":"12364:84:0"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":417,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":403,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5552,"src":"12502:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":404,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"12502:10:0","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":406,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5542,"src":"12521:5:0","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":407,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"number","nodeType":"MemberAccess","referencedDeclaration":null,"src":"12521:12:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"hexValue":"31","id":408,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12535: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":405,"name":"sub256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1537,"src":"12514:6:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":409,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12514: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":401,"name":"xvsVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1839,"src":"12479:8:0","typeDescriptions":{"typeIdentifier":"t_contract$_XvsVaultInterface_$2017","typeString":"contract XvsVaultInterface"}},"id":402,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getPriorVotes","nodeType":"MemberAccess","referencedDeclaration":2016,"src":"12479:22:0","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_uint256_$returns$_t_uint96_$","typeString":"function (address,uint256) view external returns (uint96)"}},"id":410,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12479:59:0","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":411,"name":"proposalConfigs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1924,"src":"12558:15:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_ProposalConfig_$1920_storage_$","typeString":"mapping(uint256 => struct GovernorBravoDelegateStorageV2.ProposalConfig storage ref)"}},"id":415,"indexExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":413,"name":"proposalType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":388,"src":"12580:12:0","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$1913","typeString":"enum GovernorBravoDelegateStorageV2.ProposalType"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_ProposalType_$1913","typeString":"enum GovernorBravoDelegateStorageV2.ProposalType"}],"id":412,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12574:5:0","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":"uint8"},"id":414,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12574:19:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12558:36:0","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalConfig_$1920_storage","typeString":"struct GovernorBravoDelegateStorageV2.ProposalConfig storage ref"}},"id":416,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"proposalThreshold","nodeType":"MemberAccess","referencedDeclaration":1919,"src":"12558:54:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12479:133:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"476f7665726e6f72427261766f3a3a70726f706f73653a2070726f706f73657220766f7465732062656c6f772070726f706f73616c207468726573686f6c64","id":418,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12626:65:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_cce33201973389eb5d5eadb02095f9ccc730733696a536c64362c77126b5086b","typeString":"literal_string \"GovernorBravo::propose: proposer votes below proposal threshold\""},"value":"GovernorBravo::propose: proposer votes below proposal threshold"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_cce33201973389eb5d5eadb02095f9ccc730733696a536c64362c77126b5086b","typeString":"literal_string \"GovernorBravo::propose: proposer votes below proposal threshold\""}],"id":400,"name":"require","nodeType":"Identifier","overloadedDeclarations":[5555,5556],"referencedDeclaration":5556,"src":"12458:7:0","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":419,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12458:243:0","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":420,"nodeType":"ExpressionStatement","src":"12458:243:0"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":438,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":432,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":426,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":422,"name":"targets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":375,"src":"12732:7:0","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":423,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"12732:14:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":424,"name":"values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":378,"src":"12750:6:0","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":425,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"12750:13:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12732:31:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":431,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":427,"name":"targets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":375,"src":"12783:7:0","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":428,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"12783:14:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":429,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":381,"src":"12801:10:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_$dyn_memory_ptr","typeString":"string memory[] memory"}},"id":430,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"12801:17:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12783:35:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"12732:86:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":437,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":433,"name":"targets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":375,"src":"12838:7:0","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":434,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"12838:14:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":435,"name":"calldatas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":384,"src":"12856:9:0","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":436,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"12856:16:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12838:34:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"12732:140:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"476f7665726e6f72427261766f3a3a70726f706f73653a2070726f706f73616c2066756e6374696f6e20696e666f726d6174696f6e206172697479206d69736d61746368","id":439,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12886:70:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_69621e97c5d982910ff5cd550f5bc5eae1e6396f0f2af9267879c186d483c16b","typeString":"literal_string \"GovernorBravo::propose: proposal function information arity mismatch\""},"value":"GovernorBravo::propose: proposal function information arity mismatch"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_69621e97c5d982910ff5cd550f5bc5eae1e6396f0f2af9267879c186d483c16b","typeString":"literal_string \"GovernorBravo::propose: proposal function information arity mismatch\""}],"id":421,"name":"require","nodeType":"Identifier","overloadedDeclarations":[5555,5556],"referencedDeclaration":5556,"src":"12711:7:0","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":440,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12711:255:0","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":441,"nodeType":"ExpressionStatement","src":"12711:255:0"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":446,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":443,"name":"targets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":375,"src":"12984:7:0","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":444,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"12984:14:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"hexValue":"30","id":445,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13002:1:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12984:19:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"476f7665726e6f72427261766f3a3a70726f706f73653a206d7573742070726f7669646520616374696f6e73","id":447,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13005:46:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_942e2bb983822c6256804c0e2d65587399729d07b6b48b9e3fe435de5044b803","typeString":"literal_string \"GovernorBravo::propose: must provide actions\""},"value":"GovernorBravo::propose: must provide actions"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_942e2bb983822c6256804c0e2d65587399729d07b6b48b9e3fe435de5044b803","typeString":"literal_string \"GovernorBravo::propose: must provide actions\""}],"id":442,"name":"require","nodeType":"Identifier","overloadedDeclarations":[5555,5556],"referencedDeclaration":5556,"src":"12976:7:0","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":448,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12976:76:0","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":449,"nodeType":"ExpressionStatement","src":"12976:76:0"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":454,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":451,"name":"targets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":375,"src":"13070:7:0","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":452,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"13070:14:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"argumentTypes":null,"id":453,"name":"proposalMaxOperations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1904,"src":"13088:21:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13070:39:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"476f7665726e6f72427261766f3a3a70726f706f73653a20746f6f206d616e7920616374696f6e73","id":455,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13111:42:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_b54d69ba9f9abad90f1f013b8ab5a1d9b4c579f5bc801e2709d01ada775467a3","typeString":"literal_string \"GovernorBravo::propose: too many actions\""},"value":"GovernorBravo::propose: too many actions"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b54d69ba9f9abad90f1f013b8ab5a1d9b4c579f5bc801e2709d01ada775467a3","typeString":"literal_string \"GovernorBravo::propose: too many actions\""}],"id":450,"name":"require","nodeType":"Identifier","overloadedDeclarations":[5555,5556],"referencedDeclaration":5556,"src":"13062:7:0","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":456,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13062:92:0","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":457,"nodeType":"ExpressionStatement","src":"13062:92:0"},{"assignments":[459],"declarations":[{"constant":false,"id":459,"name":"latestProposalId","nodeType":"VariableDeclaration","scope":578,"src":"13165:21:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":458,"name":"uint","nodeType":"ElementaryTypeName","src":"13165:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":464,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":460,"name":"latestProposalIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1847,"src":"13189:17:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":463,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":461,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5552,"src":"13207:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":462,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"13207:10:0","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13189:29:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"13165:53:0"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":467,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":465,"name":"latestProposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":459,"src":"13232:16:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"hexValue":"30","id":466,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13252:1:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"13232:21:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":491,"nodeType":"IfStatement","src":"13228:548:0","trueBody":{"id":490,"nodeType":"Block","src":"13255:521:0","statements":[{"assignments":[469],"declarations":[{"constant":false,"id":469,"name":"proposersLatestProposalState","nodeType":"VariableDeclaration","scope":490,"src":"13269:42:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$1902","typeString":"enum GovernorBravoDelegateStorageV1.ProposalState"},"typeName":{"contractScope":null,"id":468,"name":"ProposalState","nodeType":"UserDefinedTypeName","referencedDeclaration":1902,"src":"13269:13:0","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$1902","typeString":"enum GovernorBravoDelegateStorageV1.ProposalState"}},"value":null,"visibility":"internal"}],"id":473,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":471,"name":"latestProposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":459,"src":"13320:16:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":470,"name":"state","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1043,"src":"13314:5:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_enum$_ProposalState_$1902_$","typeString":"function (uint256) view returns (enum GovernorBravoDelegateStorageV1.ProposalState)"}},"id":472,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13314:23:0","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$1902","typeString":"enum GovernorBravoDelegateStorageV1.ProposalState"}},"nodeType":"VariableDeclarationStatement","src":"13269:68:0"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_enum$_ProposalState_$1902","typeString":"enum GovernorBravoDelegateStorageV1.ProposalState"},"id":478,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":475,"name":"proposersLatestProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":469,"src":"13376:28:0","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$1902","typeString":"enum GovernorBravoDelegateStorageV1.ProposalState"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":476,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1902,"src":"13408:13:0","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$1902_$","typeString":"type(enum GovernorBravoDelegateStorageV1.ProposalState)"}},"id":477,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Active","nodeType":"MemberAccess","referencedDeclaration":null,"src":"13408:20:0","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$1902","typeString":"enum GovernorBravoDelegateStorageV1.ProposalState"}},"src":"13376:52:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"476f7665726e6f72427261766f3a3a70726f706f73653a206f6e65206c6976652070726f706f73616c207065722070726f706f7365722c20666f756e6420616e20616c7265616479206163746976652070726f706f73616c","id":479,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13446:90:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_c50c351fb39a3fd6000549d303eb3b76f9e50a4f12a9fca3ac5b1e05e941e83d","typeString":"literal_string \"GovernorBravo::propose: one live proposal per proposer, found an already active proposal\""},"value":"GovernorBravo::propose: one live proposal per proposer, found an already active proposal"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c50c351fb39a3fd6000549d303eb3b76f9e50a4f12a9fca3ac5b1e05e941e83d","typeString":"literal_string \"GovernorBravo::propose: one live proposal per proposer, found an already active proposal\""}],"id":474,"name":"require","nodeType":"Identifier","overloadedDeclarations":[5555,5556],"referencedDeclaration":5556,"src":"13351:7:0","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":480,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13351:199:0","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":481,"nodeType":"ExpressionStatement","src":"13351:199:0"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_enum$_ProposalState_$1902","typeString":"enum GovernorBravoDelegateStorageV1.ProposalState"},"id":486,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":483,"name":"proposersLatestProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":469,"src":"13589:28:0","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$1902","typeString":"enum GovernorBravoDelegateStorageV1.ProposalState"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":484,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1902,"src":"13621:13:0","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$1902_$","typeString":"type(enum GovernorBravoDelegateStorageV1.ProposalState)"}},"id":485,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Pending","nodeType":"MemberAccess","referencedDeclaration":null,"src":"13621:21:0","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$1902","typeString":"enum GovernorBravoDelegateStorageV1.ProposalState"}},"src":"13589:53:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"476f7665726e6f72427261766f3a3a70726f706f73653a206f6e65206c6976652070726f706f73616c207065722070726f706f7365722c20666f756e6420616e20616c72656164792070656e64696e672070726f706f73616c","id":487,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13660:91:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_b68c77fe71de4f5cded2058593f89b465f4c2da104481b127e1b9b6156e12ee0","typeString":"literal_string \"GovernorBravo::propose: one live proposal per proposer, found an already pending proposal\""},"value":"GovernorBravo::propose: one live proposal per proposer, found an already pending proposal"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b68c77fe71de4f5cded2058593f89b465f4c2da104481b127e1b9b6156e12ee0","typeString":"literal_string \"GovernorBravo::propose: one live proposal per proposer, found an already pending proposal\""}],"id":482,"name":"require","nodeType":"Identifier","overloadedDeclarations":[5555,5556],"referencedDeclaration":5556,"src":"13564:7:0","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":488,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13564:201:0","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":489,"nodeType":"ExpressionStatement","src":"13564:201:0"}]}},{"assignments":[493],"declarations":[{"constant":false,"id":493,"name":"startBlock","nodeType":"VariableDeclaration","scope":578,"src":"13786:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":492,"name":"uint","nodeType":"ElementaryTypeName","src":"13786:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":504,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":495,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5542,"src":"13811:5:0","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":496,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"number","nodeType":"MemberAccess","referencedDeclaration":null,"src":"13811:12:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":497,"name":"proposalConfigs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1924,"src":"13825:15:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_ProposalConfig_$1920_storage_$","typeString":"mapping(uint256 => struct GovernorBravoDelegateStorageV2.ProposalConfig storage ref)"}},"id":501,"indexExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":499,"name":"proposalType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":388,"src":"13847:12:0","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$1913","typeString":"enum GovernorBravoDelegateStorageV2.ProposalType"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_ProposalType_$1913","typeString":"enum GovernorBravoDelegateStorageV2.ProposalType"}],"id":498,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13841:5:0","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":"uint8"},"id":500,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13841:19:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13825:36:0","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalConfig_$1920_storage","typeString":"struct GovernorBravoDelegateStorageV2.ProposalConfig storage ref"}},"id":502,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"votingDelay","nodeType":"MemberAccess","referencedDeclaration":1915,"src":"13825:48:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":494,"name":"add256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1516,"src":"13804:6:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":503,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13804:70:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"13786:88:0"},{"assignments":[506],"declarations":[{"constant":false,"id":506,"name":"endBlock","nodeType":"VariableDeclaration","scope":578,"src":"13884:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":505,"name":"uint","nodeType":"ElementaryTypeName","src":"13884:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":516,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":508,"name":"startBlock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":493,"src":"13907:10:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":509,"name":"proposalConfigs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1924,"src":"13919:15:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_ProposalConfig_$1920_storage_$","typeString":"mapping(uint256 => struct GovernorBravoDelegateStorageV2.ProposalConfig storage ref)"}},"id":513,"indexExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":511,"name":"proposalType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":388,"src":"13941:12:0","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$1913","typeString":"enum GovernorBravoDelegateStorageV2.ProposalType"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_ProposalType_$1913","typeString":"enum GovernorBravoDelegateStorageV2.ProposalType"}],"id":510,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13935:5:0","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":"uint8"},"id":512,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13935:19:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13919:36:0","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalConfig_$1920_storage","typeString":"struct GovernorBravoDelegateStorageV2.ProposalConfig storage ref"}},"id":514,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"votingPeriod","nodeType":"MemberAccess","referencedDeclaration":1917,"src":"13919:49:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":507,"name":"add256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1516,"src":"13900:6:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":515,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13900:69:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"13884:85:0"},{"expression":{"argumentTypes":null,"id":518,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"13980:15:0","subExpression":{"argumentTypes":null,"id":517,"name":"proposalCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1835,"src":"13980:13:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":519,"nodeType":"ExpressionStatement","src":"13980:15:0"},{"assignments":[521],"declarations":[{"constant":false,"id":521,"name":"newProposal","nodeType":"VariableDeclaration","scope":578,"src":"14005:27:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$1886_memory_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal"},"typeName":{"contractScope":null,"id":520,"name":"Proposal","nodeType":"UserDefinedTypeName","referencedDeclaration":1886,"src":"14005:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$1886_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal"}},"value":null,"visibility":"internal"}],"id":542,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":523,"name":"proposalCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1835,"src":"14062:13:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":524,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5552,"src":"14099:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":525,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"14099:10:0","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"hexValue":"30","id":526,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14128:1:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"argumentTypes":null,"id":527,"name":"targets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":375,"src":"14152:7:0","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"argumentTypes":null,"id":528,"name":"values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":378,"src":"14181:6:0","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"argumentTypes":null,"id":529,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":381,"src":"14213:10:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_$dyn_memory_ptr","typeString":"string memory[] memory"}},{"argumentTypes":null,"id":530,"name":"calldatas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":384,"src":"14248:9:0","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},{"argumentTypes":null,"id":531,"name":"startBlock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":493,"src":"14283:10:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":532,"name":"endBlock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":506,"src":"14317:8:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"hexValue":"30","id":533,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14349:1:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"argumentTypes":null,"hexValue":"30","id":534,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14378:1:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"argumentTypes":null,"hexValue":"30","id":535,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14407:1:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"argumentTypes":null,"hexValue":"66616c7365","id":536,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"14432:5:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"argumentTypes":null,"hexValue":"66616c7365","id":537,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"14461:5:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":539,"name":"proposalType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":388,"src":"14500:12:0","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$1913","typeString":"enum GovernorBravoDelegateStorageV2.ProposalType"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_ProposalType_$1913","typeString":"enum GovernorBravoDelegateStorageV2.ProposalType"}],"id":538,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14494:5:0","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":"uint8"},"id":540,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14494:19:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"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_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":522,"name":"Proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1886,"src":"14035:8:0","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Proposal_$1886_storage_ptr_$","typeString":"type(struct GovernorBravoDelegateStorageV1.Proposal storage pointer)"}},"id":541,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"names":["id","proposer","eta","targets","values","signatures","calldatas","startBlock","endBlock","forVotes","againstVotes","abstainVotes","canceled","executed","proposalType"],"nodeType":"FunctionCall","src":"14035:489:0","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$1886_memory","typeString":"struct GovernorBravoDelegateStorageV1.Proposal memory"}},"nodeType":"VariableDeclarationStatement","src":"14005:519:0"},{"expression":{"argumentTypes":null,"id":548,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":543,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1843,"src":"14535:9:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$1886_storage_$","typeString":"mapping(uint256 => struct GovernorBravoDelegateStorageV1.Proposal storage ref)"}},"id":546,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":544,"name":"newProposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":521,"src":"14545:11:0","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$1886_memory_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal memory"}},"id":545,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"id","nodeType":"MemberAccess","referencedDeclaration":1849,"src":"14545:14:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"14535:25:0","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$1886_storage","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":547,"name":"newProposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":521,"src":"14563:11:0","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$1886_memory_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal memory"}},"src":"14535:39:0","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$1886_storage","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage ref"}},"id":549,"nodeType":"ExpressionStatement","src":"14535:39:0"},{"expression":{"argumentTypes":null,"id":556,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":550,"name":"latestProposalIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1847,"src":"14584:17:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":553,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":551,"name":"newProposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":521,"src":"14602:11:0","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$1886_memory_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal memory"}},"id":552,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"proposer","nodeType":"MemberAccess","referencedDeclaration":1851,"src":"14602:20:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"14584:39:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":554,"name":"newProposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":521,"src":"14626:11:0","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$1886_memory_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal memory"}},"id":555,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"id","nodeType":"MemberAccess","referencedDeclaration":1849,"src":"14626:14:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14584:56:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":557,"nodeType":"ExpressionStatement","src":"14584:56:0"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":559,"name":"newProposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":521,"src":"14685:11:0","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$1886_memory_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal memory"}},"id":560,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"id","nodeType":"MemberAccess","referencedDeclaration":1849,"src":"14685:14:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":561,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5552,"src":"14713:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":562,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"14713:10:0","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":563,"name":"targets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":375,"src":"14737:7:0","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"argumentTypes":null,"id":564,"name":"values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":378,"src":"14758:6:0","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"argumentTypes":null,"id":565,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":381,"src":"14778:10:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_$dyn_memory_ptr","typeString":"string memory[] memory"}},{"argumentTypes":null,"id":566,"name":"calldatas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":384,"src":"14802:9:0","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},{"argumentTypes":null,"id":567,"name":"startBlock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":493,"src":"14825:10:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":568,"name":"endBlock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":506,"src":"14849:8:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":569,"name":"description","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":386,"src":"14871:11:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":571,"name":"proposalType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":388,"src":"14902:12:0","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$1913","typeString":"enum GovernorBravoDelegateStorageV2.ProposalType"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_ProposalType_$1913","typeString":"enum GovernorBravoDelegateStorageV2.ProposalType"}],"id":570,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14896:5:0","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":"uint8"},"id":572,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14896:19:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"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"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":558,"name":"ProposalCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1715,"src":"14656: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_$_t_uint8_$returns$__$","typeString":"function (uint256,address,address[] memory,uint256[] memory,string memory[] memory,bytes memory[] memory,uint256,uint256,string memory,uint8)"}},"id":573,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14656:269:0","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":574,"nodeType":"EmitStatement","src":"14651:274:0"},{"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":575,"name":"newProposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":521,"src":"14942:11:0","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$1886_memory_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal memory"}},"id":576,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"id","nodeType":"MemberAccess","referencedDeclaration":1849,"src":"14942:14:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":392,"id":577,"nodeType":"Return","src":"14935:21:0"}]},"documentation":"@notice Function used to propose a new proposal. Sender must have delegates above the proposal threshold.\ntargets, values, signatures, and calldatas must be of equal length\n@dev NOTE: Proposals with duplicate set of actions can not be queued for execution. If the proposals consists\n of duplicate actions, it's recommended to split those actions into separate proposals\n@param targets Target addresses for proposal calls\n@param values BNB values for proposal calls\n@param signatures Function signatures for proposal calls\n@param calldatas Calldatas for proposal calls\n@param description String description of the proposal\n@param proposalType the type of the proposal (e.g NORMAL, FASTTRACK, CRITICAL)\n@return Proposal id of new proposal","id":579,"implemented":true,"kind":"function","modifiers":[],"name":"propose","nodeType":"FunctionDefinition","parameters":{"id":389,"nodeType":"ParameterList","parameters":[{"constant":false,"id":375,"name":"targets","nodeType":"VariableDeclaration","scope":579,"src":"12073:24:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":373,"name":"address","nodeType":"ElementaryTypeName","src":"12073:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":374,"length":null,"nodeType":"ArrayTypeName","src":"12073:9:0","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":378,"name":"values","nodeType":"VariableDeclaration","scope":579,"src":"12107:20:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":376,"name":"uint","nodeType":"ElementaryTypeName","src":"12107:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":377,"length":null,"nodeType":"ArrayTypeName","src":"12107:6:0","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":381,"name":"signatures","nodeType":"VariableDeclaration","scope":579,"src":"12137:26:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_$dyn_memory_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":379,"name":"string","nodeType":"ElementaryTypeName","src":"12137:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":380,"length":null,"nodeType":"ArrayTypeName","src":"12137:8:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":384,"name":"calldatas","nodeType":"VariableDeclaration","scope":579,"src":"12173:24:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":382,"name":"bytes","nodeType":"ElementaryTypeName","src":"12173:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":383,"length":null,"nodeType":"ArrayTypeName","src":"12173:7:0","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":386,"name":"description","nodeType":"VariableDeclaration","scope":579,"src":"12207:25:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":385,"name":"string","nodeType":"ElementaryTypeName","src":"12207:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"},{"constant":false,"id":388,"name":"proposalType","nodeType":"VariableDeclaration","scope":579,"src":"12242:25:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$1913","typeString":"enum GovernorBravoDelegateStorageV2.ProposalType"},"typeName":{"contractScope":null,"id":387,"name":"ProposalType","nodeType":"UserDefinedTypeName","referencedDeclaration":1913,"src":"12242:12:0","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$1913","typeString":"enum GovernorBravoDelegateStorageV2.ProposalType"}},"value":null,"visibility":"internal"}],"src":"12063:210:0"},"returnParameters":{"id":392,"nodeType":"ParameterList","parameters":[{"constant":false,"id":391,"name":"","nodeType":"VariableDeclaration","scope":579,"src":"12290:4:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":390,"name":"uint","nodeType":"ElementaryTypeName","src":"12290:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"12289:6:0"},"scope":1563,"src":"12047:2916:0","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":663,"nodeType":"Block","src":"15135:745:0","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_enum$_ProposalState_$1902","typeString":"enum GovernorBravoDelegateStorageV1.ProposalState"},"id":590,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":586,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":581,"src":"15172:10:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":585,"name":"state","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1043,"src":"15166:5:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_enum$_ProposalState_$1902_$","typeString":"function (uint256) view returns (enum GovernorBravoDelegateStorageV1.ProposalState)"}},"id":587,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15166:17:0","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$1902","typeString":"enum GovernorBravoDelegateStorageV1.ProposalState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":588,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1902,"src":"15187:13:0","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$1902_$","typeString":"type(enum GovernorBravoDelegateStorageV1.ProposalState)"}},"id":589,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Succeeded","nodeType":"MemberAccess","referencedDeclaration":null,"src":"15187:23:0","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$1902","typeString":"enum GovernorBravoDelegateStorageV1.ProposalState"}},"src":"15166:44:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"476f7665726e6f72427261766f3a3a71756575653a2070726f706f73616c2063616e206f6e6c792062652071756575656420696620697420697320737563636565646564","id":591,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15224:70:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_8b18b74b598045096f64bbdf9460c8b5777b3d00c07ed948d457fa444a8ee5bd","typeString":"literal_string \"GovernorBravo::queue: proposal can only be queued if it is succeeded\""},"value":"GovernorBravo::queue: proposal can only be queued if it is succeeded"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_8b18b74b598045096f64bbdf9460c8b5777b3d00c07ed948d457fa444a8ee5bd","typeString":"literal_string \"GovernorBravo::queue: proposal can only be queued if it is succeeded\""}],"id":584,"name":"require","nodeType":"Identifier","overloadedDeclarations":[5555,5556],"referencedDeclaration":5556,"src":"15145:7:0","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":592,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15145:159:0","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":593,"nodeType":"ExpressionStatement","src":"15145:159:0"},{"assignments":[595],"declarations":[{"constant":false,"id":595,"name":"proposal","nodeType":"VariableDeclaration","scope":663,"src":"15314:25:0","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$1886_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal"},"typeName":{"contractScope":null,"id":594,"name":"Proposal","nodeType":"UserDefinedTypeName","referencedDeclaration":1886,"src":"15314:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$1886_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal"}},"value":null,"visibility":"internal"}],"id":599,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":596,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1843,"src":"15342:9:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$1886_storage_$","typeString":"mapping(uint256 => struct GovernorBravoDelegateStorageV1.Proposal storage ref)"}},"id":598,"indexExpression":{"argumentTypes":null,"id":597,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":581,"src":"15352:10:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15342:21:0","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$1886_storage","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"15314:49:0"},{"assignments":[601],"declarations":[{"constant":false,"id":601,"name":"eta","nodeType":"VariableDeclaration","scope":663,"src":"15373:8:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":600,"name":"uint","nodeType":"ElementaryTypeName","src":"15373:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":614,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":603,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5542,"src":"15391:5:0","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":604,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":null,"src":"15391:15:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":605,"name":"proposalTimelocks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1928,"src":"15408:17:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_contract$_TimelockInterface_$2007_$","typeString":"mapping(uint256 => contract TimelockInterface)"}},"id":610,"indexExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":607,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":595,"src":"15432:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$1886_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage pointer"}},"id":608,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"proposalType","nodeType":"MemberAccess","referencedDeclaration":1885,"src":"15432:21:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":606,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15426:5:0","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":"uint8"},"id":609,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15426:28:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15408:47:0","typeDescriptions":{"typeIdentifier":"t_contract$_TimelockInterface_$2007","typeString":"contract TimelockInterface"}},"id":611,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"delay","nodeType":"MemberAccess","referencedDeclaration":1948,"src":"15408:53:0","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":612,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15408:55:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":602,"name":"add256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1516,"src":"15384:6:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":613,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15384:80:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"15373:91:0"},{"body":{"id":650,"nodeType":"Block","src":"15521:279:0","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":627,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":595,"src":"15574:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$1886_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage pointer"}},"id":628,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"targets","nodeType":"MemberAccess","referencedDeclaration":1856,"src":"15574:16:0","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":630,"indexExpression":{"argumentTypes":null,"id":629,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":616,"src":"15591:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15574:19:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":631,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":595,"src":"15611:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$1886_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage pointer"}},"id":632,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"values","nodeType":"MemberAccess","referencedDeclaration":1859,"src":"15611:15:0","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":634,"indexExpression":{"argumentTypes":null,"id":633,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":616,"src":"15627:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15611:18:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":635,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":595,"src":"15647:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$1886_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage pointer"}},"id":636,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"signatures","nodeType":"MemberAccess","referencedDeclaration":1862,"src":"15647:19:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage","typeString":"string storage ref[] storage ref"}},"id":638,"indexExpression":{"argumentTypes":null,"id":637,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":616,"src":"15667:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15647:22:0","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":639,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":595,"src":"15687:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$1886_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage pointer"}},"id":640,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"calldatas","nodeType":"MemberAccess","referencedDeclaration":1865,"src":"15687:18:0","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage","typeString":"bytes storage ref[] storage ref"}},"id":642,"indexExpression":{"argumentTypes":null,"id":641,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":616,"src":"15706:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15687:21:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},{"argumentTypes":null,"id":643,"name":"eta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":601,"src":"15726:3:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":645,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":595,"src":"15753:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$1886_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage pointer"}},"id":646,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"proposalType","nodeType":"MemberAccess","referencedDeclaration":1885,"src":"15753:21:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":644,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15747:5:0","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":"uint8"},"id":647,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15747:28:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"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"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":626,"name":"queueOrRevertInternal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":711,"src":"15535:21:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_string_memory_ptr_$_t_bytes_memory_ptr_$_t_uint256_$_t_uint8_$returns$__$","typeString":"function (address,uint256,string memory,bytes memory,uint256,uint8)"}},"id":648,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15535:254:0","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":649,"nodeType":"ExpressionStatement","src":"15535:254:0"}]},"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":622,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":618,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":616,"src":"15487:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":619,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":595,"src":"15491:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$1886_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage pointer"}},"id":620,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"targets","nodeType":"MemberAccess","referencedDeclaration":1856,"src":"15491:16:0","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":621,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"15491:23:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15487:27:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":651,"initializationExpression":{"assignments":[616],"declarations":[{"constant":false,"id":616,"name":"i","nodeType":"VariableDeclaration","scope":651,"src":"15479:6:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":615,"name":"uint","nodeType":"ElementaryTypeName","src":"15479:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":617,"initialValue":null,"nodeType":"VariableDeclarationStatement","src":"15479:6:0"},"loopExpression":{"expression":{"argumentTypes":null,"id":624,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"15516:3:0","subExpression":{"argumentTypes":null,"id":623,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":616,"src":"15518:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":625,"nodeType":"ExpressionStatement","src":"15516:3:0"},"nodeType":"ForStatement","src":"15474:326:0"},{"expression":{"argumentTypes":null,"id":656,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":652,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":595,"src":"15809:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$1886_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage pointer"}},"id":654,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"eta","nodeType":"MemberAccess","referencedDeclaration":1853,"src":"15809:12:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":655,"name":"eta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":601,"src":"15824:3:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15809:18:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":657,"nodeType":"ExpressionStatement","src":"15809:18:0"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":659,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":581,"src":"15857:10:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":660,"name":"eta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":601,"src":"15869:3:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":658,"name":"ProposalQueued","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1737,"src":"15842:14:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":661,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15842:31:0","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":662,"nodeType":"EmitStatement","src":"15837:36:0"}]},"documentation":"@notice Queues a proposal of state succeeded\n@param proposalId The id of the proposal to queue","id":664,"implemented":true,"kind":"function","modifiers":[],"name":"queue","nodeType":"FunctionDefinition","parameters":{"id":582,"nodeType":"ParameterList","parameters":[{"constant":false,"id":581,"name":"proposalId","nodeType":"VariableDeclaration","scope":664,"src":"15109:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":580,"name":"uint","nodeType":"ElementaryTypeName","src":"15109:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"15108:17:0"},"returnParameters":{"id":583,"nodeType":"ParameterList","parameters":[],"src":"15135:0:0"},"scope":1563,"src":"15094:786:0","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":710,"nodeType":"Block","src":"16082:385:0","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":695,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"16113:141:0","subExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":687,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":666,"src":"16203:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":688,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":668,"src":"16211:5:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":689,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":670,"src":"16218:9:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"argumentTypes":null,"id":690,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":672,"src":"16229:4:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"argumentTypes":null,"id":691,"name":"eta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":674,"src":"16235: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":685,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5539,"src":"16192:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":686,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","referencedDeclaration":null,"src":"16192:10:0","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":692,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16192:47:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":684,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5546,"src":"16182:9:0","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":693,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16182:58:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":680,"name":"proposalTimelocks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1928,"src":"16114:17:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_contract$_TimelockInterface_$2007_$","typeString":"mapping(uint256 => contract TimelockInterface)"}},"id":682,"indexExpression":{"argumentTypes":null,"id":681,"name":"proposalType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":676,"src":"16132:12:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16114:31:0","typeDescriptions":{"typeIdentifier":"t_contract$_TimelockInterface_$2007","typeString":"contract TimelockInterface"}},"id":683,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"queuedTransactions","nodeType":"MemberAccess","referencedDeclaration":1963,"src":"16114:50:0","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32) view external returns (bool)"}},"id":694,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16114:140:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"476f7665726e6f72427261766f3a3a71756575654f72526576657274496e7465726e616c3a206964656e746963616c2070726f706f73616c20616374696f6e20616c72656164792071756575656420617420657461","id":696,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16268:87:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_1c438b0cfaad67e6d7c60ceb8ef7ecff37faff9e792b7a026c00b374a537d965","typeString":"literal_string \"GovernorBravo::queueOrRevertInternal: identical proposal action already queued at eta\""},"value":"GovernorBravo::queueOrRevertInternal: identical proposal action already queued at eta"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1c438b0cfaad67e6d7c60ceb8ef7ecff37faff9e792b7a026c00b374a537d965","typeString":"literal_string \"GovernorBravo::queueOrRevertInternal: identical proposal action already queued at eta\""}],"id":679,"name":"require","nodeType":"Identifier","overloadedDeclarations":[5555,5556],"referencedDeclaration":5556,"src":"16092:7:0","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":697,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16092:273:0","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":698,"nodeType":"ExpressionStatement","src":"16092:273:0"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":703,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":666,"src":"16424:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":704,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":668,"src":"16432:5:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":705,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":670,"src":"16439:9:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"argumentTypes":null,"id":706,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":672,"src":"16450:4:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"argumentTypes":null,"id":707,"name":"eta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":674,"src":"16456: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,"baseExpression":{"argumentTypes":null,"id":699,"name":"proposalTimelocks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1928,"src":"16375:17:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_contract$_TimelockInterface_$2007_$","typeString":"mapping(uint256 => contract TimelockInterface)"}},"id":701,"indexExpression":{"argumentTypes":null,"id":700,"name":"proposalType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":676,"src":"16393:12:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16375:31:0","typeDescriptions":{"typeIdentifier":"t_contract$_TimelockInterface_$2007","typeString":"contract TimelockInterface"}},"id":702,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"queueTransaction","nodeType":"MemberAccess","referencedDeclaration":1978,"src":"16375:48: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":708,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16375:85:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":709,"nodeType":"ExpressionStatement","src":"16375:85:0"}]},"documentation":null,"id":711,"implemented":true,"kind":"function","modifiers":[],"name":"queueOrRevertInternal","nodeType":"FunctionDefinition","parameters":{"id":677,"nodeType":"ParameterList","parameters":[{"constant":false,"id":666,"name":"target","nodeType":"VariableDeclaration","scope":711,"src":"15926:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":665,"name":"address","nodeType":"ElementaryTypeName","src":"15926:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":668,"name":"value","nodeType":"VariableDeclaration","scope":711,"src":"15950:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":667,"name":"uint","nodeType":"ElementaryTypeName","src":"15950:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":670,"name":"signature","nodeType":"VariableDeclaration","scope":711,"src":"15970:23:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":669,"name":"string","nodeType":"ElementaryTypeName","src":"15970:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"},{"constant":false,"id":672,"name":"data","nodeType":"VariableDeclaration","scope":711,"src":"16003:17:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":671,"name":"bytes","nodeType":"ElementaryTypeName","src":"16003:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":null,"visibility":"internal"},{"constant":false,"id":674,"name":"eta","nodeType":"VariableDeclaration","scope":711,"src":"16030:8:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":673,"name":"uint","nodeType":"ElementaryTypeName","src":"16030:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":676,"name":"proposalType","nodeType":"VariableDeclaration","scope":711,"src":"16048:18:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":675,"name":"uint8","nodeType":"ElementaryTypeName","src":"16048:5:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":null,"visibility":"internal"}],"src":"15916:156:0"},"returnParameters":{"id":678,"nodeType":"ParameterList","parameters":[],"src":"16082:0:0"},"scope":1563,"src":"15886:581:0","stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},{"body":{"id":782,"nodeType":"Block","src":"16651:653:0","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_enum$_ProposalState_$1902","typeString":"enum GovernorBravoDelegateStorageV1.ProposalState"},"id":722,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":718,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":713,"src":"16688:10:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":717,"name":"state","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1043,"src":"16682:5:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_enum$_ProposalState_$1902_$","typeString":"function (uint256) view returns (enum GovernorBravoDelegateStorageV1.ProposalState)"}},"id":719,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16682:17:0","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$1902","typeString":"enum GovernorBravoDelegateStorageV1.ProposalState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":720,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1902,"src":"16703:13:0","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$1902_$","typeString":"type(enum GovernorBravoDelegateStorageV1.ProposalState)"}},"id":721,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Queued","nodeType":"MemberAccess","referencedDeclaration":null,"src":"16703:20:0","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$1902","typeString":"enum GovernorBravoDelegateStorageV1.ProposalState"}},"src":"16682:41:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"476f7665726e6f72427261766f3a3a657865637574653a2070726f706f73616c2063616e206f6e6c7920626520657865637574656420696620697420697320717565756564","id":723,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16737:71:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_5fbf48e8c3a21a3625f21d95c8b2dda12d19a9eb23201ab81343d35beaf2fa53","typeString":"literal_string \"GovernorBravo::execute: proposal can only be executed if it is queued\""},"value":"GovernorBravo::execute: proposal can only be executed if it is queued"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5fbf48e8c3a21a3625f21d95c8b2dda12d19a9eb23201ab81343d35beaf2fa53","typeString":"literal_string \"GovernorBravo::execute: proposal can only be executed if it is queued\""}],"id":716,"name":"require","nodeType":"Identifier","overloadedDeclarations":[5555,5556],"referencedDeclaration":5556,"src":"16661:7:0","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":724,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16661:157:0","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":725,"nodeType":"ExpressionStatement","src":"16661:157:0"},{"assignments":[727],"declarations":[{"constant":false,"id":727,"name":"proposal","nodeType":"VariableDeclaration","scope":782,"src":"16828:25:0","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$1886_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal"},"typeName":{"contractScope":null,"id":726,"name":"Proposal","nodeType":"UserDefinedTypeName","referencedDeclaration":1886,"src":"16828:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$1886_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal"}},"value":null,"visibility":"internal"}],"id":731,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":728,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1843,"src":"16856:9:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$1886_storage_$","typeString":"mapping(uint256 => struct GovernorBravoDelegateStorageV1.Proposal storage ref)"}},"id":730,"indexExpression":{"argumentTypes":null,"id":729,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":713,"src":"16866:10:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16856:21:0","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$1886_storage","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"16828:49:0"},{"expression":{"argumentTypes":null,"id":736,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":732,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":727,"src":"16887:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$1886_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage pointer"}},"id":734,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"executed","nodeType":"MemberAccess","referencedDeclaration":1879,"src":"16887:17:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"hexValue":"74727565","id":735,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"16907:4:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"16887:24:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":737,"nodeType":"ExpressionStatement","src":"16887:24:0"},{"body":{"id":776,"nodeType":"Block","src":"16968:287:0","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":756,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":727,"src":"17066:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$1886_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage pointer"}},"id":757,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"targets","nodeType":"MemberAccess","referencedDeclaration":1856,"src":"17066:16:0","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":759,"indexExpression":{"argumentTypes":null,"id":758,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":739,"src":"17083:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17066:19:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":760,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":727,"src":"17103:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$1886_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage pointer"}},"id":761,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"values","nodeType":"MemberAccess","referencedDeclaration":1859,"src":"17103:15:0","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":763,"indexExpression":{"argumentTypes":null,"id":762,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":739,"src":"17119:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17103:18:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":764,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":727,"src":"17139:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$1886_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage pointer"}},"id":765,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"signatures","nodeType":"MemberAccess","referencedDeclaration":1862,"src":"17139:19:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage","typeString":"string storage ref[] storage ref"}},"id":767,"indexExpression":{"argumentTypes":null,"id":766,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":739,"src":"17159:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17139:22:0","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":768,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":727,"src":"17179:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$1886_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage pointer"}},"id":769,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"calldatas","nodeType":"MemberAccess","referencedDeclaration":1865,"src":"17179:18:0","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage","typeString":"bytes storage ref[] storage ref"}},"id":771,"indexExpression":{"argumentTypes":null,"id":770,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":739,"src":"17198:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17179:21:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":772,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":727,"src":"17218:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$1886_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage pointer"}},"id":773,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"eta","nodeType":"MemberAccess","referencedDeclaration":1853,"src":"17218: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,"baseExpression":{"argumentTypes":null,"id":749,"name":"proposalTimelocks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1928,"src":"16982:17:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_contract$_TimelockInterface_$2007_$","typeString":"mapping(uint256 => contract TimelockInterface)"}},"id":754,"indexExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":751,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":727,"src":"17006:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$1886_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage pointer"}},"id":752,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"proposalType","nodeType":"MemberAccess","referencedDeclaration":1885,"src":"17006:21:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":750,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17000:5:0","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":"uint8"},"id":753,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17000:28:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16982:47:0","typeDescriptions":{"typeIdentifier":"t_contract$_TimelockInterface_$2007","typeString":"contract TimelockInterface"}},"id":755,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"executeTransaction","nodeType":"MemberAccess","referencedDeclaration":2006,"src":"16982:66: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":774,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16982:262:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":775,"nodeType":"ExpressionStatement","src":"16982:262:0"}]},"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":745,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":741,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":739,"src":"16934:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":742,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":727,"src":"16938:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$1886_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage pointer"}},"id":743,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"targets","nodeType":"MemberAccess","referencedDeclaration":1856,"src":"16938:16:0","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":744,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"16938:23:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16934:27:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":777,"initializationExpression":{"assignments":[739],"declarations":[{"constant":false,"id":739,"name":"i","nodeType":"VariableDeclaration","scope":777,"src":"16926:6:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":738,"name":"uint","nodeType":"ElementaryTypeName","src":"16926:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":740,"initialValue":null,"nodeType":"VariableDeclarationStatement","src":"16926:6:0"},"loopExpression":{"expression":{"argumentTypes":null,"id":747,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"16963:3:0","subExpression":{"argumentTypes":null,"id":746,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":739,"src":"16965:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":748,"nodeType":"ExpressionStatement","src":"16963:3:0"},"nodeType":"ForStatement","src":"16921:334:0"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":779,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":713,"src":"17286:10:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":778,"name":"ProposalExecuted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1741,"src":"17269:16:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":780,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17269:28:0","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":781,"nodeType":"EmitStatement","src":"17264:33:0"}]},"documentation":"@notice Executes a queued proposal if eta has passed\n@param proposalId The id of the proposal to execute","id":783,"implemented":true,"kind":"function","modifiers":[],"name":"execute","nodeType":"FunctionDefinition","parameters":{"id":714,"nodeType":"ParameterList","parameters":[{"constant":false,"id":713,"name":"proposalId","nodeType":"VariableDeclaration","scope":783,"src":"16625:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":712,"name":"uint","nodeType":"ElementaryTypeName","src":"16625:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"16624:17:0"},"returnParameters":{"id":715,"nodeType":"ParameterList","parameters":[],"src":"16651:0:0"},"scope":1563,"src":"16608:696:0","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":884,"nodeType":"Block","src":"17547:943:0","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_enum$_ProposalState_$1902","typeString":"enum GovernorBravoDelegateStorageV1.ProposalState"},"id":794,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":790,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":785,"src":"17571:10:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":789,"name":"state","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1043,"src":"17565:5:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_enum$_ProposalState_$1902_$","typeString":"function (uint256) view returns (enum GovernorBravoDelegateStorageV1.ProposalState)"}},"id":791,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17565:17:0","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$1902","typeString":"enum GovernorBravoDelegateStorageV1.ProposalState"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":792,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1902,"src":"17586:13:0","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$1902_$","typeString":"type(enum GovernorBravoDelegateStorageV1.ProposalState)"}},"id":793,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Executed","nodeType":"MemberAccess","referencedDeclaration":null,"src":"17586:22:0","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$1902","typeString":"enum GovernorBravoDelegateStorageV1.ProposalState"}},"src":"17565:43:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"476f7665726e6f72427261766f3a3a63616e63656c3a2063616e6e6f742063616e63656c2065786563757465642070726f706f73616c","id":795,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17610:56:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_d48c38cdee932c14d51343eb15469a6b4385fa79519fea37fc1716c00abad924","typeString":"literal_string \"GovernorBravo::cancel: cannot cancel executed proposal\""},"value":"GovernorBravo::cancel: cannot cancel executed proposal"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d48c38cdee932c14d51343eb15469a6b4385fa79519fea37fc1716c00abad924","typeString":"literal_string \"GovernorBravo::cancel: cannot cancel executed proposal\""}],"id":788,"name":"require","nodeType":"Identifier","overloadedDeclarations":[5555,5556],"referencedDeclaration":5556,"src":"17557:7:0","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":796,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17557:110:0","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":797,"nodeType":"ExpressionStatement","src":"17557:110:0"},{"assignments":[799],"declarations":[{"constant":false,"id":799,"name":"proposal","nodeType":"VariableDeclaration","scope":884,"src":"17678:25:0","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$1886_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal"},"typeName":{"contractScope":null,"id":798,"name":"Proposal","nodeType":"UserDefinedTypeName","referencedDeclaration":1886,"src":"17678:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$1886_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal"}},"value":null,"visibility":"internal"}],"id":803,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":800,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1843,"src":"17706:9:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$1886_storage_$","typeString":"mapping(uint256 => struct GovernorBravoDelegateStorageV1.Proposal storage ref)"}},"id":802,"indexExpression":{"argumentTypes":null,"id":801,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":785,"src":"17716:10:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17706:21:0","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$1886_storage","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"17678:49:0"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":831,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":814,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":808,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":805,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5552,"src":"17758:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":806,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"17758:10:0","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"id":807,"name":"guardian","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1906,"src":"17772:8:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"17758:22:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":813,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":809,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5552,"src":"17800:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":810,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"17800:10:0","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":811,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":799,"src":"17814:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$1886_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage pointer"}},"id":812,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"proposer","nodeType":"MemberAccess","referencedDeclaration":1851,"src":"17814:17:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"17800:31:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"17758:73:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":830,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":817,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":799,"src":"17874:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$1886_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage pointer"}},"id":818,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"proposer","nodeType":"MemberAccess","referencedDeclaration":1851,"src":"17874:17:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":820,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5542,"src":"17900:5:0","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":821,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"number","nodeType":"MemberAccess","referencedDeclaration":null,"src":"17900:12:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"hexValue":"31","id":822,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17914: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":819,"name":"sub256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1537,"src":"17893:6:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":823,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17893:23:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":815,"name":"xvsVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1839,"src":"17851:8:0","typeDescriptions":{"typeIdentifier":"t_contract$_XvsVaultInterface_$2017","typeString":"contract XvsVaultInterface"}},"id":816,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getPriorVotes","nodeType":"MemberAccess","referencedDeclaration":2016,"src":"17851:22:0","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_uint256_$returns$_t_uint96_$","typeString":"function (address,uint256) view external returns (uint96)"}},"id":824,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17851:66:0","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":825,"name":"proposalConfigs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1924,"src":"17936:15:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_ProposalConfig_$1920_storage_$","typeString":"mapping(uint256 => struct GovernorBravoDelegateStorageV2.ProposalConfig storage ref)"}},"id":828,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":826,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":799,"src":"17952:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$1886_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage pointer"}},"id":827,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"proposalType","nodeType":"MemberAccess","referencedDeclaration":1885,"src":"17952:21:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17936:38:0","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalConfig_$1920_storage","typeString":"struct GovernorBravoDelegateStorageV2.ProposalConfig storage ref"}},"id":829,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"proposalThreshold","nodeType":"MemberAccess","referencedDeclaration":1919,"src":"17936:56:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17851:141:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"17758:234:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"476f7665726e6f72427261766f3a3a63616e63656c3a2070726f706f7365722061626f7665207468726573686f6c64","id":832,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18006:49:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_af71986e0c1f80c2512b8b2deae5a125bfd8f0bdb9eb99f370c87681d9dd1dd1","typeString":"literal_string \"GovernorBravo::cancel: proposer above threshold\""},"value":"GovernorBravo::cancel: proposer above threshold"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_af71986e0c1f80c2512b8b2deae5a125bfd8f0bdb9eb99f370c87681d9dd1dd1","typeString":"literal_string \"GovernorBravo::cancel: proposer above threshold\""}],"id":804,"name":"require","nodeType":"Identifier","overloadedDeclarations":[5555,5556],"referencedDeclaration":5556,"src":"17737:7:0","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":833,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17737:328:0","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":834,"nodeType":"ExpressionStatement","src":"17737:328:0"},{"expression":{"argumentTypes":null,"id":839,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":835,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":799,"src":"18076:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$1886_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage pointer"}},"id":837,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"canceled","nodeType":"MemberAccess","referencedDeclaration":1877,"src":"18076:17:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"hexValue":"74727565","id":838,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"18096:4:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"18076:24:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":840,"nodeType":"ExpressionStatement","src":"18076:24:0"},{"body":{"id":878,"nodeType":"Block","src":"18161:279:0","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":858,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":799,"src":"18251:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$1886_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage pointer"}},"id":859,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"targets","nodeType":"MemberAccess","referencedDeclaration":1856,"src":"18251:16:0","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":861,"indexExpression":{"argumentTypes":null,"id":860,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":842,"src":"18268:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18251:19:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":862,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":799,"src":"18288:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$1886_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage pointer"}},"id":863,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"values","nodeType":"MemberAccess","referencedDeclaration":1859,"src":"18288:15:0","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":865,"indexExpression":{"argumentTypes":null,"id":864,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":842,"src":"18304:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18288:18:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":866,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":799,"src":"18324:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$1886_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage pointer"}},"id":867,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"signatures","nodeType":"MemberAccess","referencedDeclaration":1862,"src":"18324:19:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage","typeString":"string storage ref[] storage ref"}},"id":869,"indexExpression":{"argumentTypes":null,"id":868,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":842,"src":"18344:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18324:22:0","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":870,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":799,"src":"18364:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$1886_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage pointer"}},"id":871,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"calldatas","nodeType":"MemberAccess","referencedDeclaration":1865,"src":"18364:18:0","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage","typeString":"bytes storage ref[] storage ref"}},"id":873,"indexExpression":{"argumentTypes":null,"id":872,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":842,"src":"18383:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18364:21:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":874,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":799,"src":"18403:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$1886_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage pointer"}},"id":875,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"eta","nodeType":"MemberAccess","referencedDeclaration":1853,"src":"18403: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,"baseExpression":{"argumentTypes":null,"id":853,"name":"proposalTimelocks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1928,"src":"18175:17:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_contract$_TimelockInterface_$2007_$","typeString":"mapping(uint256 => contract TimelockInterface)"}},"id":856,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":854,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":799,"src":"18193:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$1886_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage pointer"}},"id":855,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"proposalType","nodeType":"MemberAccess","referencedDeclaration":1885,"src":"18193:21:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18175:40:0","typeDescriptions":{"typeIdentifier":"t_contract$_TimelockInterface_$2007","typeString":"contract TimelockInterface"}},"id":857,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"cancelTransaction","nodeType":"MemberAccess","referencedDeclaration":1991,"src":"18175:58: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":876,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18175:254:0","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":877,"nodeType":"ExpressionStatement","src":"18175:254:0"}]},"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":849,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":845,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":842,"src":"18127:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":846,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":799,"src":"18131:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$1886_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage pointer"}},"id":847,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"targets","nodeType":"MemberAccess","referencedDeclaration":1856,"src":"18131:16:0","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":848,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"18131:23:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18127:27:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":879,"initializationExpression":{"assignments":[842],"declarations":[{"constant":false,"id":842,"name":"i","nodeType":"VariableDeclaration","scope":879,"src":"18115:6:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":841,"name":"uint","nodeType":"ElementaryTypeName","src":"18115:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":844,"initialValue":{"argumentTypes":null,"hexValue":"30","id":843,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18124:1:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"18115:10:0"},"loopExpression":{"expression":{"argumentTypes":null,"id":851,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"18156:3:0","subExpression":{"argumentTypes":null,"id":850,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":842,"src":"18156:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":852,"nodeType":"ExpressionStatement","src":"18156:3:0"},"nodeType":"ForStatement","src":"18110:330:0"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":881,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":785,"src":"18472:10:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":880,"name":"ProposalCanceled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1731,"src":"18455:16:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":882,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18455:28:0","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":883,"nodeType":"EmitStatement","src":"18450:33:0"}]},"documentation":"@notice Cancels a proposal only if sender is the proposer, or proposer delegates dropped below proposal threshold\n@param proposalId The id of the proposal to cancel","id":885,"implemented":true,"kind":"function","modifiers":[],"name":"cancel","nodeType":"FunctionDefinition","parameters":{"id":786,"nodeType":"ParameterList","parameters":[{"constant":false,"id":785,"name":"proposalId","nodeType":"VariableDeclaration","scope":885,"src":"17521:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":784,"name":"uint","nodeType":"ElementaryTypeName","src":"17521:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"17520:17:0"},"returnParameters":{"id":787,"nodeType":"ParameterList","parameters":[],"src":"17547:0:0"},"scope":1563,"src":"17505:985:0","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":918,"nodeType":"Block","src":"18888:124:0","statements":[{"assignments":[903],"declarations":[{"constant":false,"id":903,"name":"p","nodeType":"VariableDeclaration","scope":918,"src":"18898:18:0","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$1886_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal"},"typeName":{"contractScope":null,"id":902,"name":"Proposal","nodeType":"UserDefinedTypeName","referencedDeclaration":1886,"src":"18898:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$1886_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal"}},"value":null,"visibility":"internal"}],"id":907,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":904,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1843,"src":"18919:9:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$1886_storage_$","typeString":"mapping(uint256 => struct GovernorBravoDelegateStorageV1.Proposal storage ref)"}},"id":906,"indexExpression":{"argumentTypes":null,"id":905,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":887,"src":"18929:10:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18919:21:0","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$1886_storage","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"18898:42:0"},{"expression":{"argumentTypes":null,"components":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":908,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":903,"src":"18958:1:0","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$1886_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage pointer"}},"id":909,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"targets","nodeType":"MemberAccess","referencedDeclaration":1856,"src":"18958:9:0","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":910,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":903,"src":"18969:1:0","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$1886_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage pointer"}},"id":911,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"values","nodeType":"MemberAccess","referencedDeclaration":1859,"src":"18969:8:0","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":912,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":903,"src":"18979:1:0","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$1886_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage pointer"}},"id":913,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"signatures","nodeType":"MemberAccess","referencedDeclaration":1862,"src":"18979:12:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage","typeString":"string storage ref[] storage ref"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":914,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":903,"src":"18993:1:0","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$1886_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage pointer"}},"id":915,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"calldatas","nodeType":"MemberAccess","referencedDeclaration":1865,"src":"18993:11:0","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage","typeString":"bytes storage ref[] storage ref"}}],"id":916,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"18957: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":901,"id":917,"nodeType":"Return","src":"18950:55:0"}]},"documentation":"@notice Gets actions of a proposal\n@param proposalId the id of the proposal\n@return targets, values, signatures, and calldatas of the proposal actions","id":919,"implemented":true,"kind":"function","modifiers":[],"name":"getActions","nodeType":"FunctionDefinition","parameters":{"id":888,"nodeType":"ParameterList","parameters":[{"constant":false,"id":887,"name":"proposalId","nodeType":"VariableDeclaration","scope":919,"src":"18713:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":886,"name":"uint","nodeType":"ElementaryTypeName","src":"18713:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"18703:31:0"},"returnParameters":{"id":901,"nodeType":"ParameterList","parameters":[{"constant":false,"id":891,"name":"targets","nodeType":"VariableDeclaration","scope":919,"src":"18782:24:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":889,"name":"address","nodeType":"ElementaryTypeName","src":"18782:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":890,"length":null,"nodeType":"ArrayTypeName","src":"18782:9:0","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":894,"name":"values","nodeType":"VariableDeclaration","scope":919,"src":"18808:20:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":892,"name":"uint","nodeType":"ElementaryTypeName","src":"18808:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":893,"length":null,"nodeType":"ArrayTypeName","src":"18808:6:0","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":897,"name":"signatures","nodeType":"VariableDeclaration","scope":919,"src":"18830:26:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_$dyn_memory_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":895,"name":"string","nodeType":"ElementaryTypeName","src":"18830:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":896,"length":null,"nodeType":"ArrayTypeName","src":"18830:8:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":900,"name":"calldatas","nodeType":"VariableDeclaration","scope":919,"src":"18858:24:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":898,"name":"bytes","nodeType":"ElementaryTypeName","src":"18858:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":899,"length":null,"nodeType":"ArrayTypeName","src":"18858:7:0","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"value":null,"visibility":"internal"}],"src":"18781:102:0"},"scope":1563,"src":"18684:328:0","stateMutability":"view","superFunction":null,"visibility":"external"},{"body":{"id":935,"nodeType":"Block","src":"19312:61:0","statements":[{"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":928,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1843,"src":"19329:9:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$1886_storage_$","typeString":"mapping(uint256 => struct GovernorBravoDelegateStorageV1.Proposal storage ref)"}},"id":930,"indexExpression":{"argumentTypes":null,"id":929,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":921,"src":"19339:10:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"19329:21:0","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$1886_storage","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage ref"}},"id":931,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"receipts","nodeType":"MemberAccess","referencedDeclaration":1883,"src":"19329:30:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Receipt_$1893_storage_$","typeString":"mapping(address => struct GovernorBravoDelegateStorageV1.Receipt storage ref)"}},"id":933,"indexExpression":{"argumentTypes":null,"id":932,"name":"voter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":923,"src":"19360:5:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"19329:37:0","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$1893_storage","typeString":"struct GovernorBravoDelegateStorageV1.Receipt storage ref"}},"functionReturnParameters":927,"id":934,"nodeType":"Return","src":"19322:44:0"}]},"documentation":"@notice Gets the receipt for a voter on a given proposal\n@param proposalId the id of proposal\n@param voter The address of the voter\n@return The voting receipt","id":936,"implemented":true,"kind":"function","modifiers":[],"name":"getReceipt","nodeType":"FunctionDefinition","parameters":{"id":924,"nodeType":"ParameterList","parameters":[{"constant":false,"id":921,"name":"proposalId","nodeType":"VariableDeclaration","scope":936,"src":"19241:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":920,"name":"uint","nodeType":"ElementaryTypeName","src":"19241:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":923,"name":"voter","nodeType":"VariableDeclaration","scope":936,"src":"19258:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":922,"name":"address","nodeType":"ElementaryTypeName","src":"19258:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"19240:32:0"},"returnParameters":{"id":927,"nodeType":"ParameterList","parameters":[{"constant":false,"id":926,"name":"","nodeType":"VariableDeclaration","scope":936,"src":"19296:14:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$1893_memory_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Receipt"},"typeName":{"contractScope":null,"id":925,"name":"Receipt","nodeType":"UserDefinedTypeName","referencedDeclaration":1893,"src":"19296:7:0","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$1893_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Receipt"}},"value":null,"visibility":"internal"}],"src":"19295:16:0"},"scope":1563,"src":"19221:152:0","stateMutability":"view","superFunction":null,"visibility":"external"},{"body":{"id":1042,"nodeType":"Block","src":"19585:1066:0","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":950,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":946,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":944,"name":"proposalCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1835,"src":"19616:13:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"argumentTypes":null,"id":945,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":938,"src":"19633:10:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19616:27:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":949,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":947,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":938,"src":"19647:10:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"id":948,"name":"initialProposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1833,"src":"19660:17:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19647:30:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"19616:61:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"476f7665726e6f72427261766f3a3a73746174653a20696e76616c69642070726f706f73616c206964","id":951,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"19691:43:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_e61e89529abd71ebdc7fb8670e3797adfb63b8cd78cee477b188afbc4e6a151a","typeString":"literal_string \"GovernorBravo::state: invalid proposal id\""},"value":"GovernorBravo::state: invalid proposal id"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e61e89529abd71ebdc7fb8670e3797adfb63b8cd78cee477b188afbc4e6a151a","typeString":"literal_string \"GovernorBravo::state: invalid proposal id\""}],"id":943,"name":"require","nodeType":"Identifier","overloadedDeclarations":[5555,5556],"referencedDeclaration":5556,"src":"19595:7:0","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":952,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19595:149:0","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":953,"nodeType":"ExpressionStatement","src":"19595:149:0"},{"assignments":[955],"declarations":[{"constant":false,"id":955,"name":"proposal","nodeType":"VariableDeclaration","scope":1042,"src":"19754:25:0","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$1886_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal"},"typeName":{"contractScope":null,"id":954,"name":"Proposal","nodeType":"UserDefinedTypeName","referencedDeclaration":1886,"src":"19754:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$1886_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal"}},"value":null,"visibility":"internal"}],"id":959,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":956,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1843,"src":"19782:9:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$1886_storage_$","typeString":"mapping(uint256 => struct GovernorBravoDelegateStorageV1.Proposal storage ref)"}},"id":958,"indexExpression":{"argumentTypes":null,"id":957,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":938,"src":"19792:10:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"19782:21:0","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$1886_storage","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"19754:49:0"},{"condition":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":960,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":955,"src":"19817:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$1886_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage pointer"}},"id":961,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"canceled","nodeType":"MemberAccess","referencedDeclaration":1877,"src":"19817:17:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":970,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":966,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5542,"src":"19900:5:0","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":967,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"number","nodeType":"MemberAccess","referencedDeclaration":null,"src":"19900:12:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":968,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":955,"src":"19916:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$1886_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage pointer"}},"id":969,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"startBlock","nodeType":"MemberAccess","referencedDeclaration":1867,"src":"19916:19:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19900:35:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":979,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":975,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5542,"src":"20000:5:0","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":976,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"number","nodeType":"MemberAccess","referencedDeclaration":null,"src":"20000:12:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":977,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":955,"src":"20016:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$1886_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage pointer"}},"id":978,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"endBlock","nodeType":"MemberAccess","referencedDeclaration":1869,"src":"20016:17:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20000:33:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":993,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":988,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":984,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":955,"src":"20097:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$1886_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage pointer"}},"id":985,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"forVotes","nodeType":"MemberAccess","referencedDeclaration":1871,"src":"20097:17:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":986,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":955,"src":"20118:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$1886_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage pointer"}},"id":987,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"againstVotes","nodeType":"MemberAccess","referencedDeclaration":1873,"src":"20118:21:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20097:42:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":992,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":989,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":955,"src":"20143:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$1886_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage pointer"}},"id":990,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"forVotes","nodeType":"MemberAccess","referencedDeclaration":1871,"src":"20143:17:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"id":991,"name":"quorumVotes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19,"src":"20163:11:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20143:31:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"20097:77:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1001,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":998,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":955,"src":"20240:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$1886_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage pointer"}},"id":999,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"eta","nodeType":"MemberAccess","referencedDeclaration":1853,"src":"20240:12:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"30","id":1000,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20256:1:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"20240:17:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1006,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":955,"src":"20324:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$1886_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage pointer"}},"id":1007,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"executed","nodeType":"MemberAccess","referencedDeclaration":1879,"src":"20324:17:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1026,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1012,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5542,"src":"20420:5:0","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":1013,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":null,"src":"20420:15:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1015,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":955,"src":"20446:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$1886_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage pointer"}},"id":1016,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"eta","nodeType":"MemberAccess","referencedDeclaration":1853,"src":"20446:12:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":1017,"name":"proposalTimelocks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1928,"src":"20460:17:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_contract$_TimelockInterface_$2007_$","typeString":"mapping(uint256 => contract TimelockInterface)"}},"id":1022,"indexExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1019,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":955,"src":"20484:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$1886_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage pointer"}},"id":1020,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"proposalType","nodeType":"MemberAccess","referencedDeclaration":1885,"src":"20484:21:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":1018,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20478:5:0","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":"uint8"},"id":1021,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20478:28:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20460:47:0","typeDescriptions":{"typeIdentifier":"t_contract$_TimelockInterface_$2007","typeString":"contract TimelockInterface"}},"id":1023,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"GRACE_PERIOD","nodeType":"MemberAccess","referencedDeclaration":1953,"src":"20460:60:0","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":1024,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20460:62:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1014,"name":"add256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1516,"src":"20439:6:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":1025,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20439:84:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20420:103:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":1034,"nodeType":"Block","src":"20593:52:0","statements":[{"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1031,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1902,"src":"20614:13:0","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$1902_$","typeString":"type(enum GovernorBravoDelegateStorageV1.ProposalState)"}},"id":1032,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Queued","nodeType":"MemberAccess","referencedDeclaration":null,"src":"20614:20:0","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$1902","typeString":"enum GovernorBravoDelegateStorageV1.ProposalState"}},"functionReturnParameters":942,"id":1033,"nodeType":"Return","src":"20607:27:0"}]},"id":1035,"nodeType":"IfStatement","src":"20403:242:0","trueBody":{"id":1030,"nodeType":"Block","src":"20534:53:0","statements":[{"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1027,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1902,"src":"20555:13:0","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$1902_$","typeString":"type(enum GovernorBravoDelegateStorageV1.ProposalState)"}},"id":1028,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Expired","nodeType":"MemberAccess","referencedDeclaration":null,"src":"20555:21:0","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$1902","typeString":"enum GovernorBravoDelegateStorageV1.ProposalState"}},"functionReturnParameters":942,"id":1029,"nodeType":"Return","src":"20548:28:0"}]}},"id":1036,"nodeType":"IfStatement","src":"20320:325:0","trueBody":{"id":1011,"nodeType":"Block","src":"20343:54:0","statements":[{"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1008,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1902,"src":"20364:13:0","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$1902_$","typeString":"type(enum GovernorBravoDelegateStorageV1.ProposalState)"}},"id":1009,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Executed","nodeType":"MemberAccess","referencedDeclaration":null,"src":"20364:22:0","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$1902","typeString":"enum GovernorBravoDelegateStorageV1.ProposalState"}},"functionReturnParameters":942,"id":1010,"nodeType":"Return","src":"20357:29:0"}]}},"id":1037,"nodeType":"IfStatement","src":"20236:409:0","trueBody":{"id":1005,"nodeType":"Block","src":"20259:55:0","statements":[{"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1002,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1902,"src":"20280:13:0","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$1902_$","typeString":"type(enum GovernorBravoDelegateStorageV1.ProposalState)"}},"id":1003,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Succeeded","nodeType":"MemberAccess","referencedDeclaration":null,"src":"20280:23:0","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$1902","typeString":"enum GovernorBravoDelegateStorageV1.ProposalState"}},"functionReturnParameters":942,"id":1004,"nodeType":"Return","src":"20273:30:0"}]}},"id":1038,"nodeType":"IfStatement","src":"20093:552:0","trueBody":{"id":997,"nodeType":"Block","src":"20176:54:0","statements":[{"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":994,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1902,"src":"20197:13:0","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$1902_$","typeString":"type(enum GovernorBravoDelegateStorageV1.ProposalState)"}},"id":995,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Defeated","nodeType":"MemberAccess","referencedDeclaration":null,"src":"20197:22:0","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$1902","typeString":"enum GovernorBravoDelegateStorageV1.ProposalState"}},"functionReturnParameters":942,"id":996,"nodeType":"Return","src":"20190:29:0"}]}},"id":1039,"nodeType":"IfStatement","src":"19996:649:0","trueBody":{"id":983,"nodeType":"Block","src":"20035:52:0","statements":[{"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":980,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1902,"src":"20056:13:0","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$1902_$","typeString":"type(enum GovernorBravoDelegateStorageV1.ProposalState)"}},"id":981,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Active","nodeType":"MemberAccess","referencedDeclaration":null,"src":"20056:20:0","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$1902","typeString":"enum GovernorBravoDelegateStorageV1.ProposalState"}},"functionReturnParameters":942,"id":982,"nodeType":"Return","src":"20049:27:0"}]}},"id":1040,"nodeType":"IfStatement","src":"19896:749:0","trueBody":{"id":974,"nodeType":"Block","src":"19937:53:0","statements":[{"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":971,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1902,"src":"19958:13:0","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$1902_$","typeString":"type(enum GovernorBravoDelegateStorageV1.ProposalState)"}},"id":972,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Pending","nodeType":"MemberAccess","referencedDeclaration":null,"src":"19958:21:0","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$1902","typeString":"enum GovernorBravoDelegateStorageV1.ProposalState"}},"functionReturnParameters":942,"id":973,"nodeType":"Return","src":"19951:28:0"}]}},"id":1041,"nodeType":"IfStatement","src":"19813:832:0","trueBody":{"id":965,"nodeType":"Block","src":"19836:54:0","statements":[{"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":962,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1902,"src":"19857:13:0","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$1902_$","typeString":"type(enum GovernorBravoDelegateStorageV1.ProposalState)"}},"id":963,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Canceled","nodeType":"MemberAccess","referencedDeclaration":null,"src":"19857:22:0","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$1902","typeString":"enum GovernorBravoDelegateStorageV1.ProposalState"}},"functionReturnParameters":942,"id":964,"nodeType":"Return","src":"19850:29:0"}]}}]},"documentation":"@notice Gets the state of a proposal\n@param proposalId The id of the proposal\n@return Proposal state","id":1043,"implemented":true,"kind":"function","modifiers":[],"name":"state","nodeType":"FunctionDefinition","parameters":{"id":939,"nodeType":"ParameterList","parameters":[{"constant":false,"id":938,"name":"proposalId","nodeType":"VariableDeclaration","scope":1043,"src":"19532:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":937,"name":"uint","nodeType":"ElementaryTypeName","src":"19532:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"19531:17:0"},"returnParameters":{"id":942,"nodeType":"ParameterList","parameters":[{"constant":false,"id":941,"name":"","nodeType":"VariableDeclaration","scope":1043,"src":"19570:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$1902","typeString":"enum GovernorBravoDelegateStorageV1.ProposalState"},"typeName":{"contractScope":null,"id":940,"name":"ProposalState","nodeType":"UserDefinedTypeName","referencedDeclaration":1902,"src":"19570:13:0","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$1902","typeString":"enum GovernorBravoDelegateStorageV1.ProposalState"}},"value":null,"visibility":"internal"}],"src":"19569:15:0"},"scope":1563,"src":"19517:1134:0","stateMutability":"view","superFunction":null,"visibility":"public"},{"body":{"id":1064,"nodeType":"Block","src":"20915:118:0","statements":[{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1051,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5552,"src":"20939:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1052,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"20939:10:0","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":1053,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1045,"src":"20951:10:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":1054,"name":"support","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1047,"src":"20963:7:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1056,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5552,"src":"20989:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1057,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"20989:10:0","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":1058,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1045,"src":"21001:10:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":1059,"name":"support","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1047,"src":"21013:7:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":1055,"name":"castVoteInternal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1298,"src":"20972:16:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint8_$returns$_t_uint96_$","typeString":"function (address,uint256,uint8) returns (uint96)"}},"id":1060,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20972:49:0","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},{"argumentTypes":null,"hexValue":"","id":1061,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"21023:2:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_uint96","typeString":"uint96"},{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":1050,"name":"VoteCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1727,"src":"20930:8:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint8_$_t_uint256_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,uint256,uint8,uint256,string memory)"}},"id":1062,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20930:96:0","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1063,"nodeType":"EmitStatement","src":"20925:101:0"}]},"documentation":"@notice Cast a vote for a proposal\n@param proposalId The id of the proposal to vote on\n@param support The support value for the vote. 0=against, 1=for, 2=abstain","id":1065,"implemented":true,"kind":"function","modifiers":[],"name":"castVote","nodeType":"FunctionDefinition","parameters":{"id":1048,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1045,"name":"proposalId","nodeType":"VariableDeclaration","scope":1065,"src":"20874:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1044,"name":"uint","nodeType":"ElementaryTypeName","src":"20874:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":1047,"name":"support","nodeType":"VariableDeclaration","scope":1065,"src":"20891:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1046,"name":"uint8","nodeType":"ElementaryTypeName","src":"20891:5:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":null,"visibility":"internal"}],"src":"20873:32:0"},"returnParameters":{"id":1049,"nodeType":"ParameterList","parameters":[],"src":"20915:0:0"},"scope":1563,"src":"20856:177:0","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":1088,"nodeType":"Block","src":"21409:122:0","statements":[{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1075,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5552,"src":"21433:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1076,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"21433:10:0","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":1077,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1067,"src":"21445:10:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":1078,"name":"support","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1069,"src":"21457:7:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1080,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5552,"src":"21483:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1081,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"21483:10:0","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":1082,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1067,"src":"21495:10:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":1083,"name":"support","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1069,"src":"21507:7:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":1079,"name":"castVoteInternal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1298,"src":"21466:16:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint8_$returns$_t_uint96_$","typeString":"function (address,uint256,uint8) returns (uint96)"}},"id":1084,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"21466:49:0","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},{"argumentTypes":null,"id":1085,"name":"reason","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1071,"src":"21517:6:0","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_uint96","typeString":"uint96"},{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}],"id":1074,"name":"VoteCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1727,"src":"21424:8:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint8_$_t_uint256_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,uint256,uint8,uint256,string memory)"}},"id":1086,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"21424:100:0","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1087,"nodeType":"EmitStatement","src":"21419:105:0"}]},"documentation":"@notice Cast a vote for a proposal with a reason\n@param proposalId The id of the proposal to vote on\n@param support The support value for the vote. 0=against, 1=for, 2=abstain\n@param reason The reason given for the vote by the voter","id":1089,"implemented":true,"kind":"function","modifiers":[],"name":"castVoteWithReason","nodeType":"FunctionDefinition","parameters":{"id":1072,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1067,"name":"proposalId","nodeType":"VariableDeclaration","scope":1089,"src":"21344:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1066,"name":"uint","nodeType":"ElementaryTypeName","src":"21344:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":1069,"name":"support","nodeType":"VariableDeclaration","scope":1089,"src":"21361:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1068,"name":"uint8","nodeType":"ElementaryTypeName","src":"21361:5:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":null,"visibility":"internal"},{"constant":false,"id":1071,"name":"reason","nodeType":"VariableDeclaration","scope":1089,"src":"21376:22:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":1070,"name":"string","nodeType":"ElementaryTypeName","src":"21376:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"}],"src":"21343:56:0"},"returnParameters":{"id":1073,"nodeType":"ParameterList","parameters":[],"src":"21409:0:0"},"scope":1563,"src":"21316:215:0","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":1173,"nodeType":"Block","src":"22068:607:0","statements":[{"assignments":[1103],"declarations":[{"constant":false,"id":1103,"name":"domainSeparator","nodeType":"VariableDeclaration","scope":1173,"src":"22078:23:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1102,"name":"bytes32","nodeType":"ElementaryTypeName","src":"22078:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"id":1120,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1107,"name":"DOMAIN_TYPEHASH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24,"src":"22138:15:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1110,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10,"src":"22171:4:0","typeDescriptions":{"typeIdentifier":"t_string_memory","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory","typeString":"string memory"}],"id":1109,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22165:5:0","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":"bytes"},"id":1111,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"22165:11:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":1108,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5546,"src":"22155:9:0","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":1112,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"22155:22:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"id":1113,"name":"getChainIdInternal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1549,"src":"22179:18:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_uint256_$","typeString":"function () pure returns (uint256)"}},"id":1114,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"22179:20:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1116,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5582,"src":"22209:4:0","typeDescriptions":{"typeIdentifier":"t_contract$_GovernorBravoDelegate_$1563","typeString":"contract GovernorBravoDelegate"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GovernorBravoDelegate_$1563","typeString":"contract GovernorBravoDelegate"}],"id":1115,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22201:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":1117,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"22201: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":1105,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5539,"src":"22127:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":1106,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","referencedDeclaration":null,"src":"22127:10:0","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":1118,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"22127:88:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":1104,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5546,"src":"22104:9:0","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":1119,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"22104:121:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"22078:147:0"},{"assignments":[1122],"declarations":[{"constant":false,"id":1122,"name":"structHash","nodeType":"VariableDeclaration","scope":1173,"src":"22235:18:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1121,"name":"bytes32","nodeType":"ElementaryTypeName","src":"22235:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"id":1131,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1126,"name":"BALLOT_TYPEHASH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29,"src":"22277:15:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":1127,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1091,"src":"22294:10:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":1128,"name":"support","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1093,"src":"22306:7:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"argumentTypes":null,"id":1124,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5539,"src":"22266:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":1125,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","referencedDeclaration":null,"src":"22266:10:0","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":1129,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"22266:48:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":1123,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5546,"src":"22256:9:0","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":1130,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"22256:59:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"22235:80:0"},{"assignments":[1133],"declarations":[{"constant":false,"id":1133,"name":"digest","nodeType":"VariableDeclaration","scope":1173,"src":"22325:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1132,"name":"bytes32","nodeType":"ElementaryTypeName","src":"22325:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"id":1142,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"1901","id":1137,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"22369:10:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541","typeString":"literal_string \"\u0019\u0001\""},"value":"\u0019\u0001"},{"argumentTypes":null,"id":1138,"name":"domainSeparator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1103,"src":"22381:15:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":1139,"name":"structHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1122,"src":"22398: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":1135,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5539,"src":"22352:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":1136,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","referencedDeclaration":null,"src":"22352:16:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":1140,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"22352:57:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":1134,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5546,"src":"22342:9:0","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":1141,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"22342:68:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"22325:85:0"},{"assignments":[1144],"declarations":[{"constant":false,"id":1144,"name":"signatory","nodeType":"VariableDeclaration","scope":1173,"src":"22420:17:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1143,"name":"address","nodeType":"ElementaryTypeName","src":"22420:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"id":1151,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1146,"name":"digest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1133,"src":"22450:6:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":1147,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1095,"src":"22458:1:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"argumentTypes":null,"id":1148,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1097,"src":"22461:1:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":1149,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1099,"src":"22464: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":1145,"name":"ecrecover","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5544,"src":"22440: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":1150,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"22440:26:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"22420:46:0"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1157,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":1153,"name":"signatory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1144,"src":"22484:9:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":1155,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22505: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":1154,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22497:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":1156,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"22497:10:0","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"22484:23:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"476f7665726e6f72427261766f3a3a63617374566f746542795369673a20696e76616c6964207369676e6174757265","id":1158,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"22509:49:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_606b6b9610d6d8b33c2c9914e54c767f3ea3c0ecf287b2262a751d4ec2b89d60","typeString":"literal_string \"GovernorBravo::castVoteBySig: invalid signature\""},"value":"GovernorBravo::castVoteBySig: invalid signature"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_606b6b9610d6d8b33c2c9914e54c767f3ea3c0ecf287b2262a751d4ec2b89d60","typeString":"literal_string \"GovernorBravo::castVoteBySig: invalid signature\""}],"id":1152,"name":"require","nodeType":"Identifier","overloadedDeclarations":[5555,5556],"referencedDeclaration":5556,"src":"22476:7:0","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1159,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"22476:83:0","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1160,"nodeType":"ExpressionStatement","src":"22476:83:0"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1162,"name":"signatory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1144,"src":"22583:9:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":1163,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1091,"src":"22594:10:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":1164,"name":"support","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1093,"src":"22606:7:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1166,"name":"signatory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1144,"src":"22632:9:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":1167,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1091,"src":"22643:10:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":1168,"name":"support","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1093,"src":"22655:7:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":1165,"name":"castVoteInternal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1298,"src":"22615:16:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint8_$returns$_t_uint96_$","typeString":"function (address,uint256,uint8) returns (uint96)"}},"id":1169,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"22615:48:0","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},{"argumentTypes":null,"hexValue":"","id":1170,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"22665:2:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_uint96","typeString":"uint96"},{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":1161,"name":"VoteCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1727,"src":"22574:8:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint8_$_t_uint256_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,uint256,uint8,uint256,string memory)"}},"id":1171,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"22574:94:0","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1172,"nodeType":"EmitStatement","src":"22569:99:0"}]},"documentation":"@notice Cast a vote for a proposal by signature\n@dev External function that accepts EIP-712 signatures for voting on proposals.\n@param proposalId The id of the proposal to vote on\n@param support The support value for the vote. 0=against, 1=for, 2=abstain\n@param v recovery id of ECDSA signature\n@param r part of the ECDSA sig output\n@param s part of the ECDSA sig output","id":1174,"implemented":true,"kind":"function","modifiers":[],"name":"castVoteBySig","nodeType":"FunctionDefinition","parameters":{"id":1100,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1091,"name":"proposalId","nodeType":"VariableDeclaration","scope":1174,"src":"21996:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1090,"name":"uint","nodeType":"ElementaryTypeName","src":"21996:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":1093,"name":"support","nodeType":"VariableDeclaration","scope":1174,"src":"22013:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1092,"name":"uint8","nodeType":"ElementaryTypeName","src":"22013:5:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":null,"visibility":"internal"},{"constant":false,"id":1095,"name":"v","nodeType":"VariableDeclaration","scope":1174,"src":"22028:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1094,"name":"uint8","nodeType":"ElementaryTypeName","src":"22028:5:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":null,"visibility":"internal"},{"constant":false,"id":1097,"name":"r","nodeType":"VariableDeclaration","scope":1174,"src":"22037:9:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1096,"name":"bytes32","nodeType":"ElementaryTypeName","src":"22037:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":1099,"name":"s","nodeType":"VariableDeclaration","scope":1174,"src":"22048:9:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1098,"name":"bytes32","nodeType":"ElementaryTypeName","src":"22048:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"21995:63:0"},"returnParameters":{"id":1101,"nodeType":"ParameterList","parameters":[],"src":"22068:0:0"},"scope":1563,"src":"21973:702:0","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":1297,"nodeType":"Block","src":"23096:945:0","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_enum$_ProposalState_$1902","typeString":"enum GovernorBravoDelegateStorageV1.ProposalState"},"id":1191,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1187,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1178,"src":"23120:10:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1186,"name":"state","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1043,"src":"23114:5:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_enum$_ProposalState_$1902_$","typeString":"function (uint256) view returns (enum GovernorBravoDelegateStorageV1.ProposalState)"}},"id":1188,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"23114:17:0","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$1902","typeString":"enum GovernorBravoDelegateStorageV1.ProposalState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1189,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1902,"src":"23135:13:0","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$1902_$","typeString":"type(enum GovernorBravoDelegateStorageV1.ProposalState)"}},"id":1190,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Active","nodeType":"MemberAccess","referencedDeclaration":null,"src":"23135:20:0","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$1902","typeString":"enum GovernorBravoDelegateStorageV1.ProposalState"}},"src":"23114:41:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"476f7665726e6f72427261766f3a3a63617374566f7465496e7465726e616c3a20766f74696e6720697320636c6f736564","id":1192,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"23157:51:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_4d8168be21aac620ed72791717aa2911167b316e34d177cc4b315ea45590cb98","typeString":"literal_string \"GovernorBravo::castVoteInternal: voting is closed\""},"value":"GovernorBravo::castVoteInternal: voting is closed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_4d8168be21aac620ed72791717aa2911167b316e34d177cc4b315ea45590cb98","typeString":"literal_string \"GovernorBravo::castVoteInternal: voting is closed\""}],"id":1185,"name":"require","nodeType":"Identifier","overloadedDeclarations":[5555,5556],"referencedDeclaration":5556,"src":"23106:7:0","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1193,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"23106:103:0","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1194,"nodeType":"ExpressionStatement","src":"23106:103:0"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":1198,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":1196,"name":"support","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1180,"src":"23227:7:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"argumentTypes":null,"hexValue":"32","id":1197,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23238:1:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"23227:12:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"476f7665726e6f72427261766f3a3a63617374566f7465496e7465726e616c3a20696e76616c696420766f74652074797065","id":1199,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"23241:52:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_08ca01306f73add02bd237ec4eb9b88988c263b20bc18a865949156e713112d3","typeString":"literal_string \"GovernorBravo::castVoteInternal: invalid vote type\""},"value":"GovernorBravo::castVoteInternal: invalid vote type"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_08ca01306f73add02bd237ec4eb9b88988c263b20bc18a865949156e713112d3","typeString":"literal_string \"GovernorBravo::castVoteInternal: invalid vote type\""}],"id":1195,"name":"require","nodeType":"Identifier","overloadedDeclarations":[5555,5556],"referencedDeclaration":5556,"src":"23219:7:0","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1200,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"23219:75:0","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1201,"nodeType":"ExpressionStatement","src":"23219:75:0"},{"assignments":[1203],"declarations":[{"constant":false,"id":1203,"name":"proposal","nodeType":"VariableDeclaration","scope":1297,"src":"23304:25:0","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$1886_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal"},"typeName":{"contractScope":null,"id":1202,"name":"Proposal","nodeType":"UserDefinedTypeName","referencedDeclaration":1886,"src":"23304:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$1886_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal"}},"value":null,"visibility":"internal"}],"id":1207,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":1204,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1843,"src":"23332:9:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$1886_storage_$","typeString":"mapping(uint256 => struct GovernorBravoDelegateStorageV1.Proposal storage ref)"}},"id":1206,"indexExpression":{"argumentTypes":null,"id":1205,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1178,"src":"23342:10:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"23332:21:0","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$1886_storage","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"23304:49:0"},{"assignments":[1209],"declarations":[{"constant":false,"id":1209,"name":"receipt","nodeType":"VariableDeclaration","scope":1297,"src":"23363:23:0","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$1893_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Receipt"},"typeName":{"contractScope":null,"id":1208,"name":"Receipt","nodeType":"UserDefinedTypeName","referencedDeclaration":1893,"src":"23363:7:0","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$1893_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Receipt"}},"value":null,"visibility":"internal"}],"id":1214,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1210,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1203,"src":"23389:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$1886_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage pointer"}},"id":1211,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"receipts","nodeType":"MemberAccess","referencedDeclaration":1883,"src":"23389:17:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Receipt_$1893_storage_$","typeString":"mapping(address => struct GovernorBravoDelegateStorageV1.Receipt storage ref)"}},"id":1213,"indexExpression":{"argumentTypes":null,"id":1212,"name":"voter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1176,"src":"23407:5:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"23389:24:0","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$1893_storage","typeString":"struct GovernorBravoDelegateStorageV1.Receipt storage ref"}},"nodeType":"VariableDeclarationStatement","src":"23363:50:0"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":1219,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1216,"name":"receipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1209,"src":"23431:7:0","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$1893_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Receipt storage pointer"}},"id":1217,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"hasVoted","nodeType":"MemberAccess","referencedDeclaration":1888,"src":"23431:16:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"66616c7365","id":1218,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"23451:5:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"23431:25:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"476f7665726e6f72427261766f3a3a63617374566f7465496e7465726e616c3a20766f74657220616c726561647920766f746564","id":1220,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"23458:54:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_4db4ad45458d858d12fec9cccfea17def9275e2163ec97403e3da078a04e1a11","typeString":"literal_string \"GovernorBravo::castVoteInternal: voter already voted\""},"value":"GovernorBravo::castVoteInternal: voter already voted"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_4db4ad45458d858d12fec9cccfea17def9275e2163ec97403e3da078a04e1a11","typeString":"literal_string \"GovernorBravo::castVoteInternal: voter already voted\""}],"id":1215,"name":"require","nodeType":"Identifier","overloadedDeclarations":[5555,5556],"referencedDeclaration":5556,"src":"23423:7:0","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1221,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"23423:90:0","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1222,"nodeType":"ExpressionStatement","src":"23423:90:0"},{"assignments":[1224],"declarations":[{"constant":false,"id":1224,"name":"votes","nodeType":"VariableDeclaration","scope":1297,"src":"23523:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":1223,"name":"uint96","nodeType":"ElementaryTypeName","src":"23523:6:0","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"value":null,"visibility":"internal"}],"id":1231,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1227,"name":"voter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1176,"src":"23561:5:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1228,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1203,"src":"23568:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$1886_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage pointer"}},"id":1229,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"startBlock","nodeType":"MemberAccess","referencedDeclaration":1867,"src":"23568:19:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":1225,"name":"xvsVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1839,"src":"23538:8:0","typeDescriptions":{"typeIdentifier":"t_contract$_XvsVaultInterface_$2017","typeString":"contract XvsVaultInterface"}},"id":1226,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getPriorVotes","nodeType":"MemberAccess","referencedDeclaration":2016,"src":"23538:22:0","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_uint256_$returns$_t_uint96_$","typeString":"function (address,uint256) view external returns (uint96)"}},"id":1230,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"23538:50:0","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"nodeType":"VariableDeclarationStatement","src":"23523:65:0"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":1234,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":1232,"name":"support","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1180,"src":"23603:7:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"30","id":1233,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23614:1:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"23603:12:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":1248,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":1246,"name":"support","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1180,"src":"23712:7:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"31","id":1247,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23723:1:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"23712:12:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":1262,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":1260,"name":"support","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1180,"src":"23813:7:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"32","id":1261,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23824:1:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"23813:12:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":1274,"nodeType":"IfStatement","src":"23809:103:0","trueBody":{"id":1273,"nodeType":"Block","src":"23827:85:0","statements":[{"expression":{"argumentTypes":null,"id":1271,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1263,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1203,"src":"23841:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$1886_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage pointer"}},"id":1265,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"abstainVotes","nodeType":"MemberAccess","referencedDeclaration":1875,"src":"23841:21:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1267,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1203,"src":"23872:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$1886_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage pointer"}},"id":1268,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"abstainVotes","nodeType":"MemberAccess","referencedDeclaration":1875,"src":"23872:21:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":1269,"name":"votes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1224,"src":"23895:5:0","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint96","typeString":"uint96"}],"id":1266,"name":"add256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1516,"src":"23865:6:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":1270,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"23865:36:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23841:60:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1272,"nodeType":"ExpressionStatement","src":"23841:60:0"}]}},"id":1275,"nodeType":"IfStatement","src":"23708:204:0","trueBody":{"id":1259,"nodeType":"Block","src":"23726:77:0","statements":[{"expression":{"argumentTypes":null,"id":1257,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1249,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1203,"src":"23740:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$1886_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage pointer"}},"id":1251,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"forVotes","nodeType":"MemberAccess","referencedDeclaration":1871,"src":"23740:17:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1253,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1203,"src":"23767:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$1886_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage pointer"}},"id":1254,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"forVotes","nodeType":"MemberAccess","referencedDeclaration":1871,"src":"23767:17:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":1255,"name":"votes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1224,"src":"23786:5:0","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint96","typeString":"uint96"}],"id":1252,"name":"add256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1516,"src":"23760:6:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":1256,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"23760:32:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23740:52:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1258,"nodeType":"ExpressionStatement","src":"23740:52:0"}]}},"id":1276,"nodeType":"IfStatement","src":"23599:313:0","trueBody":{"id":1245,"nodeType":"Block","src":"23617:85:0","statements":[{"expression":{"argumentTypes":null,"id":1243,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1235,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1203,"src":"23631:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$1886_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage pointer"}},"id":1237,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"againstVotes","nodeType":"MemberAccess","referencedDeclaration":1873,"src":"23631:21:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1239,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1203,"src":"23662:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$1886_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage pointer"}},"id":1240,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"againstVotes","nodeType":"MemberAccess","referencedDeclaration":1873,"src":"23662:21:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":1241,"name":"votes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1224,"src":"23685:5:0","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint96","typeString":"uint96"}],"id":1238,"name":"add256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1516,"src":"23655:6:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":1242,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"23655:36:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23631:60:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1244,"nodeType":"ExpressionStatement","src":"23631:60:0"}]}},{"expression":{"argumentTypes":null,"id":1281,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1277,"name":"receipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1209,"src":"23922:7:0","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$1893_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Receipt storage pointer"}},"id":1279,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"hasVoted","nodeType":"MemberAccess","referencedDeclaration":1888,"src":"23922:16:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"hexValue":"74727565","id":1280,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"23941:4:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"23922:23:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1282,"nodeType":"ExpressionStatement","src":"23922:23:0"},{"expression":{"argumentTypes":null,"id":1287,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1283,"name":"receipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1209,"src":"23955:7:0","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$1893_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Receipt storage pointer"}},"id":1285,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"support","nodeType":"MemberAccess","referencedDeclaration":1890,"src":"23955:15:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":1286,"name":"support","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1180,"src":"23973:7:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"23955:25:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":1288,"nodeType":"ExpressionStatement","src":"23955:25:0"},{"expression":{"argumentTypes":null,"id":1293,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1289,"name":"receipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1209,"src":"23990:7:0","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$1893_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Receipt storage pointer"}},"id":1291,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"votes","nodeType":"MemberAccess","referencedDeclaration":1892,"src":"23990:13:0","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":1292,"name":"votes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1224,"src":"24006:5:0","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"src":"23990:21:0","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"id":1294,"nodeType":"ExpressionStatement","src":"23990:21:0"},{"expression":{"argumentTypes":null,"id":1295,"name":"votes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1224,"src":"24029:5:0","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"functionReturnParameters":1184,"id":1296,"nodeType":"Return","src":"24022:12:0"}]},"documentation":"@notice Internal function that caries out voting logic\n@param voter The voter that is casting their vote\n@param proposalId The id of the proposal to vote on\n@param support The support value for the vote. 0=against, 1=for, 2=abstain\n@return The number of votes cast","id":1298,"implemented":true,"kind":"function","modifiers":[],"name":"castVoteInternal","nodeType":"FunctionDefinition","parameters":{"id":1181,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1176,"name":"voter","nodeType":"VariableDeclaration","scope":1298,"src":"23023:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1175,"name":"address","nodeType":"ElementaryTypeName","src":"23023:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":1178,"name":"proposalId","nodeType":"VariableDeclaration","scope":1298,"src":"23038:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1177,"name":"uint","nodeType":"ElementaryTypeName","src":"23038:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":1180,"name":"support","nodeType":"VariableDeclaration","scope":1298,"src":"23055:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1179,"name":"uint8","nodeType":"ElementaryTypeName","src":"23055:5:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":null,"visibility":"internal"}],"src":"23022:47:0"},"returnParameters":{"id":1184,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1183,"name":"","nodeType":"VariableDeclaration","scope":1298,"src":"23088:6:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":1182,"name":"uint96","nodeType":"ElementaryTypeName","src":"23088:6:0","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"value":null,"visibility":"internal"}],"src":"23087:8:0"},"scope":1563,"src":"22997:1044:0","stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},{"body":{"id":1338,"nodeType":"Block","src":"24221:358:0","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":1312,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1307,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1304,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5552,"src":"24239:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1305,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"24239:10:0","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"id":1306,"name":"guardian","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1906,"src":"24253:8:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"24239:22:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1311,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1308,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5552,"src":"24265:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1309,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"24265:10:0","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"id":1310,"name":"admin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1818,"src":"24279:5:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"24265:19:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"24239:45:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"476f7665726e6f72427261766f3a3a5f736574477561726469616e3a2061646d696e206f7220677561726469616e206f6e6c79","id":1313,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"24286:53:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_f13903e1eabc7759eed6c0bff3ddcc707d2fd566e366ac64c25fa90624578ecc","typeString":"literal_string \"GovernorBravo::_setGuardian: admin or guardian only\""},"value":"GovernorBravo::_setGuardian: admin or guardian only"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f13903e1eabc7759eed6c0bff3ddcc707d2fd566e366ac64c25fa90624578ecc","typeString":"literal_string \"GovernorBravo::_setGuardian: admin or guardian only\""}],"id":1303,"name":"require","nodeType":"Identifier","overloadedDeclarations":[5555,5556],"referencedDeclaration":5556,"src":"24231:7:0","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1314,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"24231:109:0","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1315,"nodeType":"ExpressionStatement","src":"24231:109:0"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1321,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":1317,"name":"newGuardian","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1300,"src":"24358:11:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":1319,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24381: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":1318,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"24373:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":1320,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"24373:10:0","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"24358:25:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"476f7665726e6f72427261766f3a3a5f736574477561726469616e3a2063616e6e6f74206c69766520776974686f7574206120677561726469616e","id":1322,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"24385:61:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_eefe3d246cd1a613548764705d4b203394f59e072e13911ce8f5cea82fc81a5c","typeString":"literal_string \"GovernorBravo::_setGuardian: cannot live without a guardian\""},"value":"GovernorBravo::_setGuardian: cannot live without a guardian"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_eefe3d246cd1a613548764705d4b203394f59e072e13911ce8f5cea82fc81a5c","typeString":"literal_string \"GovernorBravo::_setGuardian: cannot live without a guardian\""}],"id":1316,"name":"require","nodeType":"Identifier","overloadedDeclarations":[5555,5556],"referencedDeclaration":5556,"src":"24350:7:0","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1323,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"24350:97:0","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1324,"nodeType":"ExpressionStatement","src":"24350:97:0"},{"assignments":[1326],"declarations":[{"constant":false,"id":1326,"name":"oldGuardian","nodeType":"VariableDeclaration","scope":1338,"src":"24457:19:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1325,"name":"address","nodeType":"ElementaryTypeName","src":"24457:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"id":1328,"initialValue":{"argumentTypes":null,"id":1327,"name":"guardian","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1906,"src":"24479:8:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"24457:30:0"},{"expression":{"argumentTypes":null,"id":1331,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":1329,"name":"guardian","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1906,"src":"24497:8:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":1330,"name":"newGuardian","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1300,"src":"24508:11:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"24497:22:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1332,"nodeType":"ExpressionStatement","src":"24497:22:0"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1334,"name":"oldGuardian","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1326,"src":"24547:11:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":1335,"name":"newGuardian","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1300,"src":"24560:11:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":1333,"name":"NewGuardian","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1783,"src":"24535:11:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":1336,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"24535:37:0","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1337,"nodeType":"EmitStatement","src":"24530:42:0"}]},"documentation":"@notice Sets the new governance guardian\n@param newGuardian the address of the new guardian","id":1339,"implemented":true,"kind":"function","modifiers":[],"name":"_setGuardian","nodeType":"FunctionDefinition","parameters":{"id":1301,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1300,"name":"newGuardian","nodeType":"VariableDeclaration","scope":1339,"src":"24191:19:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1299,"name":"address","nodeType":"ElementaryTypeName","src":"24191:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"24190:21:0"},"returnParameters":{"id":1302,"nodeType":"ParameterList","parameters":[],"src":"24221:0:0"},"scope":1563,"src":"24169:410:0","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":1389,"nodeType":"Block","src":"24918:420:0","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1348,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1345,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5552,"src":"24936:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1346,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"24936:10:0","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"id":1347,"name":"admin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1818,"src":"24950:5:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"24936:19:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"476f7665726e6f72427261766f3a3a5f696e6974696174653a2061646d696e206f6e6c79","id":1349,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"24957:38:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_c71cb3e7fc78df5497c78b1de8f5dd56ad9be94f8e673bd31105debcc4940e0c","typeString":"literal_string \"GovernorBravo::_initiate: admin only\""},"value":"GovernorBravo::_initiate: admin only"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c71cb3e7fc78df5497c78b1de8f5dd56ad9be94f8e673bd31105debcc4940e0c","typeString":"literal_string \"GovernorBravo::_initiate: admin only\""}],"id":1344,"name":"require","nodeType":"Identifier","overloadedDeclarations":[5555,5556],"referencedDeclaration":5556,"src":"24928:7:0","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1350,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"24928:68:0","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1351,"nodeType":"ExpressionStatement","src":"24928:68:0"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1355,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":1353,"name":"initialProposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1833,"src":"25014:17:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"30","id":1354,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25035:1:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"25014:22:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"476f7665726e6f72427261766f3a3a5f696e6974696174653a2063616e206f6e6c7920696e697469617465206f6e6365","id":1356,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"25038:50:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_928739bbf55fe0185a70df55366e78160f0fe2084090e539cc66d62f04507e17","typeString":"literal_string \"GovernorBravo::_initiate: can only initiate once\""},"value":"GovernorBravo::_initiate: can only initiate once"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_928739bbf55fe0185a70df55366e78160f0fe2084090e539cc66d62f04507e17","typeString":"literal_string \"GovernorBravo::_initiate: can only initiate once\""}],"id":1352,"name":"require","nodeType":"Identifier","overloadedDeclarations":[5555,5556],"referencedDeclaration":5556,"src":"25006:7:0","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1357,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"25006:83:0","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1358,"nodeType":"ExpressionStatement","src":"25006:83:0"},{"expression":{"argumentTypes":null,"id":1365,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":1359,"name":"proposalCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1835,"src":"25099:13:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1361,"name":"governorAlpha","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1341,"src":"25138:13:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1360,"name":"GovernorAlphaInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2023,"src":"25115:22:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GovernorAlphaInterface_$2023_$","typeString":"type(contract GovernorAlphaInterface)"}},"id":1362,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"25115:37:0","typeDescriptions":{"typeIdentifier":"t_contract$_GovernorAlphaInterface_$2023","typeString":"contract GovernorAlphaInterface"}},"id":1363,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"proposalCount","nodeType":"MemberAccess","referencedDeclaration":2022,"src":"25115:51:0","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$_t_uint256_$","typeString":"function () external returns (uint256)"}},"id":1364,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"25115:53:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25099:69:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1366,"nodeType":"ExpressionStatement","src":"25099:69:0"},{"expression":{"argumentTypes":null,"id":1369,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":1367,"name":"initialProposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1833,"src":"25178:17:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":1368,"name":"proposalCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1835,"src":"25198:13:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25178:33:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1370,"nodeType":"ExpressionStatement","src":"25178:33:0"},{"body":{"id":1387,"nodeType":"Block","src":"25273:59:0","statements":[{"expression":{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":1381,"name":"proposalTimelocks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1928,"src":"25287:17:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_contract$_TimelockInterface_$2007_$","typeString":"mapping(uint256 => contract TimelockInterface)"}},"id":1383,"indexExpression":{"argumentTypes":null,"id":1382,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1372,"src":"25305:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"25287:20:0","typeDescriptions":{"typeIdentifier":"t_contract$_TimelockInterface_$2007","typeString":"contract TimelockInterface"}},"id":1384,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"acceptAdmin","nodeType":"MemberAccess","referencedDeclaration":1956,"src":"25287:32:0","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":1385,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"25287:34:0","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1386,"nodeType":"ExpressionStatement","src":"25287:34:0"}]},"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1377,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":1374,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1372,"src":"25237:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"id":1375,"name":"getGovernanceRouteCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1562,"src":"25241:23:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_uint8_$","typeString":"function () pure returns (uint8)"}},"id":1376,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"25241:25:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"25237:29:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1388,"initializationExpression":{"assignments":[1372],"declarations":[{"constant":false,"id":1372,"name":"i","nodeType":"VariableDeclaration","scope":1388,"src":"25226:9:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1371,"name":"uint256","nodeType":"ElementaryTypeName","src":"25226:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":1373,"initialValue":null,"nodeType":"VariableDeclarationStatement","src":"25226:9:0"},"loopExpression":{"expression":{"argumentTypes":null,"id":1379,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"25268:3:0","subExpression":{"argumentTypes":null,"id":1378,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1372,"src":"25270:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1380,"nodeType":"ExpressionStatement","src":"25268:3:0"},"nodeType":"ForStatement","src":"25221:111:0"}]},"documentation":"@notice Initiate the GovernorBravo contract\n@dev Admin only. Sets initial proposal id which initiates the contract, ensuring a continuous proposal id count\n@param governorAlpha The address for the Governor to continue the proposal id count from","id":1390,"implemented":true,"kind":"function","modifiers":[],"name":"_initiate","nodeType":"FunctionDefinition","parameters":{"id":1342,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1341,"name":"governorAlpha","nodeType":"VariableDeclaration","scope":1390,"src":"24886:21:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1340,"name":"address","nodeType":"ElementaryTypeName","src":"24886:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"24885:23:0"},"returnParameters":{"id":1343,"nodeType":"ParameterList","parameters":[],"src":"24918:0:0"},"scope":1563,"src":"24867:471:0","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":1416,"nodeType":"Block","src":"25561:314:0","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1399,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1396,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5552,"src":"25579:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1397,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"25579:10:0","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"id":1398,"name":"admin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1818,"src":"25593:5:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"25579:19:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"476f7665726e6f72427261766f3a3a5f73657450726f706f73616c4d61784f7065726174696f6e733a2061646d696e206f6e6c79","id":1400,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"25600:54:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_b749d63b62ec9246db67e424bdb9ab02b022070d8cd7b8fbd4eca85c166a94e5","typeString":"literal_string \"GovernorBravo::_setProposalMaxOperations: admin only\""},"value":"GovernorBravo::_setProposalMaxOperations: admin only"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b749d63b62ec9246db67e424bdb9ab02b022070d8cd7b8fbd4eca85c166a94e5","typeString":"literal_string \"GovernorBravo::_setProposalMaxOperations: admin only\""}],"id":1395,"name":"require","nodeType":"Identifier","overloadedDeclarations":[5555,5556],"referencedDeclaration":5556,"src":"25571:7:0","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1401,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"25571:84:0","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1402,"nodeType":"ExpressionStatement","src":"25571:84:0"},{"assignments":[1404],"declarations":[{"constant":false,"id":1404,"name":"oldProposalMaxOperations","nodeType":"VariableDeclaration","scope":1416,"src":"25665:29:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1403,"name":"uint","nodeType":"ElementaryTypeName","src":"25665:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":1406,"initialValue":{"argumentTypes":null,"id":1405,"name":"proposalMaxOperations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1904,"src":"25697:21:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"25665:53:0"},{"expression":{"argumentTypes":null,"id":1409,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":1407,"name":"proposalMaxOperations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1904,"src":"25728:21:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":1408,"name":"proposalMaxOperations_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1392,"src":"25752:22:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25728:46:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1410,"nodeType":"ExpressionStatement","src":"25728:46:0"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1412,"name":"oldProposalMaxOperations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1404,"src":"25819:24:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":1413,"name":"proposalMaxOperations_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1392,"src":"25845:22:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1411,"name":"ProposalMaxOperationsUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1789,"src":"25790:28:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":1414,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"25790:78:0","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1415,"nodeType":"EmitStatement","src":"25785:83:0"}]},"documentation":"@notice Set max proposal operations\n@dev Admin only.\n@param proposalMaxOperations_ Max proposal operations","id":1417,"implemented":true,"kind":"function","modifiers":[],"name":"_setProposalMaxOperations","nodeType":"FunctionDefinition","parameters":{"id":1393,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1392,"name":"proposalMaxOperations_","nodeType":"VariableDeclaration","scope":1417,"src":"25523:27:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1391,"name":"uint","nodeType":"ElementaryTypeName","src":"25523:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"25522:29:0"},"returnParameters":{"id":1394,"nodeType":"ParameterList","parameters":[],"src":"25561:0:0"},"scope":1563,"src":"25488:387:0","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":1443,"nodeType":"Block","src":"26249:461:0","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1426,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1423,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5552,"src":"26299:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1424,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"26299:10:0","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"id":1425,"name":"admin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1818,"src":"26313:5:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"26299:19:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"476f7665726e6f72427261766f3a5f73657450656e64696e6741646d696e3a2061646d696e206f6e6c79","id":1427,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"26320:44:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_15b86236d8e6aaae4fbee852729fd208d60cf2b5c9f6ec4ea2291e707cb07995","typeString":"literal_string \"GovernorBravo:_setPendingAdmin: admin only\""},"value":"GovernorBravo:_setPendingAdmin: admin only"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_15b86236d8e6aaae4fbee852729fd208d60cf2b5c9f6ec4ea2291e707cb07995","typeString":"literal_string \"GovernorBravo:_setPendingAdmin: admin only\""}],"id":1422,"name":"require","nodeType":"Identifier","overloadedDeclarations":[5555,5556],"referencedDeclaration":5556,"src":"26291:7:0","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1428,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"26291:74:0","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1429,"nodeType":"ExpressionStatement","src":"26291:74:0"},{"assignments":[1431],"declarations":[{"constant":false,"id":1431,"name":"oldPendingAdmin","nodeType":"VariableDeclaration","scope":1443,"src":"26436:23:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1430,"name":"address","nodeType":"ElementaryTypeName","src":"26436:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"id":1433,"initialValue":{"argumentTypes":null,"id":1432,"name":"pendingAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1820,"src":"26462:12:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"26436:38:0"},{"expression":{"argumentTypes":null,"id":1436,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":1434,"name":"pendingAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1820,"src":"26542:12:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":1435,"name":"newPendingAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1419,"src":"26557:15:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"26542:30:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1437,"nodeType":"ExpressionStatement","src":"26542:30:0"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1439,"name":"oldPendingAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1431,"src":"26670:15:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":1440,"name":"newPendingAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1419,"src":"26687:15:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":1438,"name":"NewPendingAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1771,"src":"26654:15:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":1441,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"26654:49:0","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1442,"nodeType":"EmitStatement","src":"26649:54:0"}]},"documentation":"@notice Begins transfer of admin rights. The newPendingAdmin must call `_acceptAdmin` to finalize the transfer.\n@dev Admin function to begin change of admin. The newPendingAdmin must call `_acceptAdmin` to finalize the transfer.\n@param newPendingAdmin New pending admin.","id":1444,"implemented":true,"kind":"function","modifiers":[],"name":"_setPendingAdmin","nodeType":"FunctionDefinition","parameters":{"id":1420,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1419,"name":"newPendingAdmin","nodeType":"VariableDeclaration","scope":1444,"src":"26215:23:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1418,"name":"address","nodeType":"ElementaryTypeName","src":"26215:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"26214:25:0"},"returnParameters":{"id":1421,"nodeType":"ParameterList","parameters":[],"src":"26249:0:0"},"scope":1563,"src":"26189:521:0","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":1490,"nodeType":"Block","src":"26923:622:0","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":1458,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1451,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1448,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5552,"src":"27026:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1449,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"27026:10:0","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"id":1450,"name":"pendingAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1820,"src":"27040:12:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"27026:26:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"id":1457,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1452,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5552,"src":"27056:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1453,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"27056:10:0","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":1455,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27078: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":1454,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"27070:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":1456,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"27070:10:0","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"27056:24:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"27026:54:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"476f7665726e6f72427261766f3a5f61636365707441646d696e3a2070656e64696e672061646d696e206f6e6c79","id":1459,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"27094:48:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_a193c43d3fcb6bad7dee9cd0aee4d22b57650045fda67e20f8280b4ef9e1a8a8","typeString":"literal_string \"GovernorBravo:_acceptAdmin: pending admin only\""},"value":"GovernorBravo:_acceptAdmin: pending admin only"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_a193c43d3fcb6bad7dee9cd0aee4d22b57650045fda67e20f8280b4ef9e1a8a8","typeString":"literal_string \"GovernorBravo:_acceptAdmin: pending admin only\""}],"id":1447,"name":"require","nodeType":"Identifier","overloadedDeclarations":[5555,5556],"referencedDeclaration":5556,"src":"27005:7:0","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1460,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"27005:147:0","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1461,"nodeType":"ExpressionStatement","src":"27005:147:0"},{"assignments":[1463],"declarations":[{"constant":false,"id":1463,"name":"oldAdmin","nodeType":"VariableDeclaration","scope":1490,"src":"27215:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1462,"name":"address","nodeType":"ElementaryTypeName","src":"27215:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"id":1465,"initialValue":{"argumentTypes":null,"id":1464,"name":"admin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1818,"src":"27234:5:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"27215:24:0"},{"assignments":[1467],"declarations":[{"constant":false,"id":1467,"name":"oldPendingAdmin","nodeType":"VariableDeclaration","scope":1490,"src":"27249:23:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1466,"name":"address","nodeType":"ElementaryTypeName","src":"27249:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"id":1469,"initialValue":{"argumentTypes":null,"id":1468,"name":"pendingAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1820,"src":"27275:12:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"27249:38:0"},{"expression":{"argumentTypes":null,"id":1472,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":1470,"name":"admin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1818,"src":"27345:5:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":1471,"name":"pendingAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1820,"src":"27353:12:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"27345:20:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1473,"nodeType":"ExpressionStatement","src":"27345:20:0"},{"expression":{"argumentTypes":null,"id":1478,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":1474,"name":"pendingAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1820,"src":"27411:12:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":1476,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27434: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":1475,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"27426:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":1477,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"27426:10:0","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"27411:25:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1479,"nodeType":"ExpressionStatement","src":"27411:25:0"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1481,"name":"oldAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1463,"src":"27461:8:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":1482,"name":"admin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1818,"src":"27471:5:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":1480,"name":"NewAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1777,"src":"27452:8:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":1483,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"27452:25:0","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1484,"nodeType":"EmitStatement","src":"27447:30:0"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1486,"name":"oldPendingAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1467,"src":"27508:15:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":1487,"name":"pendingAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1820,"src":"27525:12:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":1485,"name":"NewPendingAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1771,"src":"27492:15:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":1488,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"27492:46:0","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1489,"nodeType":"EmitStatement","src":"27487:51:0"}]},"documentation":"@notice Accepts transfer of admin rights. msg.sender must be pendingAdmin\n@dev Admin function for pending admin to accept role and update admin","id":1491,"implemented":true,"kind":"function","modifiers":[],"name":"_acceptAdmin","nodeType":"FunctionDefinition","parameters":{"id":1445,"nodeType":"ParameterList","parameters":[],"src":"26911:2:0"},"returnParameters":{"id":1446,"nodeType":"ParameterList","parameters":[],"src":"26923:0:0"},"scope":1563,"src":"26890:655:0","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":1515,"nodeType":"Block","src":"27618:95:0","statements":[{"assignments":[1501],"declarations":[{"constant":false,"id":1501,"name":"c","nodeType":"VariableDeclaration","scope":1515,"src":"27628:6:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1500,"name":"uint","nodeType":"ElementaryTypeName","src":"27628:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":1505,"initialValue":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1504,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":1502,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1493,"src":"27637:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"argumentTypes":null,"id":1503,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1495,"src":"27641:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27637:5:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"27628:14:0"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1509,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":1507,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1501,"src":"27660:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"argumentTypes":null,"id":1508,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1493,"src":"27665:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27660:6:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"6164646974696f6e206f766572666c6f77","id":1510,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"27668: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":1506,"name":"require","nodeType":"Identifier","overloadedDeclarations":[5555,5556],"referencedDeclaration":5556,"src":"27652:7:0","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1511,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"27652:36:0","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1512,"nodeType":"ExpressionStatement","src":"27652:36:0"},{"expression":{"argumentTypes":null,"id":1513,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1501,"src":"27705:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":1499,"id":1514,"nodeType":"Return","src":"27698:8:0"}]},"documentation":null,"id":1516,"implemented":true,"kind":"function","modifiers":[],"name":"add256","nodeType":"FunctionDefinition","parameters":{"id":1496,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1493,"name":"a","nodeType":"VariableDeclaration","scope":1516,"src":"27567:9:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1492,"name":"uint256","nodeType":"ElementaryTypeName","src":"27567:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":1495,"name":"b","nodeType":"VariableDeclaration","scope":1516,"src":"27578:9:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1494,"name":"uint256","nodeType":"ElementaryTypeName","src":"27578:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"27566:22:0"},"returnParameters":{"id":1499,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1498,"name":"","nodeType":"VariableDeclaration","scope":1516,"src":"27612:4:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1497,"name":"uint","nodeType":"ElementaryTypeName","src":"27612:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"27611:6:0"},"scope":1563,"src":"27551:162:0","stateMutability":"pure","superFunction":null,"visibility":"internal"},{"body":{"id":1536,"nodeType":"Block","src":"27786:79:0","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1528,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":1526,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1520,"src":"27804:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"argumentTypes":null,"id":1527,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1518,"src":"27809:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27804:6:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"7375627472616374696f6e20756e646572666c6f77","id":1529,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"27812: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":1525,"name":"require","nodeType":"Identifier","overloadedDeclarations":[5555,5556],"referencedDeclaration":5556,"src":"27796:7:0","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1530,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"27796:40:0","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1531,"nodeType":"ExpressionStatement","src":"27796:40:0"},{"expression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1534,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":1532,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1518,"src":"27853:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"argumentTypes":null,"id":1533,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1520,"src":"27857:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27853:5:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":1524,"id":1535,"nodeType":"Return","src":"27846:12:0"}]},"documentation":null,"id":1537,"implemented":true,"kind":"function","modifiers":[],"name":"sub256","nodeType":"FunctionDefinition","parameters":{"id":1521,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1518,"name":"a","nodeType":"VariableDeclaration","scope":1537,"src":"27735:9:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1517,"name":"uint256","nodeType":"ElementaryTypeName","src":"27735:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":1520,"name":"b","nodeType":"VariableDeclaration","scope":1537,"src":"27746:9:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1519,"name":"uint256","nodeType":"ElementaryTypeName","src":"27746:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"27734:22:0"},"returnParameters":{"id":1524,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1523,"name":"","nodeType":"VariableDeclaration","scope":1537,"src":"27780:4:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1522,"name":"uint","nodeType":"ElementaryTypeName","src":"27780:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"27779:6:0"},"scope":1563,"src":"27719:146:0","stateMutability":"pure","superFunction":null,"visibility":"internal"},{"body":{"id":1548,"nodeType":"Block","src":"27930:115:0","statements":[{"assignments":[1543],"declarations":[{"constant":false,"id":1543,"name":"chainId","nodeType":"VariableDeclaration","scope":1548,"src":"27940:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1542,"name":"uint","nodeType":"ElementaryTypeName","src":"27940:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":1544,"initialValue":null,"nodeType":"VariableDeclarationStatement","src":"27940:12:0"},{"externalReferences":[{"chainId":{"declaration":1543,"isOffset":false,"isSlot":false,"src":"27985:7:0","valueSize":1}}],"id":1545,"nodeType":"InlineAssembly","operations":"{ chainId := chainid() }","src":"27962:53:0"},{"expression":{"argumentTypes":null,"id":1546,"name":"chainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1543,"src":"28031:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":1541,"id":1547,"nodeType":"Return","src":"28024:14:0"}]},"documentation":null,"id":1549,"implemented":true,"kind":"function","modifiers":[],"name":"getChainIdInternal","nodeType":"FunctionDefinition","parameters":{"id":1538,"nodeType":"ParameterList","parameters":[],"src":"27898:2:0"},"returnParameters":{"id":1541,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1540,"name":"","nodeType":"VariableDeclaration","scope":1549,"src":"27924:4:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1539,"name":"uint","nodeType":"ElementaryTypeName","src":"27924:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"27923:6:0"},"scope":1563,"src":"27871:174:0","stateMutability":"pure","superFunction":null,"visibility":"internal"},{"body":{"id":1561,"nodeType":"Block","src":"28116:56:0","statements":[{"expression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":1559,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1555,"name":"ProposalType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1913,"src":"28139:12:0","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalType_$1913_$","typeString":"type(enum GovernorBravoDelegateStorageV2.ProposalType)"}},"id":1556,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"CRITICAL","nodeType":"MemberAccess","referencedDeclaration":null,"src":"28139:21:0","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$1913","typeString":"enum GovernorBravoDelegateStorageV2.ProposalType"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_ProposalType_$1913","typeString":"enum GovernorBravoDelegateStorageV2.ProposalType"}],"id":1554,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28133:5:0","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":"uint8"},"id":1557,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"28133:28:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"argumentTypes":null,"hexValue":"31","id":1558,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28164:1:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"28133:32:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"functionReturnParameters":1553,"id":1560,"nodeType":"Return","src":"28126:39:0"}]},"documentation":null,"id":1562,"implemented":true,"kind":"function","modifiers":[],"name":"getGovernanceRouteCount","nodeType":"FunctionDefinition","parameters":{"id":1550,"nodeType":"ParameterList","parameters":[],"src":"28083:2:0"},"returnParameters":{"id":1553,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1552,"name":"","nodeType":"VariableDeclaration","scope":1562,"src":"28109:5:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1551,"name":"uint8","nodeType":"ElementaryTypeName","src":"28109:5:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":null,"visibility":"internal"}],"src":"28108:7:0"},"scope":1563,"src":"28051:121:0","stateMutability":"pure","superFunction":null,"visibility":"internal"}],"scope":1564,"src":"4581:23593:0"}],"src":"0:28175:0"},"id":0},"contracts/Governance/GovernorBravoDelegator.sol":{"ast":{"absolutePath":"contracts/Governance/GovernorBravoDelegator.sol","exportedSymbols":{"GovernorBravoDelegator":[1686]},"id":1687,"nodeType":"SourceUnit","nodes":[{"id":1565,"literals":["solidity","^","0.5",".16"],"nodeType":"PragmaDirective","src":"0:24:1"},{"id":1566,"literals":["experimental","ABIEncoderV2"],"nodeType":"PragmaDirective","src":"25:33:1"},{"absolutePath":"contracts/Governance/GovernorBravoInterfaces.sol","file":"./GovernorBravoInterfaces.sol","id":1567,"nodeType":"ImportDirective","scope":1687,"sourceUnit":2024,"src":"60:39:1","symbolAliases":[],"unitAlias":""},{"baseContracts":[{"arguments":null,"baseName":{"contractScope":null,"id":1568,"name":"GovernorBravoDelegatorStorage","nodeType":"UserDefinedTypeName","referencedDeclaration":1823,"src":"244:29:1","typeDescriptions":{"typeIdentifier":"t_contract$_GovernorBravoDelegatorStorage_$1823","typeString":"contract GovernorBravoDelegatorStorage"}},"id":1569,"nodeType":"InheritanceSpecifier","src":"244:29:1"},{"arguments":null,"baseName":{"contractScope":null,"id":1570,"name":"GovernorBravoEvents","nodeType":"UserDefinedTypeName","referencedDeclaration":1816,"src":"275:19:1","typeDescriptions":{"typeIdentifier":"t_contract$_GovernorBravoEvents_$1816","typeString":"contract GovernorBravoEvents"}},"id":1571,"nodeType":"InheritanceSpecifier","src":"275:19:1"}],"contractDependencies":[1816,1823],"contractKind":"contract","documentation":"@title GovernorBravoDelegator\n@author Venus\n@notice The `GovernorBravoDelegator` contract.","fullyImplemented":true,"id":1686,"linearizedBaseContracts":[1686,1816,1823],"name":"GovernorBravoDelegator","nodeType":"ContractDefinition","nodes":[{"body":{"id":1617,"nodeType":"Block","src":"552:528:1","statements":[{"expression":{"argumentTypes":null,"id":1593,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":1590,"name":"admin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1818,"src":"616:5:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1591,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5552,"src":"624:3:1","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1592,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"624:10:1","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"616:18:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1594,"nodeType":"ExpressionStatement","src":"616:18:1"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1596,"name":"implementation_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1579,"src":"669:15:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"696e697469616c697a6528616464726573732c616464726573732c75696e743235362c75696e743235362c75696e743235362c6164647265737329","id":1599,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"739:61:1","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_b1a5d12d57c9112e14a5662f86e84b18b06bdd980a7d074ad7ab8dea2bfb70be","typeString":"literal_string \"initialize(address,address,uint256,uint256,uint256,address)\""},"value":"initialize(address,address,uint256,uint256,uint256,address)"},{"argumentTypes":null,"id":1600,"name":"timelock_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1573,"src":"818:9:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":1601,"name":"xvsVault_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1575,"src":"845:9:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":1602,"name":"votingPeriod_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1581,"src":"872:13:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":1603,"name":"votingDelay_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1583,"src":"903:12:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":1604,"name":"proposalThreshold_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1585,"src":"933:18:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":1605,"name":"guardian_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1587,"src":"969:9:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b1a5d12d57c9112e14a5662f86e84b18b06bdd980a7d074ad7ab8dea2bfb70be","typeString":"literal_string \"initialize(address,address,uint256,uint256,uint256,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"argumentTypes":null,"id":1597,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5539,"src":"698:3:1","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":1598,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","referencedDeclaration":null,"src":"698:23:1","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":1606,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"698:294:1","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":1595,"name":"delegateTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1672,"src":"645:10:1","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,bytes memory)"}},"id":1607,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"645:357:1","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1608,"nodeType":"ExpressionStatement","src":"645:357:1"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1610,"name":"implementation_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1579,"src":"1032:15:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1609,"name":"_setImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1654,"src":"1013:18:1","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":1611,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1013:35:1","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1612,"nodeType":"ExpressionStatement","src":"1013:35:1"},{"expression":{"argumentTypes":null,"id":1615,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":1613,"name":"admin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1818,"src":"1059:5:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":1614,"name":"admin_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1577,"src":"1067:6:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1059:14:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1616,"nodeType":"ExpressionStatement","src":"1059:14:1"}]},"documentation":null,"id":1618,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nodeType":"FunctionDefinition","parameters":{"id":1588,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1573,"name":"timelock_","nodeType":"VariableDeclaration","scope":1618,"src":"322:17:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1572,"name":"address","nodeType":"ElementaryTypeName","src":"322:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":1575,"name":"xvsVault_","nodeType":"VariableDeclaration","scope":1618,"src":"349:17:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1574,"name":"address","nodeType":"ElementaryTypeName","src":"349:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":1577,"name":"admin_","nodeType":"VariableDeclaration","scope":1618,"src":"376:14:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1576,"name":"address","nodeType":"ElementaryTypeName","src":"376:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":1579,"name":"implementation_","nodeType":"VariableDeclaration","scope":1618,"src":"400:23:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1578,"name":"address","nodeType":"ElementaryTypeName","src":"400:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":1581,"name":"votingPeriod_","nodeType":"VariableDeclaration","scope":1618,"src":"433:18:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1580,"name":"uint","nodeType":"ElementaryTypeName","src":"433:4:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":1583,"name":"votingDelay_","nodeType":"VariableDeclaration","scope":1618,"src":"461:17:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1582,"name":"uint","nodeType":"ElementaryTypeName","src":"461:4:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":1585,"name":"proposalThreshold_","nodeType":"VariableDeclaration","scope":1618,"src":"488:23:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1584,"name":"uint","nodeType":"ElementaryTypeName","src":"488:4:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":1587,"name":"guardian_","nodeType":"VariableDeclaration","scope":1618,"src":"521:17:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1586,"name":"address","nodeType":"ElementaryTypeName","src":"521:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"312:232:1"},"returnParameters":{"id":1589,"nodeType":"ParameterList","parameters":[],"src":"552:0:1"},"scope":1686,"src":"301:779:1","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":1653,"nodeType":"Block","src":"1326:426:1","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1627,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1624,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5552,"src":"1344:3:1","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1625,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"1344:10:1","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"id":1626,"name":"admin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1818,"src":"1358:5:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1344:19:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"476f7665726e6f72427261766f44656c656761746f723a3a5f736574496d706c656d656e746174696f6e3a2061646d696e206f6e6c79","id":1628,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1365:56:1","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_67e0cfb19eeb696ffa2478995cd84545be2598121b514835c4a36bdd58be17b5","typeString":"literal_string \"GovernorBravoDelegator::_setImplementation: admin only\""},"value":"GovernorBravoDelegator::_setImplementation: admin only"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_67e0cfb19eeb696ffa2478995cd84545be2598121b514835c4a36bdd58be17b5","typeString":"literal_string \"GovernorBravoDelegator::_setImplementation: admin only\""}],"id":1623,"name":"require","nodeType":"Identifier","overloadedDeclarations":[5555,5556],"referencedDeclaration":5556,"src":"1336:7:1","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1629,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1336:86:1","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1630,"nodeType":"ExpressionStatement","src":"1336:86:1"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1636,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":1632,"name":"implementation_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1620,"src":"1453:15:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":1634,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1480:1:1","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":1633,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1472:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":1635,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1472:10:1","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"1453:29:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"476f7665726e6f72427261766f44656c656761746f723a3a5f736574496d706c656d656e746174696f6e3a20696e76616c696420696d706c656d656e746174696f6e2061646472657373","id":1637,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1496:76:1","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_561af24827b00b724adb303d81d460221f68af67b410ff78faf6902bb014b94d","typeString":"literal_string \"GovernorBravoDelegator::_setImplementation: invalid implementation address\""},"value":"GovernorBravoDelegator::_setImplementation: invalid implementation address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_561af24827b00b724adb303d81d460221f68af67b410ff78faf6902bb014b94d","typeString":"literal_string \"GovernorBravoDelegator::_setImplementation: invalid implementation address\""}],"id":1631,"name":"require","nodeType":"Identifier","overloadedDeclarations":[5555,5556],"referencedDeclaration":5556,"src":"1432:7:1","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1638,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1432:150:1","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1639,"nodeType":"ExpressionStatement","src":"1432:150:1"},{"assignments":[1641],"declarations":[{"constant":false,"id":1641,"name":"oldImplementation","nodeType":"VariableDeclaration","scope":1653,"src":"1593:25:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1640,"name":"address","nodeType":"ElementaryTypeName","src":"1593:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"id":1643,"initialValue":{"argumentTypes":null,"id":1642,"name":"implementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1822,"src":"1621:14:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"1593:42:1"},{"expression":{"argumentTypes":null,"id":1646,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":1644,"name":"implementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1822,"src":"1645:14:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":1645,"name":"implementation_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1620,"src":"1662:15:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1645:32:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1647,"nodeType":"ExpressionStatement","src":"1645:32:1"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1649,"name":"oldImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1641,"src":"1711:17:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":1650,"name":"implementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1822,"src":"1730:14:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":1648,"name":"NewImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1759,"src":"1693:17:1","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":1651,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1693:52:1","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1652,"nodeType":"EmitStatement","src":"1688:57:1"}]},"documentation":"@notice Called by the admin to update the implementation of the delegator\n@param implementation_ The address of the new implementation for delegation","id":1654,"implemented":true,"kind":"function","modifiers":[],"name":"_setImplementation","nodeType":"FunctionDefinition","parameters":{"id":1621,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1620,"name":"implementation_","nodeType":"VariableDeclaration","scope":1654,"src":"1294:23:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1619,"name":"address","nodeType":"ElementaryTypeName","src":"1294:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"1293:25:1"},"returnParameters":{"id":1622,"nodeType":"ParameterList","parameters":[],"src":"1326:0:1"},"scope":1686,"src":"1266:486:1","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":1671,"nodeType":"Block","src":"2111:221:1","statements":[{"assignments":[1662,1664],"declarations":[{"constant":false,"id":1662,"name":"success","nodeType":"VariableDeclaration","scope":1671,"src":"2122:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1661,"name":"bool","nodeType":"ElementaryTypeName","src":"2122:4:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"},{"constant":false,"id":1664,"name":"returnData","nodeType":"VariableDeclaration","scope":1671,"src":"2136:23:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1663,"name":"bytes","nodeType":"ElementaryTypeName","src":"2136:5:1","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":null,"visibility":"internal"}],"id":1669,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1667,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1658,"src":"2183:4:1","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":null,"id":1665,"name":"callee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1656,"src":"2163:6:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1666,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"delegatecall","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2163:19:1","typeDescriptions":{"typeIdentifier":"t_function_baredelegatecall_nonpayable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) returns (bool,bytes memory)"}},"id":1668,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2163:25:1","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"2121:67:1"},{"externalReferences":[{"success":{"declaration":1662,"isOffset":false,"isSlot":false,"src":"2227:7:1","valueSize":1}},{"returnData":{"declaration":1664,"isOffset":false,"isSlot":false,"src":"2268:10:1","valueSize":1}}],"id":1670,"nodeType":"InlineAssembly","operations":"{\n    if eq(success, 0)\n    {\n        revert(add(returnData, 0x20), returndatasize())\n    }\n}","src":"2198:128:1"}]},"documentation":"@notice Internal method to delegate execution to another contract\n@dev It returns to the external caller whatever the implementation returns or forwards reverts\n@param callee The contract to delegatecall\n@param data The raw data to delegatecall","id":1672,"implemented":true,"kind":"function","modifiers":[],"name":"delegateTo","nodeType":"FunctionDefinition","parameters":{"id":1659,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1656,"name":"callee","nodeType":"VariableDeclaration","scope":1672,"src":"2067:14:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1655,"name":"address","nodeType":"ElementaryTypeName","src":"2067:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":1658,"name":"data","nodeType":"VariableDeclaration","scope":1672,"src":"2083:17:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1657,"name":"bytes","nodeType":"ElementaryTypeName","src":"2083:5:1","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":null,"visibility":"internal"}],"src":"2066:35:1"},"returnParameters":{"id":1660,"nodeType":"ParameterList","parameters":[],"src":"2111:0:1"},"scope":1686,"src":"2047:285:1","stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},{"body":{"id":1684,"nodeType":"Block","src":"2550:478:1","statements":[{"assignments":[1676,null],"declarations":[{"constant":false,"id":1676,"name":"success","nodeType":"VariableDeclaration","scope":1684,"src":"2627:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1675,"name":"bool","nodeType":"ElementaryTypeName","src":"2627:4:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"},null],"id":1682,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1679,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5552,"src":"2673:3:1","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1680,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"data","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2673:8:1","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"argumentTypes":null,"id":1677,"name":"implementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1822,"src":"2645:14:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1678,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"delegatecall","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2645:27:1","typeDescriptions":{"typeIdentifier":"t_function_baredelegatecall_nonpayable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) returns (bool,bytes memory)"}},"id":1681,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2645:37:1","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"2626:56:1"},{"externalReferences":[{"success":{"declaration":1676,"isOffset":false,"isSlot":false,"src":"2828:7:1","valueSize":1}}],"id":1683,"nodeType":"InlineAssembly","operations":"{\n    let free_mem_ptr := mload(0x40)\n    returndatacopy(free_mem_ptr, 0, returndatasize())\n    switch success\n    case 0 {\n        revert(free_mem_ptr, returndatasize())\n    }\n    default {\n        return(free_mem_ptr, returndatasize())\n    }\n}","src":"2693:329:1"}]},"documentation":"@dev Delegates execution to an implementation contract.\nIt returns to the external caller whatever the implementation returns\nor forwards reverts.","id":1685,"implemented":true,"kind":"fallback","modifiers":[],"name":"","nodeType":"FunctionDefinition","parameters":{"id":1673,"nodeType":"ParameterList","parameters":[],"src":"2530:2:1"},"returnParameters":{"id":1674,"nodeType":"ParameterList","parameters":[],"src":"2550:0:1"},"scope":1686,"src":"2522:506:1","stateMutability":"payable","superFunction":null,"visibility":"external"}],"scope":1687,"src":"209:2821:1"}],"src":"0:3031:1"},"id":1},"contracts/Governance/GovernorBravoInterfaces.sol":{"ast":{"absolutePath":"contracts/Governance/GovernorBravoInterfaces.sol","exportedSymbols":{"GovernorAlphaInterface":[2023],"GovernorBravoDelegateStorageV1":[1907],"GovernorBravoDelegateStorageV2":[1929],"GovernorBravoDelegateStorageV3":[1943],"GovernorBravoDelegatorStorage":[1823],"GovernorBravoEvents":[1816],"TimelockInterface":[2007],"XvsVaultInterface":[2017]},"id":2024,"nodeType":"SourceUnit","nodes":[{"id":1688,"literals":["solidity","^","0.5",".16"],"nodeType":"PragmaDirective","src":"0:24:2"},{"id":1689,"literals":["experimental","ABIEncoderV2"],"nodeType":"PragmaDirective","src":"25:33:2"},{"baseContracts":[],"contractDependencies":[],"contractKind":"contract","documentation":"@title GovernorBravoEvents\n@author Venus\n@notice Set of events emitted by the GovernorBravo contracts.","fullyImplemented":true,"id":1816,"linearizedBaseContracts":[1816],"name":"GovernorBravoEvents","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"documentation":"@notice An event emitted when a new proposal is created","id":1715,"name":"ProposalCreated","nodeType":"EventDefinition","parameters":{"id":1714,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1691,"indexed":false,"name":"id","nodeType":"VariableDeclaration","scope":1715,"src":"310:7:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1690,"name":"uint","nodeType":"ElementaryTypeName","src":"310:4:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":1693,"indexed":false,"name":"proposer","nodeType":"VariableDeclaration","scope":1715,"src":"327:16:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1692,"name":"address","nodeType":"ElementaryTypeName","src":"327:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":1696,"indexed":false,"name":"targets","nodeType":"VariableDeclaration","scope":1715,"src":"353:17:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":1694,"name":"address","nodeType":"ElementaryTypeName","src":"353:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1695,"length":null,"nodeType":"ArrayTypeName","src":"353:9:2","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":1699,"indexed":false,"name":"values","nodeType":"VariableDeclaration","scope":1715,"src":"380:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":1697,"name":"uint","nodeType":"ElementaryTypeName","src":"380:4:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1698,"length":null,"nodeType":"ArrayTypeName","src":"380:6:2","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":1702,"indexed":false,"name":"signatures","nodeType":"VariableDeclaration","scope":1715,"src":"403:19:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_$dyn_memory_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":1700,"name":"string","nodeType":"ElementaryTypeName","src":"403:6:2","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":1701,"length":null,"nodeType":"ArrayTypeName","src":"403:8:2","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":1705,"indexed":false,"name":"calldatas","nodeType":"VariableDeclaration","scope":1715,"src":"432:17:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":1703,"name":"bytes","nodeType":"ElementaryTypeName","src":"432:5:2","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":1704,"length":null,"nodeType":"ArrayTypeName","src":"432:7:2","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":1707,"indexed":false,"name":"startBlock","nodeType":"VariableDeclaration","scope":1715,"src":"459:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1706,"name":"uint","nodeType":"ElementaryTypeName","src":"459:4:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":1709,"indexed":false,"name":"endBlock","nodeType":"VariableDeclaration","scope":1715,"src":"484:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1708,"name":"uint","nodeType":"ElementaryTypeName","src":"484:4:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":1711,"indexed":false,"name":"description","nodeType":"VariableDeclaration","scope":1715,"src":"507:18:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1710,"name":"string","nodeType":"ElementaryTypeName","src":"507:6:2","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"},{"constant":false,"id":1713,"indexed":false,"name":"proposalType","nodeType":"VariableDeclaration","scope":1715,"src":"535:18:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1712,"name":"uint8","nodeType":"ElementaryTypeName","src":"535:5:2","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":null,"visibility":"internal"}],"src":"300:259:2"},"src":"279:281:2"},{"anonymous":false,"documentation":"@notice An event emitted when a vote has been cast on a proposal\n @param voter The address which casted a vote\n @param proposalId The proposal id which was voted on\n @param support Support value for the vote. 0=against, 1=for, 2=abstain\n @param votes Number of votes which were cast by the voter\n @param reason The reason given for the vote by the voter","id":1727,"name":"VoteCast","nodeType":"EventDefinition","parameters":{"id":1726,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1717,"indexed":true,"name":"voter","nodeType":"VariableDeclaration","scope":1727,"src":"978:21:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1716,"name":"address","nodeType":"ElementaryTypeName","src":"978:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":1719,"indexed":false,"name":"proposalId","nodeType":"VariableDeclaration","scope":1727,"src":"1001:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1718,"name":"uint","nodeType":"ElementaryTypeName","src":"1001:4:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":1721,"indexed":false,"name":"support","nodeType":"VariableDeclaration","scope":1727,"src":"1018:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1720,"name":"uint8","nodeType":"ElementaryTypeName","src":"1018:5:2","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":null,"visibility":"internal"},{"constant":false,"id":1723,"indexed":false,"name":"votes","nodeType":"VariableDeclaration","scope":1727,"src":"1033:10:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1722,"name":"uint","nodeType":"ElementaryTypeName","src":"1033:4:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":1725,"indexed":false,"name":"reason","nodeType":"VariableDeclaration","scope":1727,"src":"1045:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1724,"name":"string","nodeType":"ElementaryTypeName","src":"1045:6:2","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"}],"src":"977:82:2"},"src":"963:97:2"},{"anonymous":false,"documentation":"@notice An event emitted when a proposal has been canceled","id":1731,"name":"ProposalCanceled","nodeType":"EventDefinition","parameters":{"id":1730,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1729,"indexed":false,"name":"id","nodeType":"VariableDeclaration","scope":1731,"src":"1156:7:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1728,"name":"uint","nodeType":"ElementaryTypeName","src":"1156:4:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"1155:9:2"},"src":"1133:32:2"},{"anonymous":false,"documentation":"@notice An event emitted when a proposal has been queued in the Timelock","id":1737,"name":"ProposalQueued","nodeType":"EventDefinition","parameters":{"id":1736,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1733,"indexed":false,"name":"id","nodeType":"VariableDeclaration","scope":1737,"src":"1273:7:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1732,"name":"uint","nodeType":"ElementaryTypeName","src":"1273:4:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":1735,"indexed":false,"name":"eta","nodeType":"VariableDeclaration","scope":1737,"src":"1282:8:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1734,"name":"uint","nodeType":"ElementaryTypeName","src":"1282:4:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"1272:19:2"},"src":"1252:40:2"},{"anonymous":false,"documentation":"@notice An event emitted when a proposal has been executed in the Timelock","id":1741,"name":"ProposalExecuted","nodeType":"EventDefinition","parameters":{"id":1740,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1739,"indexed":false,"name":"id","nodeType":"VariableDeclaration","scope":1741,"src":"1404:7:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1738,"name":"uint","nodeType":"ElementaryTypeName","src":"1404:4:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"1403:9:2"},"src":"1381:32:2"},{"anonymous":false,"documentation":"@notice An event emitted when the voting delay is set","id":1747,"name":"VotingDelaySet","nodeType":"EventDefinition","parameters":{"id":1746,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1743,"indexed":false,"name":"oldVotingDelay","nodeType":"VariableDeclaration","scope":1747,"src":"1502:19:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1742,"name":"uint","nodeType":"ElementaryTypeName","src":"1502:4:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":1745,"indexed":false,"name":"newVotingDelay","nodeType":"VariableDeclaration","scope":1747,"src":"1523:19:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1744,"name":"uint","nodeType":"ElementaryTypeName","src":"1523:4:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"1501:42:2"},"src":"1481:63:2"},{"anonymous":false,"documentation":"@notice An event emitted when the voting period is set","id":1753,"name":"VotingPeriodSet","nodeType":"EventDefinition","parameters":{"id":1752,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1749,"indexed":false,"name":"oldVotingPeriod","nodeType":"VariableDeclaration","scope":1753,"src":"1635:20:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1748,"name":"uint","nodeType":"ElementaryTypeName","src":"1635:4:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":1751,"indexed":false,"name":"newVotingPeriod","nodeType":"VariableDeclaration","scope":1753,"src":"1657:20:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1750,"name":"uint","nodeType":"ElementaryTypeName","src":"1657:4:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"1634:44:2"},"src":"1613:66:2"},{"anonymous":false,"documentation":"@notice Emitted when implementation is changed","id":1759,"name":"NewImplementation","nodeType":"EventDefinition","parameters":{"id":1758,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1755,"indexed":false,"name":"oldImplementation","nodeType":"VariableDeclaration","scope":1759,"src":"1764:25:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1754,"name":"address","nodeType":"ElementaryTypeName","src":"1764:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":1757,"indexed":false,"name":"newImplementation","nodeType":"VariableDeclaration","scope":1759,"src":"1791:25:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1756,"name":"address","nodeType":"ElementaryTypeName","src":"1791:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"1763:54:2"},"src":"1740:78:2"},{"anonymous":false,"documentation":"@notice Emitted when proposal threshold is set","id":1765,"name":"ProposalThresholdSet","nodeType":"EventDefinition","parameters":{"id":1764,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1761,"indexed":false,"name":"oldProposalThreshold","nodeType":"VariableDeclaration","scope":1765,"src":"1906:25:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1760,"name":"uint","nodeType":"ElementaryTypeName","src":"1906:4:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":1763,"indexed":false,"name":"newProposalThreshold","nodeType":"VariableDeclaration","scope":1765,"src":"1933:25:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1762,"name":"uint","nodeType":"ElementaryTypeName","src":"1933:4:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"1905:54:2"},"src":"1879:81:2"},{"anonymous":false,"documentation":"@notice Emitted when pendingAdmin is changed","id":1771,"name":"NewPendingAdmin","nodeType":"EventDefinition","parameters":{"id":1770,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1767,"indexed":false,"name":"oldPendingAdmin","nodeType":"VariableDeclaration","scope":1771,"src":"2041:23:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1766,"name":"address","nodeType":"ElementaryTypeName","src":"2041:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":1769,"indexed":false,"name":"newPendingAdmin","nodeType":"VariableDeclaration","scope":1771,"src":"2066:23:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1768,"name":"address","nodeType":"ElementaryTypeName","src":"2066:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"2040:50:2"},"src":"2019:72:2"},{"anonymous":false,"documentation":"@notice Emitted when pendingAdmin is accepted, which means admin is updated","id":1777,"name":"NewAdmin","nodeType":"EventDefinition","parameters":{"id":1776,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1773,"indexed":false,"name":"oldAdmin","nodeType":"VariableDeclaration","scope":1777,"src":"2196:16:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1772,"name":"address","nodeType":"ElementaryTypeName","src":"2196:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":1775,"indexed":false,"name":"newAdmin","nodeType":"VariableDeclaration","scope":1777,"src":"2214:16:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1774,"name":"address","nodeType":"ElementaryTypeName","src":"2214:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"2195:36:2"},"src":"2181:51:2"},{"anonymous":false,"documentation":"@notice Emitted when the new guardian address is set","id":1783,"name":"NewGuardian","nodeType":"EventDefinition","parameters":{"id":1782,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1779,"indexed":false,"name":"oldGuardian","nodeType":"VariableDeclaration","scope":1783,"src":"2317:19:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1778,"name":"address","nodeType":"ElementaryTypeName","src":"2317:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":1781,"indexed":false,"name":"newGuardian","nodeType":"VariableDeclaration","scope":1783,"src":"2338:19:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1780,"name":"address","nodeType":"ElementaryTypeName","src":"2338:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"2316:42:2"},"src":"2299:60:2"},{"anonymous":false,"documentation":"@notice Emitted when the maximum number of operations in one proposal is updated","id":1789,"name":"ProposalMaxOperationsUpdated","nodeType":"EventDefinition","parameters":{"id":1788,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1785,"indexed":false,"name":"oldMaxOperations","nodeType":"VariableDeclaration","scope":1789,"src":"2489:21:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1784,"name":"uint","nodeType":"ElementaryTypeName","src":"2489:4:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":1787,"indexed":false,"name":"newMaxOperations","nodeType":"VariableDeclaration","scope":1789,"src":"2512:21:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1786,"name":"uint","nodeType":"ElementaryTypeName","src":"2512:4:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"2488:46:2"},"src":"2454:81:2"},{"anonymous":false,"documentation":"@notice Emitted when the new validation params are set","id":1807,"name":"SetValidationParams","nodeType":"EventDefinition","parameters":{"id":1806,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1791,"indexed":false,"name":"oldMinVotingPeriod","nodeType":"VariableDeclaration","scope":1807,"src":"2639:26:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1790,"name":"uint256","nodeType":"ElementaryTypeName","src":"2639:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":1793,"indexed":false,"name":"newMinVotingPeriod","nodeType":"VariableDeclaration","scope":1807,"src":"2675:26:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1792,"name":"uint256","nodeType":"ElementaryTypeName","src":"2675:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":1795,"indexed":false,"name":"oldmaxVotingPeriod","nodeType":"VariableDeclaration","scope":1807,"src":"2711:26:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1794,"name":"uint256","nodeType":"ElementaryTypeName","src":"2711:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":1797,"indexed":false,"name":"newmaxVotingPeriod","nodeType":"VariableDeclaration","scope":1807,"src":"2747:26:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1796,"name":"uint256","nodeType":"ElementaryTypeName","src":"2747:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":1799,"indexed":false,"name":"oldminVotingDelay","nodeType":"VariableDeclaration","scope":1807,"src":"2783:25:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1798,"name":"uint256","nodeType":"ElementaryTypeName","src":"2783:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":1801,"indexed":false,"name":"newminVotingDelay","nodeType":"VariableDeclaration","scope":1807,"src":"2818:25:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1800,"name":"uint256","nodeType":"ElementaryTypeName","src":"2818:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":1803,"indexed":false,"name":"oldmaxVotingDelay","nodeType":"VariableDeclaration","scope":1807,"src":"2853:25:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1802,"name":"uint256","nodeType":"ElementaryTypeName","src":"2853:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":1805,"indexed":false,"name":"newmaxVotingDelay","nodeType":"VariableDeclaration","scope":1807,"src":"2888:25:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1804,"name":"uint256","nodeType":"ElementaryTypeName","src":"2888:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"2629:290:2"},"src":"2604:316:2"},{"anonymous":false,"documentation":"@notice Emitted when new Proposal configs added","id":1815,"name":"SetProposalConfigs","nodeType":"EventDefinition","parameters":{"id":1814,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1809,"indexed":false,"name":"votingPeriod","nodeType":"VariableDeclaration","scope":1815,"src":"3007:20:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1808,"name":"uint256","nodeType":"ElementaryTypeName","src":"3007:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":1811,"indexed":false,"name":"votingDelay","nodeType":"VariableDeclaration","scope":1815,"src":"3029:19:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1810,"name":"uint256","nodeType":"ElementaryTypeName","src":"3029:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":1813,"indexed":false,"name":"proposalThreshold","nodeType":"VariableDeclaration","scope":1815,"src":"3050:25:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1812,"name":"uint256","nodeType":"ElementaryTypeName","src":"3050:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"3006:70:2"},"src":"2982:95:2"}],"scope":2024,"src":"180:2899:2"},{"baseContracts":[],"contractDependencies":[],"contractKind":"contract","documentation":"@title GovernorBravoDelegatorStorage\n@author Venus\n@notice Storage layout of the `GovernorBravoDelegator` contract","fullyImplemented":true,"id":1823,"linearizedBaseContracts":[1823],"name":"GovernorBravoDelegatorStorage","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":1818,"name":"admin","nodeType":"VariableDeclaration","scope":1823,"src":"3306:20:2","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1817,"name":"address","nodeType":"ElementaryTypeName","src":"3306:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"public"},{"constant":false,"id":1820,"name":"pendingAdmin","nodeType":"VariableDeclaration","scope":1823,"src":"3389:27:2","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1819,"name":"address","nodeType":"ElementaryTypeName","src":"3389:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"public"},{"constant":false,"id":1822,"name":"implementation","nodeType":"VariableDeclaration","scope":1823,"src":"3465:29:2","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1821,"name":"address","nodeType":"ElementaryTypeName","src":"3465:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"public"}],"scope":2024,"src":"3213:284:2"},{"baseContracts":[{"arguments":null,"baseName":{"contractScope":null,"id":1824,"name":"GovernorBravoDelegatorStorage","nodeType":"UserDefinedTypeName","referencedDeclaration":1823,"src":"3810:29:2","typeDescriptions":{"typeIdentifier":"t_contract$_GovernorBravoDelegatorStorage_$1823","typeString":"contract GovernorBravoDelegatorStorage"}},"id":1825,"nodeType":"InheritanceSpecifier","src":"3810:29:2"}],"contractDependencies":[1823],"contractKind":"contract","documentation":"@title GovernorBravoDelegateStorageV1\n@dev For future upgrades, do not change GovernorBravoDelegateStorageV1. Create a new\ncontract which implements GovernorBravoDelegateStorageV1 and following the naming convention\nGovernorBravoDelegateStorageVX.","fullyImplemented":true,"id":1907,"linearizedBaseContracts":[1907,1823],"name":"GovernorBravoDelegateStorageV1","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":1827,"name":"votingDelay","nodeType":"VariableDeclaration","scope":1907,"src":"3952:23:2","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1826,"name":"uint","nodeType":"ElementaryTypeName","src":"3952:4:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"public"},{"constant":false,"id":1829,"name":"votingPeriod","nodeType":"VariableDeclaration","scope":1907,"src":"4057:24:2","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1828,"name":"uint","nodeType":"ElementaryTypeName","src":"4057:4:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"public"},{"constant":false,"id":1831,"name":"proposalThreshold","nodeType":"VariableDeclaration","scope":1907,"src":"4186:29:2","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1830,"name":"uint","nodeType":"ElementaryTypeName","src":"4186:4:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"public"},{"constant":false,"id":1833,"name":"initialProposalId","nodeType":"VariableDeclaration","scope":1907,"src":"4272:29:2","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1832,"name":"uint","nodeType":"ElementaryTypeName","src":"4272:4:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"public"},{"constant":false,"id":1835,"name":"proposalCount","nodeType":"VariableDeclaration","scope":1907,"src":"4354:25:2","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1834,"name":"uint","nodeType":"ElementaryTypeName","src":"4354:4:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"public"},{"constant":false,"id":1837,"name":"timelock","nodeType":"VariableDeclaration","scope":1907,"src":"4445:33:2","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_TimelockInterface_$2007","typeString":"contract TimelockInterface"},"typeName":{"contractScope":null,"id":1836,"name":"TimelockInterface","nodeType":"UserDefinedTypeName","referencedDeclaration":2007,"src":"4445:17:2","typeDescriptions":{"typeIdentifier":"t_contract$_TimelockInterface_$2007","typeString":"contract TimelockInterface"}},"value":null,"visibility":"public"},{"constant":false,"id":1839,"name":"xvsVault","nodeType":"VariableDeclaration","scope":1907,"src":"4543:33:2","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_XvsVaultInterface_$2017","typeString":"contract XvsVaultInterface"},"typeName":{"contractScope":null,"id":1838,"name":"XvsVaultInterface","nodeType":"UserDefinedTypeName","referencedDeclaration":2017,"src":"4543:17:2","typeDescriptions":{"typeIdentifier":"t_contract$_XvsVaultInterface_$2017","typeString":"contract XvsVaultInterface"}},"value":null,"visibility":"public"},{"constant":false,"id":1843,"name":"proposals","nodeType":"VariableDeclaration","scope":1907,"src":"4650:42:2","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$1886_storage_$","typeString":"mapping(uint256 => struct GovernorBravoDelegateStorageV1.Proposal)"},"typeName":{"id":1842,"keyType":{"id":1840,"name":"uint","nodeType":"ElementaryTypeName","src":"4658:4:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"4650:25:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$1886_storage_$","typeString":"mapping(uint256 => struct GovernorBravoDelegateStorageV1.Proposal)"},"valueType":{"contractScope":null,"id":1841,"name":"Proposal","nodeType":"UserDefinedTypeName","referencedDeclaration":1886,"src":"4666:8:2","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$1886_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal"}}},"value":null,"visibility":"public"},{"constant":false,"id":1847,"name":"latestProposalIds","nodeType":"VariableDeclaration","scope":1907,"src":"4753:49:2","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":1846,"keyType":{"id":1844,"name":"address","nodeType":"ElementaryTypeName","src":"4761:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"4753:24:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueType":{"id":1845,"name":"uint","nodeType":"ElementaryTypeName","src":"4772:4:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"value":null,"visibility":"public"},{"canonicalName":"GovernorBravoDelegateStorageV1.Proposal","id":1886,"members":[{"constant":false,"id":1849,"name":"id","nodeType":"VariableDeclaration","scope":1886,"src":"4891:7:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1848,"name":"uint","nodeType":"ElementaryTypeName","src":"4891:4:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":1851,"name":"proposer","nodeType":"VariableDeclaration","scope":1886,"src":"4952:16:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1850,"name":"address","nodeType":"ElementaryTypeName","src":"4952:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":1853,"name":"eta","nodeType":"VariableDeclaration","scope":1886,"src":"5090:8:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1852,"name":"uint","nodeType":"ElementaryTypeName","src":"5090:4:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":1856,"name":"targets","nodeType":"VariableDeclaration","scope":1886,"src":"5186:17:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":1854,"name":"address","nodeType":"ElementaryTypeName","src":"5186:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1855,"length":null,"nodeType":"ArrayTypeName","src":"5186:9:2","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":1859,"name":"values","nodeType":"VariableDeclaration","scope":1886,"src":"5314:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":1857,"name":"uint","nodeType":"ElementaryTypeName","src":"5314:4:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1858,"length":null,"nodeType":"ArrayTypeName","src":"5314:6:2","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":1862,"name":"signatures","nodeType":"VariableDeclaration","scope":1886,"src":"5410:19:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":1860,"name":"string","nodeType":"ElementaryTypeName","src":"5410:6:2","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":1861,"length":null,"nodeType":"ArrayTypeName","src":"5410:8:2","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":1865,"name":"calldatas","nodeType":"VariableDeclaration","scope":1886,"src":"5514:17:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":1863,"name":"bytes","nodeType":"ElementaryTypeName","src":"5514:5:2","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":1864,"length":null,"nodeType":"ArrayTypeName","src":"5514:7:2","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":1867,"name":"startBlock","nodeType":"VariableDeclaration","scope":1886,"src":"5649:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1866,"name":"uint","nodeType":"ElementaryTypeName","src":"5649:4:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":1869,"name":"endBlock","nodeType":"VariableDeclaration","scope":1886,"src":"5765:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1868,"name":"uint","nodeType":"ElementaryTypeName","src":"5765:4:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":1871,"name":"forVotes","nodeType":"VariableDeclaration","scope":1886,"src":"5858:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1870,"name":"uint","nodeType":"ElementaryTypeName","src":"5858:4:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":1873,"name":"againstVotes","nodeType":"VariableDeclaration","scope":1886,"src":"5956:17:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1872,"name":"uint","nodeType":"ElementaryTypeName","src":"5956:4:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":1875,"name":"abstainVotes","nodeType":"VariableDeclaration","scope":1886,"src":"6060:17:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1874,"name":"uint","nodeType":"ElementaryTypeName","src":"6060:4:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":1877,"name":"canceled","nodeType":"VariableDeclaration","scope":1886,"src":"6159:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1876,"name":"bool","nodeType":"ElementaryTypeName","src":"6159:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"},{"constant":false,"id":1879,"name":"executed","nodeType":"VariableDeclaration","scope":1886,"src":"6254:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1878,"name":"bool","nodeType":"ElementaryTypeName","src":"6254:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"},{"constant":false,"id":1883,"name":"receipts","nodeType":"VariableDeclaration","scope":1886,"src":"6346:36:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Receipt_$1893_storage_$","typeString":"mapping(address => struct GovernorBravoDelegateStorageV1.Receipt)"},"typeName":{"id":1882,"keyType":{"id":1880,"name":"address","nodeType":"ElementaryTypeName","src":"6354:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"6346:27:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Receipt_$1893_storage_$","typeString":"mapping(address => struct GovernorBravoDelegateStorageV1.Receipt)"},"valueType":{"contractScope":null,"id":1881,"name":"Receipt","nodeType":"UserDefinedTypeName","referencedDeclaration":1893,"src":"6365:7:2","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$1893_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Receipt"}}},"value":null,"visibility":"internal"},{"constant":false,"id":1885,"name":"proposalType","nodeType":"VariableDeclaration","scope":1886,"src":"6437:18:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1884,"name":"uint8","nodeType":"ElementaryTypeName","src":"6437:5:2","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":null,"visibility":"internal"}],"name":"Proposal","nodeType":"StructDefinition","scope":1907,"src":"4809:1653:2","visibility":"public"},{"canonicalName":"GovernorBravoDelegateStorageV1.Receipt","id":1893,"members":[{"constant":false,"id":1888,"name":"hasVoted","nodeType":"VariableDeclaration","scope":1893,"src":"6599:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1887,"name":"bool","nodeType":"ElementaryTypeName","src":"6599:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"},{"constant":false,"id":1890,"name":"support","nodeType":"VariableDeclaration","scope":1893,"src":"6701:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1889,"name":"uint8","nodeType":"ElementaryTypeName","src":"6701:5:2","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":null,"visibility":"internal"},{"constant":false,"id":1892,"name":"votes","nodeType":"VariableDeclaration","scope":1893,"src":"6795:12:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":1891,"name":"uint96","nodeType":"ElementaryTypeName","src":"6795:6:2","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"value":null,"visibility":"internal"}],"name":"Receipt","nodeType":"StructDefinition","scope":1907,"src":"6518:296:2","visibility":"public"},{"canonicalName":"GovernorBravoDelegateStorageV1.ProposalState","id":1902,"members":[{"id":1894,"name":"Pending","nodeType":"EnumValue","src":"6907:7:2"},{"id":1895,"name":"Active","nodeType":"EnumValue","src":"6924:6:2"},{"id":1896,"name":"Canceled","nodeType":"EnumValue","src":"6940:8:2"},{"id":1897,"name":"Defeated","nodeType":"EnumValue","src":"6958:8:2"},{"id":1898,"name":"Succeeded","nodeType":"EnumValue","src":"6976:9:2"},{"id":1899,"name":"Queued","nodeType":"EnumValue","src":"6995:6:2"},{"id":1900,"name":"Expired","nodeType":"EnumValue","src":"7011:7:2"},{"id":1901,"name":"Executed","nodeType":"EnumValue","src":"7028:8:2"}],"name":"ProposalState","nodeType":"EnumDefinition","src":"6878:164:2"},{"constant":false,"id":1904,"name":"proposalMaxOperations","nodeType":"VariableDeclaration","scope":1907,"src":"7129:33:2","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1903,"name":"uint","nodeType":"ElementaryTypeName","src":"7129:4:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"public"},{"constant":false,"id":1906,"name":"guardian","nodeType":"VariableDeclaration","scope":1907,"src":"7232:23:2","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1905,"name":"address","nodeType":"ElementaryTypeName","src":"7232:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"public"}],"scope":2024,"src":"3767:3491:2"},{"baseContracts":[{"arguments":null,"baseName":{"contractScope":null,"id":1908,"name":"GovernorBravoDelegateStorageV1","nodeType":"UserDefinedTypeName","referencedDeclaration":1907,"src":"7571:30:2","typeDescriptions":{"typeIdentifier":"t_contract$_GovernorBravoDelegateStorageV1_$1907","typeString":"contract GovernorBravoDelegateStorageV1"}},"id":1909,"nodeType":"InheritanceSpecifier","src":"7571:30:2"}],"contractDependencies":[1823,1907],"contractKind":"contract","documentation":"@title GovernorBravoDelegateStorageV2\n@dev For future upgrades, do not change GovernorBravoDelegateStorageV2. Create a new\ncontract which implements GovernorBravoDelegateStorageV2 and following the naming convention\nGovernorBravoDelegateStorageVX.","fullyImplemented":true,"id":1929,"linearizedBaseContracts":[1929,1907,1823],"name":"GovernorBravoDelegateStorageV2","nodeType":"ContractDefinition","nodes":[{"canonicalName":"GovernorBravoDelegateStorageV2.ProposalType","id":1913,"members":[{"id":1910,"name":"NORMAL","nodeType":"EnumValue","src":"7636:6:2"},{"id":1911,"name":"FASTTRACK","nodeType":"EnumValue","src":"7652:9:2"},{"id":1912,"name":"CRITICAL","nodeType":"EnumValue","src":"7671:8:2"}],"name":"ProposalType","nodeType":"EnumDefinition","src":"7608:77:2"},{"canonicalName":"GovernorBravoDelegateStorageV2.ProposalConfig","id":1920,"members":[{"constant":false,"id":1915,"name":"votingDelay","nodeType":"VariableDeclaration","scope":1920,"src":"7822:19:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1914,"name":"uint256","nodeType":"ElementaryTypeName","src":"7822:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":1917,"name":"votingPeriod","nodeType":"VariableDeclaration","scope":1920,"src":"7919:20:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1916,"name":"uint256","nodeType":"ElementaryTypeName","src":"7919:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":1919,"name":"proposalThreshold","nodeType":"VariableDeclaration","scope":1920,"src":"8040:25:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1918,"name":"uint256","nodeType":"ElementaryTypeName","src":"8040:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"name":"ProposalConfig","nodeType":"StructDefinition","scope":1929,"src":"7691:381:2","visibility":"public"},{"constant":false,"id":1924,"name":"proposalConfigs","nodeType":"VariableDeclaration","scope":1929,"src":"8150:54:2","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_ProposalConfig_$1920_storage_$","typeString":"mapping(uint256 => struct GovernorBravoDelegateStorageV2.ProposalConfig)"},"typeName":{"id":1923,"keyType":{"id":1921,"name":"uint","nodeType":"ElementaryTypeName","src":"8158:4:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"8150:31:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_ProposalConfig_$1920_storage_$","typeString":"mapping(uint256 => struct GovernorBravoDelegateStorageV2.ProposalConfig)"},"valueType":{"contractScope":null,"id":1922,"name":"ProposalConfig","nodeType":"UserDefinedTypeName","referencedDeclaration":1920,"src":"8166:14:2","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalConfig_$1920_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV2.ProposalConfig"}}},"value":null,"visibility":"public"},{"constant":false,"id":1928,"name":"proposalTimelocks","nodeType":"VariableDeclaration","scope":1929,"src":"8288:59:2","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_contract$_TimelockInterface_$2007_$","typeString":"mapping(uint256 => contract TimelockInterface)"},"typeName":{"id":1927,"keyType":{"id":1925,"name":"uint","nodeType":"ElementaryTypeName","src":"8296:4:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"8288:34:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_contract$_TimelockInterface_$2007_$","typeString":"mapping(uint256 => contract TimelockInterface)"},"valueType":{"contractScope":null,"id":1926,"name":"TimelockInterface","nodeType":"UserDefinedTypeName","referencedDeclaration":2007,"src":"8304:17:2","typeDescriptions":{"typeIdentifier":"t_contract$_TimelockInterface_$2007","typeString":"contract TimelockInterface"}}},"value":null,"visibility":"public"}],"scope":2024,"src":"7528:822:2"},{"baseContracts":[{"arguments":null,"baseName":{"contractScope":null,"id":1930,"name":"GovernorBravoDelegateStorageV2","nodeType":"UserDefinedTypeName","referencedDeclaration":1929,"src":"8663:30:2","typeDescriptions":{"typeIdentifier":"t_contract$_GovernorBravoDelegateStorageV2_$1929","typeString":"contract GovernorBravoDelegateStorageV2"}},"id":1931,"nodeType":"InheritanceSpecifier","src":"8663:30:2"}],"contractDependencies":[1823,1907,1929],"contractKind":"contract","documentation":"@title GovernorBravoDelegateStorageV3\n@dev For future upgrades, do not change GovernorBravoDelegateStorageV3. Create a new\ncontract which implements GovernorBravoDelegateStorageV3 and following the naming convention\nGovernorBravoDelegateStorageVX.","fullyImplemented":true,"id":1943,"linearizedBaseContracts":[1943,1929,1907,1823],"name":"GovernorBravoDelegateStorageV3","nodeType":"ContractDefinition","nodes":[{"canonicalName":"GovernorBravoDelegateStorageV3.ValidationParams","id":1940,"members":[{"constant":false,"id":1933,"name":"minVotingPeriod","nodeType":"VariableDeclaration","scope":1940,"src":"8734:23:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1932,"name":"uint256","nodeType":"ElementaryTypeName","src":"8734:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":1935,"name":"maxVotingPeriod","nodeType":"VariableDeclaration","scope":1940,"src":"8767:23:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1934,"name":"uint256","nodeType":"ElementaryTypeName","src":"8767:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":1937,"name":"minVotingDelay","nodeType":"VariableDeclaration","scope":1940,"src":"8800:22:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1936,"name":"uint256","nodeType":"ElementaryTypeName","src":"8800:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":1939,"name":"maxVotingDelay","nodeType":"VariableDeclaration","scope":1940,"src":"8832:22:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1938,"name":"uint256","nodeType":"ElementaryTypeName","src":"8832:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"name":"ValidationParams","nodeType":"StructDefinition","scope":1943,"src":"8700:161:2","visibility":"public"},{"constant":false,"id":1942,"name":"validationParams","nodeType":"VariableDeclaration","scope":1943,"src":"8962:40:2","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationParams_$1940_storage","typeString":"struct GovernorBravoDelegateStorageV3.ValidationParams"},"typeName":{"contractScope":null,"id":1941,"name":"ValidationParams","nodeType":"UserDefinedTypeName","referencedDeclaration":1940,"src":"8962:16:2","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationParams_$1940_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV3.ValidationParams"}},"value":null,"visibility":"public"}],"scope":2024,"src":"8620:385:2"},{"baseContracts":[],"contractDependencies":[],"contractKind":"interface","documentation":"@title TimelockInterface\n@author Venus\n@notice Interface implemented by the Timelock contract.","fullyImplemented":false,"id":2007,"linearizedBaseContracts":[2007],"name":"TimelockInterface","nodeType":"ContractDefinition","nodes":[{"body":null,"documentation":null,"id":1948,"implemented":false,"kind":"function","modifiers":[],"name":"delay","nodeType":"FunctionDefinition","parameters":{"id":1944,"nodeType":"ParameterList","parameters":[],"src":"9167:2:2"},"returnParameters":{"id":1947,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1946,"name":"","nodeType":"VariableDeclaration","scope":1948,"src":"9193:4:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1945,"name":"uint","nodeType":"ElementaryTypeName","src":"9193:4:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"9192:6:2"},"scope":2007,"src":"9153:46:2","stateMutability":"view","superFunction":null,"visibility":"external"},{"body":null,"documentation":null,"id":1953,"implemented":false,"kind":"function","modifiers":[],"name":"GRACE_PERIOD","nodeType":"FunctionDefinition","parameters":{"id":1949,"nodeType":"ParameterList","parameters":[],"src":"9226:2:2"},"returnParameters":{"id":1952,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1951,"name":"","nodeType":"VariableDeclaration","scope":1953,"src":"9252:4:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1950,"name":"uint","nodeType":"ElementaryTypeName","src":"9252:4:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"9251:6:2"},"scope":2007,"src":"9205:53:2","stateMutability":"view","superFunction":null,"visibility":"external"},{"body":null,"documentation":null,"id":1956,"implemented":false,"kind":"function","modifiers":[],"name":"acceptAdmin","nodeType":"FunctionDefinition","parameters":{"id":1954,"nodeType":"ParameterList","parameters":[],"src":"9284:2:2"},"returnParameters":{"id":1955,"nodeType":"ParameterList","parameters":[],"src":"9295:0:2"},"scope":2007,"src":"9264:32:2","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":null,"documentation":null,"id":1963,"implemented":false,"kind":"function","modifiers":[],"name":"queuedTransactions","nodeType":"FunctionDefinition","parameters":{"id":1959,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1958,"name":"hash","nodeType":"VariableDeclaration","scope":1963,"src":"9330:12:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1957,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9330:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"9329:14:2"},"returnParameters":{"id":1962,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1961,"name":"","nodeType":"VariableDeclaration","scope":1963,"src":"9367:4:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1960,"name":"bool","nodeType":"ElementaryTypeName","src":"9367:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"9366:6:2"},"scope":2007,"src":"9302:71:2","stateMutability":"view","superFunction":null,"visibility":"external"},{"body":null,"documentation":null,"id":1978,"implemented":false,"kind":"function","modifiers":[],"name":"queueTransaction","nodeType":"FunctionDefinition","parameters":{"id":1974,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1965,"name":"target","nodeType":"VariableDeclaration","scope":1978,"src":"9414:14:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1964,"name":"address","nodeType":"ElementaryTypeName","src":"9414:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":1967,"name":"value","nodeType":"VariableDeclaration","scope":1978,"src":"9438:10:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1966,"name":"uint","nodeType":"ElementaryTypeName","src":"9438:4:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":1969,"name":"signature","nodeType":"VariableDeclaration","scope":1978,"src":"9458:25:2","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":1968,"name":"string","nodeType":"ElementaryTypeName","src":"9458:6:2","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"},{"constant":false,"id":1971,"name":"data","nodeType":"VariableDeclaration","scope":1978,"src":"9493:19:2","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1970,"name":"bytes","nodeType":"ElementaryTypeName","src":"9493:5:2","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":null,"visibility":"internal"},{"constant":false,"id":1973,"name":"eta","nodeType":"VariableDeclaration","scope":1978,"src":"9522:8:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1972,"name":"uint","nodeType":"ElementaryTypeName","src":"9522:4:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"9404:132:2"},"returnParameters":{"id":1977,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1976,"name":"","nodeType":"VariableDeclaration","scope":1978,"src":"9555:7:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1975,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9555:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"9554:9:2"},"scope":2007,"src":"9379:185:2","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":null,"documentation":null,"id":1991,"implemented":false,"kind":"function","modifiers":[],"name":"cancelTransaction","nodeType":"FunctionDefinition","parameters":{"id":1989,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1980,"name":"target","nodeType":"VariableDeclaration","scope":1991,"src":"9606:14:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1979,"name":"address","nodeType":"ElementaryTypeName","src":"9606:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":1982,"name":"value","nodeType":"VariableDeclaration","scope":1991,"src":"9630:10:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1981,"name":"uint","nodeType":"ElementaryTypeName","src":"9630:4:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":1984,"name":"signature","nodeType":"VariableDeclaration","scope":1991,"src":"9650:25:2","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":1983,"name":"string","nodeType":"ElementaryTypeName","src":"9650:6:2","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"},{"constant":false,"id":1986,"name":"data","nodeType":"VariableDeclaration","scope":1991,"src":"9685:19:2","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1985,"name":"bytes","nodeType":"ElementaryTypeName","src":"9685:5:2","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":null,"visibility":"internal"},{"constant":false,"id":1988,"name":"eta","nodeType":"VariableDeclaration","scope":1991,"src":"9714:8:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1987,"name":"uint","nodeType":"ElementaryTypeName","src":"9714:4:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"9596:132:2"},"returnParameters":{"id":1990,"nodeType":"ParameterList","parameters":[],"src":"9737:0:2"},"scope":2007,"src":"9570:168:2","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":null,"documentation":null,"id":2006,"implemented":false,"kind":"function","modifiers":[],"name":"executeTransaction","nodeType":"FunctionDefinition","parameters":{"id":2002,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1993,"name":"target","nodeType":"VariableDeclaration","scope":2006,"src":"9781:14:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1992,"name":"address","nodeType":"ElementaryTypeName","src":"9781:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":1995,"name":"value","nodeType":"VariableDeclaration","scope":2006,"src":"9805:10:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1994,"name":"uint","nodeType":"ElementaryTypeName","src":"9805:4:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":1997,"name":"signature","nodeType":"VariableDeclaration","scope":2006,"src":"9825:25:2","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":1996,"name":"string","nodeType":"ElementaryTypeName","src":"9825:6:2","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"},{"constant":false,"id":1999,"name":"data","nodeType":"VariableDeclaration","scope":2006,"src":"9860:19:2","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1998,"name":"bytes","nodeType":"ElementaryTypeName","src":"9860:5:2","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":null,"visibility":"internal"},{"constant":false,"id":2001,"name":"eta","nodeType":"VariableDeclaration","scope":2006,"src":"9889:8:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2000,"name":"uint","nodeType":"ElementaryTypeName","src":"9889:4:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"9771:132:2"},"returnParameters":{"id":2005,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2004,"name":"","nodeType":"VariableDeclaration","scope":2006,"src":"9930:12:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2003,"name":"bytes","nodeType":"ElementaryTypeName","src":"9930:5:2","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":null,"visibility":"internal"}],"src":"9929:14:2"},"scope":2007,"src":"9744:200:2","stateMutability":"payable","superFunction":null,"visibility":"external"}],"scope":2024,"src":"9119:827:2"},{"baseContracts":[],"contractDependencies":[],"contractKind":"interface","documentation":null,"fullyImplemented":false,"id":2017,"linearizedBaseContracts":[2017],"name":"XvsVaultInterface","nodeType":"ContractDefinition","nodes":[{"body":null,"documentation":null,"id":2016,"implemented":false,"kind":"function","modifiers":[],"name":"getPriorVotes","nodeType":"FunctionDefinition","parameters":{"id":2012,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2009,"name":"account","nodeType":"VariableDeclaration","scope":2016,"src":"10005:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2008,"name":"address","nodeType":"ElementaryTypeName","src":"10005:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":2011,"name":"blockNumber","nodeType":"VariableDeclaration","scope":2016,"src":"10022:16:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2010,"name":"uint","nodeType":"ElementaryTypeName","src":"10022:4:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"10004:35:2"},"returnParameters":{"id":2015,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2014,"name":"","nodeType":"VariableDeclaration","scope":2016,"src":"10063:6:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":2013,"name":"uint96","nodeType":"ElementaryTypeName","src":"10063:6:2","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"value":null,"visibility":"internal"}],"src":"10062:8:2"},"scope":2017,"src":"9982:89:2","stateMutability":"view","superFunction":null,"visibility":"external"}],"scope":2024,"src":"9948:125:2"},{"baseContracts":[],"contractDependencies":[],"contractKind":"interface","documentation":null,"fullyImplemented":false,"id":2023,"linearizedBaseContracts":[2023],"name":"GovernorAlphaInterface","nodeType":"ContractDefinition","nodes":[{"body":null,"documentation":"@notice The total number of proposals","id":2022,"implemented":false,"kind":"function","modifiers":[],"name":"proposalCount","nodeType":"FunctionDefinition","parameters":{"id":2018,"nodeType":"ParameterList","parameters":[],"src":"10182:2:2"},"returnParameters":{"id":2021,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2020,"name":"","nodeType":"VariableDeclaration","scope":2022,"src":"10203:4:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2019,"name":"uint","nodeType":"ElementaryTypeName","src":"10203:4:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"10202:6:2"},"scope":2023,"src":"10160:49:2","stateMutability":"nonpayable","superFunction":null,"visibility":"external"}],"scope":2024,"src":"10075:136:2"}],"src":"0:10212:2"},"id":2},"contracts/legacy/GovenorBravoV1.sol":{"ast":{"absolutePath":"contracts/legacy/GovenorBravoV1.sol","exportedSymbols":{"GovernorBravoDelegatorV1":[2146]},"id":2147,"nodeType":"SourceUnit","nodes":[{"id":2025,"literals":["solidity","^","0.5",".16"],"nodeType":"PragmaDirective","src":"0:24:3"},{"id":2026,"literals":["experimental","ABIEncoderV2"],"nodeType":"PragmaDirective","src":"25:33:3"},{"absolutePath":"contracts/legacy/GovernorBravoInterfaces.sol","file":"./GovernorBravoInterfaces.sol","id":2027,"nodeType":"ImportDirective","scope":2147,"sourceUnit":5317,"src":"60:39:3","symbolAliases":[],"unitAlias":""},{"baseContracts":[{"arguments":null,"baseName":{"contractScope":null,"id":2028,"name":"GovernorBravoDelegatorStorage","nodeType":"UserDefinedTypeName","referencedDeclaration":5234,"src":"246:29:3","typeDescriptions":{"typeIdentifier":"t_contract$_GovernorBravoDelegatorStorage_$5234","typeString":"contract GovernorBravoDelegatorStorage"}},"id":2029,"nodeType":"InheritanceSpecifier","src":"246:29:3"},{"arguments":null,"baseName":{"contractScope":null,"id":2030,"name":"GovernorBravoEventsV1","nodeType":"UserDefinedTypeName","referencedDeclaration":5227,"src":"277:21:3","typeDescriptions":{"typeIdentifier":"t_contract$_GovernorBravoEventsV1_$5227","typeString":"contract GovernorBravoEventsV1"}},"id":2031,"nodeType":"InheritanceSpecifier","src":"277:21:3"}],"contractDependencies":[5227,5234],"contractKind":"contract","documentation":"@title GovernorBravoDelegator\n@author Venus\n@notice The `GovernorBravoDelegator` contract.","fullyImplemented":true,"id":2146,"linearizedBaseContracts":[2146,5227,5234],"name":"GovernorBravoDelegatorV1","nodeType":"ContractDefinition","nodes":[{"body":{"id":2077,"nodeType":"Block","src":"556:528:3","statements":[{"expression":{"argumentTypes":null,"id":2053,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":2050,"name":"admin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5229,"src":"620:5:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":2051,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5552,"src":"628:3:3","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2052,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"628:10:3","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"620:18:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2054,"nodeType":"ExpressionStatement","src":"620:18:3"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":2056,"name":"implementation_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2039,"src":"673:15:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"696e697469616c697a6528616464726573732c616464726573732c75696e743235362c75696e743235362c75696e743235362c6164647265737329","id":2059,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"743:61:3","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_b1a5d12d57c9112e14a5662f86e84b18b06bdd980a7d074ad7ab8dea2bfb70be","typeString":"literal_string \"initialize(address,address,uint256,uint256,uint256,address)\""},"value":"initialize(address,address,uint256,uint256,uint256,address)"},{"argumentTypes":null,"id":2060,"name":"timelock_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2033,"src":"822:9:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":2061,"name":"xvsVault_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2035,"src":"849:9:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":2062,"name":"votingPeriod_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2041,"src":"876:13:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":2063,"name":"votingDelay_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2043,"src":"907:12:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":2064,"name":"proposalThreshold_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2045,"src":"937:18:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":2065,"name":"guardian_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2047,"src":"973:9:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b1a5d12d57c9112e14a5662f86e84b18b06bdd980a7d074ad7ab8dea2bfb70be","typeString":"literal_string \"initialize(address,address,uint256,uint256,uint256,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"argumentTypes":null,"id":2057,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5539,"src":"702:3:3","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":2058,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","referencedDeclaration":null,"src":"702:23:3","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":2066,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"702:294:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":2055,"name":"delegateTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2132,"src":"649:10:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,bytes memory)"}},"id":2067,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"649:357:3","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2068,"nodeType":"ExpressionStatement","src":"649:357:3"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":2070,"name":"implementation_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2039,"src":"1036:15:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2069,"name":"_setImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2114,"src":"1017:18:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":2071,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1017:35:3","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2072,"nodeType":"ExpressionStatement","src":"1017:35:3"},{"expression":{"argumentTypes":null,"id":2075,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":2073,"name":"admin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5229,"src":"1063:5:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":2074,"name":"admin_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2037,"src":"1071:6:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1063:14:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2076,"nodeType":"ExpressionStatement","src":"1063:14:3"}]},"documentation":null,"id":2078,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nodeType":"FunctionDefinition","parameters":{"id":2048,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2033,"name":"timelock_","nodeType":"VariableDeclaration","scope":2078,"src":"326:17:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2032,"name":"address","nodeType":"ElementaryTypeName","src":"326:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":2035,"name":"xvsVault_","nodeType":"VariableDeclaration","scope":2078,"src":"353:17:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2034,"name":"address","nodeType":"ElementaryTypeName","src":"353:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":2037,"name":"admin_","nodeType":"VariableDeclaration","scope":2078,"src":"380:14:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2036,"name":"address","nodeType":"ElementaryTypeName","src":"380:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":2039,"name":"implementation_","nodeType":"VariableDeclaration","scope":2078,"src":"404:23:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2038,"name":"address","nodeType":"ElementaryTypeName","src":"404:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":2041,"name":"votingPeriod_","nodeType":"VariableDeclaration","scope":2078,"src":"437:18:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2040,"name":"uint","nodeType":"ElementaryTypeName","src":"437:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2043,"name":"votingDelay_","nodeType":"VariableDeclaration","scope":2078,"src":"465:17:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2042,"name":"uint","nodeType":"ElementaryTypeName","src":"465:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2045,"name":"proposalThreshold_","nodeType":"VariableDeclaration","scope":2078,"src":"492:23:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2044,"name":"uint","nodeType":"ElementaryTypeName","src":"492:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2047,"name":"guardian_","nodeType":"VariableDeclaration","scope":2078,"src":"525:17:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2046,"name":"address","nodeType":"ElementaryTypeName","src":"525:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"316:232:3"},"returnParameters":{"id":2049,"nodeType":"ParameterList","parameters":[],"src":"556:0:3"},"scope":2146,"src":"305:779:3","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":2113,"nodeType":"Block","src":"1330:426:3","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":2087,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":2084,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5552,"src":"1348:3:3","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2085,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"1348:10:3","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"id":2086,"name":"admin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5229,"src":"1362:5:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1348:19:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"476f7665726e6f72427261766f44656c656761746f723a3a5f736574496d706c656d656e746174696f6e3a2061646d696e206f6e6c79","id":2088,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1369:56:3","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_67e0cfb19eeb696ffa2478995cd84545be2598121b514835c4a36bdd58be17b5","typeString":"literal_string \"GovernorBravoDelegator::_setImplementation: admin only\""},"value":"GovernorBravoDelegator::_setImplementation: admin only"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_67e0cfb19eeb696ffa2478995cd84545be2598121b514835c4a36bdd58be17b5","typeString":"literal_string \"GovernorBravoDelegator::_setImplementation: admin only\""}],"id":2083,"name":"require","nodeType":"Identifier","overloadedDeclarations":[5555,5556],"referencedDeclaration":5556,"src":"1340:7:3","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2089,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1340:86:3","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2090,"nodeType":"ExpressionStatement","src":"1340:86:3"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":2096,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":2092,"name":"implementation_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2080,"src":"1457:15:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":2094,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1484:1:3","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":2093,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1476:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":2095,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1476:10:3","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"1457:29:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"476f7665726e6f72427261766f44656c656761746f723a3a5f736574496d706c656d656e746174696f6e3a20696e76616c696420696d706c656d656e746174696f6e2061646472657373","id":2097,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1500:76:3","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_561af24827b00b724adb303d81d460221f68af67b410ff78faf6902bb014b94d","typeString":"literal_string \"GovernorBravoDelegator::_setImplementation: invalid implementation address\""},"value":"GovernorBravoDelegator::_setImplementation: invalid implementation address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_561af24827b00b724adb303d81d460221f68af67b410ff78faf6902bb014b94d","typeString":"literal_string \"GovernorBravoDelegator::_setImplementation: invalid implementation address\""}],"id":2091,"name":"require","nodeType":"Identifier","overloadedDeclarations":[5555,5556],"referencedDeclaration":5556,"src":"1436:7:3","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2098,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1436:150:3","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2099,"nodeType":"ExpressionStatement","src":"1436:150:3"},{"assignments":[2101],"declarations":[{"constant":false,"id":2101,"name":"oldImplementation","nodeType":"VariableDeclaration","scope":2113,"src":"1597:25:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2100,"name":"address","nodeType":"ElementaryTypeName","src":"1597:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"id":2103,"initialValue":{"argumentTypes":null,"id":2102,"name":"implementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5233,"src":"1625:14:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"1597:42:3"},{"expression":{"argumentTypes":null,"id":2106,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":2104,"name":"implementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5233,"src":"1649:14:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":2105,"name":"implementation_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2080,"src":"1666:15:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1649:32:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2107,"nodeType":"ExpressionStatement","src":"1649:32:3"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":2109,"name":"oldImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2101,"src":"1715:17:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":2110,"name":"implementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5233,"src":"1734:14:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":2108,"name":"NewImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5196,"src":"1697:17:3","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":2111,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1697:52:3","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2112,"nodeType":"EmitStatement","src":"1692:57:3"}]},"documentation":"@notice Called by the admin to update the implementation of the delegator\n@param implementation_ The address of the new implementation for delegation","id":2114,"implemented":true,"kind":"function","modifiers":[],"name":"_setImplementation","nodeType":"FunctionDefinition","parameters":{"id":2081,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2080,"name":"implementation_","nodeType":"VariableDeclaration","scope":2114,"src":"1298:23:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2079,"name":"address","nodeType":"ElementaryTypeName","src":"1298:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"1297:25:3"},"returnParameters":{"id":2082,"nodeType":"ParameterList","parameters":[],"src":"1330:0:3"},"scope":2146,"src":"1270:486:3","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":2131,"nodeType":"Block","src":"2115:221:3","statements":[{"assignments":[2122,2124],"declarations":[{"constant":false,"id":2122,"name":"success","nodeType":"VariableDeclaration","scope":2131,"src":"2126:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2121,"name":"bool","nodeType":"ElementaryTypeName","src":"2126:4:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"},{"constant":false,"id":2124,"name":"returnData","nodeType":"VariableDeclaration","scope":2131,"src":"2140:23:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2123,"name":"bytes","nodeType":"ElementaryTypeName","src":"2140:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":null,"visibility":"internal"}],"id":2129,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":2127,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2118,"src":"2187:4:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":null,"id":2125,"name":"callee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2116,"src":"2167:6:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2126,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"delegatecall","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2167:19:3","typeDescriptions":{"typeIdentifier":"t_function_baredelegatecall_nonpayable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) returns (bool,bytes memory)"}},"id":2128,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2167:25:3","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"2125:67:3"},{"externalReferences":[{"success":{"declaration":2122,"isOffset":false,"isSlot":false,"src":"2231:7:3","valueSize":1}},{"returnData":{"declaration":2124,"isOffset":false,"isSlot":false,"src":"2272:10:3","valueSize":1}}],"id":2130,"nodeType":"InlineAssembly","operations":"{\n    if eq(success, 0)\n    {\n        revert(add(returnData, 0x20), returndatasize())\n    }\n}","src":"2202:128:3"}]},"documentation":"@notice Internal method to delegate execution to another contract\n@dev It returns to the external caller whatever the implementation returns or forwards reverts\n@param callee The contract to delegatecall\n@param data The raw data to delegatecall","id":2132,"implemented":true,"kind":"function","modifiers":[],"name":"delegateTo","nodeType":"FunctionDefinition","parameters":{"id":2119,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2116,"name":"callee","nodeType":"VariableDeclaration","scope":2132,"src":"2071:14:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2115,"name":"address","nodeType":"ElementaryTypeName","src":"2071:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":2118,"name":"data","nodeType":"VariableDeclaration","scope":2132,"src":"2087:17:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2117,"name":"bytes","nodeType":"ElementaryTypeName","src":"2087:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":null,"visibility":"internal"}],"src":"2070:35:3"},"returnParameters":{"id":2120,"nodeType":"ParameterList","parameters":[],"src":"2115:0:3"},"scope":2146,"src":"2051:285:3","stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},{"body":{"id":2144,"nodeType":"Block","src":"2554:478:3","statements":[{"assignments":[2136,null],"declarations":[{"constant":false,"id":2136,"name":"success","nodeType":"VariableDeclaration","scope":2144,"src":"2631:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2135,"name":"bool","nodeType":"ElementaryTypeName","src":"2631:4:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"},null],"id":2142,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":2139,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5552,"src":"2677:3:3","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2140,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"data","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2677:8:3","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"argumentTypes":null,"id":2137,"name":"implementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5233,"src":"2649:14:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2138,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"delegatecall","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2649:27:3","typeDescriptions":{"typeIdentifier":"t_function_baredelegatecall_nonpayable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) returns (bool,bytes memory)"}},"id":2141,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2649:37:3","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"2630:56:3"},{"externalReferences":[{"success":{"declaration":2136,"isOffset":false,"isSlot":false,"src":"2832:7:3","valueSize":1}}],"id":2143,"nodeType":"InlineAssembly","operations":"{\n    let free_mem_ptr := mload(0x40)\n    returndatacopy(free_mem_ptr, 0, returndatasize())\n    switch success\n    case 0 {\n        revert(free_mem_ptr, returndatasize())\n    }\n    default {\n        return(free_mem_ptr, returndatasize())\n    }\n}","src":"2697:329:3"}]},"documentation":"@dev Delegates execution to an implementation contract.\nIt returns to the external caller whatever the implementation returns\nor forwards reverts.","id":2145,"implemented":true,"kind":"fallback","modifiers":[],"name":"","nodeType":"FunctionDefinition","parameters":{"id":2133,"nodeType":"ParameterList","parameters":[],"src":"2534:2:3"},"returnParameters":{"id":2134,"nodeType":"ParameterList","parameters":[],"src":"2554:0:3"},"scope":2146,"src":"2526:506:3","stateMutability":"payable","superFunction":null,"visibility":"external"}],"scope":2147,"src":"209:2825:3"}],"src":"0:3035:3"},"id":3},"contracts/legacy/GovenorBravoV2.sol":{"ast":{"absolutePath":"contracts/legacy/GovenorBravoV2.sol","exportedSymbols":{"GovernorBravoDelegatorV1":[2269]},"id":2270,"nodeType":"SourceUnit","nodes":[{"id":2148,"literals":["solidity","^","0.5",".16"],"nodeType":"PragmaDirective","src":"0:24:4"},{"id":2149,"literals":["experimental","ABIEncoderV2"],"nodeType":"PragmaDirective","src":"25:33:4"},{"absolutePath":"contracts/legacy/GovernorBravoInterfaces.sol","file":"./GovernorBravoInterfaces.sol","id":2150,"nodeType":"ImportDirective","scope":2270,"sourceUnit":5317,"src":"60:39:4","symbolAliases":[],"unitAlias":""},{"baseContracts":[{"arguments":null,"baseName":{"contractScope":null,"id":2151,"name":"GovernorBravoDelegatorStorage","nodeType":"UserDefinedTypeName","referencedDeclaration":5234,"src":"246:29:4","typeDescriptions":{"typeIdentifier":"t_contract$_GovernorBravoDelegatorStorage_$5234","typeString":"contract GovernorBravoDelegatorStorage"}},"id":2152,"nodeType":"InheritanceSpecifier","src":"246:29:4"},{"arguments":null,"baseName":{"contractScope":null,"id":2153,"name":"GovernorBravoEventsV1","nodeType":"UserDefinedTypeName","referencedDeclaration":5227,"src":"277:21:4","typeDescriptions":{"typeIdentifier":"t_contract$_GovernorBravoEventsV1_$5227","typeString":"contract GovernorBravoEventsV1"}},"id":2154,"nodeType":"InheritanceSpecifier","src":"277:21:4"}],"contractDependencies":[5227,5234],"contractKind":"contract","documentation":"@title GovernorBravoDelegator\n@author Venus\n@notice The `GovernorBravoDelegator` contract.","fullyImplemented":true,"id":2269,"linearizedBaseContracts":[2269,5227,5234],"name":"GovernorBravoDelegatorV1","nodeType":"ContractDefinition","nodes":[{"body":{"id":2200,"nodeType":"Block","src":"556:528:4","statements":[{"expression":{"argumentTypes":null,"id":2176,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":2173,"name":"admin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5229,"src":"620:5:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":2174,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5552,"src":"628:3:4","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2175,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"628:10:4","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"620:18:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2177,"nodeType":"ExpressionStatement","src":"620:18:4"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":2179,"name":"implementation_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2162,"src":"673:15:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"696e697469616c697a6528616464726573732c616464726573732c75696e743235362c75696e743235362c75696e743235362c6164647265737329","id":2182,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"743:61:4","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_b1a5d12d57c9112e14a5662f86e84b18b06bdd980a7d074ad7ab8dea2bfb70be","typeString":"literal_string \"initialize(address,address,uint256,uint256,uint256,address)\""},"value":"initialize(address,address,uint256,uint256,uint256,address)"},{"argumentTypes":null,"id":2183,"name":"timelock_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2156,"src":"822:9:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":2184,"name":"xvsVault_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2158,"src":"849:9:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":2185,"name":"votingPeriod_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2164,"src":"876:13:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":2186,"name":"votingDelay_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2166,"src":"907:12:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":2187,"name":"proposalThreshold_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2168,"src":"937:18:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":2188,"name":"guardian_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2170,"src":"973:9:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b1a5d12d57c9112e14a5662f86e84b18b06bdd980a7d074ad7ab8dea2bfb70be","typeString":"literal_string \"initialize(address,address,uint256,uint256,uint256,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"argumentTypes":null,"id":2180,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5539,"src":"702:3:4","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":2181,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","referencedDeclaration":null,"src":"702:23:4","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":2189,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"702:294:4","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":2178,"name":"delegateTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2255,"src":"649:10:4","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,bytes memory)"}},"id":2190,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"649:357:4","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2191,"nodeType":"ExpressionStatement","src":"649:357:4"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":2193,"name":"implementation_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2162,"src":"1036:15:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2192,"name":"_setImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2237,"src":"1017:18:4","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":2194,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1017:35:4","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2195,"nodeType":"ExpressionStatement","src":"1017:35:4"},{"expression":{"argumentTypes":null,"id":2198,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":2196,"name":"admin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5229,"src":"1063:5:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":2197,"name":"admin_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2160,"src":"1071:6:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1063:14:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2199,"nodeType":"ExpressionStatement","src":"1063:14:4"}]},"documentation":null,"id":2201,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nodeType":"FunctionDefinition","parameters":{"id":2171,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2156,"name":"timelock_","nodeType":"VariableDeclaration","scope":2201,"src":"326:17:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2155,"name":"address","nodeType":"ElementaryTypeName","src":"326:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":2158,"name":"xvsVault_","nodeType":"VariableDeclaration","scope":2201,"src":"353:17:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2157,"name":"address","nodeType":"ElementaryTypeName","src":"353:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":2160,"name":"admin_","nodeType":"VariableDeclaration","scope":2201,"src":"380:14:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2159,"name":"address","nodeType":"ElementaryTypeName","src":"380:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":2162,"name":"implementation_","nodeType":"VariableDeclaration","scope":2201,"src":"404:23:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2161,"name":"address","nodeType":"ElementaryTypeName","src":"404:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":2164,"name":"votingPeriod_","nodeType":"VariableDeclaration","scope":2201,"src":"437:18:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2163,"name":"uint","nodeType":"ElementaryTypeName","src":"437:4:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2166,"name":"votingDelay_","nodeType":"VariableDeclaration","scope":2201,"src":"465:17:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2165,"name":"uint","nodeType":"ElementaryTypeName","src":"465:4:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2168,"name":"proposalThreshold_","nodeType":"VariableDeclaration","scope":2201,"src":"492:23:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2167,"name":"uint","nodeType":"ElementaryTypeName","src":"492:4:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2170,"name":"guardian_","nodeType":"VariableDeclaration","scope":2201,"src":"525:17:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2169,"name":"address","nodeType":"ElementaryTypeName","src":"525:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"316:232:4"},"returnParameters":{"id":2172,"nodeType":"ParameterList","parameters":[],"src":"556:0:4"},"scope":2269,"src":"305:779:4","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":2236,"nodeType":"Block","src":"1330:426:4","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":2210,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":2207,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5552,"src":"1348:3:4","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2208,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"1348:10:4","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"id":2209,"name":"admin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5229,"src":"1362:5:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1348:19:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"476f7665726e6f72427261766f44656c656761746f723a3a5f736574496d706c656d656e746174696f6e3a2061646d696e206f6e6c79","id":2211,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1369:56:4","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_67e0cfb19eeb696ffa2478995cd84545be2598121b514835c4a36bdd58be17b5","typeString":"literal_string \"GovernorBravoDelegator::_setImplementation: admin only\""},"value":"GovernorBravoDelegator::_setImplementation: admin only"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_67e0cfb19eeb696ffa2478995cd84545be2598121b514835c4a36bdd58be17b5","typeString":"literal_string \"GovernorBravoDelegator::_setImplementation: admin only\""}],"id":2206,"name":"require","nodeType":"Identifier","overloadedDeclarations":[5555,5556],"referencedDeclaration":5556,"src":"1340:7:4","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2212,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1340:86:4","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2213,"nodeType":"ExpressionStatement","src":"1340:86:4"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":2219,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":2215,"name":"implementation_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2203,"src":"1457:15:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":2217,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1484:1:4","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":2216,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1476:7:4","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":2218,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1476:10:4","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"1457:29:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"476f7665726e6f72427261766f44656c656761746f723a3a5f736574496d706c656d656e746174696f6e3a20696e76616c696420696d706c656d656e746174696f6e2061646472657373","id":2220,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1500:76:4","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_561af24827b00b724adb303d81d460221f68af67b410ff78faf6902bb014b94d","typeString":"literal_string \"GovernorBravoDelegator::_setImplementation: invalid implementation address\""},"value":"GovernorBravoDelegator::_setImplementation: invalid implementation address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_561af24827b00b724adb303d81d460221f68af67b410ff78faf6902bb014b94d","typeString":"literal_string \"GovernorBravoDelegator::_setImplementation: invalid implementation address\""}],"id":2214,"name":"require","nodeType":"Identifier","overloadedDeclarations":[5555,5556],"referencedDeclaration":5556,"src":"1436:7:4","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2221,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1436:150:4","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2222,"nodeType":"ExpressionStatement","src":"1436:150:4"},{"assignments":[2224],"declarations":[{"constant":false,"id":2224,"name":"oldImplementation","nodeType":"VariableDeclaration","scope":2236,"src":"1597:25:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2223,"name":"address","nodeType":"ElementaryTypeName","src":"1597:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"id":2226,"initialValue":{"argumentTypes":null,"id":2225,"name":"implementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5233,"src":"1625:14:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"1597:42:4"},{"expression":{"argumentTypes":null,"id":2229,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":2227,"name":"implementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5233,"src":"1649:14:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":2228,"name":"implementation_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2203,"src":"1666:15:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1649:32:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2230,"nodeType":"ExpressionStatement","src":"1649:32:4"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":2232,"name":"oldImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2224,"src":"1715:17:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":2233,"name":"implementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5233,"src":"1734:14:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":2231,"name":"NewImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5196,"src":"1697:17:4","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":2234,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1697:52:4","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2235,"nodeType":"EmitStatement","src":"1692:57:4"}]},"documentation":"@notice Called by the admin to update the implementation of the delegator\n@param implementation_ The address of the new implementation for delegation","id":2237,"implemented":true,"kind":"function","modifiers":[],"name":"_setImplementation","nodeType":"FunctionDefinition","parameters":{"id":2204,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2203,"name":"implementation_","nodeType":"VariableDeclaration","scope":2237,"src":"1298:23:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2202,"name":"address","nodeType":"ElementaryTypeName","src":"1298:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"1297:25:4"},"returnParameters":{"id":2205,"nodeType":"ParameterList","parameters":[],"src":"1330:0:4"},"scope":2269,"src":"1270:486:4","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":2254,"nodeType":"Block","src":"2115:221:4","statements":[{"assignments":[2245,2247],"declarations":[{"constant":false,"id":2245,"name":"success","nodeType":"VariableDeclaration","scope":2254,"src":"2126:12:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2244,"name":"bool","nodeType":"ElementaryTypeName","src":"2126:4:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"},{"constant":false,"id":2247,"name":"returnData","nodeType":"VariableDeclaration","scope":2254,"src":"2140:23:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2246,"name":"bytes","nodeType":"ElementaryTypeName","src":"2140:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":null,"visibility":"internal"}],"id":2252,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":2250,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2241,"src":"2187:4:4","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":null,"id":2248,"name":"callee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2239,"src":"2167:6:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2249,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"delegatecall","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2167:19:4","typeDescriptions":{"typeIdentifier":"t_function_baredelegatecall_nonpayable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) returns (bool,bytes memory)"}},"id":2251,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2167:25:4","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"2125:67:4"},{"externalReferences":[{"success":{"declaration":2245,"isOffset":false,"isSlot":false,"src":"2231:7:4","valueSize":1}},{"returnData":{"declaration":2247,"isOffset":false,"isSlot":false,"src":"2272:10:4","valueSize":1}}],"id":2253,"nodeType":"InlineAssembly","operations":"{\n    if eq(success, 0)\n    {\n        revert(add(returnData, 0x20), returndatasize())\n    }\n}","src":"2202:128:4"}]},"documentation":"@notice Internal method to delegate execution to another contract\n@dev It returns to the external caller whatever the implementation returns or forwards reverts\n@param callee The contract to delegatecall\n@param data The raw data to delegatecall","id":2255,"implemented":true,"kind":"function","modifiers":[],"name":"delegateTo","nodeType":"FunctionDefinition","parameters":{"id":2242,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2239,"name":"callee","nodeType":"VariableDeclaration","scope":2255,"src":"2071:14:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2238,"name":"address","nodeType":"ElementaryTypeName","src":"2071:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":2241,"name":"data","nodeType":"VariableDeclaration","scope":2255,"src":"2087:17:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2240,"name":"bytes","nodeType":"ElementaryTypeName","src":"2087:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":null,"visibility":"internal"}],"src":"2070:35:4"},"returnParameters":{"id":2243,"nodeType":"ParameterList","parameters":[],"src":"2115:0:4"},"scope":2269,"src":"2051:285:4","stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},{"body":{"id":2267,"nodeType":"Block","src":"2554:478:4","statements":[{"assignments":[2259,null],"declarations":[{"constant":false,"id":2259,"name":"success","nodeType":"VariableDeclaration","scope":2267,"src":"2631:12:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2258,"name":"bool","nodeType":"ElementaryTypeName","src":"2631:4:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"},null],"id":2265,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":2262,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5552,"src":"2677:3:4","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2263,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"data","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2677:8:4","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"argumentTypes":null,"id":2260,"name":"implementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5233,"src":"2649:14:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2261,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"delegatecall","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2649:27:4","typeDescriptions":{"typeIdentifier":"t_function_baredelegatecall_nonpayable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) returns (bool,bytes memory)"}},"id":2264,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2649:37:4","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"2630:56:4"},{"externalReferences":[{"success":{"declaration":2259,"isOffset":false,"isSlot":false,"src":"2832:7:4","valueSize":1}}],"id":2266,"nodeType":"InlineAssembly","operations":"{\n    let free_mem_ptr := mload(0x40)\n    returndatacopy(free_mem_ptr, 0, returndatasize())\n    switch success\n    case 0 {\n        revert(free_mem_ptr, returndatasize())\n    }\n    default {\n        return(free_mem_ptr, returndatasize())\n    }\n}","src":"2697:329:4"}]},"documentation":"@dev Delegates execution to an implementation contract.\nIt returns to the external caller whatever the implementation returns\nor forwards reverts.","id":2268,"implemented":true,"kind":"fallback","modifiers":[],"name":"","nodeType":"FunctionDefinition","parameters":{"id":2256,"nodeType":"ParameterList","parameters":[],"src":"2534:2:4"},"returnParameters":{"id":2257,"nodeType":"ParameterList","parameters":[],"src":"2554:0:4"},"scope":2269,"src":"2526:506:4","stateMutability":"payable","superFunction":null,"visibility":"external"}],"scope":2270,"src":"209:2825:4"}],"src":"0:3035:4"},"id":4},"contracts/legacy/GovernorBravoDelegateV1.sol":{"ast":{"absolutePath":"contracts/legacy/GovernorBravoDelegateV1.sol","exportedSymbols":{"GovernorBravoDelegateV1":[3683]},"id":3684,"nodeType":"SourceUnit","nodes":[{"id":2271,"literals":["solidity","^","0.5",".16"],"nodeType":"PragmaDirective","src":"0:24:5"},{"id":2272,"literals":["experimental","ABIEncoderV2"],"nodeType":"PragmaDirective","src":"25:33:5"},{"absolutePath":"contracts/legacy/GovernorBravoInterfaces.sol","file":"./GovernorBravoInterfaces.sol","id":2273,"nodeType":"ImportDirective","scope":3684,"sourceUnit":5317,"src":"60:39:5","symbolAliases":[],"unitAlias":""},{"baseContracts":[{"arguments":null,"baseName":{"contractScope":null,"id":2274,"name":"GovernorBravoDelegateStorageV1","nodeType":"UserDefinedTypeName","referencedDeclaration":5316,"src":"384:30:5","typeDescriptions":{"typeIdentifier":"t_contract$_GovernorBravoDelegateStorageV1_$5316","typeString":"contract GovernorBravoDelegateStorageV1"}},"id":2275,"nodeType":"InheritanceSpecifier","src":"384:30:5"},{"arguments":null,"baseName":{"contractScope":null,"id":2276,"name":"GovernorBravoEventsV1","nodeType":"UserDefinedTypeName","referencedDeclaration":5227,"src":"416:21:5","typeDescriptions":{"typeIdentifier":"t_contract$_GovernorBravoEventsV1_$5227","typeString":"contract GovernorBravoEventsV1"}},"id":2277,"nodeType":"InheritanceSpecifier","src":"416:21:5"}],"contractDependencies":[5227,5234,5316],"contractKind":"contract","documentation":"@title GovernorBravoDelegateV1\n@dev This contract is the first deployed implementation GovernorBravo.\nIt is included here for testing purposes because it has a different signature for the ProposalCreated event and Proposal struct","fullyImplemented":true,"id":3683,"linearizedBaseContracts":[3683,5227,5316,5234],"name":"GovernorBravoDelegateV1","nodeType":"ContractDefinition","nodes":[{"constant":true,"id":2280,"name":"name","nodeType":"VariableDeclaration","scope":3683,"src":"486:52:5","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory","typeString":"string"},"typeName":{"id":2278,"name":"string","nodeType":"ElementaryTypeName","src":"486:6:5","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"argumentTypes":null,"hexValue":"56656e757320476f7665726e6f7220427261766f","id":2279,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"516:22:5","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_157d76627a3b71c0167806f5879f7a61d3e301322f3a3b9f900315f15937671a","typeString":"literal_string \"Venus Governor Bravo\""},"value":"Venus Governor Bravo"},"visibility":"public"},{"constant":true,"id":2283,"name":"MIN_PROPOSAL_THRESHOLD","nodeType":"VariableDeclaration","scope":3683,"src":"600:55:5","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2281,"name":"uint","nodeType":"ElementaryTypeName","src":"600:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"argumentTypes":null,"hexValue":"313530303030653138","id":2282,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"646:9:5","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_150000000000000000000000_by_1","typeString":"int_const 150000000000000000000000"},"value":"150000e18"},"visibility":"public"},{"constant":true,"id":2286,"name":"MAX_PROPOSAL_THRESHOLD","nodeType":"VariableDeclaration","scope":3683,"src":"732:55:5","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2284,"name":"uint","nodeType":"ElementaryTypeName","src":"732:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"argumentTypes":null,"hexValue":"333030303030653138","id":2285,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"778:9:5","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_300000000000000000000000_by_1","typeString":"int_const 300000000000000000000000"},"value":"300000e18"},"visibility":"public"},{"constant":true,"id":2293,"name":"MIN_VOTING_PERIOD","nodeType":"VariableDeclaration","scope":3683,"src":"858:52:5","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2287,"name":"uint","nodeType":"ElementaryTypeName","src":"858:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_rational_3600_by_1","typeString":"int_const 3600"},"id":2292,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_rational_1200_by_1","typeString":"int_const 1200"},"id":2290,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"hexValue":"3230","id":2288,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"899:2:5","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"},"value":"20"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"argumentTypes":null,"hexValue":"3630","id":2289,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"904:2:5","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_60_by_1","typeString":"int_const 60"},"value":"60"},"src":"899:7:5","typeDescriptions":{"typeIdentifier":"t_rational_1200_by_1","typeString":"int_const 1200"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"argumentTypes":null,"hexValue":"33","id":2291,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"909:1:5","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"src":"899:11:5","typeDescriptions":{"typeIdentifier":"t_rational_3600_by_1","typeString":"int_const 3600"}},"visibility":"public"},{"constant":true,"id":2302,"name":"MAX_VOTING_PERIOD","nodeType":"VariableDeclaration","scope":3683,"src":"998:58:5","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2294,"name":"uint","nodeType":"ElementaryTypeName","src":"998:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_rational_403200_by_1","typeString":"int_const 403200"},"id":2301,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_rational_28800_by_1","typeString":"int_const 28800"},"id":2299,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_rational_1200_by_1","typeString":"int_const 1200"},"id":2297,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"hexValue":"3230","id":2295,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1039:2:5","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"},"value":"20"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"argumentTypes":null,"hexValue":"3630","id":2296,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1044:2:5","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_60_by_1","typeString":"int_const 60"},"value":"60"},"src":"1039:7:5","typeDescriptions":{"typeIdentifier":"t_rational_1200_by_1","typeString":"int_const 1200"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"argumentTypes":null,"hexValue":"3234","id":2298,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1049:2:5","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_24_by_1","typeString":"int_const 24"},"value":"24"},"src":"1039:12:5","typeDescriptions":{"typeIdentifier":"t_rational_28800_by_1","typeString":"int_const 28800"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"argumentTypes":null,"hexValue":"3134","id":2300,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1054:2:5","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_14_by_1","typeString":"int_const 14"},"value":"14"},"src":"1039:17:5","typeDescriptions":{"typeIdentifier":"t_rational_403200_by_1","typeString":"int_const 403200"}},"visibility":"public"},{"constant":true,"id":2305,"name":"MIN_VOTING_DELAY","nodeType":"VariableDeclaration","scope":3683,"src":"1143:41:5","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2303,"name":"uint","nodeType":"ElementaryTypeName","src":"1143:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"argumentTypes":null,"hexValue":"31","id":2304,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1183:1:5","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"public"},{"constant":true,"id":2314,"name":"MAX_VOTING_DELAY","nodeType":"VariableDeclaration","scope":3683,"src":"1236:56:5","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2306,"name":"uint","nodeType":"ElementaryTypeName","src":"1236:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_rational_201600_by_1","typeString":"int_const 201600"},"id":2313,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_rational_28800_by_1","typeString":"int_const 28800"},"id":2311,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_rational_1200_by_1","typeString":"int_const 1200"},"id":2309,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"hexValue":"3230","id":2307,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1276:2:5","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"},"value":"20"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"argumentTypes":null,"hexValue":"3630","id":2308,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1281:2:5","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_60_by_1","typeString":"int_const 60"},"value":"60"},"src":"1276:7:5","typeDescriptions":{"typeIdentifier":"t_rational_1200_by_1","typeString":"int_const 1200"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"argumentTypes":null,"hexValue":"3234","id":2310,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1286:2:5","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_24_by_1","typeString":"int_const 24"},"value":"24"},"src":"1276:12:5","typeDescriptions":{"typeIdentifier":"t_rational_28800_by_1","typeString":"int_const 28800"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"argumentTypes":null,"hexValue":"37","id":2312,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1291:1:5","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_7_by_1","typeString":"int_const 7"},"value":"7"},"src":"1276:16:5","typeDescriptions":{"typeIdentifier":"t_rational_201600_by_1","typeString":"int_const 201600"}},"visibility":"public"},{"constant":true,"id":2317,"name":"quorumVotes","nodeType":"VariableDeclaration","scope":3683,"src":"1465:44:5","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2315,"name":"uint","nodeType":"ElementaryTypeName","src":"1465:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"argumentTypes":null,"hexValue":"363030303030653138","id":2316,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1500:9:5","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_600000000000000000000000_by_1","typeString":"int_const 600000000000000000000000"},"value":"600000e18"},"visibility":"public"},{"constant":true,"id":2322,"name":"DOMAIN_TYPEHASH","nodeType":"VariableDeclaration","scope":3683,"src":"1602:130:5","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2318,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1602:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"454950373132446f6d61696e28737472696e67206e616d652c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429","id":2320,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1662:69:5","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":2319,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5546,"src":"1652:9:5","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":2321,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1652:80:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"constant":true,"id":2327,"name":"BALLOT_TYPEHASH","nodeType":"VariableDeclaration","scope":3683,"src":"1819:95:5","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2323,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1819:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"42616c6c6f742875696e743235362070726f706f73616c49642c75696e743820737570706f727429","id":2325,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1871:42:5","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_150214d74d59b7d1e90c73fc22ef3d991dd0a76b046543d4d80ab92d2a50328f","typeString":"literal_string \"Ballot(uint256 proposalId,uint8 support)\""},"value":"Ballot(uint256 proposalId,uint8 support)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_150214d74d59b7d1e90c73fc22ef3d991dd0a76b046543d4d80ab92d2a50328f","typeString":"literal_string \"Ballot(uint256 proposalId,uint8 support)\""}],"id":2324,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5546,"src":"1861:9:5","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":2326,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1861:53:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"body":{"id":2453,"nodeType":"Block","src":"2488:1307:5","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":2349,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":2344,"name":"timelock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5248,"src":"2514:8:5","typeDescriptions":{"typeIdentifier":"t_contract$_TimelockInterface_$2007","typeString":"contract TimelockInterface"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_TimelockInterface_$2007","typeString":"contract TimelockInterface"}],"id":2343,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2506:7:5","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":2345,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2506:17:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":2347,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2535:1:5","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":2346,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2527:7:5","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":2348,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2527:10:5","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"2506:31:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"476f7665726e6f72427261766f3a3a696e697469616c697a653a2063616e206f6e6c7920696e697469616c697a65206f6e6365","id":2350,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2539:53:5","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_151f6261f1c5890955ee36f5491405733a50f8dbfd3ed20f67657ca07cf1bd97","typeString":"literal_string \"GovernorBravo::initialize: can only initialize once\""},"value":"GovernorBravo::initialize: can only initialize once"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_151f6261f1c5890955ee36f5491405733a50f8dbfd3ed20f67657ca07cf1bd97","typeString":"literal_string \"GovernorBravo::initialize: can only initialize once\""}],"id":2342,"name":"require","nodeType":"Identifier","overloadedDeclarations":[5555,5556],"referencedDeclaration":5556,"src":"2498:7:5","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2351,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2498:95:5","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2352,"nodeType":"ExpressionStatement","src":"2498:95:5"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":2357,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":2354,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5552,"src":"2611:3:5","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2355,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2611:10:5","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"id":2356,"name":"admin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5229,"src":"2625:5:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2611:19:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"476f7665726e6f72427261766f3a3a696e697469616c697a653a2061646d696e206f6e6c79","id":2358,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2632:39:5","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_6e47288757825adad4754037a004a97a318622f53744b99fe46d86485d9a8b20","typeString":"literal_string \"GovernorBravo::initialize: admin only\""},"value":"GovernorBravo::initialize: admin only"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6e47288757825adad4754037a004a97a318622f53744b99fe46d86485d9a8b20","typeString":"literal_string \"GovernorBravo::initialize: admin only\""}],"id":2353,"name":"require","nodeType":"Identifier","overloadedDeclarations":[5555,5556],"referencedDeclaration":5556,"src":"2603:7:5","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2359,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2603:69:5","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2360,"nodeType":"ExpressionStatement","src":"2603:69:5"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":2366,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":2362,"name":"timelock_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2329,"src":"2690:9:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":2364,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2711:1:5","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":2363,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2703:7:5","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":2365,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2703:10:5","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"2690:23:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"476f7665726e6f72427261766f3a3a696e697469616c697a653a20696e76616c69642074696d656c6f636b2061646472657373","id":2367,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2715:53:5","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_21e23966aafb704889545eb5cd83af6490f12bdafb7ee5c7f4405649e923a2c9","typeString":"literal_string \"GovernorBravo::initialize: invalid timelock address\""},"value":"GovernorBravo::initialize: invalid timelock address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_21e23966aafb704889545eb5cd83af6490f12bdafb7ee5c7f4405649e923a2c9","typeString":"literal_string \"GovernorBravo::initialize: invalid timelock address\""}],"id":2361,"name":"require","nodeType":"Identifier","overloadedDeclarations":[5555,5556],"referencedDeclaration":5556,"src":"2682:7:5","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2368,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2682:87:5","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2369,"nodeType":"ExpressionStatement","src":"2682:87:5"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":2375,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":2371,"name":"xvsVault_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2331,"src":"2787:9:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":2373,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2808:1:5","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":2372,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2800:7:5","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":2374,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2800:10:5","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"2787:23:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"476f7665726e6f72427261766f3a3a696e697469616c697a653a20696e76616c6964207876732061646472657373","id":2376,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2812:48:5","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_580547aa0e07256f03455de6704ecf6c9f2591a99356ae47c14d3cfc20dd4be8","typeString":"literal_string \"GovernorBravo::initialize: invalid xvs address\""},"value":"GovernorBravo::initialize: invalid xvs address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_580547aa0e07256f03455de6704ecf6c9f2591a99356ae47c14d3cfc20dd4be8","typeString":"literal_string \"GovernorBravo::initialize: invalid xvs address\""}],"id":2370,"name":"require","nodeType":"Identifier","overloadedDeclarations":[5555,5556],"referencedDeclaration":5556,"src":"2779:7:5","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2377,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2779:82:5","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2378,"nodeType":"ExpressionStatement","src":"2779:82:5"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":2386,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2382,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":2380,"name":"votingPeriod_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2333,"src":"2892:13:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"argumentTypes":null,"id":2381,"name":"MIN_VOTING_PERIOD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2293,"src":"2909:17:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2892:34:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2385,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":2383,"name":"votingPeriod_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2333,"src":"2930:13:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"argumentTypes":null,"id":2384,"name":"MAX_VOTING_PERIOD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2302,"src":"2947:17:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2930:34:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2892:72:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"476f7665726e6f72427261766f3a3a696e697469616c697a653a20696e76616c696420766f74696e6720706572696f64","id":2387,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2978:50:5","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_e9e5615425b0cd9c2cebf179c241e8f17014c8af68e810515d55661f48622fdd","typeString":"literal_string \"GovernorBravo::initialize: invalid voting period\""},"value":"GovernorBravo::initialize: invalid voting period"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e9e5615425b0cd9c2cebf179c241e8f17014c8af68e810515d55661f48622fdd","typeString":"literal_string \"GovernorBravo::initialize: invalid voting period\""}],"id":2379,"name":"require","nodeType":"Identifier","overloadedDeclarations":[5555,5556],"referencedDeclaration":5556,"src":"2871:7:5","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2388,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2871:167:5","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2389,"nodeType":"ExpressionStatement","src":"2871:167:5"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":2397,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2393,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":2391,"name":"votingDelay_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2335,"src":"3069:12:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"argumentTypes":null,"id":2392,"name":"MIN_VOTING_DELAY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2305,"src":"3085:16:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3069:32:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2396,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":2394,"name":"votingDelay_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2335,"src":"3105:12:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"argumentTypes":null,"id":2395,"name":"MAX_VOTING_DELAY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2314,"src":"3121:16:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3105:32:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3069:68:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"476f7665726e6f72427261766f3a3a696e697469616c697a653a20696e76616c696420766f74696e672064656c6179","id":2398,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3151:49:5","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_63a531af56d655db3f73e61eec02c446a787a3af7d8ddcb2a0b9674a780913f1","typeString":"literal_string \"GovernorBravo::initialize: invalid voting delay\""},"value":"GovernorBravo::initialize: invalid voting delay"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_63a531af56d655db3f73e61eec02c446a787a3af7d8ddcb2a0b9674a780913f1","typeString":"literal_string \"GovernorBravo::initialize: invalid voting delay\""}],"id":2390,"name":"require","nodeType":"Identifier","overloadedDeclarations":[5555,5556],"referencedDeclaration":5556,"src":"3048:7:5","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2399,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3048:162:5","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2400,"nodeType":"ExpressionStatement","src":"3048:162:5"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":2408,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2404,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":2402,"name":"proposalThreshold_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2337,"src":"3241:18:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"argumentTypes":null,"id":2403,"name":"MIN_PROPOSAL_THRESHOLD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2283,"src":"3263:22:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3241:44:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2407,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":2405,"name":"proposalThreshold_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2337,"src":"3289:18:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"argumentTypes":null,"id":2406,"name":"MAX_PROPOSAL_THRESHOLD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2286,"src":"3311:22:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3289:44:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3241:92:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"476f7665726e6f72427261766f3a3a696e697469616c697a653a20696e76616c69642070726f706f73616c207468726573686f6c64","id":2409,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3347:55:5","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_59c58ede7ed2bbd6490c4678c3aaaf17f6c50b4ac911824783dceb923ac6e8dc","typeString":"literal_string \"GovernorBravo::initialize: invalid proposal threshold\""},"value":"GovernorBravo::initialize: invalid proposal threshold"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_59c58ede7ed2bbd6490c4678c3aaaf17f6c50b4ac911824783dceb923ac6e8dc","typeString":"literal_string \"GovernorBravo::initialize: invalid proposal threshold\""}],"id":2401,"name":"require","nodeType":"Identifier","overloadedDeclarations":[5555,5556],"referencedDeclaration":5556,"src":"3220:7:5","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2410,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3220:192:5","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2411,"nodeType":"ExpressionStatement","src":"3220:192:5"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":2417,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":2413,"name":"guardian_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2339,"src":"3430:9:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":2415,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3451:1:5","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":2414,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3443:7:5","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":2416,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3443:10:5","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"3430:23:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"476f7665726e6f72427261766f3a3a696e697469616c697a653a20696e76616c696420677561726469616e","id":2418,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3455:45:5","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_b338c931b78836fd9f8d991c91d03bb69b9ce31c3938b98e6cf724626c475813","typeString":"literal_string \"GovernorBravo::initialize: invalid guardian\""},"value":"GovernorBravo::initialize: invalid guardian"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b338c931b78836fd9f8d991c91d03bb69b9ce31c3938b98e6cf724626c475813","typeString":"literal_string \"GovernorBravo::initialize: invalid guardian\""}],"id":2412,"name":"require","nodeType":"Identifier","overloadedDeclarations":[5555,5556],"referencedDeclaration":5556,"src":"3422:7:5","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2419,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3422:79:5","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2420,"nodeType":"ExpressionStatement","src":"3422:79:5"},{"expression":{"argumentTypes":null,"id":2425,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":2421,"name":"timelock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5248,"src":"3512:8:5","typeDescriptions":{"typeIdentifier":"t_contract$_TimelockInterface_$2007","typeString":"contract TimelockInterface"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":2423,"name":"timelock_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2329,"src":"3541:9:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2422,"name":"TimelockInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2007,"src":"3523:17:5","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TimelockInterface_$2007_$","typeString":"type(contract TimelockInterface)"}},"id":2424,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3523:28:5","typeDescriptions":{"typeIdentifier":"t_contract$_TimelockInterface_$2007","typeString":"contract TimelockInterface"}},"src":"3512:39:5","typeDescriptions":{"typeIdentifier":"t_contract$_TimelockInterface_$2007","typeString":"contract TimelockInterface"}},"id":2426,"nodeType":"ExpressionStatement","src":"3512:39:5"},{"expression":{"argumentTypes":null,"id":2431,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":2427,"name":"xvsVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5250,"src":"3561:8:5","typeDescriptions":{"typeIdentifier":"t_contract$_XvsVaultInterface_$2017","typeString":"contract XvsVaultInterface"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":2429,"name":"xvsVault_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2331,"src":"3590:9:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2428,"name":"XvsVaultInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2017,"src":"3572:17:5","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_XvsVaultInterface_$2017_$","typeString":"type(contract XvsVaultInterface)"}},"id":2430,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3572:28:5","typeDescriptions":{"typeIdentifier":"t_contract$_XvsVaultInterface_$2017","typeString":"contract XvsVaultInterface"}},"src":"3561:39:5","typeDescriptions":{"typeIdentifier":"t_contract$_XvsVaultInterface_$2017","typeString":"contract XvsVaultInterface"}},"id":2432,"nodeType":"ExpressionStatement","src":"3561:39:5"},{"expression":{"argumentTypes":null,"id":2435,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":2433,"name":"votingPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5240,"src":"3610:12:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":2434,"name":"votingPeriod_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2333,"src":"3625:13:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3610:28:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2436,"nodeType":"ExpressionStatement","src":"3610:28:5"},{"expression":{"argumentTypes":null,"id":2439,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":2437,"name":"votingDelay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5238,"src":"3648:11:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":2438,"name":"votingDelay_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2335,"src":"3662:12:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3648:26:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2440,"nodeType":"ExpressionStatement","src":"3648:26:5"},{"expression":{"argumentTypes":null,"id":2443,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":2441,"name":"proposalThreshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5242,"src":"3684:17:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":2442,"name":"proposalThreshold_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2337,"src":"3704:18:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3684:38:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2444,"nodeType":"ExpressionStatement","src":"3684:38:5"},{"expression":{"argumentTypes":null,"id":2447,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":2445,"name":"proposalMaxOperations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5313,"src":"3732:21:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"hexValue":"3130","id":2446,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3756:2:5","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"src":"3732:26:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2448,"nodeType":"ExpressionStatement","src":"3732:26:5"},{"expression":{"argumentTypes":null,"id":2451,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":2449,"name":"guardian","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5315,"src":"3768:8:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":2450,"name":"guardian_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2339,"src":"3779:9:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3768:20:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2452,"nodeType":"ExpressionStatement","src":"3768:20:5"}]},"documentation":"@notice Used to initialize the contract during delegator contructor\n@param timelock_ The address of the Timelock\n@param xvsVault_ The address of the XvsVault\n@param votingPeriod_ The initial voting period\n@param votingDelay_ The initial voting delay\n@param proposalThreshold_ The initial proposal threshold","id":2454,"implemented":true,"kind":"function","modifiers":[],"name":"initialize","nodeType":"FunctionDefinition","parameters":{"id":2340,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2329,"name":"timelock_","nodeType":"VariableDeclaration","scope":2454,"src":"2315:17:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2328,"name":"address","nodeType":"ElementaryTypeName","src":"2315:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":2331,"name":"xvsVault_","nodeType":"VariableDeclaration","scope":2454,"src":"2342:17:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2330,"name":"address","nodeType":"ElementaryTypeName","src":"2342:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":2333,"name":"votingPeriod_","nodeType":"VariableDeclaration","scope":2454,"src":"2369:18:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2332,"name":"uint","nodeType":"ElementaryTypeName","src":"2369:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2335,"name":"votingDelay_","nodeType":"VariableDeclaration","scope":2454,"src":"2397:17:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2334,"name":"uint","nodeType":"ElementaryTypeName","src":"2397:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2337,"name":"proposalThreshold_","nodeType":"VariableDeclaration","scope":2454,"src":"2424:23:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2336,"name":"uint","nodeType":"ElementaryTypeName","src":"2424:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2339,"name":"guardian_","nodeType":"VariableDeclaration","scope":2454,"src":"2457:17:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2338,"name":"address","nodeType":"ElementaryTypeName","src":"2457:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"2305:175:5"},"returnParameters":{"id":2341,"nodeType":"ParameterList","parameters":[],"src":"2488:0:5"},"scope":3683,"src":"2286:1509:5","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":2637,"nodeType":"Block","src":"4473:2459:5","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2476,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":2474,"name":"initialProposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5244,"src":"4549:17:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"hexValue":"30","id":2475,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4570:1:5","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4549:22:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"476f7665726e6f72427261766f3a3a70726f706f73653a20476f7665726e6f7220427261766f206e6f7420616374697665","id":2477,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4573:51:5","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_2f7689ed1f85dde3dc8971cd363eb00503765913f120e6240508da9a370f15c7","typeString":"literal_string \"GovernorBravo::propose: Governor Bravo not active\""},"value":"GovernorBravo::propose: Governor Bravo not active"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_2f7689ed1f85dde3dc8971cd363eb00503765913f120e6240508da9a370f15c7","typeString":"literal_string \"GovernorBravo::propose: Governor Bravo not active\""}],"id":2473,"name":"require","nodeType":"Identifier","overloadedDeclarations":[5555,5556],"referencedDeclaration":5556,"src":"4541:7:5","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2478,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4541:84:5","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2479,"nodeType":"ExpressionStatement","src":"4541:84:5"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2492,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":2483,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5552,"src":"4679:3:5","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2484,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"4679:10:5","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":2486,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5542,"src":"4698:5:5","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":2487,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"number","nodeType":"MemberAccess","referencedDeclaration":null,"src":"4698:12:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"hexValue":"31","id":2488,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4712:1:5","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":2485,"name":"sub256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3670,"src":"4691:6:5","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":2489,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4691:23:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":2481,"name":"xvsVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5250,"src":"4656:8:5","typeDescriptions":{"typeIdentifier":"t_contract$_XvsVaultInterface_$2017","typeString":"contract XvsVaultInterface"}},"id":2482,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getPriorVotes","nodeType":"MemberAccess","referencedDeclaration":2016,"src":"4656:22:5","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_uint256_$returns$_t_uint96_$","typeString":"function (address,uint256) view external returns (uint96)"}},"id":2490,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4656:59:5","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"id":2491,"name":"proposalThreshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5242,"src":"4718:17:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4656:79:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"476f7665726e6f72427261766f3a3a70726f706f73653a2070726f706f73657220766f7465732062656c6f772070726f706f73616c207468726573686f6c64","id":2493,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4749:65:5","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_cce33201973389eb5d5eadb02095f9ccc730733696a536c64362c77126b5086b","typeString":"literal_string \"GovernorBravo::propose: proposer votes below proposal threshold\""},"value":"GovernorBravo::propose: proposer votes below proposal threshold"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_cce33201973389eb5d5eadb02095f9ccc730733696a536c64362c77126b5086b","typeString":"literal_string \"GovernorBravo::propose: proposer votes below proposal threshold\""}],"id":2480,"name":"require","nodeType":"Identifier","overloadedDeclarations":[5555,5556],"referencedDeclaration":5556,"src":"4635:7:5","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2494,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4635:189:5","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2495,"nodeType":"ExpressionStatement","src":"4635:189:5"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":2513,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":2507,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2501,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":2497,"name":"targets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2457,"src":"4855:7:5","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":2498,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"4855:14:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":2499,"name":"values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2460,"src":"4873:6:5","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":2500,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"4873:13:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4855:31:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2506,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":2502,"name":"targets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2457,"src":"4906:7:5","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":2503,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"4906:14:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":2504,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2463,"src":"4924:10:5","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_$dyn_memory_ptr","typeString":"string memory[] memory"}},"id":2505,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"4924:17:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4906:35:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4855:86:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2512,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":2508,"name":"targets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2457,"src":"4961:7:5","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":2509,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"4961:14:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":2510,"name":"calldatas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2466,"src":"4979:9:5","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":2511,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"4979:16:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4961:34:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4855:140:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"476f7665726e6f72427261766f3a3a70726f706f73653a2070726f706f73616c2066756e6374696f6e20696e666f726d6174696f6e206172697479206d69736d61746368","id":2514,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5009:70:5","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_69621e97c5d982910ff5cd550f5bc5eae1e6396f0f2af9267879c186d483c16b","typeString":"literal_string \"GovernorBravo::propose: proposal function information arity mismatch\""},"value":"GovernorBravo::propose: proposal function information arity mismatch"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_69621e97c5d982910ff5cd550f5bc5eae1e6396f0f2af9267879c186d483c16b","typeString":"literal_string \"GovernorBravo::propose: proposal function information arity mismatch\""}],"id":2496,"name":"require","nodeType":"Identifier","overloadedDeclarations":[5555,5556],"referencedDeclaration":5556,"src":"4834:7:5","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2515,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4834:255:5","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2516,"nodeType":"ExpressionStatement","src":"4834:255:5"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2521,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":2518,"name":"targets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2457,"src":"5107:7:5","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":2519,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"5107:14:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"hexValue":"30","id":2520,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5125:1:5","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5107:19:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"476f7665726e6f72427261766f3a3a70726f706f73653a206d7573742070726f7669646520616374696f6e73","id":2522,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5128:46:5","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_942e2bb983822c6256804c0e2d65587399729d07b6b48b9e3fe435de5044b803","typeString":"literal_string \"GovernorBravo::propose: must provide actions\""},"value":"GovernorBravo::propose: must provide actions"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_942e2bb983822c6256804c0e2d65587399729d07b6b48b9e3fe435de5044b803","typeString":"literal_string \"GovernorBravo::propose: must provide actions\""}],"id":2517,"name":"require","nodeType":"Identifier","overloadedDeclarations":[5555,5556],"referencedDeclaration":5556,"src":"5099:7:5","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2523,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5099:76:5","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2524,"nodeType":"ExpressionStatement","src":"5099:76:5"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2529,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":2526,"name":"targets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2457,"src":"5193:7:5","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":2527,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"5193:14:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"argumentTypes":null,"id":2528,"name":"proposalMaxOperations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5313,"src":"5211:21:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5193:39:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"476f7665726e6f72427261766f3a3a70726f706f73653a20746f6f206d616e7920616374696f6e73","id":2530,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5234:42:5","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_b54d69ba9f9abad90f1f013b8ab5a1d9b4c579f5bc801e2709d01ada775467a3","typeString":"literal_string \"GovernorBravo::propose: too many actions\""},"value":"GovernorBravo::propose: too many actions"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b54d69ba9f9abad90f1f013b8ab5a1d9b4c579f5bc801e2709d01ada775467a3","typeString":"literal_string \"GovernorBravo::propose: too many actions\""}],"id":2525,"name":"require","nodeType":"Identifier","overloadedDeclarations":[5555,5556],"referencedDeclaration":5556,"src":"5185:7:5","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2531,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5185:92:5","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2532,"nodeType":"ExpressionStatement","src":"5185:92:5"},{"assignments":[2534],"declarations":[{"constant":false,"id":2534,"name":"latestProposalId","nodeType":"VariableDeclaration","scope":2637,"src":"5288:21:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2533,"name":"uint","nodeType":"ElementaryTypeName","src":"5288:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":2539,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":2535,"name":"latestProposalIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5258,"src":"5312:17:5","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":2538,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":2536,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5552,"src":"5330:3:5","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2537,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"5330:10:5","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5312:29:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5288:53:5"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2542,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":2540,"name":"latestProposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2534,"src":"5355:16:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"hexValue":"30","id":2541,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5375:1:5","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5355:21:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":2566,"nodeType":"IfStatement","src":"5351:548:5","trueBody":{"id":2565,"nodeType":"Block","src":"5378:521:5","statements":[{"assignments":[2544],"declarations":[{"constant":false,"id":2544,"name":"proposersLatestProposalState","nodeType":"VariableDeclaration","scope":2565,"src":"5392:42:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$5311","typeString":"enum GovernorBravoDelegateStorageV1.ProposalState"},"typeName":{"contractScope":null,"id":2543,"name":"ProposalState","nodeType":"UserDefinedTypeName","referencedDeclaration":5311,"src":"5392:13:5","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$5311","typeString":"enum GovernorBravoDelegateStorageV1.ProposalState"}},"value":null,"visibility":"internal"}],"id":2548,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":2546,"name":"latestProposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2534,"src":"5443:16:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2545,"name":"state","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3075,"src":"5437:5:5","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_enum$_ProposalState_$5311_$","typeString":"function (uint256) view returns (enum GovernorBravoDelegateStorageV1.ProposalState)"}},"id":2547,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5437:23:5","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$5311","typeString":"enum GovernorBravoDelegateStorageV1.ProposalState"}},"nodeType":"VariableDeclarationStatement","src":"5392:68:5"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_enum$_ProposalState_$5311","typeString":"enum GovernorBravoDelegateStorageV1.ProposalState"},"id":2553,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":2550,"name":"proposersLatestProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2544,"src":"5499:28:5","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$5311","typeString":"enum GovernorBravoDelegateStorageV1.ProposalState"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":2551,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5311,"src":"5531:13:5","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$5311_$","typeString":"type(enum GovernorBravoDelegateStorageV1.ProposalState)"}},"id":2552,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Active","nodeType":"MemberAccess","referencedDeclaration":null,"src":"5531:20:5","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$5311","typeString":"enum GovernorBravoDelegateStorageV1.ProposalState"}},"src":"5499:52:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"476f7665726e6f72427261766f3a3a70726f706f73653a206f6e65206c6976652070726f706f73616c207065722070726f706f7365722c20666f756e6420616e20616c7265616479206163746976652070726f706f73616c","id":2554,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5569:90:5","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_c50c351fb39a3fd6000549d303eb3b76f9e50a4f12a9fca3ac5b1e05e941e83d","typeString":"literal_string \"GovernorBravo::propose: one live proposal per proposer, found an already active proposal\""},"value":"GovernorBravo::propose: one live proposal per proposer, found an already active proposal"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c50c351fb39a3fd6000549d303eb3b76f9e50a4f12a9fca3ac5b1e05e941e83d","typeString":"literal_string \"GovernorBravo::propose: one live proposal per proposer, found an already active proposal\""}],"id":2549,"name":"require","nodeType":"Identifier","overloadedDeclarations":[5555,5556],"referencedDeclaration":5556,"src":"5474:7:5","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2555,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5474:199:5","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2556,"nodeType":"ExpressionStatement","src":"5474:199:5"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_enum$_ProposalState_$5311","typeString":"enum GovernorBravoDelegateStorageV1.ProposalState"},"id":2561,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":2558,"name":"proposersLatestProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2544,"src":"5712:28:5","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$5311","typeString":"enum GovernorBravoDelegateStorageV1.ProposalState"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":2559,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5311,"src":"5744:13:5","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$5311_$","typeString":"type(enum GovernorBravoDelegateStorageV1.ProposalState)"}},"id":2560,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Pending","nodeType":"MemberAccess","referencedDeclaration":null,"src":"5744:21:5","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$5311","typeString":"enum GovernorBravoDelegateStorageV1.ProposalState"}},"src":"5712:53:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"476f7665726e6f72427261766f3a3a70726f706f73653a206f6e65206c6976652070726f706f73616c207065722070726f706f7365722c20666f756e6420616e20616c72656164792070656e64696e672070726f706f73616c","id":2562,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5783:91:5","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_b68c77fe71de4f5cded2058593f89b465f4c2da104481b127e1b9b6156e12ee0","typeString":"literal_string \"GovernorBravo::propose: one live proposal per proposer, found an already pending proposal\""},"value":"GovernorBravo::propose: one live proposal per proposer, found an already pending proposal"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b68c77fe71de4f5cded2058593f89b465f4c2da104481b127e1b9b6156e12ee0","typeString":"literal_string \"GovernorBravo::propose: one live proposal per proposer, found an already pending proposal\""}],"id":2557,"name":"require","nodeType":"Identifier","overloadedDeclarations":[5555,5556],"referencedDeclaration":5556,"src":"5687:7:5","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2563,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5687:201:5","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2564,"nodeType":"ExpressionStatement","src":"5687:201:5"}]}},{"assignments":[2568],"declarations":[{"constant":false,"id":2568,"name":"startBlock","nodeType":"VariableDeclaration","scope":2637,"src":"5909:15:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2567,"name":"uint","nodeType":"ElementaryTypeName","src":"5909:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":2574,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":2570,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5542,"src":"5934:5:5","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":2571,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"number","nodeType":"MemberAccess","referencedDeclaration":null,"src":"5934:12:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":2572,"name":"votingDelay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5238,"src":"5948:11:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2569,"name":"add256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3649,"src":"5927:6:5","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":2573,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5927:33:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5909:51:5"},{"assignments":[2576],"declarations":[{"constant":false,"id":2576,"name":"endBlock","nodeType":"VariableDeclaration","scope":2637,"src":"5970:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2575,"name":"uint","nodeType":"ElementaryTypeName","src":"5970:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":2581,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":2578,"name":"startBlock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2568,"src":"5993:10:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":2579,"name":"votingPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5240,"src":"6005:12:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2577,"name":"add256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3649,"src":"5986:6:5","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":2580,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5986:32:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5970:48:5"},{"expression":{"argumentTypes":null,"id":2583,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"6029:15:5","subExpression":{"argumentTypes":null,"id":2582,"name":"proposalCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5246,"src":"6029:13:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2584,"nodeType":"ExpressionStatement","src":"6029:15:5"},{"assignments":[2586],"declarations":[{"constant":false,"id":2586,"name":"newProposal","nodeType":"VariableDeclaration","scope":2637,"src":"6054:27:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5295_memory_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal"},"typeName":{"contractScope":null,"id":2585,"name":"Proposal","nodeType":"UserDefinedTypeName","referencedDeclaration":5295,"src":"6054:8:5","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5295_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal"}},"value":null,"visibility":"internal"}],"id":2604,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":2588,"name":"proposalCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5246,"src":"6111:13:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":2589,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5552,"src":"6148:3:5","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2590,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"6148:10:5","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"hexValue":"30","id":2591,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6177:1:5","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"argumentTypes":null,"id":2592,"name":"targets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2457,"src":"6201:7:5","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"argumentTypes":null,"id":2593,"name":"values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2460,"src":"6230:6:5","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"argumentTypes":null,"id":2594,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2463,"src":"6262:10:5","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_$dyn_memory_ptr","typeString":"string memory[] memory"}},{"argumentTypes":null,"id":2595,"name":"calldatas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2466,"src":"6297:9:5","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},{"argumentTypes":null,"id":2596,"name":"startBlock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2568,"src":"6332:10:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":2597,"name":"endBlock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2576,"src":"6366:8:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"hexValue":"30","id":2598,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6398:1:5","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"argumentTypes":null,"hexValue":"30","id":2599,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6427:1:5","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"argumentTypes":null,"hexValue":"30","id":2600,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6456:1:5","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"argumentTypes":null,"hexValue":"66616c7365","id":2601,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6481:5:5","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"argumentTypes":null,"hexValue":"66616c7365","id":2602,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6510:5:5","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_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":2587,"name":"Proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5295,"src":"6084:8:5","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Proposal_$5295_storage_ptr_$","typeString":"type(struct GovernorBravoDelegateStorageV1.Proposal storage pointer)"}},"id":2603,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"names":["id","proposer","eta","targets","values","signatures","calldatas","startBlock","endBlock","forVotes","againstVotes","abstainVotes","canceled","executed"],"nodeType":"FunctionCall","src":"6084:442:5","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5295_memory","typeString":"struct GovernorBravoDelegateStorageV1.Proposal memory"}},"nodeType":"VariableDeclarationStatement","src":"6054:472:5"},{"expression":{"argumentTypes":null,"id":2610,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":2605,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5254,"src":"6537:9:5","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$5295_storage_$","typeString":"mapping(uint256 => struct GovernorBravoDelegateStorageV1.Proposal storage ref)"}},"id":2608,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":2606,"name":"newProposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2586,"src":"6547:11:5","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5295_memory_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal memory"}},"id":2607,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"id","nodeType":"MemberAccess","referencedDeclaration":5260,"src":"6547:14:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6537:25:5","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5295_storage","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":2609,"name":"newProposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2586,"src":"6565:11:5","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5295_memory_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal memory"}},"src":"6537:39:5","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5295_storage","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage ref"}},"id":2611,"nodeType":"ExpressionStatement","src":"6537:39:5"},{"expression":{"argumentTypes":null,"id":2618,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":2612,"name":"latestProposalIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5258,"src":"6586:17:5","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":2615,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":2613,"name":"newProposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2586,"src":"6604:11:5","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5295_memory_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal memory"}},"id":2614,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"proposer","nodeType":"MemberAccess","referencedDeclaration":5262,"src":"6604:20:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6586:39:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":2616,"name":"newProposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2586,"src":"6628:11:5","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5295_memory_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal memory"}},"id":2617,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"id","nodeType":"MemberAccess","referencedDeclaration":5260,"src":"6628:14:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6586:56:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2619,"nodeType":"ExpressionStatement","src":"6586:56:5"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":2621,"name":"newProposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2586,"src":"6687:11:5","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5295_memory_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal memory"}},"id":2622,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"id","nodeType":"MemberAccess","referencedDeclaration":5260,"src":"6687:14:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":2623,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5552,"src":"6715:3:5","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2624,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"6715:10:5","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":2625,"name":"targets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2457,"src":"6739:7:5","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"argumentTypes":null,"id":2626,"name":"values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2460,"src":"6760:6:5","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"argumentTypes":null,"id":2627,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2463,"src":"6780:10:5","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_$dyn_memory_ptr","typeString":"string memory[] memory"}},{"argumentTypes":null,"id":2628,"name":"calldatas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2466,"src":"6804:9:5","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},{"argumentTypes":null,"id":2629,"name":"startBlock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2568,"src":"6827:10:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":2630,"name":"endBlock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2576,"src":"6851:8:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":2631,"name":"description","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2468,"src":"6873:11:5","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":2620,"name":"ProposalCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5152,"src":"6658:15:5","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":2632,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6658:236:5","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2633,"nodeType":"EmitStatement","src":"6653:241:5"},{"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":2634,"name":"newProposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2586,"src":"6911:11:5","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5295_memory_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal memory"}},"id":2635,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"id","nodeType":"MemberAccess","referencedDeclaration":5260,"src":"6911:14:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2472,"id":2636,"nodeType":"Return","src":"6904:21:5"}]},"documentation":"@notice Function used to propose a new proposal. Sender must have delegates above the proposal threshold\n@param targets Target addresses for proposal calls\n@param values Eth values for proposal calls\n@param signatures Function signatures for proposal calls\n@param calldatas Calldatas for proposal calls\n@param description String description of the proposal\n@return Proposal id of new proposal","id":2638,"implemented":true,"kind":"function","modifiers":[],"name":"propose","nodeType":"FunctionDefinition","parameters":{"id":2469,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2457,"name":"targets","nodeType":"VariableDeclaration","scope":2638,"src":"4285:24:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":2455,"name":"address","nodeType":"ElementaryTypeName","src":"4285:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2456,"length":null,"nodeType":"ArrayTypeName","src":"4285:9:5","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":2460,"name":"values","nodeType":"VariableDeclaration","scope":2638,"src":"4319:20:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":2458,"name":"uint","nodeType":"ElementaryTypeName","src":"4319:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2459,"length":null,"nodeType":"ArrayTypeName","src":"4319:6:5","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":2463,"name":"signatures","nodeType":"VariableDeclaration","scope":2638,"src":"4349:26:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_$dyn_memory_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":2461,"name":"string","nodeType":"ElementaryTypeName","src":"4349:6:5","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":2462,"length":null,"nodeType":"ArrayTypeName","src":"4349:8:5","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":2466,"name":"calldatas","nodeType":"VariableDeclaration","scope":2638,"src":"4385:24:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":2464,"name":"bytes","nodeType":"ElementaryTypeName","src":"4385:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":2465,"length":null,"nodeType":"ArrayTypeName","src":"4385:7:5","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":2468,"name":"description","nodeType":"VariableDeclaration","scope":2638,"src":"4419:25:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2467,"name":"string","nodeType":"ElementaryTypeName","src":"4419:6:5","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"}],"src":"4275:175:5"},"returnParameters":{"id":2472,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2471,"name":"","nodeType":"VariableDeclaration","scope":2638,"src":"4467:4:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2470,"name":"uint","nodeType":"ElementaryTypeName","src":"4467:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"4466:6:5"},"scope":3683,"src":"4259:2673:5","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":2714,"nodeType":"Block","src":"7104:664:5","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_enum$_ProposalState_$5311","typeString":"enum GovernorBravoDelegateStorageV1.ProposalState"},"id":2649,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":2645,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2640,"src":"7141:10:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2644,"name":"state","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3075,"src":"7135:5:5","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_enum$_ProposalState_$5311_$","typeString":"function (uint256) view returns (enum GovernorBravoDelegateStorageV1.ProposalState)"}},"id":2646,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7135:17:5","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$5311","typeString":"enum GovernorBravoDelegateStorageV1.ProposalState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":2647,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5311,"src":"7156:13:5","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$5311_$","typeString":"type(enum GovernorBravoDelegateStorageV1.ProposalState)"}},"id":2648,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Succeeded","nodeType":"MemberAccess","referencedDeclaration":null,"src":"7156:23:5","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$5311","typeString":"enum GovernorBravoDelegateStorageV1.ProposalState"}},"src":"7135:44:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"476f7665726e6f72427261766f3a3a71756575653a2070726f706f73616c2063616e206f6e6c792062652071756575656420696620697420697320737563636565646564","id":2650,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7193:70:5","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_8b18b74b598045096f64bbdf9460c8b5777b3d00c07ed948d457fa444a8ee5bd","typeString":"literal_string \"GovernorBravo::queue: proposal can only be queued if it is succeeded\""},"value":"GovernorBravo::queue: proposal can only be queued if it is succeeded"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_8b18b74b598045096f64bbdf9460c8b5777b3d00c07ed948d457fa444a8ee5bd","typeString":"literal_string \"GovernorBravo::queue: proposal can only be queued if it is succeeded\""}],"id":2643,"name":"require","nodeType":"Identifier","overloadedDeclarations":[5555,5556],"referencedDeclaration":5556,"src":"7114:7:5","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2651,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7114:159:5","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2652,"nodeType":"ExpressionStatement","src":"7114:159:5"},{"assignments":[2654],"declarations":[{"constant":false,"id":2654,"name":"proposal","nodeType":"VariableDeclaration","scope":2714,"src":"7283:25:5","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5295_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal"},"typeName":{"contractScope":null,"id":2653,"name":"Proposal","nodeType":"UserDefinedTypeName","referencedDeclaration":5295,"src":"7283:8:5","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5295_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal"}},"value":null,"visibility":"internal"}],"id":2658,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":2655,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5254,"src":"7311:9:5","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$5295_storage_$","typeString":"mapping(uint256 => struct GovernorBravoDelegateStorageV1.Proposal storage ref)"}},"id":2657,"indexExpression":{"argumentTypes":null,"id":2656,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2640,"src":"7321:10:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7311:21:5","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5295_storage","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"7283:49:5"},{"assignments":[2660],"declarations":[{"constant":false,"id":2660,"name":"eta","nodeType":"VariableDeclaration","scope":2714,"src":"7342:8:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2659,"name":"uint","nodeType":"ElementaryTypeName","src":"7342:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":2668,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":2662,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5542,"src":"7360:5:5","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":2663,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":null,"src":"7360:15:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"id":2664,"name":"timelock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5248,"src":"7377:8:5","typeDescriptions":{"typeIdentifier":"t_contract$_TimelockInterface_$2007","typeString":"contract TimelockInterface"}},"id":2665,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"delay","nodeType":"MemberAccess","referencedDeclaration":1948,"src":"7377:14:5","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":2666,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7377:16:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2661,"name":"add256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3649,"src":"7353:6:5","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":2667,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7353:41:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7342:52:5"},{"body":{"id":2701,"nodeType":"Block","src":"7455:233:5","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":2682,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2654,"src":"7508:8:5","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5295_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage pointer"}},"id":2683,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"targets","nodeType":"MemberAccess","referencedDeclaration":5267,"src":"7508:16:5","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":2685,"indexExpression":{"argumentTypes":null,"id":2684,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2670,"src":"7525:1:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7508:19:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":2686,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2654,"src":"7545:8:5","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5295_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage pointer"}},"id":2687,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"values","nodeType":"MemberAccess","referencedDeclaration":5270,"src":"7545:15:5","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":2689,"indexExpression":{"argumentTypes":null,"id":2688,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2670,"src":"7561:1:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7545:18:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":2690,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2654,"src":"7581:8:5","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5295_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage pointer"}},"id":2691,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"signatures","nodeType":"MemberAccess","referencedDeclaration":5273,"src":"7581:19:5","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage","typeString":"string storage ref[] storage ref"}},"id":2693,"indexExpression":{"argumentTypes":null,"id":2692,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2670,"src":"7601:1:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7581:22:5","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":2694,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2654,"src":"7621:8:5","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5295_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage pointer"}},"id":2695,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"calldatas","nodeType":"MemberAccess","referencedDeclaration":5276,"src":"7621:18:5","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage","typeString":"bytes storage ref[] storage ref"}},"id":2697,"indexExpression":{"argumentTypes":null,"id":2696,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2670,"src":"7640:1:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7621:21:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},{"argumentTypes":null,"id":2698,"name":"eta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2660,"src":"7660:3:5","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":2681,"name":"queueOrRevertInternal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2757,"src":"7469:21:5","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":2699,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7469:208:5","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2700,"nodeType":"ExpressionStatement","src":"7469:208:5"}]},"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2677,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":2673,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2670,"src":"7421:1:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":2674,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2654,"src":"7425:8:5","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5295_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage pointer"}},"id":2675,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"targets","nodeType":"MemberAccess","referencedDeclaration":5267,"src":"7425:16:5","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":2676,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"7425:23:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7421:27:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2702,"initializationExpression":{"assignments":[2670],"declarations":[{"constant":false,"id":2670,"name":"i","nodeType":"VariableDeclaration","scope":2702,"src":"7409:6:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2669,"name":"uint","nodeType":"ElementaryTypeName","src":"7409:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":2672,"initialValue":{"argumentTypes":null,"hexValue":"30","id":2671,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7418:1:5","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"7409:10:5"},"loopExpression":{"expression":{"argumentTypes":null,"id":2679,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"7450:3:5","subExpression":{"argumentTypes":null,"id":2678,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2670,"src":"7450:1:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2680,"nodeType":"ExpressionStatement","src":"7450:3:5"},"nodeType":"ForStatement","src":"7404:284:5"},{"expression":{"argumentTypes":null,"id":2707,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":2703,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2654,"src":"7697:8:5","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5295_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage pointer"}},"id":2705,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"eta","nodeType":"MemberAccess","referencedDeclaration":5264,"src":"7697:12:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":2706,"name":"eta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2660,"src":"7712:3:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7697:18:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2708,"nodeType":"ExpressionStatement","src":"7697:18:5"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":2710,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2640,"src":"7745:10:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":2711,"name":"eta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2660,"src":"7757:3:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2709,"name":"ProposalQueued","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5174,"src":"7730:14:5","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":2712,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7730:31:5","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2713,"nodeType":"EmitStatement","src":"7725:36:5"}]},"documentation":"@notice Queues a proposal of state succeeded\n@param proposalId The id of the proposal to queue","id":2715,"implemented":true,"kind":"function","modifiers":[],"name":"queue","nodeType":"FunctionDefinition","parameters":{"id":2641,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2640,"name":"proposalId","nodeType":"VariableDeclaration","scope":2715,"src":"7078:15:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2639,"name":"uint","nodeType":"ElementaryTypeName","src":"7078:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"7077:17:5"},"returnParameters":{"id":2642,"nodeType":"ParameterList","parameters":[],"src":"7104:0:5"},"scope":3683,"src":"7063:705:5","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":2756,"nodeType":"Block","src":"7942:309:5","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":2742,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"7973:88:5","subExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":2734,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2717,"src":"8023:6:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":2735,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2719,"src":"8031:5:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":2736,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2721,"src":"8038:9:5","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"argumentTypes":null,"id":2737,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2723,"src":"8049:4:5","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"argumentTypes":null,"id":2738,"name":"eta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2725,"src":"8055:3:5","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":2732,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5539,"src":"8012:3:5","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":2733,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","referencedDeclaration":null,"src":"8012:10:5","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":2739,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8012:47:5","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":2731,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5546,"src":"8002:9:5","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":2740,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8002:58:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"argumentTypes":null,"id":2729,"name":"timelock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5248,"src":"7974:8:5","typeDescriptions":{"typeIdentifier":"t_contract$_TimelockInterface_$2007","typeString":"contract TimelockInterface"}},"id":2730,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"queuedTransactions","nodeType":"MemberAccess","referencedDeclaration":1963,"src":"7974:27:5","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32) view external returns (bool)"}},"id":2741,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7974:87:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"476f7665726e6f72427261766f3a3a71756575654f72526576657274496e7465726e616c3a206964656e746963616c2070726f706f73616c20616374696f6e20616c72656164792071756575656420617420657461","id":2743,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8075:87:5","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_1c438b0cfaad67e6d7c60ceb8ef7ecff37faff9e792b7a026c00b374a537d965","typeString":"literal_string \"GovernorBravo::queueOrRevertInternal: identical proposal action already queued at eta\""},"value":"GovernorBravo::queueOrRevertInternal: identical proposal action already queued at eta"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1c438b0cfaad67e6d7c60ceb8ef7ecff37faff9e792b7a026c00b374a537d965","typeString":"literal_string \"GovernorBravo::queueOrRevertInternal: identical proposal action already queued at eta\""}],"id":2728,"name":"require","nodeType":"Identifier","overloadedDeclarations":[5555,5556],"referencedDeclaration":5556,"src":"7952:7:5","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2744,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7952:220:5","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2745,"nodeType":"ExpressionStatement","src":"7952:220:5"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":2749,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2717,"src":"8208:6:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":2750,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2719,"src":"8216:5:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":2751,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2721,"src":"8223:9:5","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"argumentTypes":null,"id":2752,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2723,"src":"8234:4:5","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"argumentTypes":null,"id":2753,"name":"eta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2725,"src":"8240:3:5","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":2746,"name":"timelock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5248,"src":"8182:8:5","typeDescriptions":{"typeIdentifier":"t_contract$_TimelockInterface_$2007","typeString":"contract TimelockInterface"}},"id":2748,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"queueTransaction","nodeType":"MemberAccess","referencedDeclaration":1978,"src":"8182:25:5","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":2754,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8182:62:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":2755,"nodeType":"ExpressionStatement","src":"8182:62:5"}]},"documentation":null,"id":2757,"implemented":true,"kind":"function","modifiers":[],"name":"queueOrRevertInternal","nodeType":"FunctionDefinition","parameters":{"id":2726,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2717,"name":"target","nodeType":"VariableDeclaration","scope":2757,"src":"7814:14:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2716,"name":"address","nodeType":"ElementaryTypeName","src":"7814:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":2719,"name":"value","nodeType":"VariableDeclaration","scope":2757,"src":"7838:10:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2718,"name":"uint","nodeType":"ElementaryTypeName","src":"7838:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2721,"name":"signature","nodeType":"VariableDeclaration","scope":2757,"src":"7858:23:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2720,"name":"string","nodeType":"ElementaryTypeName","src":"7858:6:5","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"},{"constant":false,"id":2723,"name":"data","nodeType":"VariableDeclaration","scope":2757,"src":"7891:17:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2722,"name":"bytes","nodeType":"ElementaryTypeName","src":"7891:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":null,"visibility":"internal"},{"constant":false,"id":2725,"name":"eta","nodeType":"VariableDeclaration","scope":2757,"src":"7918:8:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2724,"name":"uint","nodeType":"ElementaryTypeName","src":"7918:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"7804:128:5"},"returnParameters":{"id":2727,"nodeType":"ParameterList","parameters":[],"src":"7942:0:5"},"scope":3683,"src":"7774:477:5","stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},{"body":{"id":2825,"nodeType":"Block","src":"8435:618:5","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_enum$_ProposalState_$5311","typeString":"enum GovernorBravoDelegateStorageV1.ProposalState"},"id":2768,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":2764,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2759,"src":"8472:10:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2763,"name":"state","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3075,"src":"8466:5:5","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_enum$_ProposalState_$5311_$","typeString":"function (uint256) view returns (enum GovernorBravoDelegateStorageV1.ProposalState)"}},"id":2765,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8466:17:5","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$5311","typeString":"enum GovernorBravoDelegateStorageV1.ProposalState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":2766,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5311,"src":"8487:13:5","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$5311_$","typeString":"type(enum GovernorBravoDelegateStorageV1.ProposalState)"}},"id":2767,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Queued","nodeType":"MemberAccess","referencedDeclaration":null,"src":"8487:20:5","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$5311","typeString":"enum GovernorBravoDelegateStorageV1.ProposalState"}},"src":"8466:41:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"476f7665726e6f72427261766f3a3a657865637574653a2070726f706f73616c2063616e206f6e6c7920626520657865637574656420696620697420697320717565756564","id":2769,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8521:71:5","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_5fbf48e8c3a21a3625f21d95c8b2dda12d19a9eb23201ab81343d35beaf2fa53","typeString":"literal_string \"GovernorBravo::execute: proposal can only be executed if it is queued\""},"value":"GovernorBravo::execute: proposal can only be executed if it is queued"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5fbf48e8c3a21a3625f21d95c8b2dda12d19a9eb23201ab81343d35beaf2fa53","typeString":"literal_string \"GovernorBravo::execute: proposal can only be executed if it is queued\""}],"id":2762,"name":"require","nodeType":"Identifier","overloadedDeclarations":[5555,5556],"referencedDeclaration":5556,"src":"8445:7:5","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2770,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8445:157:5","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2771,"nodeType":"ExpressionStatement","src":"8445:157:5"},{"assignments":[2773],"declarations":[{"constant":false,"id":2773,"name":"proposal","nodeType":"VariableDeclaration","scope":2825,"src":"8612:25:5","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5295_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal"},"typeName":{"contractScope":null,"id":2772,"name":"Proposal","nodeType":"UserDefinedTypeName","referencedDeclaration":5295,"src":"8612:8:5","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5295_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal"}},"value":null,"visibility":"internal"}],"id":2777,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":2774,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5254,"src":"8640:9:5","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$5295_storage_$","typeString":"mapping(uint256 => struct GovernorBravoDelegateStorageV1.Proposal storage ref)"}},"id":2776,"indexExpression":{"argumentTypes":null,"id":2775,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2759,"src":"8650:10:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8640:21:5","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5295_storage","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"8612:49:5"},{"expression":{"argumentTypes":null,"id":2782,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":2778,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2773,"src":"8671:8:5","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5295_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage pointer"}},"id":2780,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"executed","nodeType":"MemberAccess","referencedDeclaration":5290,"src":"8671:17:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"hexValue":"74727565","id":2781,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"8691:4:5","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"8671:24:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2783,"nodeType":"ExpressionStatement","src":"8671:24:5"},{"body":{"id":2819,"nodeType":"Block","src":"8756:248:5","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":2799,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2773,"src":"8815:8:5","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5295_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage pointer"}},"id":2800,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"targets","nodeType":"MemberAccess","referencedDeclaration":5267,"src":"8815:16:5","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":2802,"indexExpression":{"argumentTypes":null,"id":2801,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2785,"src":"8832:1:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8815:19:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":2803,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2773,"src":"8852:8:5","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5295_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage pointer"}},"id":2804,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"values","nodeType":"MemberAccess","referencedDeclaration":5270,"src":"8852:15:5","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":2806,"indexExpression":{"argumentTypes":null,"id":2805,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2785,"src":"8868:1:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8852:18:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":2807,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2773,"src":"8888:8:5","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5295_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage pointer"}},"id":2808,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"signatures","nodeType":"MemberAccess","referencedDeclaration":5273,"src":"8888:19:5","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage","typeString":"string storage ref[] storage ref"}},"id":2810,"indexExpression":{"argumentTypes":null,"id":2809,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2785,"src":"8908:1:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8888:22:5","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":2811,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2773,"src":"8928:8:5","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5295_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage pointer"}},"id":2812,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"calldatas","nodeType":"MemberAccess","referencedDeclaration":5276,"src":"8928:18:5","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage","typeString":"bytes storage ref[] storage ref"}},"id":2814,"indexExpression":{"argumentTypes":null,"id":2813,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2785,"src":"8947:1:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8928:21:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":2815,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2773,"src":"8967:8:5","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5295_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage pointer"}},"id":2816,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"eta","nodeType":"MemberAccess","referencedDeclaration":5264,"src":"8967:12:5","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":2796,"name":"timelock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5248,"src":"8770:8:5","typeDescriptions":{"typeIdentifier":"t_contract$_TimelockInterface_$2007","typeString":"contract TimelockInterface"}},"id":2798,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"executeTransaction","nodeType":"MemberAccess","referencedDeclaration":2006,"src":"8770:27:5","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":2817,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8770:223:5","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2818,"nodeType":"ExpressionStatement","src":"8770:223:5"}]},"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2792,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":2788,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2785,"src":"8722:1:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":2789,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2773,"src":"8726:8:5","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5295_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage pointer"}},"id":2790,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"targets","nodeType":"MemberAccess","referencedDeclaration":5267,"src":"8726:16:5","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":2791,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"8726:23:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8722:27:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2820,"initializationExpression":{"assignments":[2785],"declarations":[{"constant":false,"id":2785,"name":"i","nodeType":"VariableDeclaration","scope":2820,"src":"8710:6:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2784,"name":"uint","nodeType":"ElementaryTypeName","src":"8710:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":2787,"initialValue":{"argumentTypes":null,"hexValue":"30","id":2786,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8719:1:5","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"8710:10:5"},"loopExpression":{"expression":{"argumentTypes":null,"id":2794,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"8751:3:5","subExpression":{"argumentTypes":null,"id":2793,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2785,"src":"8751:1:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2795,"nodeType":"ExpressionStatement","src":"8751:3:5"},"nodeType":"ForStatement","src":"8705:299:5"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":2822,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2759,"src":"9035:10:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2821,"name":"ProposalExecuted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5178,"src":"9018:16:5","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":2823,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9018:28:5","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2824,"nodeType":"EmitStatement","src":"9013:33:5"}]},"documentation":"@notice Executes a queued proposal if eta has passed\n@param proposalId The id of the proposal to execute","id":2826,"implemented":true,"kind":"function","modifiers":[],"name":"execute","nodeType":"FunctionDefinition","parameters":{"id":2760,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2759,"name":"proposalId","nodeType":"VariableDeclaration","scope":2826,"src":"8409:15:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2758,"name":"uint","nodeType":"ElementaryTypeName","src":"8409:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"8408:17:5"},"returnParameters":{"id":2761,"nodeType":"ParameterList","parameters":[],"src":"8435:0:5"},"scope":3683,"src":"8392:661:5","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":2921,"nodeType":"Block","src":"9296:856:5","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_enum$_ProposalState_$5311","typeString":"enum GovernorBravoDelegateStorageV1.ProposalState"},"id":2837,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":2833,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2828,"src":"9320:10:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2832,"name":"state","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3075,"src":"9314:5:5","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_enum$_ProposalState_$5311_$","typeString":"function (uint256) view returns (enum GovernorBravoDelegateStorageV1.ProposalState)"}},"id":2834,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9314:17:5","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$5311","typeString":"enum GovernorBravoDelegateStorageV1.ProposalState"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":2835,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5311,"src":"9335:13:5","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$5311_$","typeString":"type(enum GovernorBravoDelegateStorageV1.ProposalState)"}},"id":2836,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Executed","nodeType":"MemberAccess","referencedDeclaration":null,"src":"9335:22:5","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$5311","typeString":"enum GovernorBravoDelegateStorageV1.ProposalState"}},"src":"9314:43:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"476f7665726e6f72427261766f3a3a63616e63656c3a2063616e6e6f742063616e63656c2065786563757465642070726f706f73616c","id":2838,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9359:56:5","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_d48c38cdee932c14d51343eb15469a6b4385fa79519fea37fc1716c00abad924","typeString":"literal_string \"GovernorBravo::cancel: cannot cancel executed proposal\""},"value":"GovernorBravo::cancel: cannot cancel executed proposal"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d48c38cdee932c14d51343eb15469a6b4385fa79519fea37fc1716c00abad924","typeString":"literal_string \"GovernorBravo::cancel: cannot cancel executed proposal\""}],"id":2831,"name":"require","nodeType":"Identifier","overloadedDeclarations":[5555,5556],"referencedDeclaration":5556,"src":"9306:7:5","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2839,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9306:110:5","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2840,"nodeType":"ExpressionStatement","src":"9306:110:5"},{"assignments":[2842],"declarations":[{"constant":false,"id":2842,"name":"proposal","nodeType":"VariableDeclaration","scope":2921,"src":"9427:25:5","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5295_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal"},"typeName":{"contractScope":null,"id":2841,"name":"Proposal","nodeType":"UserDefinedTypeName","referencedDeclaration":5295,"src":"9427:8:5","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5295_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal"}},"value":null,"visibility":"internal"}],"id":2846,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":2843,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5254,"src":"9455:9:5","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$5295_storage_$","typeString":"mapping(uint256 => struct GovernorBravoDelegateStorageV1.Proposal storage ref)"}},"id":2845,"indexExpression":{"argumentTypes":null,"id":2844,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2828,"src":"9465:10:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9455:21:5","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5295_storage","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"9427:49:5"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":2870,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":2857,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":2851,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":2848,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5552,"src":"9507:3:5","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2849,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"9507:10:5","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"id":2850,"name":"guardian","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5315,"src":"9521:8:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9507:22:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":2856,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":2852,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5552,"src":"9549:3:5","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2853,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"9549:10:5","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":2854,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2842,"src":"9563:8:5","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5295_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage pointer"}},"id":2855,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"proposer","nodeType":"MemberAccess","referencedDeclaration":5262,"src":"9563:17:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9549:31:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"9507:73:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2869,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":2860,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2842,"src":"9623:8:5","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5295_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage pointer"}},"id":2861,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"proposer","nodeType":"MemberAccess","referencedDeclaration":5262,"src":"9623:17:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":2863,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5542,"src":"9649:5:5","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":2864,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"number","nodeType":"MemberAccess","referencedDeclaration":null,"src":"9649:12:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"hexValue":"31","id":2865,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9663:1:5","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":2862,"name":"sub256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3670,"src":"9642:6:5","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":2866,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9642:23:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":2858,"name":"xvsVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5250,"src":"9600:8:5","typeDescriptions":{"typeIdentifier":"t_contract$_XvsVaultInterface_$2017","typeString":"contract XvsVaultInterface"}},"id":2859,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getPriorVotes","nodeType":"MemberAccess","referencedDeclaration":2016,"src":"9600:22:5","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_uint256_$returns$_t_uint96_$","typeString":"function (address,uint256) view external returns (uint96)"}},"id":2867,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9600:66:5","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"id":2868,"name":"proposalThreshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5242,"src":"9669:17:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9600:86:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"9507:179:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"476f7665726e6f72427261766f3a3a63616e63656c3a2070726f706f7365722061626f7665207468726573686f6c64","id":2871,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9700:49:5","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_af71986e0c1f80c2512b8b2deae5a125bfd8f0bdb9eb99f370c87681d9dd1dd1","typeString":"literal_string \"GovernorBravo::cancel: proposer above threshold\""},"value":"GovernorBravo::cancel: proposer above threshold"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_af71986e0c1f80c2512b8b2deae5a125bfd8f0bdb9eb99f370c87681d9dd1dd1","typeString":"literal_string \"GovernorBravo::cancel: proposer above threshold\""}],"id":2847,"name":"require","nodeType":"Identifier","overloadedDeclarations":[5555,5556],"referencedDeclaration":5556,"src":"9486:7:5","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2872,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9486:273:5","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2873,"nodeType":"ExpressionStatement","src":"9486:273:5"},{"expression":{"argumentTypes":null,"id":2878,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":2874,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2842,"src":"9770:8:5","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5295_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage pointer"}},"id":2876,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"canceled","nodeType":"MemberAccess","referencedDeclaration":5288,"src":"9770:17:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"hexValue":"74727565","id":2877,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"9790:4:5","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"9770:24:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2879,"nodeType":"ExpressionStatement","src":"9770:24:5"},{"body":{"id":2915,"nodeType":"Block","src":"9855:247:5","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":2895,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2842,"src":"9913:8:5","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5295_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage pointer"}},"id":2896,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"targets","nodeType":"MemberAccess","referencedDeclaration":5267,"src":"9913:16:5","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":2898,"indexExpression":{"argumentTypes":null,"id":2897,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2881,"src":"9930:1:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9913:19:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":2899,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2842,"src":"9950:8:5","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5295_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage pointer"}},"id":2900,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"values","nodeType":"MemberAccess","referencedDeclaration":5270,"src":"9950:15:5","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":2902,"indexExpression":{"argumentTypes":null,"id":2901,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2881,"src":"9966:1:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9950:18:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":2903,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2842,"src":"9986:8:5","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5295_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage pointer"}},"id":2904,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"signatures","nodeType":"MemberAccess","referencedDeclaration":5273,"src":"9986:19:5","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage","typeString":"string storage ref[] storage ref"}},"id":2906,"indexExpression":{"argumentTypes":null,"id":2905,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2881,"src":"10006:1:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9986:22:5","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":2907,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2842,"src":"10026:8:5","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5295_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage pointer"}},"id":2908,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"calldatas","nodeType":"MemberAccess","referencedDeclaration":5276,"src":"10026:18:5","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage","typeString":"bytes storage ref[] storage ref"}},"id":2910,"indexExpression":{"argumentTypes":null,"id":2909,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2881,"src":"10045:1:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10026:21:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":2911,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2842,"src":"10065:8:5","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5295_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage pointer"}},"id":2912,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"eta","nodeType":"MemberAccess","referencedDeclaration":5264,"src":"10065:12:5","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":2892,"name":"timelock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5248,"src":"9869:8:5","typeDescriptions":{"typeIdentifier":"t_contract$_TimelockInterface_$2007","typeString":"contract TimelockInterface"}},"id":2894,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"cancelTransaction","nodeType":"MemberAccess","referencedDeclaration":1991,"src":"9869:26:5","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":2913,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9869:222:5","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2914,"nodeType":"ExpressionStatement","src":"9869:222:5"}]},"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2888,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":2884,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2881,"src":"9821:1:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":2885,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2842,"src":"9825:8:5","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5295_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage pointer"}},"id":2886,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"targets","nodeType":"MemberAccess","referencedDeclaration":5267,"src":"9825:16:5","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":2887,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"9825:23:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9821:27:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2916,"initializationExpression":{"assignments":[2881],"declarations":[{"constant":false,"id":2881,"name":"i","nodeType":"VariableDeclaration","scope":2916,"src":"9809:6:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2880,"name":"uint","nodeType":"ElementaryTypeName","src":"9809:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":2883,"initialValue":{"argumentTypes":null,"hexValue":"30","id":2882,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9818:1:5","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"9809:10:5"},"loopExpression":{"expression":{"argumentTypes":null,"id":2890,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"9850:3:5","subExpression":{"argumentTypes":null,"id":2889,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2881,"src":"9850:1:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2891,"nodeType":"ExpressionStatement","src":"9850:3:5"},"nodeType":"ForStatement","src":"9804:298:5"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":2918,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2828,"src":"10134:10:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2917,"name":"ProposalCanceled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5168,"src":"10117:16:5","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":2919,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10117:28:5","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2920,"nodeType":"EmitStatement","src":"10112:33:5"}]},"documentation":"@notice Cancels a proposal only if sender is the proposer, or proposer delegates dropped below proposal threshold\n@param proposalId The id of the proposal to cancel","id":2922,"implemented":true,"kind":"function","modifiers":[],"name":"cancel","nodeType":"FunctionDefinition","parameters":{"id":2829,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2828,"name":"proposalId","nodeType":"VariableDeclaration","scope":2922,"src":"9270:15:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2827,"name":"uint","nodeType":"ElementaryTypeName","src":"9270:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"9269:17:5"},"returnParameters":{"id":2830,"nodeType":"ParameterList","parameters":[],"src":"9296:0:5"},"scope":3683,"src":"9254:898:5","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":2955,"nodeType":"Block","src":"10550:124:5","statements":[{"assignments":[2940],"declarations":[{"constant":false,"id":2940,"name":"p","nodeType":"VariableDeclaration","scope":2955,"src":"10560:18:5","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5295_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal"},"typeName":{"contractScope":null,"id":2939,"name":"Proposal","nodeType":"UserDefinedTypeName","referencedDeclaration":5295,"src":"10560:8:5","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5295_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal"}},"value":null,"visibility":"internal"}],"id":2944,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":2941,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5254,"src":"10581:9:5","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$5295_storage_$","typeString":"mapping(uint256 => struct GovernorBravoDelegateStorageV1.Proposal storage ref)"}},"id":2943,"indexExpression":{"argumentTypes":null,"id":2942,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2924,"src":"10591:10:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10581:21:5","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5295_storage","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"10560:42:5"},{"expression":{"argumentTypes":null,"components":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":2945,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2940,"src":"10620:1:5","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5295_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage pointer"}},"id":2946,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"targets","nodeType":"MemberAccess","referencedDeclaration":5267,"src":"10620:9:5","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":2947,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2940,"src":"10631:1:5","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5295_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage pointer"}},"id":2948,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"values","nodeType":"MemberAccess","referencedDeclaration":5270,"src":"10631:8:5","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":2949,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2940,"src":"10641:1:5","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5295_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage pointer"}},"id":2950,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"signatures","nodeType":"MemberAccess","referencedDeclaration":5273,"src":"10641:12:5","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage","typeString":"string storage ref[] storage ref"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":2951,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2940,"src":"10655:1:5","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5295_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage pointer"}},"id":2952,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"calldatas","nodeType":"MemberAccess","referencedDeclaration":5276,"src":"10655:11:5","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage","typeString":"bytes storage ref[] storage ref"}}],"id":2953,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10619:48:5","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":2938,"id":2954,"nodeType":"Return","src":"10612:55:5"}]},"documentation":"@notice Gets actions of a proposal\n@param proposalId the id of the proposal\n@return targets, values, signatures, and calldatas of the proposal actions","id":2956,"implemented":true,"kind":"function","modifiers":[],"name":"getActions","nodeType":"FunctionDefinition","parameters":{"id":2925,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2924,"name":"proposalId","nodeType":"VariableDeclaration","scope":2956,"src":"10375:15:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2923,"name":"uint","nodeType":"ElementaryTypeName","src":"10375:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"10365:31:5"},"returnParameters":{"id":2938,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2928,"name":"targets","nodeType":"VariableDeclaration","scope":2956,"src":"10444:24:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":2926,"name":"address","nodeType":"ElementaryTypeName","src":"10444:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2927,"length":null,"nodeType":"ArrayTypeName","src":"10444:9:5","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":2931,"name":"values","nodeType":"VariableDeclaration","scope":2956,"src":"10470:20:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":2929,"name":"uint","nodeType":"ElementaryTypeName","src":"10470:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2930,"length":null,"nodeType":"ArrayTypeName","src":"10470:6:5","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":2934,"name":"signatures","nodeType":"VariableDeclaration","scope":2956,"src":"10492:26:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_$dyn_memory_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":2932,"name":"string","nodeType":"ElementaryTypeName","src":"10492:6:5","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":2933,"length":null,"nodeType":"ArrayTypeName","src":"10492:8:5","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":2937,"name":"calldatas","nodeType":"VariableDeclaration","scope":2956,"src":"10520:24:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":2935,"name":"bytes","nodeType":"ElementaryTypeName","src":"10520:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":2936,"length":null,"nodeType":"ArrayTypeName","src":"10520:7:5","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"value":null,"visibility":"internal"}],"src":"10443:102:5"},"scope":3683,"src":"10346:328:5","stateMutability":"view","superFunction":null,"visibility":"external"},{"body":{"id":2972,"nodeType":"Block","src":"10974:61:5","statements":[{"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":2965,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5254,"src":"10991:9:5","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$5295_storage_$","typeString":"mapping(uint256 => struct GovernorBravoDelegateStorageV1.Proposal storage ref)"}},"id":2967,"indexExpression":{"argumentTypes":null,"id":2966,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2958,"src":"11001:10:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10991:21:5","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5295_storage","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage ref"}},"id":2968,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"receipts","nodeType":"MemberAccess","referencedDeclaration":5294,"src":"10991:30:5","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Receipt_$5302_storage_$","typeString":"mapping(address => struct GovernorBravoDelegateStorageV1.Receipt storage ref)"}},"id":2970,"indexExpression":{"argumentTypes":null,"id":2969,"name":"voter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2960,"src":"11022:5:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10991:37:5","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$5302_storage","typeString":"struct GovernorBravoDelegateStorageV1.Receipt storage ref"}},"functionReturnParameters":2964,"id":2971,"nodeType":"Return","src":"10984:44:5"}]},"documentation":"@notice Gets the receipt for a voter on a given proposal\n@param proposalId the id of proposal\n@param voter The address of the voter\n@return The voting receipt","id":2973,"implemented":true,"kind":"function","modifiers":[],"name":"getReceipt","nodeType":"FunctionDefinition","parameters":{"id":2961,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2958,"name":"proposalId","nodeType":"VariableDeclaration","scope":2973,"src":"10903:15:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2957,"name":"uint","nodeType":"ElementaryTypeName","src":"10903:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2960,"name":"voter","nodeType":"VariableDeclaration","scope":2973,"src":"10920:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2959,"name":"address","nodeType":"ElementaryTypeName","src":"10920:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"10902:32:5"},"returnParameters":{"id":2964,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2963,"name":"","nodeType":"VariableDeclaration","scope":2973,"src":"10958:14:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$5302_memory_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Receipt"},"typeName":{"contractScope":null,"id":2962,"name":"Receipt","nodeType":"UserDefinedTypeName","referencedDeclaration":5302,"src":"10958:7:5","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$5302_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Receipt"}},"value":null,"visibility":"internal"}],"src":"10957:16:5"},"scope":3683,"src":"10883:152:5","stateMutability":"view","superFunction":null,"visibility":"external"},{"body":{"id":3074,"nodeType":"Block","src":"11247:1005:5","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":2987,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2983,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":2981,"name":"proposalCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5246,"src":"11278:13:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"argumentTypes":null,"id":2982,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2975,"src":"11295:10:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11278:27:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2986,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":2984,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2975,"src":"11309:10:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"id":2985,"name":"initialProposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5244,"src":"11322:17:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11309:30:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"11278:61:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"476f7665726e6f72427261766f3a3a73746174653a20696e76616c69642070726f706f73616c206964","id":2988,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11353:43:5","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_e61e89529abd71ebdc7fb8670e3797adfb63b8cd78cee477b188afbc4e6a151a","typeString":"literal_string \"GovernorBravo::state: invalid proposal id\""},"value":"GovernorBravo::state: invalid proposal id"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e61e89529abd71ebdc7fb8670e3797adfb63b8cd78cee477b188afbc4e6a151a","typeString":"literal_string \"GovernorBravo::state: invalid proposal id\""}],"id":2980,"name":"require","nodeType":"Identifier","overloadedDeclarations":[5555,5556],"referencedDeclaration":5556,"src":"11257:7:5","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2989,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11257:149:5","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2990,"nodeType":"ExpressionStatement","src":"11257:149:5"},{"assignments":[2992],"declarations":[{"constant":false,"id":2992,"name":"proposal","nodeType":"VariableDeclaration","scope":3074,"src":"11416:25:5","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5295_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal"},"typeName":{"contractScope":null,"id":2991,"name":"Proposal","nodeType":"UserDefinedTypeName","referencedDeclaration":5295,"src":"11416:8:5","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5295_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal"}},"value":null,"visibility":"internal"}],"id":2996,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":2993,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5254,"src":"11444:9:5","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$5295_storage_$","typeString":"mapping(uint256 => struct GovernorBravoDelegateStorageV1.Proposal storage ref)"}},"id":2995,"indexExpression":{"argumentTypes":null,"id":2994,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2975,"src":"11454:10:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11444:21:5","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5295_storage","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"11416:49:5"},{"condition":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":2997,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2992,"src":"11479:8:5","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5295_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage pointer"}},"id":2998,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"canceled","nodeType":"MemberAccess","referencedDeclaration":5288,"src":"11479:17:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3007,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3003,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5542,"src":"11562:5:5","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":3004,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"number","nodeType":"MemberAccess","referencedDeclaration":null,"src":"11562:12:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3005,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2992,"src":"11578:8:5","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5295_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage pointer"}},"id":3006,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"startBlock","nodeType":"MemberAccess","referencedDeclaration":5278,"src":"11578:19:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11562:35:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3016,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3012,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5542,"src":"11662:5:5","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":3013,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"number","nodeType":"MemberAccess","referencedDeclaration":null,"src":"11662:12:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3014,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2992,"src":"11678:8:5","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5295_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage pointer"}},"id":3015,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"endBlock","nodeType":"MemberAccess","referencedDeclaration":5280,"src":"11678:17:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11662:33:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":3030,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3025,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3021,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2992,"src":"11759:8:5","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5295_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage pointer"}},"id":3022,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"forVotes","nodeType":"MemberAccess","referencedDeclaration":5282,"src":"11759:17:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3023,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2992,"src":"11780:8:5","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5295_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage pointer"}},"id":3024,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"againstVotes","nodeType":"MemberAccess","referencedDeclaration":5284,"src":"11780:21:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11759:42:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3029,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3026,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2992,"src":"11805:8:5","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5295_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage pointer"}},"id":3027,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"forVotes","nodeType":"MemberAccess","referencedDeclaration":5282,"src":"11805:17:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"id":3028,"name":"quorumVotes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2317,"src":"11825:11:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11805:31:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"11759:77:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3038,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3035,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2992,"src":"11902:8:5","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5295_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage pointer"}},"id":3036,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"eta","nodeType":"MemberAccess","referencedDeclaration":5264,"src":"11902:12:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"30","id":3037,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11918:1:5","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11902:17:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3043,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2992,"src":"11986:8:5","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5295_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage pointer"}},"id":3044,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"executed","nodeType":"MemberAccess","referencedDeclaration":5290,"src":"11986:17:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3058,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3049,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5542,"src":"12069:5:5","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":3050,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":null,"src":"12069:15:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3052,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2992,"src":"12095:8:5","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5295_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage pointer"}},"id":3053,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"eta","nodeType":"MemberAccess","referencedDeclaration":5264,"src":"12095:12:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"id":3054,"name":"timelock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5248,"src":"12109:8:5","typeDescriptions":{"typeIdentifier":"t_contract$_TimelockInterface_$2007","typeString":"contract TimelockInterface"}},"id":3055,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"GRACE_PERIOD","nodeType":"MemberAccess","referencedDeclaration":1953,"src":"12109:21:5","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":3056,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12109:23:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3051,"name":"add256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3649,"src":"12088:6:5","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":3057,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12088:45:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12069:64:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":3066,"nodeType":"Block","src":"12194:52:5","statements":[{"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3063,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5311,"src":"12215:13:5","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$5311_$","typeString":"type(enum GovernorBravoDelegateStorageV1.ProposalState)"}},"id":3064,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Queued","nodeType":"MemberAccess","referencedDeclaration":null,"src":"12215:20:5","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$5311","typeString":"enum GovernorBravoDelegateStorageV1.ProposalState"}},"functionReturnParameters":2979,"id":3065,"nodeType":"Return","src":"12208:27:5"}]},"id":3067,"nodeType":"IfStatement","src":"12065:181:5","trueBody":{"id":3062,"nodeType":"Block","src":"12135:53:5","statements":[{"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3059,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5311,"src":"12156:13:5","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$5311_$","typeString":"type(enum GovernorBravoDelegateStorageV1.ProposalState)"}},"id":3060,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Expired","nodeType":"MemberAccess","referencedDeclaration":null,"src":"12156:21:5","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$5311","typeString":"enum GovernorBravoDelegateStorageV1.ProposalState"}},"functionReturnParameters":2979,"id":3061,"nodeType":"Return","src":"12149:28:5"}]}},"id":3068,"nodeType":"IfStatement","src":"11982:264:5","trueBody":{"id":3048,"nodeType":"Block","src":"12005:54:5","statements":[{"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3045,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5311,"src":"12026:13:5","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$5311_$","typeString":"type(enum GovernorBravoDelegateStorageV1.ProposalState)"}},"id":3046,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Executed","nodeType":"MemberAccess","referencedDeclaration":null,"src":"12026:22:5","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$5311","typeString":"enum GovernorBravoDelegateStorageV1.ProposalState"}},"functionReturnParameters":2979,"id":3047,"nodeType":"Return","src":"12019:29:5"}]}},"id":3069,"nodeType":"IfStatement","src":"11898:348:5","trueBody":{"id":3042,"nodeType":"Block","src":"11921:55:5","statements":[{"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3039,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5311,"src":"11942:13:5","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$5311_$","typeString":"type(enum GovernorBravoDelegateStorageV1.ProposalState)"}},"id":3040,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Succeeded","nodeType":"MemberAccess","referencedDeclaration":null,"src":"11942:23:5","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$5311","typeString":"enum GovernorBravoDelegateStorageV1.ProposalState"}},"functionReturnParameters":2979,"id":3041,"nodeType":"Return","src":"11935:30:5"}]}},"id":3070,"nodeType":"IfStatement","src":"11755:491:5","trueBody":{"id":3034,"nodeType":"Block","src":"11838:54:5","statements":[{"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3031,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5311,"src":"11859:13:5","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$5311_$","typeString":"type(enum GovernorBravoDelegateStorageV1.ProposalState)"}},"id":3032,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Defeated","nodeType":"MemberAccess","referencedDeclaration":null,"src":"11859:22:5","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$5311","typeString":"enum GovernorBravoDelegateStorageV1.ProposalState"}},"functionReturnParameters":2979,"id":3033,"nodeType":"Return","src":"11852:29:5"}]}},"id":3071,"nodeType":"IfStatement","src":"11658:588:5","trueBody":{"id":3020,"nodeType":"Block","src":"11697:52:5","statements":[{"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3017,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5311,"src":"11718:13:5","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$5311_$","typeString":"type(enum GovernorBravoDelegateStorageV1.ProposalState)"}},"id":3018,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Active","nodeType":"MemberAccess","referencedDeclaration":null,"src":"11718:20:5","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$5311","typeString":"enum GovernorBravoDelegateStorageV1.ProposalState"}},"functionReturnParameters":2979,"id":3019,"nodeType":"Return","src":"11711:27:5"}]}},"id":3072,"nodeType":"IfStatement","src":"11558:688:5","trueBody":{"id":3011,"nodeType":"Block","src":"11599:53:5","statements":[{"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3008,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5311,"src":"11620:13:5","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$5311_$","typeString":"type(enum GovernorBravoDelegateStorageV1.ProposalState)"}},"id":3009,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Pending","nodeType":"MemberAccess","referencedDeclaration":null,"src":"11620:21:5","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$5311","typeString":"enum GovernorBravoDelegateStorageV1.ProposalState"}},"functionReturnParameters":2979,"id":3010,"nodeType":"Return","src":"11613:28:5"}]}},"id":3073,"nodeType":"IfStatement","src":"11475:771:5","trueBody":{"id":3002,"nodeType":"Block","src":"11498:54:5","statements":[{"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":2999,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5311,"src":"11519:13:5","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$5311_$","typeString":"type(enum GovernorBravoDelegateStorageV1.ProposalState)"}},"id":3000,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Canceled","nodeType":"MemberAccess","referencedDeclaration":null,"src":"11519:22:5","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$5311","typeString":"enum GovernorBravoDelegateStorageV1.ProposalState"}},"functionReturnParameters":2979,"id":3001,"nodeType":"Return","src":"11512:29:5"}]}}]},"documentation":"@notice Gets the state of a proposal\n@param proposalId The id of the proposal\n@return Proposal state","id":3075,"implemented":true,"kind":"function","modifiers":[],"name":"state","nodeType":"FunctionDefinition","parameters":{"id":2976,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2975,"name":"proposalId","nodeType":"VariableDeclaration","scope":3075,"src":"11194:15:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2974,"name":"uint","nodeType":"ElementaryTypeName","src":"11194:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"11193:17:5"},"returnParameters":{"id":2979,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2978,"name":"","nodeType":"VariableDeclaration","scope":3075,"src":"11232:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$5311","typeString":"enum GovernorBravoDelegateStorageV1.ProposalState"},"typeName":{"contractScope":null,"id":2977,"name":"ProposalState","nodeType":"UserDefinedTypeName","referencedDeclaration":5311,"src":"11232:13:5","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$5311","typeString":"enum GovernorBravoDelegateStorageV1.ProposalState"}},"value":null,"visibility":"internal"}],"src":"11231:15:5"},"scope":3683,"src":"11179:1073:5","stateMutability":"view","superFunction":null,"visibility":"public"},{"body":{"id":3096,"nodeType":"Block","src":"12516:118:5","statements":[{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3083,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5552,"src":"12540:3:5","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":3084,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"12540:10:5","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":3085,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3077,"src":"12552:10:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":3086,"name":"support","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3079,"src":"12564:7:5","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3088,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5552,"src":"12590:3:5","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":3089,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"12590:10:5","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":3090,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3077,"src":"12602:10:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":3091,"name":"support","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3079,"src":"12614:7:5","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":3087,"name":"castVoteInternal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3330,"src":"12573:16:5","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint8_$returns$_t_uint96_$","typeString":"function (address,uint256,uint8) returns (uint96)"}},"id":3092,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12573:49:5","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},{"argumentTypes":null,"hexValue":"","id":3093,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12624:2:5","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_uint96","typeString":"uint96"},{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":3082,"name":"VoteCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5164,"src":"12531:8:5","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint8_$_t_uint256_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,uint256,uint8,uint256,string memory)"}},"id":3094,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12531:96:5","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3095,"nodeType":"EmitStatement","src":"12526:101:5"}]},"documentation":"@notice Cast a vote for a proposal\n@param proposalId The id of the proposal to vote on\n@param support The support value for the vote. 0=against, 1=for, 2=abstain","id":3097,"implemented":true,"kind":"function","modifiers":[],"name":"castVote","nodeType":"FunctionDefinition","parameters":{"id":3080,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3077,"name":"proposalId","nodeType":"VariableDeclaration","scope":3097,"src":"12475:15:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3076,"name":"uint","nodeType":"ElementaryTypeName","src":"12475:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":3079,"name":"support","nodeType":"VariableDeclaration","scope":3097,"src":"12492:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":3078,"name":"uint8","nodeType":"ElementaryTypeName","src":"12492:5:5","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":null,"visibility":"internal"}],"src":"12474:32:5"},"returnParameters":{"id":3081,"nodeType":"ParameterList","parameters":[],"src":"12516:0:5"},"scope":3683,"src":"12457:177:5","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":3120,"nodeType":"Block","src":"13010:122:5","statements":[{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3107,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5552,"src":"13034:3:5","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":3108,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"13034:10:5","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":3109,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3099,"src":"13046:10:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":3110,"name":"support","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3101,"src":"13058:7:5","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3112,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5552,"src":"13084:3:5","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":3113,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"13084:10:5","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":3114,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3099,"src":"13096:10:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":3115,"name":"support","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3101,"src":"13108:7:5","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":3111,"name":"castVoteInternal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3330,"src":"13067:16:5","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint8_$returns$_t_uint96_$","typeString":"function (address,uint256,uint8) returns (uint96)"}},"id":3116,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13067:49:5","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},{"argumentTypes":null,"id":3117,"name":"reason","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3103,"src":"13118:6:5","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_uint96","typeString":"uint96"},{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}],"id":3106,"name":"VoteCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5164,"src":"13025:8:5","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint8_$_t_uint256_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,uint256,uint8,uint256,string memory)"}},"id":3118,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13025:100:5","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3119,"nodeType":"EmitStatement","src":"13020:105:5"}]},"documentation":"@notice Cast a vote for a proposal with a reason\n@param proposalId The id of the proposal to vote on\n@param support The support value for the vote. 0=against, 1=for, 2=abstain\n@param reason The reason given for the vote by the voter","id":3121,"implemented":true,"kind":"function","modifiers":[],"name":"castVoteWithReason","nodeType":"FunctionDefinition","parameters":{"id":3104,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3099,"name":"proposalId","nodeType":"VariableDeclaration","scope":3121,"src":"12945:15:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3098,"name":"uint","nodeType":"ElementaryTypeName","src":"12945:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":3101,"name":"support","nodeType":"VariableDeclaration","scope":3121,"src":"12962:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":3100,"name":"uint8","nodeType":"ElementaryTypeName","src":"12962:5:5","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":null,"visibility":"internal"},{"constant":false,"id":3103,"name":"reason","nodeType":"VariableDeclaration","scope":3121,"src":"12977:22:5","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":3102,"name":"string","nodeType":"ElementaryTypeName","src":"12977:6:5","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"}],"src":"12944:56:5"},"returnParameters":{"id":3105,"nodeType":"ParameterList","parameters":[],"src":"13010:0:5"},"scope":3683,"src":"12917:215:5","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":3205,"nodeType":"Block","src":"13391:607:5","statements":[{"assignments":[3135],"declarations":[{"constant":false,"id":3135,"name":"domainSeparator","nodeType":"VariableDeclaration","scope":3205,"src":"13401:23:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3134,"name":"bytes32","nodeType":"ElementaryTypeName","src":"13401:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"id":3152,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":3139,"name":"DOMAIN_TYPEHASH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2322,"src":"13461:15:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":3142,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2280,"src":"13494:4:5","typeDescriptions":{"typeIdentifier":"t_string_memory","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory","typeString":"string memory"}],"id":3141,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13488:5:5","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":"bytes"},"id":3143,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13488:11:5","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":3140,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5546,"src":"13478:9:5","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":3144,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13478:22:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"id":3145,"name":"getChainIdInternal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3682,"src":"13502:18:5","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_uint256_$","typeString":"function () pure returns (uint256)"}},"id":3146,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13502:20:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":3148,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5596,"src":"13532:4:5","typeDescriptions":{"typeIdentifier":"t_contract$_GovernorBravoDelegateV1_$3683","typeString":"contract GovernorBravoDelegateV1"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GovernorBravoDelegateV1_$3683","typeString":"contract GovernorBravoDelegateV1"}],"id":3147,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13524:7:5","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":3149,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13524:13:5","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":3137,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5539,"src":"13450:3:5","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":3138,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","referencedDeclaration":null,"src":"13450:10:5","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":3150,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13450:88:5","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":3136,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5546,"src":"13427:9:5","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":3151,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13427:121:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"13401:147:5"},{"assignments":[3154],"declarations":[{"constant":false,"id":3154,"name":"structHash","nodeType":"VariableDeclaration","scope":3205,"src":"13558:18:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3153,"name":"bytes32","nodeType":"ElementaryTypeName","src":"13558:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"id":3163,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":3158,"name":"BALLOT_TYPEHASH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2327,"src":"13600:15:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":3159,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3123,"src":"13617:10:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":3160,"name":"support","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3125,"src":"13629:7:5","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"argumentTypes":null,"id":3156,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5539,"src":"13589:3:5","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":3157,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","referencedDeclaration":null,"src":"13589:10:5","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":3161,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13589:48:5","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":3155,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5546,"src":"13579:9:5","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":3162,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13579:59:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"13558:80:5"},{"assignments":[3165],"declarations":[{"constant":false,"id":3165,"name":"digest","nodeType":"VariableDeclaration","scope":3205,"src":"13648:14:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3164,"name":"bytes32","nodeType":"ElementaryTypeName","src":"13648:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"id":3174,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"1901","id":3169,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13692:10:5","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541","typeString":"literal_string \"\u0019\u0001\""},"value":"\u0019\u0001"},{"argumentTypes":null,"id":3170,"name":"domainSeparator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3135,"src":"13704:15:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":3171,"name":"structHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3154,"src":"13721:10:5","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":3167,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5539,"src":"13675:3:5","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":3168,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","referencedDeclaration":null,"src":"13675:16:5","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":3172,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13675:57:5","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":3166,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5546,"src":"13665:9:5","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":3173,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13665:68:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"13648:85:5"},{"assignments":[3176],"declarations":[{"constant":false,"id":3176,"name":"signatory","nodeType":"VariableDeclaration","scope":3205,"src":"13743:17:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3175,"name":"address","nodeType":"ElementaryTypeName","src":"13743:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"id":3183,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":3178,"name":"digest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3165,"src":"13773:6:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":3179,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3127,"src":"13781:1:5","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"argumentTypes":null,"id":3180,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3129,"src":"13784:1:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":3181,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3131,"src":"13787:1:5","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":3177,"name":"ecrecover","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5544,"src":"13763:9:5","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":3182,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13763:26:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"13743:46:5"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":3189,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":3185,"name":"signatory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3176,"src":"13807:9:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":3187,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13828:1:5","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":3186,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13820:7:5","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":3188,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13820:10:5","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"13807:23:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"476f7665726e6f72427261766f3a3a63617374566f746542795369673a20696e76616c6964207369676e6174757265","id":3190,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13832:49:5","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_606b6b9610d6d8b33c2c9914e54c767f3ea3c0ecf287b2262a751d4ec2b89d60","typeString":"literal_string \"GovernorBravo::castVoteBySig: invalid signature\""},"value":"GovernorBravo::castVoteBySig: invalid signature"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_606b6b9610d6d8b33c2c9914e54c767f3ea3c0ecf287b2262a751d4ec2b89d60","typeString":"literal_string \"GovernorBravo::castVoteBySig: invalid signature\""}],"id":3184,"name":"require","nodeType":"Identifier","overloadedDeclarations":[5555,5556],"referencedDeclaration":5556,"src":"13799:7:5","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3191,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13799:83:5","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3192,"nodeType":"ExpressionStatement","src":"13799:83:5"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":3194,"name":"signatory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3176,"src":"13906:9:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":3195,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3123,"src":"13917:10:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":3196,"name":"support","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3125,"src":"13929:7:5","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":3198,"name":"signatory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3176,"src":"13955:9:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":3199,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3123,"src":"13966:10:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":3200,"name":"support","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3125,"src":"13978:7:5","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":3197,"name":"castVoteInternal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3330,"src":"13938:16:5","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint8_$returns$_t_uint96_$","typeString":"function (address,uint256,uint8) returns (uint96)"}},"id":3201,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13938:48:5","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},{"argumentTypes":null,"hexValue":"","id":3202,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13988:2:5","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_uint96","typeString":"uint96"},{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":3193,"name":"VoteCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5164,"src":"13897:8:5","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint8_$_t_uint256_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,uint256,uint8,uint256,string memory)"}},"id":3203,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13897:94:5","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3204,"nodeType":"EmitStatement","src":"13892:99:5"}]},"documentation":"@notice Cast a vote for a proposal by signature\n@dev External function that accepts EIP-712 signatures for voting on proposals.","id":3206,"implemented":true,"kind":"function","modifiers":[],"name":"castVoteBySig","nodeType":"FunctionDefinition","parameters":{"id":3132,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3123,"name":"proposalId","nodeType":"VariableDeclaration","scope":3206,"src":"13319:15:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3122,"name":"uint","nodeType":"ElementaryTypeName","src":"13319:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":3125,"name":"support","nodeType":"VariableDeclaration","scope":3206,"src":"13336:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":3124,"name":"uint8","nodeType":"ElementaryTypeName","src":"13336:5:5","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":null,"visibility":"internal"},{"constant":false,"id":3127,"name":"v","nodeType":"VariableDeclaration","scope":3206,"src":"13351:7:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":3126,"name":"uint8","nodeType":"ElementaryTypeName","src":"13351:5:5","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":null,"visibility":"internal"},{"constant":false,"id":3129,"name":"r","nodeType":"VariableDeclaration","scope":3206,"src":"13360:9:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3128,"name":"bytes32","nodeType":"ElementaryTypeName","src":"13360:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":3131,"name":"s","nodeType":"VariableDeclaration","scope":3206,"src":"13371:9:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3130,"name":"bytes32","nodeType":"ElementaryTypeName","src":"13371:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"13318:63:5"},"returnParameters":{"id":3133,"nodeType":"ParameterList","parameters":[],"src":"13391:0:5"},"scope":3683,"src":"13296:702:5","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":3329,"nodeType":"Block","src":"14419:945:5","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_enum$_ProposalState_$5311","typeString":"enum GovernorBravoDelegateStorageV1.ProposalState"},"id":3223,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":3219,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3210,"src":"14443:10:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3218,"name":"state","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3075,"src":"14437:5:5","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_enum$_ProposalState_$5311_$","typeString":"function (uint256) view returns (enum GovernorBravoDelegateStorageV1.ProposalState)"}},"id":3220,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14437:17:5","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$5311","typeString":"enum GovernorBravoDelegateStorageV1.ProposalState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3221,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5311,"src":"14458:13:5","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$5311_$","typeString":"type(enum GovernorBravoDelegateStorageV1.ProposalState)"}},"id":3222,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Active","nodeType":"MemberAccess","referencedDeclaration":null,"src":"14458:20:5","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$5311","typeString":"enum GovernorBravoDelegateStorageV1.ProposalState"}},"src":"14437:41:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"476f7665726e6f72427261766f3a3a63617374566f7465496e7465726e616c3a20766f74696e6720697320636c6f736564","id":3224,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14480:51:5","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_4d8168be21aac620ed72791717aa2911167b316e34d177cc4b315ea45590cb98","typeString":"literal_string \"GovernorBravo::castVoteInternal: voting is closed\""},"value":"GovernorBravo::castVoteInternal: voting is closed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_4d8168be21aac620ed72791717aa2911167b316e34d177cc4b315ea45590cb98","typeString":"literal_string \"GovernorBravo::castVoteInternal: voting is closed\""}],"id":3217,"name":"require","nodeType":"Identifier","overloadedDeclarations":[5555,5556],"referencedDeclaration":5556,"src":"14429:7:5","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3225,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14429:103:5","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3226,"nodeType":"ExpressionStatement","src":"14429:103:5"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":3230,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":3228,"name":"support","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3212,"src":"14550:7:5","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"argumentTypes":null,"hexValue":"32","id":3229,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14561:1:5","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"14550:12:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"476f7665726e6f72427261766f3a3a63617374566f7465496e7465726e616c3a20696e76616c696420766f74652074797065","id":3231,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14564:52:5","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_08ca01306f73add02bd237ec4eb9b88988c263b20bc18a865949156e713112d3","typeString":"literal_string \"GovernorBravo::castVoteInternal: invalid vote type\""},"value":"GovernorBravo::castVoteInternal: invalid vote type"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_08ca01306f73add02bd237ec4eb9b88988c263b20bc18a865949156e713112d3","typeString":"literal_string \"GovernorBravo::castVoteInternal: invalid vote type\""}],"id":3227,"name":"require","nodeType":"Identifier","overloadedDeclarations":[5555,5556],"referencedDeclaration":5556,"src":"14542:7:5","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3232,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14542:75:5","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3233,"nodeType":"ExpressionStatement","src":"14542:75:5"},{"assignments":[3235],"declarations":[{"constant":false,"id":3235,"name":"proposal","nodeType":"VariableDeclaration","scope":3329,"src":"14627:25:5","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5295_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal"},"typeName":{"contractScope":null,"id":3234,"name":"Proposal","nodeType":"UserDefinedTypeName","referencedDeclaration":5295,"src":"14627:8:5","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5295_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal"}},"value":null,"visibility":"internal"}],"id":3239,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3236,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5254,"src":"14655:9:5","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$5295_storage_$","typeString":"mapping(uint256 => struct GovernorBravoDelegateStorageV1.Proposal storage ref)"}},"id":3238,"indexExpression":{"argumentTypes":null,"id":3237,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3210,"src":"14665:10:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14655:21:5","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5295_storage","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"14627:49:5"},{"assignments":[3241],"declarations":[{"constant":false,"id":3241,"name":"receipt","nodeType":"VariableDeclaration","scope":3329,"src":"14686:23:5","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$5302_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Receipt"},"typeName":{"contractScope":null,"id":3240,"name":"Receipt","nodeType":"UserDefinedTypeName","referencedDeclaration":5302,"src":"14686:7:5","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$5302_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Receipt"}},"value":null,"visibility":"internal"}],"id":3246,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3242,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3235,"src":"14712:8:5","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5295_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage pointer"}},"id":3243,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"receipts","nodeType":"MemberAccess","referencedDeclaration":5294,"src":"14712:17:5","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Receipt_$5302_storage_$","typeString":"mapping(address => struct GovernorBravoDelegateStorageV1.Receipt storage ref)"}},"id":3245,"indexExpression":{"argumentTypes":null,"id":3244,"name":"voter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3208,"src":"14730:5:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14712:24:5","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$5302_storage","typeString":"struct GovernorBravoDelegateStorageV1.Receipt storage ref"}},"nodeType":"VariableDeclarationStatement","src":"14686:50:5"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":3251,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3248,"name":"receipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3241,"src":"14754:7:5","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$5302_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Receipt storage pointer"}},"id":3249,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"hasVoted","nodeType":"MemberAccess","referencedDeclaration":5297,"src":"14754:16:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"66616c7365","id":3250,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"14774:5:5","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"14754:25:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"476f7665726e6f72427261766f3a3a63617374566f7465496e7465726e616c3a20766f74657220616c726561647920766f746564","id":3252,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14781:54:5","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_4db4ad45458d858d12fec9cccfea17def9275e2163ec97403e3da078a04e1a11","typeString":"literal_string \"GovernorBravo::castVoteInternal: voter already voted\""},"value":"GovernorBravo::castVoteInternal: voter already voted"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_4db4ad45458d858d12fec9cccfea17def9275e2163ec97403e3da078a04e1a11","typeString":"literal_string \"GovernorBravo::castVoteInternal: voter already voted\""}],"id":3247,"name":"require","nodeType":"Identifier","overloadedDeclarations":[5555,5556],"referencedDeclaration":5556,"src":"14746:7:5","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3253,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14746:90:5","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3254,"nodeType":"ExpressionStatement","src":"14746:90:5"},{"assignments":[3256],"declarations":[{"constant":false,"id":3256,"name":"votes","nodeType":"VariableDeclaration","scope":3329,"src":"14846:12:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":3255,"name":"uint96","nodeType":"ElementaryTypeName","src":"14846:6:5","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"value":null,"visibility":"internal"}],"id":3263,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":3259,"name":"voter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3208,"src":"14884:5:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3260,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3235,"src":"14891:8:5","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5295_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage pointer"}},"id":3261,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"startBlock","nodeType":"MemberAccess","referencedDeclaration":5278,"src":"14891:19:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":3257,"name":"xvsVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5250,"src":"14861:8:5","typeDescriptions":{"typeIdentifier":"t_contract$_XvsVaultInterface_$2017","typeString":"contract XvsVaultInterface"}},"id":3258,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getPriorVotes","nodeType":"MemberAccess","referencedDeclaration":2016,"src":"14861:22:5","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_uint256_$returns$_t_uint96_$","typeString":"function (address,uint256) view external returns (uint96)"}},"id":3262,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14861:50:5","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"nodeType":"VariableDeclarationStatement","src":"14846:65:5"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":3266,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":3264,"name":"support","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3212,"src":"14926:7:5","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"30","id":3265,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14937:1:5","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14926:12:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":3280,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":3278,"name":"support","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3212,"src":"15035:7:5","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"31","id":3279,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15046:1:5","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"15035:12:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":3294,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":3292,"name":"support","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3212,"src":"15136:7:5","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"32","id":3293,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15147:1:5","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"15136:12:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":3306,"nodeType":"IfStatement","src":"15132:103:5","trueBody":{"id":3305,"nodeType":"Block","src":"15150:85:5","statements":[{"expression":{"argumentTypes":null,"id":3303,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3295,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3235,"src":"15164:8:5","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5295_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage pointer"}},"id":3297,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"abstainVotes","nodeType":"MemberAccess","referencedDeclaration":5286,"src":"15164:21:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3299,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3235,"src":"15195:8:5","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5295_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage pointer"}},"id":3300,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"abstainVotes","nodeType":"MemberAccess","referencedDeclaration":5286,"src":"15195:21:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":3301,"name":"votes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3256,"src":"15218:5:5","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint96","typeString":"uint96"}],"id":3298,"name":"add256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3649,"src":"15188:6:5","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":3302,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15188:36:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15164:60:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3304,"nodeType":"ExpressionStatement","src":"15164:60:5"}]}},"id":3307,"nodeType":"IfStatement","src":"15031:204:5","trueBody":{"id":3291,"nodeType":"Block","src":"15049:77:5","statements":[{"expression":{"argumentTypes":null,"id":3289,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3281,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3235,"src":"15063:8:5","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5295_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage pointer"}},"id":3283,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"forVotes","nodeType":"MemberAccess","referencedDeclaration":5282,"src":"15063:17:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3285,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3235,"src":"15090:8:5","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5295_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage pointer"}},"id":3286,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"forVotes","nodeType":"MemberAccess","referencedDeclaration":5282,"src":"15090:17:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":3287,"name":"votes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3256,"src":"15109:5:5","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint96","typeString":"uint96"}],"id":3284,"name":"add256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3649,"src":"15083:6:5","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":3288,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15083:32:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15063:52:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3290,"nodeType":"ExpressionStatement","src":"15063:52:5"}]}},"id":3308,"nodeType":"IfStatement","src":"14922:313:5","trueBody":{"id":3277,"nodeType":"Block","src":"14940:85:5","statements":[{"expression":{"argumentTypes":null,"id":3275,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3267,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3235,"src":"14954:8:5","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5295_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage pointer"}},"id":3269,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"againstVotes","nodeType":"MemberAccess","referencedDeclaration":5284,"src":"14954:21:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3271,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3235,"src":"14985:8:5","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5295_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage pointer"}},"id":3272,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"againstVotes","nodeType":"MemberAccess","referencedDeclaration":5284,"src":"14985:21:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":3273,"name":"votes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3256,"src":"15008:5:5","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint96","typeString":"uint96"}],"id":3270,"name":"add256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3649,"src":"14978:6:5","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":3274,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14978:36:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14954:60:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3276,"nodeType":"ExpressionStatement","src":"14954:60:5"}]}},{"expression":{"argumentTypes":null,"id":3313,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3309,"name":"receipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3241,"src":"15245:7:5","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$5302_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Receipt storage pointer"}},"id":3311,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"hasVoted","nodeType":"MemberAccess","referencedDeclaration":5297,"src":"15245:16:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"hexValue":"74727565","id":3312,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"15264:4:5","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"15245:23:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3314,"nodeType":"ExpressionStatement","src":"15245:23:5"},{"expression":{"argumentTypes":null,"id":3319,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3315,"name":"receipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3241,"src":"15278:7:5","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$5302_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Receipt storage pointer"}},"id":3317,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"support","nodeType":"MemberAccess","referencedDeclaration":5299,"src":"15278:15:5","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":3318,"name":"support","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3212,"src":"15296:7:5","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"15278:25:5","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":3320,"nodeType":"ExpressionStatement","src":"15278:25:5"},{"expression":{"argumentTypes":null,"id":3325,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3321,"name":"receipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3241,"src":"15313:7:5","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$5302_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Receipt storage pointer"}},"id":3323,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"votes","nodeType":"MemberAccess","referencedDeclaration":5301,"src":"15313:13:5","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":3324,"name":"votes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3256,"src":"15329:5:5","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"src":"15313:21:5","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"id":3326,"nodeType":"ExpressionStatement","src":"15313:21:5"},{"expression":{"argumentTypes":null,"id":3327,"name":"votes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3256,"src":"15352:5:5","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"functionReturnParameters":3216,"id":3328,"nodeType":"Return","src":"15345:12:5"}]},"documentation":"@notice Internal function that caries out voting logic\n@param voter The voter that is casting their vote\n@param proposalId The id of the proposal to vote on\n@param support The support value for the vote. 0=against, 1=for, 2=abstain\n@return The number of votes cast","id":3330,"implemented":true,"kind":"function","modifiers":[],"name":"castVoteInternal","nodeType":"FunctionDefinition","parameters":{"id":3213,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3208,"name":"voter","nodeType":"VariableDeclaration","scope":3330,"src":"14346:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3207,"name":"address","nodeType":"ElementaryTypeName","src":"14346:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":3210,"name":"proposalId","nodeType":"VariableDeclaration","scope":3330,"src":"14361:15:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3209,"name":"uint","nodeType":"ElementaryTypeName","src":"14361:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":3212,"name":"support","nodeType":"VariableDeclaration","scope":3330,"src":"14378:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":3211,"name":"uint8","nodeType":"ElementaryTypeName","src":"14378:5:5","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":null,"visibility":"internal"}],"src":"14345:47:5"},"returnParameters":{"id":3216,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3215,"name":"","nodeType":"VariableDeclaration","scope":3330,"src":"14411:6:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":3214,"name":"uint96","nodeType":"ElementaryTypeName","src":"14411:6:5","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"value":null,"visibility":"internal"}],"src":"14410:8:5"},"scope":3683,"src":"14320:1044:5","stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},{"body":{"id":3370,"nodeType":"Block","src":"15544:358:5","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":3344,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":3339,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3336,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5552,"src":"15562:3:5","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":3337,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"15562:10:5","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"id":3338,"name":"guardian","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5315,"src":"15576:8:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"15562:22:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":3343,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3340,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5552,"src":"15588:3:5","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":3341,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"15588:10:5","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"id":3342,"name":"admin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5229,"src":"15602:5:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"15588:19:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"15562:45:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"476f7665726e6f72427261766f3a3a5f736574477561726469616e3a2061646d696e206f7220677561726469616e206f6e6c79","id":3345,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15609:53:5","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_f13903e1eabc7759eed6c0bff3ddcc707d2fd566e366ac64c25fa90624578ecc","typeString":"literal_string \"GovernorBravo::_setGuardian: admin or guardian only\""},"value":"GovernorBravo::_setGuardian: admin or guardian only"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f13903e1eabc7759eed6c0bff3ddcc707d2fd566e366ac64c25fa90624578ecc","typeString":"literal_string \"GovernorBravo::_setGuardian: admin or guardian only\""}],"id":3335,"name":"require","nodeType":"Identifier","overloadedDeclarations":[5555,5556],"referencedDeclaration":5556,"src":"15554:7:5","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3346,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15554:109:5","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3347,"nodeType":"ExpressionStatement","src":"15554:109:5"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":3353,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":3349,"name":"newGuardian","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3332,"src":"15681:11:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":3351,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15704:1:5","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":3350,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15696:7:5","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":3352,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15696:10:5","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"15681:25:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"476f7665726e6f72427261766f3a3a5f736574477561726469616e3a2063616e6e6f74206c69766520776974686f7574206120677561726469616e","id":3354,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15708:61:5","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_eefe3d246cd1a613548764705d4b203394f59e072e13911ce8f5cea82fc81a5c","typeString":"literal_string \"GovernorBravo::_setGuardian: cannot live without a guardian\""},"value":"GovernorBravo::_setGuardian: cannot live without a guardian"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_eefe3d246cd1a613548764705d4b203394f59e072e13911ce8f5cea82fc81a5c","typeString":"literal_string \"GovernorBravo::_setGuardian: cannot live without a guardian\""}],"id":3348,"name":"require","nodeType":"Identifier","overloadedDeclarations":[5555,5556],"referencedDeclaration":5556,"src":"15673:7:5","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3355,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15673:97:5","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3356,"nodeType":"ExpressionStatement","src":"15673:97:5"},{"assignments":[3358],"declarations":[{"constant":false,"id":3358,"name":"oldGuardian","nodeType":"VariableDeclaration","scope":3370,"src":"15780:19:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3357,"name":"address","nodeType":"ElementaryTypeName","src":"15780:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"id":3360,"initialValue":{"argumentTypes":null,"id":3359,"name":"guardian","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5315,"src":"15802:8:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"15780:30:5"},{"expression":{"argumentTypes":null,"id":3363,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":3361,"name":"guardian","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5315,"src":"15820:8:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":3362,"name":"newGuardian","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3332,"src":"15831:11:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"15820:22:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":3364,"nodeType":"ExpressionStatement","src":"15820:22:5"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":3366,"name":"oldGuardian","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3358,"src":"15870:11:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":3367,"name":"newGuardian","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3332,"src":"15883:11:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":3365,"name":"NewGuardian","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5220,"src":"15858:11:5","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":3368,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15858:37:5","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3369,"nodeType":"EmitStatement","src":"15853:42:5"}]},"documentation":"@notice Sets the new governance guardian\n@param newGuardian the address of the new guardian","id":3371,"implemented":true,"kind":"function","modifiers":[],"name":"_setGuardian","nodeType":"FunctionDefinition","parameters":{"id":3333,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3332,"name":"newGuardian","nodeType":"VariableDeclaration","scope":3371,"src":"15514:19:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3331,"name":"address","nodeType":"ElementaryTypeName","src":"15514:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"15513:21:5"},"returnParameters":{"id":3334,"nodeType":"ParameterList","parameters":[],"src":"15544:0:5"},"scope":3683,"src":"15492:410:5","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":3408,"nodeType":"Block","src":"16095:412:5","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":3380,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3377,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5552,"src":"16113:3:5","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":3378,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"16113:10:5","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"id":3379,"name":"admin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5229,"src":"16127:5:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"16113:19:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"476f7665726e6f72427261766f3a3a5f736574566f74696e6744656c61793a2061646d696e206f6e6c79","id":3381,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16134:44:5","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_279b08a3b3d49785c097a8d73d57a97d8e69c25d04ec90900db7349adf8b6746","typeString":"literal_string \"GovernorBravo::_setVotingDelay: admin only\""},"value":"GovernorBravo::_setVotingDelay: admin only"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_279b08a3b3d49785c097a8d73d57a97d8e69c25d04ec90900db7349adf8b6746","typeString":"literal_string \"GovernorBravo::_setVotingDelay: admin only\""}],"id":3376,"name":"require","nodeType":"Identifier","overloadedDeclarations":[5555,5556],"referencedDeclaration":5556,"src":"16105:7:5","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3382,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16105:74:5","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3383,"nodeType":"ExpressionStatement","src":"16105:74:5"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":3391,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3387,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":3385,"name":"newVotingDelay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3373,"src":"16210:14:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"argumentTypes":null,"id":3386,"name":"MIN_VOTING_DELAY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2305,"src":"16228:16:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16210:34:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3390,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":3388,"name":"newVotingDelay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3373,"src":"16248:14:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"argumentTypes":null,"id":3389,"name":"MAX_VOTING_DELAY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2314,"src":"16266:16:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16248:34:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"16210:72:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"476f7665726e6f72427261766f3a3a5f736574566f74696e6744656c61793a20696e76616c696420766f74696e672064656c6179","id":3392,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16296:54:5","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_5930fb0b93e8f9722b42028e35c6806f211165c68ad302a38cca85070de7f5ab","typeString":"literal_string \"GovernorBravo::_setVotingDelay: invalid voting delay\""},"value":"GovernorBravo::_setVotingDelay: invalid voting delay"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5930fb0b93e8f9722b42028e35c6806f211165c68ad302a38cca85070de7f5ab","typeString":"literal_string \"GovernorBravo::_setVotingDelay: invalid voting delay\""}],"id":3384,"name":"require","nodeType":"Identifier","overloadedDeclarations":[5555,5556],"referencedDeclaration":5556,"src":"16189:7:5","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3393,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16189:171:5","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3394,"nodeType":"ExpressionStatement","src":"16189:171:5"},{"assignments":[3396],"declarations":[{"constant":false,"id":3396,"name":"oldVotingDelay","nodeType":"VariableDeclaration","scope":3408,"src":"16370:19:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3395,"name":"uint","nodeType":"ElementaryTypeName","src":"16370:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":3398,"initialValue":{"argumentTypes":null,"id":3397,"name":"votingDelay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5238,"src":"16392:11:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"16370:33:5"},{"expression":{"argumentTypes":null,"id":3401,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":3399,"name":"votingDelay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5238,"src":"16413:11:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":3400,"name":"newVotingDelay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3373,"src":"16427:14:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16413:28:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3402,"nodeType":"ExpressionStatement","src":"16413:28:5"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":3404,"name":"oldVotingDelay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3396,"src":"16472:14:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":3405,"name":"votingDelay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5238,"src":"16488:11:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3403,"name":"VotingDelaySet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5184,"src":"16457:14:5","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":3406,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16457:43:5","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3407,"nodeType":"EmitStatement","src":"16452:48:5"}]},"documentation":"@notice Admin function for setting the voting delay\n@param newVotingDelay new voting delay, in blocks","id":3409,"implemented":true,"kind":"function","modifiers":[],"name":"_setVotingDelay","nodeType":"FunctionDefinition","parameters":{"id":3374,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3373,"name":"newVotingDelay","nodeType":"VariableDeclaration","scope":3409,"src":"16065:19:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3372,"name":"uint","nodeType":"ElementaryTypeName","src":"16065:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"16064:21:5"},"returnParameters":{"id":3375,"nodeType":"ParameterList","parameters":[],"src":"16095:0:5"},"scope":3683,"src":"16040:467:5","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":3446,"nodeType":"Block","src":"16705:426:5","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":3418,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3415,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5552,"src":"16723:3:5","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":3416,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"16723:10:5","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"id":3417,"name":"admin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5229,"src":"16737:5:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"16723:19:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"476f7665726e6f72427261766f3a3a5f736574566f74696e67506572696f643a2061646d696e206f6e6c79","id":3419,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16744:45:5","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_1f07f8871aca44be299752a815be880788c18fabad49da5fd1ad2906b62a9e40","typeString":"literal_string \"GovernorBravo::_setVotingPeriod: admin only\""},"value":"GovernorBravo::_setVotingPeriod: admin only"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1f07f8871aca44be299752a815be880788c18fabad49da5fd1ad2906b62a9e40","typeString":"literal_string \"GovernorBravo::_setVotingPeriod: admin only\""}],"id":3414,"name":"require","nodeType":"Identifier","overloadedDeclarations":[5555,5556],"referencedDeclaration":5556,"src":"16715:7:5","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3420,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16715:75:5","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3421,"nodeType":"ExpressionStatement","src":"16715:75:5"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":3429,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3425,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":3423,"name":"newVotingPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3411,"src":"16821:15:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"argumentTypes":null,"id":3424,"name":"MIN_VOTING_PERIOD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2293,"src":"16840:17:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16821:36:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3428,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":3426,"name":"newVotingPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3411,"src":"16861:15:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"argumentTypes":null,"id":3427,"name":"MAX_VOTING_PERIOD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2302,"src":"16880:17:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16861:36:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"16821:76:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"476f7665726e6f72427261766f3a3a5f736574566f74696e67506572696f643a20696e76616c696420766f74696e6720706572696f64","id":3430,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16911:56:5","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_4bf2bad5a8c282a2af486892899755bae3e0449b79e9da24a0b3247a5e8abe21","typeString":"literal_string \"GovernorBravo::_setVotingPeriod: invalid voting period\""},"value":"GovernorBravo::_setVotingPeriod: invalid voting period"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_4bf2bad5a8c282a2af486892899755bae3e0449b79e9da24a0b3247a5e8abe21","typeString":"literal_string \"GovernorBravo::_setVotingPeriod: invalid voting period\""}],"id":3422,"name":"require","nodeType":"Identifier","overloadedDeclarations":[5555,5556],"referencedDeclaration":5556,"src":"16800:7:5","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3431,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16800:177:5","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3432,"nodeType":"ExpressionStatement","src":"16800:177:5"},{"assignments":[3434],"declarations":[{"constant":false,"id":3434,"name":"oldVotingPeriod","nodeType":"VariableDeclaration","scope":3446,"src":"16987:20:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3433,"name":"uint","nodeType":"ElementaryTypeName","src":"16987:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":3436,"initialValue":{"argumentTypes":null,"id":3435,"name":"votingPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5240,"src":"17010:12:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"16987:35:5"},{"expression":{"argumentTypes":null,"id":3439,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":3437,"name":"votingPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5240,"src":"17032:12:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":3438,"name":"newVotingPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3411,"src":"17047:15:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17032:30:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3440,"nodeType":"ExpressionStatement","src":"17032:30:5"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":3442,"name":"oldVotingPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3434,"src":"17094:15:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":3443,"name":"votingPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5240,"src":"17111:12:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3441,"name":"VotingPeriodSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5190,"src":"17078:15:5","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":3444,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17078:46:5","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3445,"nodeType":"EmitStatement","src":"17073:51:5"}]},"documentation":"@notice Admin function for setting the voting period\n@param newVotingPeriod new voting period, in blocks","id":3447,"implemented":true,"kind":"function","modifiers":[],"name":"_setVotingPeriod","nodeType":"FunctionDefinition","parameters":{"id":3412,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3411,"name":"newVotingPeriod","nodeType":"VariableDeclaration","scope":3447,"src":"16674:20:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3410,"name":"uint","nodeType":"ElementaryTypeName","src":"16674:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"16673:22:5"},"returnParameters":{"id":3413,"nodeType":"ParameterList","parameters":[],"src":"16705:0:5"},"scope":3683,"src":"16648:483:5","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":3484,"nodeType":"Block","src":"17415:496:5","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":3456,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3453,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5552,"src":"17433:3:5","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":3454,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"17433:10:5","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"id":3455,"name":"admin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5229,"src":"17447:5:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"17433:19:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"476f7665726e6f72427261766f3a3a5f73657450726f706f73616c5468726573686f6c643a2061646d696e206f6e6c79","id":3457,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17454:50:5","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_e3c4c3201b4acfac7c8c7f4c0045bc3cdf30555d8f8514b4ca68ba5318610f5e","typeString":"literal_string \"GovernorBravo::_setProposalThreshold: admin only\""},"value":"GovernorBravo::_setProposalThreshold: admin only"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e3c4c3201b4acfac7c8c7f4c0045bc3cdf30555d8f8514b4ca68ba5318610f5e","typeString":"literal_string \"GovernorBravo::_setProposalThreshold: admin only\""}],"id":3452,"name":"require","nodeType":"Identifier","overloadedDeclarations":[5555,5556],"referencedDeclaration":5556,"src":"17425:7:5","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3458,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17425:80:5","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3459,"nodeType":"ExpressionStatement","src":"17425:80:5"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":3467,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3463,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":3461,"name":"newProposalThreshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3449,"src":"17536:20:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"argumentTypes":null,"id":3462,"name":"MIN_PROPOSAL_THRESHOLD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2283,"src":"17560:22:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17536:46:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3466,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":3464,"name":"newProposalThreshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3449,"src":"17586:20:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"argumentTypes":null,"id":3465,"name":"MAX_PROPOSAL_THRESHOLD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2286,"src":"17610:22:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17586:46:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"17536:96:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"476f7665726e6f72427261766f3a3a5f73657450726f706f73616c5468726573686f6c643a20696e76616c69642070726f706f73616c207468726573686f6c64","id":3468,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17646:66:5","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_75a74689ff442834d31e42dd6d27818a23128b0ddaaf74dfd863f8148920cbd3","typeString":"literal_string \"GovernorBravo::_setProposalThreshold: invalid proposal threshold\""},"value":"GovernorBravo::_setProposalThreshold: invalid proposal threshold"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_75a74689ff442834d31e42dd6d27818a23128b0ddaaf74dfd863f8148920cbd3","typeString":"literal_string \"GovernorBravo::_setProposalThreshold: invalid proposal threshold\""}],"id":3460,"name":"require","nodeType":"Identifier","overloadedDeclarations":[5555,5556],"referencedDeclaration":5556,"src":"17515:7:5","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3469,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17515:207:5","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3470,"nodeType":"ExpressionStatement","src":"17515:207:5"},{"assignments":[3472],"declarations":[{"constant":false,"id":3472,"name":"oldProposalThreshold","nodeType":"VariableDeclaration","scope":3484,"src":"17732:25:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3471,"name":"uint","nodeType":"ElementaryTypeName","src":"17732:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":3474,"initialValue":{"argumentTypes":null,"id":3473,"name":"proposalThreshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5242,"src":"17760:17:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"17732:45:5"},{"expression":{"argumentTypes":null,"id":3477,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":3475,"name":"proposalThreshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5242,"src":"17787:17:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":3476,"name":"newProposalThreshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3449,"src":"17807:20:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17787:40:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3478,"nodeType":"ExpressionStatement","src":"17787:40:5"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":3480,"name":"oldProposalThreshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3472,"src":"17864:20:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":3481,"name":"proposalThreshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5242,"src":"17886:17:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3479,"name":"ProposalThresholdSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5202,"src":"17843:20:5","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":3482,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17843:61:5","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3483,"nodeType":"EmitStatement","src":"17838:66:5"}]},"documentation":"@notice Admin function for setting the proposal threshold\n@dev newProposalThreshold must be greater than the hardcoded min\n@param newProposalThreshold new proposal threshold","id":3485,"implemented":true,"kind":"function","modifiers":[],"name":"_setProposalThreshold","nodeType":"FunctionDefinition","parameters":{"id":3450,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3449,"name":"newProposalThreshold","nodeType":"VariableDeclaration","scope":3485,"src":"17379:25:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3448,"name":"uint","nodeType":"ElementaryTypeName","src":"17379:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"17378:27:5"},"returnParameters":{"id":3451,"nodeType":"ParameterList","parameters":[],"src":"17415:0:5"},"scope":3683,"src":"17348:563:5","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":3522,"nodeType":"Block","src":"18250:332:5","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":3494,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3491,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5552,"src":"18268:3:5","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":3492,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"18268:10:5","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"id":3493,"name":"admin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5229,"src":"18282:5:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"18268:19:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"476f7665726e6f72427261766f3a3a5f696e6974696174653a2061646d696e206f6e6c79","id":3495,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18289:38:5","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_c71cb3e7fc78df5497c78b1de8f5dd56ad9be94f8e673bd31105debcc4940e0c","typeString":"literal_string \"GovernorBravo::_initiate: admin only\""},"value":"GovernorBravo::_initiate: admin only"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c71cb3e7fc78df5497c78b1de8f5dd56ad9be94f8e673bd31105debcc4940e0c","typeString":"literal_string \"GovernorBravo::_initiate: admin only\""}],"id":3490,"name":"require","nodeType":"Identifier","overloadedDeclarations":[5555,5556],"referencedDeclaration":5556,"src":"18260:7:5","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3496,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18260:68:5","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3497,"nodeType":"ExpressionStatement","src":"18260:68:5"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3501,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":3499,"name":"initialProposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5244,"src":"18346:17:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"30","id":3500,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18367:1:5","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"18346:22:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"476f7665726e6f72427261766f3a3a5f696e6974696174653a2063616e206f6e6c7920696e697469617465206f6e6365","id":3502,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18370:50:5","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_928739bbf55fe0185a70df55366e78160f0fe2084090e539cc66d62f04507e17","typeString":"literal_string \"GovernorBravo::_initiate: can only initiate once\""},"value":"GovernorBravo::_initiate: can only initiate once"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_928739bbf55fe0185a70df55366e78160f0fe2084090e539cc66d62f04507e17","typeString":"literal_string \"GovernorBravo::_initiate: can only initiate once\""}],"id":3498,"name":"require","nodeType":"Identifier","overloadedDeclarations":[5555,5556],"referencedDeclaration":5556,"src":"18338:7:5","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3503,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18338:83:5","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3504,"nodeType":"ExpressionStatement","src":"18338:83:5"},{"expression":{"argumentTypes":null,"id":3511,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":3505,"name":"proposalCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5246,"src":"18431:13:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":3507,"name":"governorAlpha","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3487,"src":"18470:13:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3506,"name":"GovernorAlphaInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2023,"src":"18447:22:5","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GovernorAlphaInterface_$2023_$","typeString":"type(contract GovernorAlphaInterface)"}},"id":3508,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18447:37:5","typeDescriptions":{"typeIdentifier":"t_contract$_GovernorAlphaInterface_$2023","typeString":"contract GovernorAlphaInterface"}},"id":3509,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"proposalCount","nodeType":"MemberAccess","referencedDeclaration":2022,"src":"18447:51:5","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$_t_uint256_$","typeString":"function () external returns (uint256)"}},"id":3510,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18447:53:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18431:69:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3512,"nodeType":"ExpressionStatement","src":"18431:69:5"},{"expression":{"argumentTypes":null,"id":3515,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":3513,"name":"initialProposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5244,"src":"18510:17:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":3514,"name":"proposalCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5246,"src":"18530:13:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18510:33:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3516,"nodeType":"ExpressionStatement","src":"18510:33:5"},{"expression":{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"id":3517,"name":"timelock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5248,"src":"18553:8:5","typeDescriptions":{"typeIdentifier":"t_contract$_TimelockInterface_$2007","typeString":"contract TimelockInterface"}},"id":3519,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"acceptAdmin","nodeType":"MemberAccess","referencedDeclaration":1956,"src":"18553:20:5","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":3520,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18553:22:5","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3521,"nodeType":"ExpressionStatement","src":"18553:22:5"}]},"documentation":"@notice Initiate the GovernorBravo contract\n@dev Admin only. Sets initial proposal id which initiates the contract, ensuring a continuous proposal id count\n@param governorAlpha The address for the Governor to continue the proposal id count from","id":3523,"implemented":true,"kind":"function","modifiers":[],"name":"_initiate","nodeType":"FunctionDefinition","parameters":{"id":3488,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3487,"name":"governorAlpha","nodeType":"VariableDeclaration","scope":3523,"src":"18218:21:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3486,"name":"address","nodeType":"ElementaryTypeName","src":"18218:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"18217:23:5"},"returnParameters":{"id":3489,"nodeType":"ParameterList","parameters":[],"src":"18250:0:5"},"scope":3683,"src":"18199:383:5","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":3549,"nodeType":"Block","src":"18805:314:5","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":3532,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3529,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5552,"src":"18823:3:5","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":3530,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"18823:10:5","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"id":3531,"name":"admin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5229,"src":"18837:5:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"18823:19:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"476f7665726e6f72427261766f3a3a5f73657450726f706f73616c4d61784f7065726174696f6e733a2061646d696e206f6e6c79","id":3533,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18844:54:5","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_b749d63b62ec9246db67e424bdb9ab02b022070d8cd7b8fbd4eca85c166a94e5","typeString":"literal_string \"GovernorBravo::_setProposalMaxOperations: admin only\""},"value":"GovernorBravo::_setProposalMaxOperations: admin only"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b749d63b62ec9246db67e424bdb9ab02b022070d8cd7b8fbd4eca85c166a94e5","typeString":"literal_string \"GovernorBravo::_setProposalMaxOperations: admin only\""}],"id":3528,"name":"require","nodeType":"Identifier","overloadedDeclarations":[5555,5556],"referencedDeclaration":5556,"src":"18815:7:5","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3534,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18815:84:5","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3535,"nodeType":"ExpressionStatement","src":"18815:84:5"},{"assignments":[3537],"declarations":[{"constant":false,"id":3537,"name":"oldProposalMaxOperations","nodeType":"VariableDeclaration","scope":3549,"src":"18909:29:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3536,"name":"uint","nodeType":"ElementaryTypeName","src":"18909:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":3539,"initialValue":{"argumentTypes":null,"id":3538,"name":"proposalMaxOperations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5313,"src":"18941:21:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"18909:53:5"},{"expression":{"argumentTypes":null,"id":3542,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":3540,"name":"proposalMaxOperations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5313,"src":"18972:21:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":3541,"name":"proposalMaxOperations_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3525,"src":"18996:22:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18972:46:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3543,"nodeType":"ExpressionStatement","src":"18972:46:5"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":3545,"name":"oldProposalMaxOperations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3537,"src":"19063:24:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":3546,"name":"proposalMaxOperations_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3525,"src":"19089:22:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3544,"name":"ProposalMaxOperationsUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5226,"src":"19034:28:5","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":3547,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19034:78:5","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3548,"nodeType":"EmitStatement","src":"19029:83:5"}]},"documentation":"@notice Set max proposal operations\n@dev Admin only.\n@param proposalMaxOperations_ Max proposal operations","id":3550,"implemented":true,"kind":"function","modifiers":[],"name":"_setProposalMaxOperations","nodeType":"FunctionDefinition","parameters":{"id":3526,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3525,"name":"proposalMaxOperations_","nodeType":"VariableDeclaration","scope":3550,"src":"18767:27:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3524,"name":"uint","nodeType":"ElementaryTypeName","src":"18767:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"18766:29:5"},"returnParameters":{"id":3527,"nodeType":"ParameterList","parameters":[],"src":"18805:0:5"},"scope":3683,"src":"18732:387:5","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":3576,"nodeType":"Block","src":"19493:461:5","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":3559,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3556,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5552,"src":"19543:3:5","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":3557,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"19543:10:5","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"id":3558,"name":"admin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5229,"src":"19557:5:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"19543:19:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"476f7665726e6f72427261766f3a5f73657450656e64696e6741646d696e3a2061646d696e206f6e6c79","id":3560,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"19564:44:5","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_15b86236d8e6aaae4fbee852729fd208d60cf2b5c9f6ec4ea2291e707cb07995","typeString":"literal_string \"GovernorBravo:_setPendingAdmin: admin only\""},"value":"GovernorBravo:_setPendingAdmin: admin only"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_15b86236d8e6aaae4fbee852729fd208d60cf2b5c9f6ec4ea2291e707cb07995","typeString":"literal_string \"GovernorBravo:_setPendingAdmin: admin only\""}],"id":3555,"name":"require","nodeType":"Identifier","overloadedDeclarations":[5555,5556],"referencedDeclaration":5556,"src":"19535:7:5","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3561,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19535:74:5","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3562,"nodeType":"ExpressionStatement","src":"19535:74:5"},{"assignments":[3564],"declarations":[{"constant":false,"id":3564,"name":"oldPendingAdmin","nodeType":"VariableDeclaration","scope":3576,"src":"19680:23:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3563,"name":"address","nodeType":"ElementaryTypeName","src":"19680:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"id":3566,"initialValue":{"argumentTypes":null,"id":3565,"name":"pendingAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5231,"src":"19706:12:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"19680:38:5"},{"expression":{"argumentTypes":null,"id":3569,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":3567,"name":"pendingAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5231,"src":"19786:12:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":3568,"name":"newPendingAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3552,"src":"19801:15:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"19786:30:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":3570,"nodeType":"ExpressionStatement","src":"19786:30:5"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":3572,"name":"oldPendingAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3564,"src":"19914:15:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":3573,"name":"newPendingAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3552,"src":"19931:15:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":3571,"name":"NewPendingAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5208,"src":"19898:15:5","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":3574,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19898:49:5","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3575,"nodeType":"EmitStatement","src":"19893:54:5"}]},"documentation":"@notice Begins transfer of admin rights. The newPendingAdmin must call `_acceptAdmin` to finalize the transfer.\n@dev Admin function to begin change of admin. The newPendingAdmin must call `_acceptAdmin` to finalize the transfer.\n@param newPendingAdmin New pending admin.","id":3577,"implemented":true,"kind":"function","modifiers":[],"name":"_setPendingAdmin","nodeType":"FunctionDefinition","parameters":{"id":3553,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3552,"name":"newPendingAdmin","nodeType":"VariableDeclaration","scope":3577,"src":"19459:23:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3551,"name":"address","nodeType":"ElementaryTypeName","src":"19459:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"19458:25:5"},"returnParameters":{"id":3554,"nodeType":"ParameterList","parameters":[],"src":"19493:0:5"},"scope":3683,"src":"19433:521:5","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":3623,"nodeType":"Block","src":"20167:622:5","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":3591,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":3584,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3581,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5552,"src":"20270:3:5","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":3582,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"20270:10:5","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"id":3583,"name":"pendingAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5231,"src":"20284:12:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"20270:26:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"id":3590,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3585,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5552,"src":"20300:3:5","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":3586,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"20300:10:5","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":3588,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20322:1:5","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":3587,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20314:7:5","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":3589,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20314:10:5","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"20300:24:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"20270:54:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"476f7665726e6f72427261766f3a5f61636365707441646d696e3a2070656e64696e672061646d696e206f6e6c79","id":3592,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"20338:48:5","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_a193c43d3fcb6bad7dee9cd0aee4d22b57650045fda67e20f8280b4ef9e1a8a8","typeString":"literal_string \"GovernorBravo:_acceptAdmin: pending admin only\""},"value":"GovernorBravo:_acceptAdmin: pending admin only"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_a193c43d3fcb6bad7dee9cd0aee4d22b57650045fda67e20f8280b4ef9e1a8a8","typeString":"literal_string \"GovernorBravo:_acceptAdmin: pending admin only\""}],"id":3580,"name":"require","nodeType":"Identifier","overloadedDeclarations":[5555,5556],"referencedDeclaration":5556,"src":"20249:7:5","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3593,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20249:147:5","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3594,"nodeType":"ExpressionStatement","src":"20249:147:5"},{"assignments":[3596],"declarations":[{"constant":false,"id":3596,"name":"oldAdmin","nodeType":"VariableDeclaration","scope":3623,"src":"20459:16:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3595,"name":"address","nodeType":"ElementaryTypeName","src":"20459:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"id":3598,"initialValue":{"argumentTypes":null,"id":3597,"name":"admin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5229,"src":"20478:5:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"20459:24:5"},{"assignments":[3600],"declarations":[{"constant":false,"id":3600,"name":"oldPendingAdmin","nodeType":"VariableDeclaration","scope":3623,"src":"20493:23:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3599,"name":"address","nodeType":"ElementaryTypeName","src":"20493:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"id":3602,"initialValue":{"argumentTypes":null,"id":3601,"name":"pendingAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5231,"src":"20519:12:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"20493:38:5"},{"expression":{"argumentTypes":null,"id":3605,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":3603,"name":"admin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5229,"src":"20589:5:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":3604,"name":"pendingAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5231,"src":"20597:12:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"20589:20:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":3606,"nodeType":"ExpressionStatement","src":"20589:20:5"},{"expression":{"argumentTypes":null,"id":3611,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":3607,"name":"pendingAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5231,"src":"20655:12:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":3609,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20678:1:5","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":3608,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20670:7:5","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":3610,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20670:10:5","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"20655:25:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":3612,"nodeType":"ExpressionStatement","src":"20655:25:5"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":3614,"name":"oldAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3596,"src":"20705:8:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":3615,"name":"admin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5229,"src":"20715:5:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":3613,"name":"NewAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5214,"src":"20696:8:5","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":3616,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20696:25:5","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3617,"nodeType":"EmitStatement","src":"20691:30:5"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":3619,"name":"oldPendingAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3600,"src":"20752:15:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":3620,"name":"pendingAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5231,"src":"20769:12:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":3618,"name":"NewPendingAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5208,"src":"20736:15:5","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":3621,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20736:46:5","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3622,"nodeType":"EmitStatement","src":"20731:51:5"}]},"documentation":"@notice Accepts transfer of admin rights. msg.sender must be pendingAdmin\n@dev Admin function for pending admin to accept role and update admin","id":3624,"implemented":true,"kind":"function","modifiers":[],"name":"_acceptAdmin","nodeType":"FunctionDefinition","parameters":{"id":3578,"nodeType":"ParameterList","parameters":[],"src":"20155:2:5"},"returnParameters":{"id":3579,"nodeType":"ParameterList","parameters":[],"src":"20167:0:5"},"scope":3683,"src":"20134:655:5","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":3648,"nodeType":"Block","src":"20862:95:5","statements":[{"assignments":[3634],"declarations":[{"constant":false,"id":3634,"name":"c","nodeType":"VariableDeclaration","scope":3648,"src":"20872:6:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3633,"name":"uint","nodeType":"ElementaryTypeName","src":"20872:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":3638,"initialValue":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3637,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":3635,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3626,"src":"20881:1:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"argumentTypes":null,"id":3636,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3628,"src":"20885:1:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20881:5:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"20872:14:5"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3642,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":3640,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3634,"src":"20904:1:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"argumentTypes":null,"id":3641,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3626,"src":"20909:1:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20904:6:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"6164646974696f6e206f766572666c6f77","id":3643,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"20912:19:5","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":3639,"name":"require","nodeType":"Identifier","overloadedDeclarations":[5555,5556],"referencedDeclaration":5556,"src":"20896:7:5","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3644,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20896:36:5","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3645,"nodeType":"ExpressionStatement","src":"20896:36:5"},{"expression":{"argumentTypes":null,"id":3646,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3634,"src":"20949:1:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3632,"id":3647,"nodeType":"Return","src":"20942:8:5"}]},"documentation":null,"id":3649,"implemented":true,"kind":"function","modifiers":[],"name":"add256","nodeType":"FunctionDefinition","parameters":{"id":3629,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3626,"name":"a","nodeType":"VariableDeclaration","scope":3649,"src":"20811:9:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3625,"name":"uint256","nodeType":"ElementaryTypeName","src":"20811:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":3628,"name":"b","nodeType":"VariableDeclaration","scope":3649,"src":"20822:9:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3627,"name":"uint256","nodeType":"ElementaryTypeName","src":"20822:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"20810:22:5"},"returnParameters":{"id":3632,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3631,"name":"","nodeType":"VariableDeclaration","scope":3649,"src":"20856:4:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3630,"name":"uint","nodeType":"ElementaryTypeName","src":"20856:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"20855:6:5"},"scope":3683,"src":"20795:162:5","stateMutability":"pure","superFunction":null,"visibility":"internal"},{"body":{"id":3669,"nodeType":"Block","src":"21030:79:5","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3661,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":3659,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3653,"src":"21048:1:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"argumentTypes":null,"id":3660,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3651,"src":"21053:1:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21048:6:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"7375627472616374696f6e20756e646572666c6f77","id":3662,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"21056:23:5","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":3658,"name":"require","nodeType":"Identifier","overloadedDeclarations":[5555,5556],"referencedDeclaration":5556,"src":"21040:7:5","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3663,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"21040:40:5","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3664,"nodeType":"ExpressionStatement","src":"21040:40:5"},{"expression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3667,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":3665,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3651,"src":"21097:1:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"argumentTypes":null,"id":3666,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3653,"src":"21101:1:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21097:5:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3657,"id":3668,"nodeType":"Return","src":"21090:12:5"}]},"documentation":null,"id":3670,"implemented":true,"kind":"function","modifiers":[],"name":"sub256","nodeType":"FunctionDefinition","parameters":{"id":3654,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3651,"name":"a","nodeType":"VariableDeclaration","scope":3670,"src":"20979:9:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3650,"name":"uint256","nodeType":"ElementaryTypeName","src":"20979:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":3653,"name":"b","nodeType":"VariableDeclaration","scope":3670,"src":"20990:9:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3652,"name":"uint256","nodeType":"ElementaryTypeName","src":"20990:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"20978:22:5"},"returnParameters":{"id":3657,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3656,"name":"","nodeType":"VariableDeclaration","scope":3670,"src":"21024:4:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3655,"name":"uint","nodeType":"ElementaryTypeName","src":"21024:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"21023:6:5"},"scope":3683,"src":"20963:146:5","stateMutability":"pure","superFunction":null,"visibility":"internal"},{"body":{"id":3681,"nodeType":"Block","src":"21174:115:5","statements":[{"assignments":[3676],"declarations":[{"constant":false,"id":3676,"name":"chainId","nodeType":"VariableDeclaration","scope":3681,"src":"21184:12:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3675,"name":"uint","nodeType":"ElementaryTypeName","src":"21184:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":3677,"initialValue":null,"nodeType":"VariableDeclarationStatement","src":"21184:12:5"},{"externalReferences":[{"chainId":{"declaration":3676,"isOffset":false,"isSlot":false,"src":"21229:7:5","valueSize":1}}],"id":3678,"nodeType":"InlineAssembly","operations":"{ chainId := chainid() }","src":"21206:53:5"},{"expression":{"argumentTypes":null,"id":3679,"name":"chainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3676,"src":"21275:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3674,"id":3680,"nodeType":"Return","src":"21268:14:5"}]},"documentation":null,"id":3682,"implemented":true,"kind":"function","modifiers":[],"name":"getChainIdInternal","nodeType":"FunctionDefinition","parameters":{"id":3671,"nodeType":"ParameterList","parameters":[],"src":"21142:2:5"},"returnParameters":{"id":3674,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3673,"name":"","nodeType":"VariableDeclaration","scope":3682,"src":"21168:4:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3672,"name":"uint","nodeType":"ElementaryTypeName","src":"21168:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"21167:6:5"},"scope":3683,"src":"21115:174:5","stateMutability":"pure","superFunction":null,"visibility":"internal"}],"scope":3684,"src":"348:20943:5"}],"src":"0:21292:5"},"id":5},"contracts/legacy/GovernorBravoDelegateV2.sol":{"ast":{"absolutePath":"contracts/legacy/GovernorBravoDelegateV2.sol","exportedSymbols":{"GovernorBravoDelegateV2":[5121]},"id":5122,"nodeType":"SourceUnit","nodes":[{"id":3685,"literals":["solidity","^","0.5",".16"],"nodeType":"PragmaDirective","src":"0:24:6"},{"id":3686,"literals":["experimental","ABIEncoderV2"],"nodeType":"PragmaDirective","src":"25:33:6"},{"absolutePath":"contracts/legacy/GovernorBravoInterfacesV2.sol","file":"./GovernorBravoInterfacesV2.sol","id":3687,"nodeType":"ImportDirective","scope":5122,"sourceUnit":5538,"src":"60:41:6","symbolAliases":[],"unitAlias":""},{"baseContracts":[{"arguments":null,"baseName":{"contractScope":null,"id":3688,"name":"GovernorBravoDelegateStorageV2","nodeType":"UserDefinedTypeName","referencedDeclaration":5537,"src":"368:30:6","typeDescriptions":{"typeIdentifier":"t_contract$_GovernorBravoDelegateStorageV2_$5537","typeString":"contract GovernorBravoDelegateStorageV2"}},"id":3689,"nodeType":"InheritanceSpecifier","src":"368:30:6"},{"arguments":null,"baseName":{"contractScope":null,"id":3690,"name":"GovernorBravoEventsV2","nodeType":"UserDefinedTypeName","referencedDeclaration":5424,"src":"400:21:6","typeDescriptions":{"typeIdentifier":"t_contract$_GovernorBravoEventsV2_$5424","typeString":"contract GovernorBravoEventsV2"}},"id":3691,"nodeType":"InheritanceSpecifier","src":"400:21:6"}],"contractDependencies":[5424,5431,5515,5537],"contractKind":"contract","documentation":"@title GovernorBravoDelegateV2\n@dev This contract is the second deployed implementation GovernorBravo.\nIt is included here for testing purposes because it is not completely compatible with new block rate of BSC.","fullyImplemented":true,"id":5121,"linearizedBaseContracts":[5121,5424,5537,5515,5431],"name":"GovernorBravoDelegateV2","nodeType":"ContractDefinition","nodes":[{"constant":true,"id":3694,"name":"name","nodeType":"VariableDeclaration","scope":5121,"src":"470:52:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory","typeString":"string"},"typeName":{"id":3692,"name":"string","nodeType":"ElementaryTypeName","src":"470:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"argumentTypes":null,"hexValue":"56656e757320476f7665726e6f7220427261766f","id":3693,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"500:22:6","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_157d76627a3b71c0167806f5879f7a61d3e301322f3a3b9f900315f15937671a","typeString":"literal_string \"Venus Governor Bravo\""},"value":"Venus Governor Bravo"},"visibility":"public"},{"constant":true,"id":3697,"name":"MIN_PROPOSAL_THRESHOLD","nodeType":"VariableDeclaration","scope":5121,"src":"584:55:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3695,"name":"uint","nodeType":"ElementaryTypeName","src":"584:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"argumentTypes":null,"hexValue":"313530303030653138","id":3696,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"630:9:6","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_150000000000000000000000_by_1","typeString":"int_const 150000000000000000000000"},"value":"150000e18"},"visibility":"public"},{"constant":true,"id":3700,"name":"MAX_PROPOSAL_THRESHOLD","nodeType":"VariableDeclaration","scope":5121,"src":"716:55:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3698,"name":"uint","nodeType":"ElementaryTypeName","src":"716:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"argumentTypes":null,"hexValue":"333030303030653138","id":3699,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"762:9:6","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_300000000000000000000000_by_1","typeString":"int_const 300000000000000000000000"},"value":"300000e18"},"visibility":"public"},{"constant":true,"id":3707,"name":"MIN_VOTING_PERIOD","nodeType":"VariableDeclaration","scope":5121,"src":"842:52:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3701,"name":"uint","nodeType":"ElementaryTypeName","src":"842:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_rational_3600_by_1","typeString":"int_const 3600"},"id":3706,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_rational_1200_by_1","typeString":"int_const 1200"},"id":3704,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"hexValue":"3230","id":3702,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"883:2:6","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"},"value":"20"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"argumentTypes":null,"hexValue":"3630","id":3703,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"888:2:6","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_60_by_1","typeString":"int_const 60"},"value":"60"},"src":"883:7:6","typeDescriptions":{"typeIdentifier":"t_rational_1200_by_1","typeString":"int_const 1200"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"argumentTypes":null,"hexValue":"33","id":3705,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"893:1:6","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"src":"883:11:6","typeDescriptions":{"typeIdentifier":"t_rational_3600_by_1","typeString":"int_const 3600"}},"visibility":"public"},{"constant":true,"id":3716,"name":"MAX_VOTING_PERIOD","nodeType":"VariableDeclaration","scope":5121,"src":"982:58:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3708,"name":"uint","nodeType":"ElementaryTypeName","src":"982:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_rational_403200_by_1","typeString":"int_const 403200"},"id":3715,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_rational_28800_by_1","typeString":"int_const 28800"},"id":3713,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_rational_1200_by_1","typeString":"int_const 1200"},"id":3711,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"hexValue":"3230","id":3709,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1023:2:6","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"},"value":"20"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"argumentTypes":null,"hexValue":"3630","id":3710,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1028:2:6","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_60_by_1","typeString":"int_const 60"},"value":"60"},"src":"1023:7:6","typeDescriptions":{"typeIdentifier":"t_rational_1200_by_1","typeString":"int_const 1200"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"argumentTypes":null,"hexValue":"3234","id":3712,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1033:2:6","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_24_by_1","typeString":"int_const 24"},"value":"24"},"src":"1023:12:6","typeDescriptions":{"typeIdentifier":"t_rational_28800_by_1","typeString":"int_const 28800"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"argumentTypes":null,"hexValue":"3134","id":3714,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1038:2:6","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_14_by_1","typeString":"int_const 14"},"value":"14"},"src":"1023:17:6","typeDescriptions":{"typeIdentifier":"t_rational_403200_by_1","typeString":"int_const 403200"}},"visibility":"public"},{"constant":true,"id":3719,"name":"MIN_VOTING_DELAY","nodeType":"VariableDeclaration","scope":5121,"src":"1127:41:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3717,"name":"uint","nodeType":"ElementaryTypeName","src":"1127:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"argumentTypes":null,"hexValue":"31","id":3718,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1167:1:6","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"public"},{"constant":true,"id":3728,"name":"MAX_VOTING_DELAY","nodeType":"VariableDeclaration","scope":5121,"src":"1220:56:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3720,"name":"uint","nodeType":"ElementaryTypeName","src":"1220:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_rational_201600_by_1","typeString":"int_const 201600"},"id":3727,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_rational_28800_by_1","typeString":"int_const 28800"},"id":3725,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_rational_1200_by_1","typeString":"int_const 1200"},"id":3723,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"hexValue":"3230","id":3721,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1260:2:6","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"},"value":"20"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"argumentTypes":null,"hexValue":"3630","id":3722,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1265:2:6","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_60_by_1","typeString":"int_const 60"},"value":"60"},"src":"1260:7:6","typeDescriptions":{"typeIdentifier":"t_rational_1200_by_1","typeString":"int_const 1200"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"argumentTypes":null,"hexValue":"3234","id":3724,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1270:2:6","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_24_by_1","typeString":"int_const 24"},"value":"24"},"src":"1260:12:6","typeDescriptions":{"typeIdentifier":"t_rational_28800_by_1","typeString":"int_const 28800"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"argumentTypes":null,"hexValue":"37","id":3726,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1275:1:6","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_7_by_1","typeString":"int_const 7"},"value":"7"},"src":"1260:16:6","typeDescriptions":{"typeIdentifier":"t_rational_201600_by_1","typeString":"int_const 201600"}},"visibility":"public"},{"constant":true,"id":3731,"name":"quorumVotes","nodeType":"VariableDeclaration","scope":5121,"src":"1449:44:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3729,"name":"uint","nodeType":"ElementaryTypeName","src":"1449:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"argumentTypes":null,"hexValue":"363030303030653138","id":3730,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1484:9:6","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_600000000000000000000000_by_1","typeString":"int_const 600000000000000000000000"},"value":"600000e18"},"visibility":"public"},{"constant":true,"id":3736,"name":"DOMAIN_TYPEHASH","nodeType":"VariableDeclaration","scope":5121,"src":"1586:130:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3732,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1586:7:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"454950373132446f6d61696e28737472696e67206e616d652c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429","id":3734,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1646:69:6","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":3733,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5546,"src":"1636:9:6","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":3735,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1636:80:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"constant":true,"id":3741,"name":"BALLOT_TYPEHASH","nodeType":"VariableDeclaration","scope":5121,"src":"1803:95:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3737,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1803:7:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"42616c6c6f742875696e743235362070726f706f73616c49642c75696e743820737570706f727429","id":3739,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1855:42:6","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_150214d74d59b7d1e90c73fc22ef3d991dd0a76b046543d4d80ab92d2a50328f","typeString":"literal_string \"Ballot(uint256 proposalId,uint8 support)\""},"value":"Ballot(uint256 proposalId,uint8 support)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_150214d74d59b7d1e90c73fc22ef3d991dd0a76b046543d4d80ab92d2a50328f","typeString":"literal_string \"Ballot(uint256 proposalId,uint8 support)\""}],"id":3738,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5546,"src":"1845:9:6","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":3740,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1845:53:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"body":{"id":3938,"nodeType":"Block","src":"2376:2372:6","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":3763,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3756,"name":"proposalTimelocks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5536,"src":"2402:17:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_contract$_TimelockInterface_$2007_$","typeString":"mapping(uint256 => contract TimelockInterface)"}},"id":3758,"indexExpression":{"argumentTypes":null,"hexValue":"30","id":3757,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2420:1:6","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2402:20:6","typeDescriptions":{"typeIdentifier":"t_contract$_TimelockInterface_$2007","typeString":"contract TimelockInterface"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_TimelockInterface_$2007","typeString":"contract TimelockInterface"}],"id":3755,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2394:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":3759,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2394:29:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":3761,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2435:1:6","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":3760,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2427:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":3762,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2427:10:6","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"2394:43:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"476f7665726e6f72427261766f3a3a696e697469616c697a653a2063616e6e6f7420696e697469616c697a65207477696365","id":3764,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2439:52:6","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_6f25ac680854b8c781b119c16680227155e4449b9a60b6c60ebf94217e242a05","typeString":"literal_string \"GovernorBravo::initialize: cannot initialize twice\""},"value":"GovernorBravo::initialize: cannot initialize twice"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6f25ac680854b8c781b119c16680227155e4449b9a60b6c60ebf94217e242a05","typeString":"literal_string \"GovernorBravo::initialize: cannot initialize twice\""}],"id":3754,"name":"require","nodeType":"Identifier","overloadedDeclarations":[5555,5556],"referencedDeclaration":5556,"src":"2386:7:6","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3765,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2386:106:6","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3766,"nodeType":"ExpressionStatement","src":"2386:106:6"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":3771,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3768,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5552,"src":"2510:3:6","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":3769,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2510:10:6","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"id":3770,"name":"admin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5426,"src":"2524:5:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2510:19:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"476f7665726e6f72427261766f3a3a696e697469616c697a653a2061646d696e206f6e6c79","id":3772,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2531:39:6","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_6e47288757825adad4754037a004a97a318622f53744b99fe46d86485d9a8b20","typeString":"literal_string \"GovernorBravo::initialize: admin only\""},"value":"GovernorBravo::initialize: admin only"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6e47288757825adad4754037a004a97a318622f53744b99fe46d86485d9a8b20","typeString":"literal_string \"GovernorBravo::initialize: admin only\""}],"id":3767,"name":"require","nodeType":"Identifier","overloadedDeclarations":[5555,5556],"referencedDeclaration":5556,"src":"2502:7:6","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3773,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2502:69:6","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3774,"nodeType":"ExpressionStatement","src":"2502:69:6"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":3780,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":3776,"name":"xvsVault_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3743,"src":"2589:9:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":3778,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2610:1:6","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":3777,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2602:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":3779,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2602:10:6","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"2589:23:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"476f7665726e6f72427261766f3a3a696e697469616c697a653a20696e76616c6964207876732061646472657373","id":3781,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2614:48:6","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_580547aa0e07256f03455de6704ecf6c9f2591a99356ae47c14d3cfc20dd4be8","typeString":"literal_string \"GovernorBravo::initialize: invalid xvs address\""},"value":"GovernorBravo::initialize: invalid xvs address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_580547aa0e07256f03455de6704ecf6c9f2591a99356ae47c14d3cfc20dd4be8","typeString":"literal_string \"GovernorBravo::initialize: invalid xvs address\""}],"id":3775,"name":"require","nodeType":"Identifier","overloadedDeclarations":[5555,5556],"referencedDeclaration":5556,"src":"2581:7:6","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3782,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2581:82:6","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3783,"nodeType":"ExpressionStatement","src":"2581:82:6"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":3789,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":3785,"name":"guardian_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3751,"src":"2681:9:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":3787,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2702:1:6","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":3786,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2694:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":3788,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2694:10:6","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"2681:23:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"476f7665726e6f72427261766f3a3a696e697469616c697a653a20696e76616c696420677561726469616e","id":3790,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2706:45:6","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_b338c931b78836fd9f8d991c91d03bb69b9ce31c3938b98e6cf724626c475813","typeString":"literal_string \"GovernorBravo::initialize: invalid guardian\""},"value":"GovernorBravo::initialize: invalid guardian"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b338c931b78836fd9f8d991c91d03bb69b9ce31c3938b98e6cf724626c475813","typeString":"literal_string \"GovernorBravo::initialize: invalid guardian\""}],"id":3784,"name":"require","nodeType":"Identifier","overloadedDeclarations":[5555,5556],"referencedDeclaration":5556,"src":"2673:7:6","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3791,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2673:79:6","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3792,"nodeType":"ExpressionStatement","src":"2673:79:6"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3802,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3794,"name":"timelocks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3749,"src":"2783:9:6","typeDescriptions":{"typeIdentifier":"t_array$_t_contract$_TimelockInterface_$2007_$dyn_memory_ptr","typeString":"contract TimelockInterface[] memory"}},"id":3795,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2783:16:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":3801,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3797,"name":"ProposalType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5521,"src":"2809:12:6","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalType_$5521_$","typeString":"type(enum GovernorBravoDelegateStorageV2.ProposalType)"}},"id":3798,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"CRITICAL","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2809:21:6","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$5521","typeString":"enum GovernorBravoDelegateStorageV2.ProposalType"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_ProposalType_$5521","typeString":"enum GovernorBravoDelegateStorageV2.ProposalType"}],"id":3796,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2803:5:6","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":"uint8"},"id":3799,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2803:28:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"argumentTypes":null,"hexValue":"31","id":3800,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2834:1:6","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2803:32:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"2783:52:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"476f7665726e6f72427261766f3a3a696e697469616c697a653a6e756d626572206f662074696d656c6f636b732073686f756c64206d61746368206e756d626572206f6620676f7665726e616e636520726f75746573","id":3803,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2849:88:6","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_2cbe57922e8750dfed644cdf2c609422aa63934a21c1a15af3627d7d8d8b5c40","typeString":"literal_string \"GovernorBravo::initialize:number of timelocks should match number of governance routes\""},"value":"GovernorBravo::initialize:number of timelocks should match number of governance routes"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_2cbe57922e8750dfed644cdf2c609422aa63934a21c1a15af3627d7d8d8b5c40","typeString":"literal_string \"GovernorBravo::initialize:number of timelocks should match number of governance routes\""}],"id":3793,"name":"require","nodeType":"Identifier","overloadedDeclarations":[5555,5556],"referencedDeclaration":5556,"src":"2762:7:6","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3804,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2762:185:6","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3805,"nodeType":"ExpressionStatement","src":"2762:185:6"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3815,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3807,"name":"proposalConfigs_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3746,"src":"2978:16:6","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalConfig_$5528_memory_$dyn_memory_ptr","typeString":"struct GovernorBravoDelegateStorageV2.ProposalConfig memory[] memory"}},"id":3808,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2978:23:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":3814,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3810,"name":"ProposalType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5521,"src":"3011:12:6","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalType_$5521_$","typeString":"type(enum GovernorBravoDelegateStorageV2.ProposalType)"}},"id":3811,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"CRITICAL","nodeType":"MemberAccess","referencedDeclaration":null,"src":"3011:21:6","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$5521","typeString":"enum GovernorBravoDelegateStorageV2.ProposalType"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_ProposalType_$5521","typeString":"enum GovernorBravoDelegateStorageV2.ProposalType"}],"id":3809,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3005:5:6","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":"uint8"},"id":3812,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3005:28:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"argumentTypes":null,"hexValue":"31","id":3813,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3036:1:6","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3005:32:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"2978:59:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"476f7665726e6f72427261766f3a3a696e697469616c697a653a6e756d626572206f662070726f706f73616c20636f6e666967732073686f756c64206d61746368206e756d626572206f6620676f7665726e616e636520726f75746573","id":3816,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3051:95:6","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_ed7e6cd98a98fd39ec52e1875c12a0ba22b6df90076227f657dd19c7008e88d5","typeString":"literal_string \"GovernorBravo::initialize:number of proposal configs should match number of governance routes\""},"value":"GovernorBravo::initialize:number of proposal configs should match number of governance routes"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ed7e6cd98a98fd39ec52e1875c12a0ba22b6df90076227f657dd19c7008e88d5","typeString":"literal_string \"GovernorBravo::initialize:number of proposal configs should match number of governance routes\""}],"id":3806,"name":"require","nodeType":"Identifier","overloadedDeclarations":[5555,5556],"referencedDeclaration":5556,"src":"2957:7:6","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3817,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2957:199:6","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3818,"nodeType":"ExpressionStatement","src":"2957:199:6"},{"expression":{"argumentTypes":null,"id":3823,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":3819,"name":"xvsVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5447,"src":"3167:8:6","typeDescriptions":{"typeIdentifier":"t_contract$_XvsVaultInterface_$2017","typeString":"contract XvsVaultInterface"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":3821,"name":"xvsVault_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3743,"src":"3196:9:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3820,"name":"XvsVaultInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2017,"src":"3178:17:6","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_XvsVaultInterface_$2017_$","typeString":"type(contract XvsVaultInterface)"}},"id":3822,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3178:28:6","typeDescriptions":{"typeIdentifier":"t_contract$_XvsVaultInterface_$2017","typeString":"contract XvsVaultInterface"}},"src":"3167:39:6","typeDescriptions":{"typeIdentifier":"t_contract$_XvsVaultInterface_$2017","typeString":"contract XvsVaultInterface"}},"id":3824,"nodeType":"ExpressionStatement","src":"3167:39:6"},{"expression":{"argumentTypes":null,"id":3827,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":3825,"name":"proposalMaxOperations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5512,"src":"3216:21:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"hexValue":"3130","id":3826,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3240:2:6","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"src":"3216:26:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3828,"nodeType":"ExpressionStatement","src":"3216:26:6"},{"expression":{"argumentTypes":null,"id":3831,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":3829,"name":"guardian","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5514,"src":"3252:8:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":3830,"name":"guardian_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3751,"src":"3263:9:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3252:20:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":3832,"nodeType":"ExpressionStatement","src":"3252:20:6"},{"assignments":[3834],"declarations":[{"constant":false,"id":3834,"name":"arrLength","nodeType":"VariableDeclaration","scope":3938,"src":"3334:17:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3833,"name":"uint256","nodeType":"ElementaryTypeName","src":"3334:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":3837,"initialValue":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3835,"name":"proposalConfigs_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3746,"src":"3354:16:6","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalConfig_$5528_memory_$dyn_memory_ptr","typeString":"struct GovernorBravoDelegateStorageV2.ProposalConfig memory[] memory"}},"id":3836,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"3354:23:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3334:43:6"},{"body":{"id":3936,"nodeType":"Block","src":"3423:1319:6","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3853,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3848,"name":"proposalConfigs_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3746,"src":"3462:16:6","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalConfig_$5528_memory_$dyn_memory_ptr","typeString":"struct GovernorBravoDelegateStorageV2.ProposalConfig memory[] memory"}},"id":3850,"indexExpression":{"argumentTypes":null,"id":3849,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3839,"src":"3479:1:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3462:19:6","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalConfig_$5528_memory","typeString":"struct GovernorBravoDelegateStorageV2.ProposalConfig memory"}},"id":3851,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"votingPeriod","nodeType":"MemberAccess","referencedDeclaration":5525,"src":"3462:32:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"argumentTypes":null,"id":3852,"name":"MIN_VOTING_PERIOD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3707,"src":"3498:17:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3462:53:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"476f7665726e6f72427261766f3a3a696e697469616c697a653a20696e76616c6964206d696e20766f74696e6720706572696f64","id":3854,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3533:54:6","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_505bcd252749d3192d1b347c77d24a1fbe122ed53bcd0c1d1f541b2e1f6f5a5b","typeString":"literal_string \"GovernorBravo::initialize: invalid min voting period\""},"value":"GovernorBravo::initialize: invalid min voting period"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_505bcd252749d3192d1b347c77d24a1fbe122ed53bcd0c1d1f541b2e1f6f5a5b","typeString":"literal_string \"GovernorBravo::initialize: invalid min voting period\""}],"id":3847,"name":"require","nodeType":"Identifier","overloadedDeclarations":[5555,5556],"referencedDeclaration":5556,"src":"3437:7:6","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3855,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3437:164:6","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3856,"nodeType":"ExpressionStatement","src":"3437:164:6"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3863,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3858,"name":"proposalConfigs_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3746,"src":"3640:16:6","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalConfig_$5528_memory_$dyn_memory_ptr","typeString":"struct GovernorBravoDelegateStorageV2.ProposalConfig memory[] memory"}},"id":3860,"indexExpression":{"argumentTypes":null,"id":3859,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3839,"src":"3657:1:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3640:19:6","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalConfig_$5528_memory","typeString":"struct GovernorBravoDelegateStorageV2.ProposalConfig memory"}},"id":3861,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"votingPeriod","nodeType":"MemberAccess","referencedDeclaration":5525,"src":"3640:32:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"argumentTypes":null,"id":3862,"name":"MAX_VOTING_PERIOD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3716,"src":"3676:17:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3640:53:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"476f7665726e6f72427261766f3a3a696e697469616c697a653a20696e76616c6964206d617820766f74696e6720706572696f64","id":3864,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3711:54:6","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_f999911f34bdd4508d0868c52f3547ab11bfc4554a5298cc891ba4df4a83af59","typeString":"literal_string \"GovernorBravo::initialize: invalid max voting period\""},"value":"GovernorBravo::initialize: invalid max voting period"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f999911f34bdd4508d0868c52f3547ab11bfc4554a5298cc891ba4df4a83af59","typeString":"literal_string \"GovernorBravo::initialize: invalid max voting period\""}],"id":3857,"name":"require","nodeType":"Identifier","overloadedDeclarations":[5555,5556],"referencedDeclaration":5556,"src":"3615:7:6","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3865,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3615:164:6","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3866,"nodeType":"ExpressionStatement","src":"3615:164:6"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3873,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3868,"name":"proposalConfigs_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3746,"src":"3818:16:6","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalConfig_$5528_memory_$dyn_memory_ptr","typeString":"struct GovernorBravoDelegateStorageV2.ProposalConfig memory[] memory"}},"id":3870,"indexExpression":{"argumentTypes":null,"id":3869,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3839,"src":"3835:1:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3818:19:6","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalConfig_$5528_memory","typeString":"struct GovernorBravoDelegateStorageV2.ProposalConfig memory"}},"id":3871,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"votingDelay","nodeType":"MemberAccess","referencedDeclaration":5523,"src":"3818:31:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"argumentTypes":null,"id":3872,"name":"MIN_VOTING_DELAY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3719,"src":"3853:16:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3818:51:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"476f7665726e6f72427261766f3a3a696e697469616c697a653a20696e76616c6964206d696e20766f74696e672064656c6179","id":3874,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3887:53:6","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_a903d436a7b68bab1d2c02017c4d1b46fdfdb5c5ffe084168f8f4457eaa1fb2a","typeString":"literal_string \"GovernorBravo::initialize: invalid min voting delay\""},"value":"GovernorBravo::initialize: invalid min voting delay"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_a903d436a7b68bab1d2c02017c4d1b46fdfdb5c5ffe084168f8f4457eaa1fb2a","typeString":"literal_string \"GovernorBravo::initialize: invalid min voting delay\""}],"id":3867,"name":"require","nodeType":"Identifier","overloadedDeclarations":[5555,5556],"referencedDeclaration":5556,"src":"3793:7:6","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3875,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3793:161:6","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3876,"nodeType":"ExpressionStatement","src":"3793:161:6"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3883,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3878,"name":"proposalConfigs_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3746,"src":"3993:16:6","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalConfig_$5528_memory_$dyn_memory_ptr","typeString":"struct GovernorBravoDelegateStorageV2.ProposalConfig memory[] memory"}},"id":3880,"indexExpression":{"argumentTypes":null,"id":3879,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3839,"src":"4010:1:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3993:19:6","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalConfig_$5528_memory","typeString":"struct GovernorBravoDelegateStorageV2.ProposalConfig memory"}},"id":3881,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"votingDelay","nodeType":"MemberAccess","referencedDeclaration":5523,"src":"3993:31:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"argumentTypes":null,"id":3882,"name":"MAX_VOTING_DELAY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3728,"src":"4028:16:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3993:51:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"476f7665726e6f72427261766f3a3a696e697469616c697a653a20696e76616c6964206d617820766f74696e672064656c6179","id":3884,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4062:53:6","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_c3092328ff9444ee8f33dd4a54993faa4a40ac97df24fd370100f9c488c66740","typeString":"literal_string \"GovernorBravo::initialize: invalid max voting delay\""},"value":"GovernorBravo::initialize: invalid max voting delay"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c3092328ff9444ee8f33dd4a54993faa4a40ac97df24fd370100f9c488c66740","typeString":"literal_string \"GovernorBravo::initialize: invalid max voting delay\""}],"id":3877,"name":"require","nodeType":"Identifier","overloadedDeclarations":[5555,5556],"referencedDeclaration":5556,"src":"3968:7:6","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3885,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3968:161:6","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3886,"nodeType":"ExpressionStatement","src":"3968:161:6"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3893,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3888,"name":"proposalConfigs_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3746,"src":"4168:16:6","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalConfig_$5528_memory_$dyn_memory_ptr","typeString":"struct GovernorBravoDelegateStorageV2.ProposalConfig memory[] memory"}},"id":3890,"indexExpression":{"argumentTypes":null,"id":3889,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3839,"src":"4185:1:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4168:19:6","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalConfig_$5528_memory","typeString":"struct GovernorBravoDelegateStorageV2.ProposalConfig memory"}},"id":3891,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"proposalThreshold","nodeType":"MemberAccess","referencedDeclaration":5527,"src":"4168:37:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"argumentTypes":null,"id":3892,"name":"MIN_PROPOSAL_THRESHOLD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3697,"src":"4209:22:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4168:63:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"476f7665726e6f72427261766f3a3a696e697469616c697a653a20696e76616c6964206d696e2070726f706f73616c207468726573686f6c64","id":3894,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4249:59:6","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_34cf0fa95fa1dbad4c48edd7273f5b100010ba3f0fcda5d3582be1508be8ce14","typeString":"literal_string \"GovernorBravo::initialize: invalid min proposal threshold\""},"value":"GovernorBravo::initialize: invalid min proposal threshold"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_34cf0fa95fa1dbad4c48edd7273f5b100010ba3f0fcda5d3582be1508be8ce14","typeString":"literal_string \"GovernorBravo::initialize: invalid min proposal threshold\""}],"id":3887,"name":"require","nodeType":"Identifier","overloadedDeclarations":[5555,5556],"referencedDeclaration":5556,"src":"4143:7:6","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3895,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4143:179:6","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3896,"nodeType":"ExpressionStatement","src":"4143:179:6"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3903,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3898,"name":"proposalConfigs_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3746,"src":"4361:16:6","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalConfig_$5528_memory_$dyn_memory_ptr","typeString":"struct GovernorBravoDelegateStorageV2.ProposalConfig memory[] memory"}},"id":3900,"indexExpression":{"argumentTypes":null,"id":3899,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3839,"src":"4378:1:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4361:19:6","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalConfig_$5528_memory","typeString":"struct GovernorBravoDelegateStorageV2.ProposalConfig memory"}},"id":3901,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"proposalThreshold","nodeType":"MemberAccess","referencedDeclaration":5527,"src":"4361:37:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"argumentTypes":null,"id":3902,"name":"MAX_PROPOSAL_THRESHOLD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3700,"src":"4402:22:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4361:63:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"476f7665726e6f72427261766f3a3a696e697469616c697a653a20696e76616c6964206d61782070726f706f73616c207468726573686f6c64","id":3904,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4442:59:6","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_fef97f4e3635ba9bc6e9a75a7465305c378f3aad741edcddc4cf3979d545b4d2","typeString":"literal_string \"GovernorBravo::initialize: invalid max proposal threshold\""},"value":"GovernorBravo::initialize: invalid max proposal threshold"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_fef97f4e3635ba9bc6e9a75a7465305c378f3aad741edcddc4cf3979d545b4d2","typeString":"literal_string \"GovernorBravo::initialize: invalid max proposal threshold\""}],"id":3897,"name":"require","nodeType":"Identifier","overloadedDeclarations":[5555,5556],"referencedDeclaration":5556,"src":"4336:7:6","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3905,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4336:179:6","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3906,"nodeType":"ExpressionStatement","src":"4336:179:6"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":3916,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3909,"name":"timelocks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3749,"src":"4545:9:6","typeDescriptions":{"typeIdentifier":"t_array$_t_contract$_TimelockInterface_$2007_$dyn_memory_ptr","typeString":"contract TimelockInterface[] memory"}},"id":3911,"indexExpression":{"argumentTypes":null,"id":3910,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3839,"src":"4555:1:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4545:12:6","typeDescriptions":{"typeIdentifier":"t_contract$_TimelockInterface_$2007","typeString":"contract TimelockInterface"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_TimelockInterface_$2007","typeString":"contract TimelockInterface"}],"id":3908,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4537:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":3912,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4537:21:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":3914,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4570:1:6","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":3913,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4562:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":3915,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4562:10:6","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"4537:35:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"476f7665726e6f72427261766f3a3a696e697469616c697a653a696e76616c69642074696d656c6f636b2061646472657373","id":3917,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4574:52:6","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_b8067cd3d222ecf6e5c0d3ecc90f1955f3fe41146bbafa2a4e3a0409914f3f29","typeString":"literal_string \"GovernorBravo::initialize:invalid timelock address\""},"value":"GovernorBravo::initialize:invalid timelock address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b8067cd3d222ecf6e5c0d3ecc90f1955f3fe41146bbafa2a4e3a0409914f3f29","typeString":"literal_string \"GovernorBravo::initialize:invalid timelock address\""}],"id":3907,"name":"require","nodeType":"Identifier","overloadedDeclarations":[5555,5556],"referencedDeclaration":5556,"src":"4529:7:6","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3918,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4529:98:6","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3919,"nodeType":"ExpressionStatement","src":"4529:98:6"},{"expression":{"argumentTypes":null,"id":3926,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3920,"name":"proposalConfigs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5532,"src":"4642:15:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_ProposalConfig_$5528_storage_$","typeString":"mapping(uint256 => struct GovernorBravoDelegateStorageV2.ProposalConfig storage ref)"}},"id":3922,"indexExpression":{"argumentTypes":null,"id":3921,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3839,"src":"4658:1:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4642:18:6","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalConfig_$5528_storage","typeString":"struct GovernorBravoDelegateStorageV2.ProposalConfig storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3923,"name":"proposalConfigs_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3746,"src":"4663:16:6","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalConfig_$5528_memory_$dyn_memory_ptr","typeString":"struct GovernorBravoDelegateStorageV2.ProposalConfig memory[] memory"}},"id":3925,"indexExpression":{"argumentTypes":null,"id":3924,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3839,"src":"4680:1:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4663:19:6","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalConfig_$5528_memory","typeString":"struct GovernorBravoDelegateStorageV2.ProposalConfig memory"}},"src":"4642:40:6","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalConfig_$5528_storage","typeString":"struct GovernorBravoDelegateStorageV2.ProposalConfig storage ref"}},"id":3927,"nodeType":"ExpressionStatement","src":"4642:40:6"},{"expression":{"argumentTypes":null,"id":3934,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3928,"name":"proposalTimelocks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5536,"src":"4696:17:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_contract$_TimelockInterface_$2007_$","typeString":"mapping(uint256 => contract TimelockInterface)"}},"id":3930,"indexExpression":{"argumentTypes":null,"id":3929,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3839,"src":"4714:1:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4696:20:6","typeDescriptions":{"typeIdentifier":"t_contract$_TimelockInterface_$2007","typeString":"contract TimelockInterface"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3931,"name":"timelocks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3749,"src":"4719:9:6","typeDescriptions":{"typeIdentifier":"t_array$_t_contract$_TimelockInterface_$2007_$dyn_memory_ptr","typeString":"contract TimelockInterface[] memory"}},"id":3933,"indexExpression":{"argumentTypes":null,"id":3932,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3839,"src":"4729:1:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4719:12:6","typeDescriptions":{"typeIdentifier":"t_contract$_TimelockInterface_$2007","typeString":"contract TimelockInterface"}},"src":"4696:35:6","typeDescriptions":{"typeIdentifier":"t_contract$_TimelockInterface_$2007","typeString":"contract TimelockInterface"}},"id":3935,"nodeType":"ExpressionStatement","src":"4696:35:6"}]},"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3843,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":3841,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3839,"src":"3403:1:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"id":3842,"name":"arrLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3834,"src":"3407:9:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3403:13:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3937,"initializationExpression":{"assignments":[3839],"declarations":[{"constant":false,"id":3839,"name":"i","nodeType":"VariableDeclaration","scope":3937,"src":"3392:9:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3838,"name":"uint256","nodeType":"ElementaryTypeName","src":"3392:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":3840,"initialValue":null,"nodeType":"VariableDeclarationStatement","src":"3392:9:6"},"loopExpression":{"expression":{"argumentTypes":null,"id":3845,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"3418:3:6","subExpression":{"argumentTypes":null,"id":3844,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3839,"src":"3420:1:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3846,"nodeType":"ExpressionStatement","src":"3418:3:6"},"nodeType":"ForStatement","src":"3387:1355:6"}]},"documentation":"@notice Used to initialize the contract during delegator contructor\n@param xvsVault_ The address of the XvsVault\n@param proposalConfigs_ Governance configs for each governance route\n@param timelocks Timelock addresses for each governance route","id":3939,"implemented":true,"kind":"function","modifiers":[],"name":"initialize","nodeType":"FunctionDefinition","parameters":{"id":3752,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3743,"name":"xvsVault_","nodeType":"VariableDeclaration","scope":3939,"src":"2222:17:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3742,"name":"address","nodeType":"ElementaryTypeName","src":"2222:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":3746,"name":"proposalConfigs_","nodeType":"VariableDeclaration","scope":3939,"src":"2249:40:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalConfig_$5528_memory_$dyn_memory_ptr","typeString":"struct GovernorBravoDelegateStorageV2.ProposalConfig[]"},"typeName":{"baseType":{"contractScope":null,"id":3744,"name":"ProposalConfig","nodeType":"UserDefinedTypeName","referencedDeclaration":5528,"src":"2249:14:6","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalConfig_$5528_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV2.ProposalConfig"}},"id":3745,"length":null,"nodeType":"ArrayTypeName","src":"2249:16:6","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalConfig_$5528_storage_$dyn_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV2.ProposalConfig[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":3749,"name":"timelocks","nodeType":"VariableDeclaration","scope":3939,"src":"2299:36:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_contract$_TimelockInterface_$2007_$dyn_memory_ptr","typeString":"contract TimelockInterface[]"},"typeName":{"baseType":{"contractScope":null,"id":3747,"name":"TimelockInterface","nodeType":"UserDefinedTypeName","referencedDeclaration":2007,"src":"2299:17:6","typeDescriptions":{"typeIdentifier":"t_contract$_TimelockInterface_$2007","typeString":"contract TimelockInterface"}},"id":3748,"length":null,"nodeType":"ArrayTypeName","src":"2299:19:6","typeDescriptions":{"typeIdentifier":"t_array$_t_contract$_TimelockInterface_$2007_$dyn_storage_ptr","typeString":"contract TimelockInterface[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":3751,"name":"guardian_","nodeType":"VariableDeclaration","scope":3939,"src":"2345:17:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3750,"name":"address","nodeType":"ElementaryTypeName","src":"2345:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"2212:156:6"},"returnParameters":{"id":3753,"nodeType":"ParameterList","parameters":[],"src":"2376:0:6"},"scope":5121,"src":"2193:2555:6","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":4145,"nodeType":"Block","src":"5833:2667:6","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3963,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":3961,"name":"initialProposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5441,"src":"5909:17:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"hexValue":"30","id":3962,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5930:1:6","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5909:22:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"476f7665726e6f72427261766f3a3a70726f706f73653a20476f7665726e6f7220427261766f206e6f7420616374697665","id":3964,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5933:51:6","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_2f7689ed1f85dde3dc8971cd363eb00503765913f120e6240508da9a370f15c7","typeString":"literal_string \"GovernorBravo::propose: Governor Bravo not active\""},"value":"GovernorBravo::propose: Governor Bravo not active"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_2f7689ed1f85dde3dc8971cd363eb00503765913f120e6240508da9a370f15c7","typeString":"literal_string \"GovernorBravo::propose: Governor Bravo not active\""}],"id":3960,"name":"require","nodeType":"Identifier","overloadedDeclarations":[5555,5556],"referencedDeclaration":5556,"src":"5901:7:6","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3965,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5901:84:6","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3966,"nodeType":"ExpressionStatement","src":"5901:84:6"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3984,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3970,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5552,"src":"6039:3:6","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":3971,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"6039:10:6","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3973,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5542,"src":"6058:5:6","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":3974,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"number","nodeType":"MemberAccess","referencedDeclaration":null,"src":"6058:12:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"hexValue":"31","id":3975,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6072:1:6","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":3972,"name":"sub256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5108,"src":"6051:6:6","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":3976,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6051:23:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":3968,"name":"xvsVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5447,"src":"6016:8:6","typeDescriptions":{"typeIdentifier":"t_contract$_XvsVaultInterface_$2017","typeString":"contract XvsVaultInterface"}},"id":3969,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getPriorVotes","nodeType":"MemberAccess","referencedDeclaration":2016,"src":"6016:22:6","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_uint256_$returns$_t_uint96_$","typeString":"function (address,uint256) view external returns (uint96)"}},"id":3977,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6016:59:6","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3978,"name":"proposalConfigs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5532,"src":"6095:15:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_ProposalConfig_$5528_storage_$","typeString":"mapping(uint256 => struct GovernorBravoDelegateStorageV2.ProposalConfig storage ref)"}},"id":3982,"indexExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":3980,"name":"proposalType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3955,"src":"6117:12:6","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$5521","typeString":"enum GovernorBravoDelegateStorageV2.ProposalType"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_ProposalType_$5521","typeString":"enum GovernorBravoDelegateStorageV2.ProposalType"}],"id":3979,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6111:5:6","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":"uint8"},"id":3981,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6111:19:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6095:36:6","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalConfig_$5528_storage","typeString":"struct GovernorBravoDelegateStorageV2.ProposalConfig storage ref"}},"id":3983,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"proposalThreshold","nodeType":"MemberAccess","referencedDeclaration":5527,"src":"6095:54:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6016:133:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"476f7665726e6f72427261766f3a3a70726f706f73653a2070726f706f73657220766f7465732062656c6f772070726f706f73616c207468726573686f6c64","id":3985,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6163:65:6","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_cce33201973389eb5d5eadb02095f9ccc730733696a536c64362c77126b5086b","typeString":"literal_string \"GovernorBravo::propose: proposer votes below proposal threshold\""},"value":"GovernorBravo::propose: proposer votes below proposal threshold"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_cce33201973389eb5d5eadb02095f9ccc730733696a536c64362c77126b5086b","typeString":"literal_string \"GovernorBravo::propose: proposer votes below proposal threshold\""}],"id":3967,"name":"require","nodeType":"Identifier","overloadedDeclarations":[5555,5556],"referencedDeclaration":5556,"src":"5995:7:6","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3986,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5995:243:6","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3987,"nodeType":"ExpressionStatement","src":"5995:243:6"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":4005,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":3999,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3993,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3989,"name":"targets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3942,"src":"6269:7:6","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":3990,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"6269:14:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3991,"name":"values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3945,"src":"6287:6:6","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":3992,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"6287:13:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6269:31:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3998,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3994,"name":"targets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3942,"src":"6320:7:6","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":3995,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"6320:14:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3996,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3948,"src":"6338:10:6","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_$dyn_memory_ptr","typeString":"string memory[] memory"}},"id":3997,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"6338:17:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6320:35:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6269:86:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4004,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4000,"name":"targets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3942,"src":"6375:7:6","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":4001,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"6375:14:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4002,"name":"calldatas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3951,"src":"6393:9:6","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":4003,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"6393:16:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6375:34:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6269:140:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"476f7665726e6f72427261766f3a3a70726f706f73653a2070726f706f73616c2066756e6374696f6e20696e666f726d6174696f6e206172697479206d69736d61746368","id":4006,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6423:70:6","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_69621e97c5d982910ff5cd550f5bc5eae1e6396f0f2af9267879c186d483c16b","typeString":"literal_string \"GovernorBravo::propose: proposal function information arity mismatch\""},"value":"GovernorBravo::propose: proposal function information arity mismatch"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_69621e97c5d982910ff5cd550f5bc5eae1e6396f0f2af9267879c186d483c16b","typeString":"literal_string \"GovernorBravo::propose: proposal function information arity mismatch\""}],"id":3988,"name":"require","nodeType":"Identifier","overloadedDeclarations":[5555,5556],"referencedDeclaration":5556,"src":"6248:7:6","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4007,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6248:255:6","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4008,"nodeType":"ExpressionStatement","src":"6248:255:6"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4013,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4010,"name":"targets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3942,"src":"6521:7:6","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":4011,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"6521:14:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"hexValue":"30","id":4012,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6539:1:6","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6521:19:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"476f7665726e6f72427261766f3a3a70726f706f73653a206d7573742070726f7669646520616374696f6e73","id":4014,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6542:46:6","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_942e2bb983822c6256804c0e2d65587399729d07b6b48b9e3fe435de5044b803","typeString":"literal_string \"GovernorBravo::propose: must provide actions\""},"value":"GovernorBravo::propose: must provide actions"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_942e2bb983822c6256804c0e2d65587399729d07b6b48b9e3fe435de5044b803","typeString":"literal_string \"GovernorBravo::propose: must provide actions\""}],"id":4009,"name":"require","nodeType":"Identifier","overloadedDeclarations":[5555,5556],"referencedDeclaration":5556,"src":"6513:7:6","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4015,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6513:76:6","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4016,"nodeType":"ExpressionStatement","src":"6513:76:6"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4021,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4018,"name":"targets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3942,"src":"6607:7:6","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":4019,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"6607:14:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"argumentTypes":null,"id":4020,"name":"proposalMaxOperations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5512,"src":"6625:21:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6607:39:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"476f7665726e6f72427261766f3a3a70726f706f73653a20746f6f206d616e7920616374696f6e73","id":4022,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6648:42:6","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_b54d69ba9f9abad90f1f013b8ab5a1d9b4c579f5bc801e2709d01ada775467a3","typeString":"literal_string \"GovernorBravo::propose: too many actions\""},"value":"GovernorBravo::propose: too many actions"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b54d69ba9f9abad90f1f013b8ab5a1d9b4c579f5bc801e2709d01ada775467a3","typeString":"literal_string \"GovernorBravo::propose: too many actions\""}],"id":4017,"name":"require","nodeType":"Identifier","overloadedDeclarations":[5555,5556],"referencedDeclaration":5556,"src":"6599:7:6","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4023,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6599:92:6","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4024,"nodeType":"ExpressionStatement","src":"6599:92:6"},{"assignments":[4026],"declarations":[{"constant":false,"id":4026,"name":"latestProposalId","nodeType":"VariableDeclaration","scope":4145,"src":"6702:21:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4025,"name":"uint","nodeType":"ElementaryTypeName","src":"6702:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":4031,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":4027,"name":"latestProposalIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5455,"src":"6726:17:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":4030,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4028,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5552,"src":"6744:3:6","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":4029,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"6744:10:6","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6726:29:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6702:53:6"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4034,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":4032,"name":"latestProposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4026,"src":"6769:16:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"hexValue":"30","id":4033,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6789:1:6","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6769:21:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":4058,"nodeType":"IfStatement","src":"6765:548:6","trueBody":{"id":4057,"nodeType":"Block","src":"6792:521:6","statements":[{"assignments":[4036],"declarations":[{"constant":false,"id":4036,"name":"proposersLatestProposalState","nodeType":"VariableDeclaration","scope":4057,"src":"6806:42:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$5510","typeString":"enum GovernorBravoDelegateStorageV1.ProposalState"},"typeName":{"contractScope":null,"id":4035,"name":"ProposalState","nodeType":"UserDefinedTypeName","referencedDeclaration":5510,"src":"6806:13:6","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$5510","typeString":"enum GovernorBravoDelegateStorageV1.ProposalState"}},"value":null,"visibility":"internal"}],"id":4040,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":4038,"name":"latestProposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4026,"src":"6857:16:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4037,"name":"state","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4610,"src":"6851:5:6","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_enum$_ProposalState_$5510_$","typeString":"function (uint256) view returns (enum GovernorBravoDelegateStorageV1.ProposalState)"}},"id":4039,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6851:23:6","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$5510","typeString":"enum GovernorBravoDelegateStorageV1.ProposalState"}},"nodeType":"VariableDeclarationStatement","src":"6806:68:6"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_enum$_ProposalState_$5510","typeString":"enum GovernorBravoDelegateStorageV1.ProposalState"},"id":4045,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":4042,"name":"proposersLatestProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4036,"src":"6913:28:6","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$5510","typeString":"enum GovernorBravoDelegateStorageV1.ProposalState"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4043,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5510,"src":"6945:13:6","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$5510_$","typeString":"type(enum GovernorBravoDelegateStorageV1.ProposalState)"}},"id":4044,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Active","nodeType":"MemberAccess","referencedDeclaration":null,"src":"6945:20:6","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$5510","typeString":"enum GovernorBravoDelegateStorageV1.ProposalState"}},"src":"6913:52:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"476f7665726e6f72427261766f3a3a70726f706f73653a206f6e65206c6976652070726f706f73616c207065722070726f706f7365722c20666f756e6420616e20616c7265616479206163746976652070726f706f73616c","id":4046,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6983:90:6","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_c50c351fb39a3fd6000549d303eb3b76f9e50a4f12a9fca3ac5b1e05e941e83d","typeString":"literal_string \"GovernorBravo::propose: one live proposal per proposer, found an already active proposal\""},"value":"GovernorBravo::propose: one live proposal per proposer, found an already active proposal"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c50c351fb39a3fd6000549d303eb3b76f9e50a4f12a9fca3ac5b1e05e941e83d","typeString":"literal_string \"GovernorBravo::propose: one live proposal per proposer, found an already active proposal\""}],"id":4041,"name":"require","nodeType":"Identifier","overloadedDeclarations":[5555,5556],"referencedDeclaration":5556,"src":"6888:7:6","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4047,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6888:199:6","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4048,"nodeType":"ExpressionStatement","src":"6888:199:6"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_enum$_ProposalState_$5510","typeString":"enum GovernorBravoDelegateStorageV1.ProposalState"},"id":4053,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":4050,"name":"proposersLatestProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4036,"src":"7126:28:6","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$5510","typeString":"enum GovernorBravoDelegateStorageV1.ProposalState"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4051,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5510,"src":"7158:13:6","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$5510_$","typeString":"type(enum GovernorBravoDelegateStorageV1.ProposalState)"}},"id":4052,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Pending","nodeType":"MemberAccess","referencedDeclaration":null,"src":"7158:21:6","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$5510","typeString":"enum GovernorBravoDelegateStorageV1.ProposalState"}},"src":"7126:53:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"476f7665726e6f72427261766f3a3a70726f706f73653a206f6e65206c6976652070726f706f73616c207065722070726f706f7365722c20666f756e6420616e20616c72656164792070656e64696e672070726f706f73616c","id":4054,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7197:91:6","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_b68c77fe71de4f5cded2058593f89b465f4c2da104481b127e1b9b6156e12ee0","typeString":"literal_string \"GovernorBravo::propose: one live proposal per proposer, found an already pending proposal\""},"value":"GovernorBravo::propose: one live proposal per proposer, found an already pending proposal"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b68c77fe71de4f5cded2058593f89b465f4c2da104481b127e1b9b6156e12ee0","typeString":"literal_string \"GovernorBravo::propose: one live proposal per proposer, found an already pending proposal\""}],"id":4049,"name":"require","nodeType":"Identifier","overloadedDeclarations":[5555,5556],"referencedDeclaration":5556,"src":"7101:7:6","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4055,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7101:201:6","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4056,"nodeType":"ExpressionStatement","src":"7101:201:6"}]}},{"assignments":[4060],"declarations":[{"constant":false,"id":4060,"name":"startBlock","nodeType":"VariableDeclaration","scope":4145,"src":"7323:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4059,"name":"uint","nodeType":"ElementaryTypeName","src":"7323:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":4071,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4062,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5542,"src":"7348:5:6","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":4063,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"number","nodeType":"MemberAccess","referencedDeclaration":null,"src":"7348:12:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":4064,"name":"proposalConfigs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5532,"src":"7362:15:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_ProposalConfig_$5528_storage_$","typeString":"mapping(uint256 => struct GovernorBravoDelegateStorageV2.ProposalConfig storage ref)"}},"id":4068,"indexExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":4066,"name":"proposalType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3955,"src":"7384:12:6","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$5521","typeString":"enum GovernorBravoDelegateStorageV2.ProposalType"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_ProposalType_$5521","typeString":"enum GovernorBravoDelegateStorageV2.ProposalType"}],"id":4065,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7378:5:6","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":"uint8"},"id":4067,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7378:19:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7362:36:6","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalConfig_$5528_storage","typeString":"struct GovernorBravoDelegateStorageV2.ProposalConfig storage ref"}},"id":4069,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"votingDelay","nodeType":"MemberAccess","referencedDeclaration":5523,"src":"7362:48:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4061,"name":"add256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5087,"src":"7341:6:6","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":4070,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7341:70:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7323:88:6"},{"assignments":[4073],"declarations":[{"constant":false,"id":4073,"name":"endBlock","nodeType":"VariableDeclaration","scope":4145,"src":"7421:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4072,"name":"uint","nodeType":"ElementaryTypeName","src":"7421:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":4083,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":4075,"name":"startBlock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4060,"src":"7444:10:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":4076,"name":"proposalConfigs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5532,"src":"7456:15:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_ProposalConfig_$5528_storage_$","typeString":"mapping(uint256 => struct GovernorBravoDelegateStorageV2.ProposalConfig storage ref)"}},"id":4080,"indexExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":4078,"name":"proposalType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3955,"src":"7478:12:6","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$5521","typeString":"enum GovernorBravoDelegateStorageV2.ProposalType"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_ProposalType_$5521","typeString":"enum GovernorBravoDelegateStorageV2.ProposalType"}],"id":4077,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7472:5:6","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":"uint8"},"id":4079,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7472:19:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7456:36:6","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalConfig_$5528_storage","typeString":"struct GovernorBravoDelegateStorageV2.ProposalConfig storage ref"}},"id":4081,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"votingPeriod","nodeType":"MemberAccess","referencedDeclaration":5525,"src":"7456:49:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4074,"name":"add256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5087,"src":"7437:6:6","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":4082,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7437:69:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7421:85:6"},{"expression":{"argumentTypes":null,"id":4085,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"7517:15:6","subExpression":{"argumentTypes":null,"id":4084,"name":"proposalCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5443,"src":"7517:13:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4086,"nodeType":"ExpressionStatement","src":"7517:15:6"},{"assignments":[4088],"declarations":[{"constant":false,"id":4088,"name":"newProposal","nodeType":"VariableDeclaration","scope":4145,"src":"7542:27:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5494_memory_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal"},"typeName":{"contractScope":null,"id":4087,"name":"Proposal","nodeType":"UserDefinedTypeName","referencedDeclaration":5494,"src":"7542:8:6","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5494_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal"}},"value":null,"visibility":"internal"}],"id":4109,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":4090,"name":"proposalCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5443,"src":"7599:13:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4091,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5552,"src":"7636:3:6","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":4092,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"7636:10:6","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"hexValue":"30","id":4093,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7665:1:6","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"argumentTypes":null,"id":4094,"name":"targets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3942,"src":"7689:7:6","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"argumentTypes":null,"id":4095,"name":"values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3945,"src":"7718:6:6","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"argumentTypes":null,"id":4096,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3948,"src":"7750:10:6","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_$dyn_memory_ptr","typeString":"string memory[] memory"}},{"argumentTypes":null,"id":4097,"name":"calldatas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3951,"src":"7785:9:6","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},{"argumentTypes":null,"id":4098,"name":"startBlock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4060,"src":"7820:10:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":4099,"name":"endBlock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4073,"src":"7854:8:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"hexValue":"30","id":4100,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7886:1:6","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"argumentTypes":null,"hexValue":"30","id":4101,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7915:1:6","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"argumentTypes":null,"hexValue":"30","id":4102,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7944:1:6","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"argumentTypes":null,"hexValue":"66616c7365","id":4103,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"7969:5:6","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"argumentTypes":null,"hexValue":"66616c7365","id":4104,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"7998:5:6","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":4106,"name":"proposalType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3955,"src":"8037:12:6","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$5521","typeString":"enum GovernorBravoDelegateStorageV2.ProposalType"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_ProposalType_$5521","typeString":"enum GovernorBravoDelegateStorageV2.ProposalType"}],"id":4105,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8031:5:6","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":"uint8"},"id":4107,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8031:19:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"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_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":4089,"name":"Proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5494,"src":"7572:8:6","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Proposal_$5494_storage_ptr_$","typeString":"type(struct GovernorBravoDelegateStorageV1.Proposal storage pointer)"}},"id":4108,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"names":["id","proposer","eta","targets","values","signatures","calldatas","startBlock","endBlock","forVotes","againstVotes","abstainVotes","canceled","executed","proposalType"],"nodeType":"FunctionCall","src":"7572:489:6","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5494_memory","typeString":"struct GovernorBravoDelegateStorageV1.Proposal memory"}},"nodeType":"VariableDeclarationStatement","src":"7542:519:6"},{"expression":{"argumentTypes":null,"id":4115,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":4110,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5451,"src":"8072:9:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$5494_storage_$","typeString":"mapping(uint256 => struct GovernorBravoDelegateStorageV1.Proposal storage ref)"}},"id":4113,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4111,"name":"newProposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4088,"src":"8082:11:6","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5494_memory_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal memory"}},"id":4112,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"id","nodeType":"MemberAccess","referencedDeclaration":5457,"src":"8082:14:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8072:25:6","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5494_storage","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":4114,"name":"newProposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4088,"src":"8100:11:6","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5494_memory_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal memory"}},"src":"8072:39:6","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5494_storage","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage ref"}},"id":4116,"nodeType":"ExpressionStatement","src":"8072:39:6"},{"expression":{"argumentTypes":null,"id":4123,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":4117,"name":"latestProposalIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5455,"src":"8121:17:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":4120,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4118,"name":"newProposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4088,"src":"8139:11:6","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5494_memory_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal memory"}},"id":4119,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"proposer","nodeType":"MemberAccess","referencedDeclaration":5459,"src":"8139:20:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8121:39:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4121,"name":"newProposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4088,"src":"8163:11:6","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5494_memory_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal memory"}},"id":4122,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"id","nodeType":"MemberAccess","referencedDeclaration":5457,"src":"8163:14:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8121:56:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4124,"nodeType":"ExpressionStatement","src":"8121:56:6"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4126,"name":"newProposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4088,"src":"8222:11:6","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5494_memory_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal memory"}},"id":4127,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"id","nodeType":"MemberAccess","referencedDeclaration":5457,"src":"8222:14:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4128,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5552,"src":"8250:3:6","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":4129,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"8250:10:6","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":4130,"name":"targets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3942,"src":"8274:7:6","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"argumentTypes":null,"id":4131,"name":"values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3945,"src":"8295:6:6","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"argumentTypes":null,"id":4132,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3948,"src":"8315:10:6","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_$dyn_memory_ptr","typeString":"string memory[] memory"}},{"argumentTypes":null,"id":4133,"name":"calldatas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3951,"src":"8339:9:6","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},{"argumentTypes":null,"id":4134,"name":"startBlock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4060,"src":"8362:10:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":4135,"name":"endBlock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4073,"src":"8386:8:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":4136,"name":"description","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3953,"src":"8408:11:6","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":4138,"name":"proposalType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3955,"src":"8439:12:6","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$5521","typeString":"enum GovernorBravoDelegateStorageV2.ProposalType"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_ProposalType_$5521","typeString":"enum GovernorBravoDelegateStorageV2.ProposalType"}],"id":4137,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8433:5:6","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":"uint8"},"id":4139,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8433:19:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"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"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":4125,"name":"ProposalCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5349,"src":"8193:15:6","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_$_t_uint8_$returns$__$","typeString":"function (uint256,address,address[] memory,uint256[] memory,string memory[] memory,bytes memory[] memory,uint256,uint256,string memory,uint8)"}},"id":4140,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8193:269:6","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4141,"nodeType":"EmitStatement","src":"8188:274:6"},{"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4142,"name":"newProposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4088,"src":"8479:11:6","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5494_memory_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal memory"}},"id":4143,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"id","nodeType":"MemberAccess","referencedDeclaration":5457,"src":"8479:14:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3959,"id":4144,"nodeType":"Return","src":"8472:21:6"}]},"documentation":"@notice Function used to propose a new proposal. Sender must have delegates above the proposal threshold.\ntargets, values, signatures, and calldatas must be of equal length\n@dev NOTE: Proposals with duplicate set of actions can not be queued for execution. If the proposals consists\n of duplicate actions, it's recommended to split those actions into separate proposals\n@param targets Target addresses for proposal calls\n@param values BNB values for proposal calls\n@param signatures Function signatures for proposal calls\n@param calldatas Calldatas for proposal calls\n@param description String description of the proposal\n@param proposalType the type of the proposal (e.g NORMAL, FASTTRACK, CRITICAL)\n@return Proposal id of new proposal","id":4146,"implemented":true,"kind":"function","modifiers":[],"name":"propose","nodeType":"FunctionDefinition","parameters":{"id":3956,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3942,"name":"targets","nodeType":"VariableDeclaration","scope":4146,"src":"5610:24:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":3940,"name":"address","nodeType":"ElementaryTypeName","src":"5610:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":3941,"length":null,"nodeType":"ArrayTypeName","src":"5610:9:6","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":3945,"name":"values","nodeType":"VariableDeclaration","scope":4146,"src":"5644:20:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":3943,"name":"uint","nodeType":"ElementaryTypeName","src":"5644:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3944,"length":null,"nodeType":"ArrayTypeName","src":"5644:6:6","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":3948,"name":"signatures","nodeType":"VariableDeclaration","scope":4146,"src":"5674:26:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_$dyn_memory_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":3946,"name":"string","nodeType":"ElementaryTypeName","src":"5674:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":3947,"length":null,"nodeType":"ArrayTypeName","src":"5674:8:6","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":3951,"name":"calldatas","nodeType":"VariableDeclaration","scope":4146,"src":"5710:24:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":3949,"name":"bytes","nodeType":"ElementaryTypeName","src":"5710:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":3950,"length":null,"nodeType":"ArrayTypeName","src":"5710:7:6","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":3953,"name":"description","nodeType":"VariableDeclaration","scope":4146,"src":"5744:25:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3952,"name":"string","nodeType":"ElementaryTypeName","src":"5744:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"},{"constant":false,"id":3955,"name":"proposalType","nodeType":"VariableDeclaration","scope":4146,"src":"5779:25:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$5521","typeString":"enum GovernorBravoDelegateStorageV2.ProposalType"},"typeName":{"contractScope":null,"id":3954,"name":"ProposalType","nodeType":"UserDefinedTypeName","referencedDeclaration":5521,"src":"5779:12:6","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$5521","typeString":"enum GovernorBravoDelegateStorageV2.ProposalType"}},"value":null,"visibility":"internal"}],"src":"5600:210:6"},"returnParameters":{"id":3959,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3958,"name":"","nodeType":"VariableDeclaration","scope":4146,"src":"5827:4:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3957,"name":"uint","nodeType":"ElementaryTypeName","src":"5827:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"5826:6:6"},"scope":5121,"src":"5584:2916:6","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":4230,"nodeType":"Block","src":"8672:745:6","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_enum$_ProposalState_$5510","typeString":"enum GovernorBravoDelegateStorageV1.ProposalState"},"id":4157,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":4153,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4148,"src":"8709:10:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4152,"name":"state","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4610,"src":"8703:5:6","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_enum$_ProposalState_$5510_$","typeString":"function (uint256) view returns (enum GovernorBravoDelegateStorageV1.ProposalState)"}},"id":4154,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8703:17:6","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$5510","typeString":"enum GovernorBravoDelegateStorageV1.ProposalState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4155,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5510,"src":"8724:13:6","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$5510_$","typeString":"type(enum GovernorBravoDelegateStorageV1.ProposalState)"}},"id":4156,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Succeeded","nodeType":"MemberAccess","referencedDeclaration":null,"src":"8724:23:6","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$5510","typeString":"enum GovernorBravoDelegateStorageV1.ProposalState"}},"src":"8703:44:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"476f7665726e6f72427261766f3a3a71756575653a2070726f706f73616c2063616e206f6e6c792062652071756575656420696620697420697320737563636565646564","id":4158,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8761:70:6","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_8b18b74b598045096f64bbdf9460c8b5777b3d00c07ed948d457fa444a8ee5bd","typeString":"literal_string \"GovernorBravo::queue: proposal can only be queued if it is succeeded\""},"value":"GovernorBravo::queue: proposal can only be queued if it is succeeded"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_8b18b74b598045096f64bbdf9460c8b5777b3d00c07ed948d457fa444a8ee5bd","typeString":"literal_string \"GovernorBravo::queue: proposal can only be queued if it is succeeded\""}],"id":4151,"name":"require","nodeType":"Identifier","overloadedDeclarations":[5555,5556],"referencedDeclaration":5556,"src":"8682:7:6","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4159,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8682:159:6","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4160,"nodeType":"ExpressionStatement","src":"8682:159:6"},{"assignments":[4162],"declarations":[{"constant":false,"id":4162,"name":"proposal","nodeType":"VariableDeclaration","scope":4230,"src":"8851:25:6","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5494_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal"},"typeName":{"contractScope":null,"id":4161,"name":"Proposal","nodeType":"UserDefinedTypeName","referencedDeclaration":5494,"src":"8851:8:6","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5494_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal"}},"value":null,"visibility":"internal"}],"id":4166,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":4163,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5451,"src":"8879:9:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$5494_storage_$","typeString":"mapping(uint256 => struct GovernorBravoDelegateStorageV1.Proposal storage ref)"}},"id":4165,"indexExpression":{"argumentTypes":null,"id":4164,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4148,"src":"8889:10:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8879:21:6","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5494_storage","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"8851:49:6"},{"assignments":[4168],"declarations":[{"constant":false,"id":4168,"name":"eta","nodeType":"VariableDeclaration","scope":4230,"src":"8910:8:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4167,"name":"uint","nodeType":"ElementaryTypeName","src":"8910:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":4181,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4170,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5542,"src":"8928:5:6","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":4171,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":null,"src":"8928:15:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":4172,"name":"proposalTimelocks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5536,"src":"8945:17:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_contract$_TimelockInterface_$2007_$","typeString":"mapping(uint256 => contract TimelockInterface)"}},"id":4177,"indexExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4174,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4162,"src":"8969:8:6","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5494_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage pointer"}},"id":4175,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"proposalType","nodeType":"MemberAccess","referencedDeclaration":5493,"src":"8969:21:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":4173,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8963:5:6","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":"uint8"},"id":4176,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8963:28:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8945:47:6","typeDescriptions":{"typeIdentifier":"t_contract$_TimelockInterface_$2007","typeString":"contract TimelockInterface"}},"id":4178,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"delay","nodeType":"MemberAccess","referencedDeclaration":1948,"src":"8945:53:6","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":4179,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8945:55:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4169,"name":"add256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5087,"src":"8921:6:6","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":4180,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8921:80:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8910:91:6"},{"body":{"id":4217,"nodeType":"Block","src":"9058:279:6","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4194,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4162,"src":"9111:8:6","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5494_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage pointer"}},"id":4195,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"targets","nodeType":"MemberAccess","referencedDeclaration":5464,"src":"9111:16:6","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":4197,"indexExpression":{"argumentTypes":null,"id":4196,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4183,"src":"9128:1:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9111:19:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4198,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4162,"src":"9148:8:6","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5494_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage pointer"}},"id":4199,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"values","nodeType":"MemberAccess","referencedDeclaration":5467,"src":"9148:15:6","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":4201,"indexExpression":{"argumentTypes":null,"id":4200,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4183,"src":"9164:1:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9148:18:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4202,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4162,"src":"9184:8:6","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5494_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage pointer"}},"id":4203,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"signatures","nodeType":"MemberAccess","referencedDeclaration":5470,"src":"9184:19:6","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage","typeString":"string storage ref[] storage ref"}},"id":4205,"indexExpression":{"argumentTypes":null,"id":4204,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4183,"src":"9204:1:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9184:22:6","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4206,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4162,"src":"9224:8:6","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5494_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage pointer"}},"id":4207,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"calldatas","nodeType":"MemberAccess","referencedDeclaration":5473,"src":"9224:18:6","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage","typeString":"bytes storage ref[] storage ref"}},"id":4209,"indexExpression":{"argumentTypes":null,"id":4208,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4183,"src":"9243:1:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9224:21:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},{"argumentTypes":null,"id":4210,"name":"eta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4168,"src":"9263:3:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4212,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4162,"src":"9290:8:6","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5494_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage pointer"}},"id":4213,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"proposalType","nodeType":"MemberAccess","referencedDeclaration":5493,"src":"9290:21:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":4211,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9284:5:6","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":"uint8"},"id":4214,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9284:28:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"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"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":4193,"name":"queueOrRevertInternal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4278,"src":"9072:21:6","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_string_memory_ptr_$_t_bytes_memory_ptr_$_t_uint256_$_t_uint8_$returns$__$","typeString":"function (address,uint256,string memory,bytes memory,uint256,uint8)"}},"id":4215,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9072:254:6","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4216,"nodeType":"ExpressionStatement","src":"9072:254:6"}]},"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4189,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":4185,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4183,"src":"9024:1:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4186,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4162,"src":"9028:8:6","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5494_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage pointer"}},"id":4187,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"targets","nodeType":"MemberAccess","referencedDeclaration":5464,"src":"9028:16:6","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":4188,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"9028:23:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9024:27:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4218,"initializationExpression":{"assignments":[4183],"declarations":[{"constant":false,"id":4183,"name":"i","nodeType":"VariableDeclaration","scope":4218,"src":"9016:6:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4182,"name":"uint","nodeType":"ElementaryTypeName","src":"9016:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":4184,"initialValue":null,"nodeType":"VariableDeclarationStatement","src":"9016:6:6"},"loopExpression":{"expression":{"argumentTypes":null,"id":4191,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"9053:3:6","subExpression":{"argumentTypes":null,"id":4190,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4183,"src":"9055:1:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4192,"nodeType":"ExpressionStatement","src":"9053:3:6"},"nodeType":"ForStatement","src":"9011:326:6"},{"expression":{"argumentTypes":null,"id":4223,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4219,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4162,"src":"9346:8:6","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5494_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage pointer"}},"id":4221,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"eta","nodeType":"MemberAccess","referencedDeclaration":5461,"src":"9346:12:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":4222,"name":"eta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4168,"src":"9361:3:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9346:18:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4224,"nodeType":"ExpressionStatement","src":"9346:18:6"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":4226,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4148,"src":"9394:10:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":4227,"name":"eta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4168,"src":"9406:3:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4225,"name":"ProposalQueued","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5371,"src":"9379:14:6","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":4228,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9379:31:6","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4229,"nodeType":"EmitStatement","src":"9374:36:6"}]},"documentation":"@notice Queues a proposal of state succeeded\n@param proposalId The id of the proposal to queue","id":4231,"implemented":true,"kind":"function","modifiers":[],"name":"queue","nodeType":"FunctionDefinition","parameters":{"id":4149,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4148,"name":"proposalId","nodeType":"VariableDeclaration","scope":4231,"src":"8646:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4147,"name":"uint","nodeType":"ElementaryTypeName","src":"8646:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"8645:17:6"},"returnParameters":{"id":4150,"nodeType":"ParameterList","parameters":[],"src":"8672:0:6"},"scope":5121,"src":"8631:786:6","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":4277,"nodeType":"Block","src":"9619:385:6","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":4262,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"9650:141:6","subExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":4254,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4233,"src":"9740:6:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":4255,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4235,"src":"9748:5:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":4256,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4237,"src":"9755:9:6","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"argumentTypes":null,"id":4257,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4239,"src":"9766:4:6","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"argumentTypes":null,"id":4258,"name":"eta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4241,"src":"9772:3:6","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":4252,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5539,"src":"9729:3:6","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4253,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","referencedDeclaration":null,"src":"9729:10:6","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":4259,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9729:47:6","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4251,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5546,"src":"9719:9:6","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":4260,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9719:58:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":4247,"name":"proposalTimelocks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5536,"src":"9651:17:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_contract$_TimelockInterface_$2007_$","typeString":"mapping(uint256 => contract TimelockInterface)"}},"id":4249,"indexExpression":{"argumentTypes":null,"id":4248,"name":"proposalType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4243,"src":"9669:12:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9651:31:6","typeDescriptions":{"typeIdentifier":"t_contract$_TimelockInterface_$2007","typeString":"contract TimelockInterface"}},"id":4250,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"queuedTransactions","nodeType":"MemberAccess","referencedDeclaration":1963,"src":"9651:50:6","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32) view external returns (bool)"}},"id":4261,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9651:140:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"476f7665726e6f72427261766f3a3a71756575654f72526576657274496e7465726e616c3a206964656e746963616c2070726f706f73616c20616374696f6e20616c72656164792071756575656420617420657461","id":4263,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9805:87:6","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_1c438b0cfaad67e6d7c60ceb8ef7ecff37faff9e792b7a026c00b374a537d965","typeString":"literal_string \"GovernorBravo::queueOrRevertInternal: identical proposal action already queued at eta\""},"value":"GovernorBravo::queueOrRevertInternal: identical proposal action already queued at eta"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1c438b0cfaad67e6d7c60ceb8ef7ecff37faff9e792b7a026c00b374a537d965","typeString":"literal_string \"GovernorBravo::queueOrRevertInternal: identical proposal action already queued at eta\""}],"id":4246,"name":"require","nodeType":"Identifier","overloadedDeclarations":[5555,5556],"referencedDeclaration":5556,"src":"9629:7:6","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4264,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9629:273:6","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4265,"nodeType":"ExpressionStatement","src":"9629:273:6"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":4270,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4233,"src":"9961:6:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":4271,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4235,"src":"9969:5:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":4272,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4237,"src":"9976:9:6","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"argumentTypes":null,"id":4273,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4239,"src":"9987:4:6","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"argumentTypes":null,"id":4274,"name":"eta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4241,"src":"9993:3:6","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,"baseExpression":{"argumentTypes":null,"id":4266,"name":"proposalTimelocks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5536,"src":"9912:17:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_contract$_TimelockInterface_$2007_$","typeString":"mapping(uint256 => contract TimelockInterface)"}},"id":4268,"indexExpression":{"argumentTypes":null,"id":4267,"name":"proposalType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4243,"src":"9930:12:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9912:31:6","typeDescriptions":{"typeIdentifier":"t_contract$_TimelockInterface_$2007","typeString":"contract TimelockInterface"}},"id":4269,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"queueTransaction","nodeType":"MemberAccess","referencedDeclaration":1978,"src":"9912:48:6","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":4275,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9912:85:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":4276,"nodeType":"ExpressionStatement","src":"9912:85:6"}]},"documentation":null,"id":4278,"implemented":true,"kind":"function","modifiers":[],"name":"queueOrRevertInternal","nodeType":"FunctionDefinition","parameters":{"id":4244,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4233,"name":"target","nodeType":"VariableDeclaration","scope":4278,"src":"9463:14:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4232,"name":"address","nodeType":"ElementaryTypeName","src":"9463:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":4235,"name":"value","nodeType":"VariableDeclaration","scope":4278,"src":"9487:10:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4234,"name":"uint","nodeType":"ElementaryTypeName","src":"9487:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":4237,"name":"signature","nodeType":"VariableDeclaration","scope":4278,"src":"9507:23:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4236,"name":"string","nodeType":"ElementaryTypeName","src":"9507:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"},{"constant":false,"id":4239,"name":"data","nodeType":"VariableDeclaration","scope":4278,"src":"9540:17:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4238,"name":"bytes","nodeType":"ElementaryTypeName","src":"9540:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":null,"visibility":"internal"},{"constant":false,"id":4241,"name":"eta","nodeType":"VariableDeclaration","scope":4278,"src":"9567:8:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4240,"name":"uint","nodeType":"ElementaryTypeName","src":"9567:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":4243,"name":"proposalType","nodeType":"VariableDeclaration","scope":4278,"src":"9585:18:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":4242,"name":"uint8","nodeType":"ElementaryTypeName","src":"9585:5:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":null,"visibility":"internal"}],"src":"9453:156:6"},"returnParameters":{"id":4245,"nodeType":"ParameterList","parameters":[],"src":"9619:0:6"},"scope":5121,"src":"9423:581:6","stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},{"body":{"id":4349,"nodeType":"Block","src":"10188:653:6","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_enum$_ProposalState_$5510","typeString":"enum GovernorBravoDelegateStorageV1.ProposalState"},"id":4289,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":4285,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4280,"src":"10225:10:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4284,"name":"state","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4610,"src":"10219:5:6","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_enum$_ProposalState_$5510_$","typeString":"function (uint256) view returns (enum GovernorBravoDelegateStorageV1.ProposalState)"}},"id":4286,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10219:17:6","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$5510","typeString":"enum GovernorBravoDelegateStorageV1.ProposalState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4287,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5510,"src":"10240:13:6","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$5510_$","typeString":"type(enum GovernorBravoDelegateStorageV1.ProposalState)"}},"id":4288,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Queued","nodeType":"MemberAccess","referencedDeclaration":null,"src":"10240:20:6","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$5510","typeString":"enum GovernorBravoDelegateStorageV1.ProposalState"}},"src":"10219:41:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"476f7665726e6f72427261766f3a3a657865637574653a2070726f706f73616c2063616e206f6e6c7920626520657865637574656420696620697420697320717565756564","id":4290,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10274:71:6","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_5fbf48e8c3a21a3625f21d95c8b2dda12d19a9eb23201ab81343d35beaf2fa53","typeString":"literal_string \"GovernorBravo::execute: proposal can only be executed if it is queued\""},"value":"GovernorBravo::execute: proposal can only be executed if it is queued"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5fbf48e8c3a21a3625f21d95c8b2dda12d19a9eb23201ab81343d35beaf2fa53","typeString":"literal_string \"GovernorBravo::execute: proposal can only be executed if it is queued\""}],"id":4283,"name":"require","nodeType":"Identifier","overloadedDeclarations":[5555,5556],"referencedDeclaration":5556,"src":"10198:7:6","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4291,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10198:157:6","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4292,"nodeType":"ExpressionStatement","src":"10198:157:6"},{"assignments":[4294],"declarations":[{"constant":false,"id":4294,"name":"proposal","nodeType":"VariableDeclaration","scope":4349,"src":"10365:25:6","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5494_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal"},"typeName":{"contractScope":null,"id":4293,"name":"Proposal","nodeType":"UserDefinedTypeName","referencedDeclaration":5494,"src":"10365:8:6","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5494_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal"}},"value":null,"visibility":"internal"}],"id":4298,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":4295,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5451,"src":"10393:9:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$5494_storage_$","typeString":"mapping(uint256 => struct GovernorBravoDelegateStorageV1.Proposal storage ref)"}},"id":4297,"indexExpression":{"argumentTypes":null,"id":4296,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4280,"src":"10403:10:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10393:21:6","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5494_storage","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"10365:49:6"},{"expression":{"argumentTypes":null,"id":4303,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4299,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294,"src":"10424:8:6","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5494_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage pointer"}},"id":4301,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"executed","nodeType":"MemberAccess","referencedDeclaration":5487,"src":"10424:17:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"hexValue":"74727565","id":4302,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"10444:4:6","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"10424:24:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4304,"nodeType":"ExpressionStatement","src":"10424:24:6"},{"body":{"id":4343,"nodeType":"Block","src":"10505:287:6","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4323,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294,"src":"10603:8:6","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5494_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage pointer"}},"id":4324,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"targets","nodeType":"MemberAccess","referencedDeclaration":5464,"src":"10603:16:6","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":4326,"indexExpression":{"argumentTypes":null,"id":4325,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4306,"src":"10620:1:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10603:19:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4327,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294,"src":"10640:8:6","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5494_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage pointer"}},"id":4328,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"values","nodeType":"MemberAccess","referencedDeclaration":5467,"src":"10640:15:6","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":4330,"indexExpression":{"argumentTypes":null,"id":4329,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4306,"src":"10656:1:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10640:18:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4331,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294,"src":"10676:8:6","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5494_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage pointer"}},"id":4332,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"signatures","nodeType":"MemberAccess","referencedDeclaration":5470,"src":"10676:19:6","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage","typeString":"string storage ref[] storage ref"}},"id":4334,"indexExpression":{"argumentTypes":null,"id":4333,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4306,"src":"10696:1:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10676:22:6","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4335,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294,"src":"10716:8:6","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5494_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage pointer"}},"id":4336,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"calldatas","nodeType":"MemberAccess","referencedDeclaration":5473,"src":"10716:18:6","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage","typeString":"bytes storage ref[] storage ref"}},"id":4338,"indexExpression":{"argumentTypes":null,"id":4337,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4306,"src":"10735:1:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10716:21:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4339,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294,"src":"10755:8:6","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5494_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage pointer"}},"id":4340,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"eta","nodeType":"MemberAccess","referencedDeclaration":5461,"src":"10755:12:6","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,"baseExpression":{"argumentTypes":null,"id":4316,"name":"proposalTimelocks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5536,"src":"10519:17:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_contract$_TimelockInterface_$2007_$","typeString":"mapping(uint256 => contract TimelockInterface)"}},"id":4321,"indexExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4318,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294,"src":"10543:8:6","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5494_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage pointer"}},"id":4319,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"proposalType","nodeType":"MemberAccess","referencedDeclaration":5493,"src":"10543:21:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":4317,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10537:5:6","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":"uint8"},"id":4320,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10537:28:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10519:47:6","typeDescriptions":{"typeIdentifier":"t_contract$_TimelockInterface_$2007","typeString":"contract TimelockInterface"}},"id":4322,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"executeTransaction","nodeType":"MemberAccess","referencedDeclaration":2006,"src":"10519:66:6","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":4341,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10519:262:6","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":4342,"nodeType":"ExpressionStatement","src":"10519:262:6"}]},"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4312,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":4308,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4306,"src":"10471:1:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4309,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294,"src":"10475:8:6","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5494_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage pointer"}},"id":4310,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"targets","nodeType":"MemberAccess","referencedDeclaration":5464,"src":"10475:16:6","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":4311,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"10475:23:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10471:27:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4344,"initializationExpression":{"assignments":[4306],"declarations":[{"constant":false,"id":4306,"name":"i","nodeType":"VariableDeclaration","scope":4344,"src":"10463:6:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4305,"name":"uint","nodeType":"ElementaryTypeName","src":"10463:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":4307,"initialValue":null,"nodeType":"VariableDeclarationStatement","src":"10463:6:6"},"loopExpression":{"expression":{"argumentTypes":null,"id":4314,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"10500:3:6","subExpression":{"argumentTypes":null,"id":4313,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4306,"src":"10502:1:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4315,"nodeType":"ExpressionStatement","src":"10500:3:6"},"nodeType":"ForStatement","src":"10458:334:6"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":4346,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4280,"src":"10823:10:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4345,"name":"ProposalExecuted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5375,"src":"10806:16:6","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":4347,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10806:28:6","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4348,"nodeType":"EmitStatement","src":"10801:33:6"}]},"documentation":"@notice Executes a queued proposal if eta has passed\n@param proposalId The id of the proposal to execute","id":4350,"implemented":true,"kind":"function","modifiers":[],"name":"execute","nodeType":"FunctionDefinition","parameters":{"id":4281,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4280,"name":"proposalId","nodeType":"VariableDeclaration","scope":4350,"src":"10162:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4279,"name":"uint","nodeType":"ElementaryTypeName","src":"10162:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"10161:17:6"},"returnParameters":{"id":4282,"nodeType":"ParameterList","parameters":[],"src":"10188:0:6"},"scope":5121,"src":"10145:696:6","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":4451,"nodeType":"Block","src":"11084:943:6","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_enum$_ProposalState_$5510","typeString":"enum GovernorBravoDelegateStorageV1.ProposalState"},"id":4361,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":4357,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4352,"src":"11108:10:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4356,"name":"state","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4610,"src":"11102:5:6","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_enum$_ProposalState_$5510_$","typeString":"function (uint256) view returns (enum GovernorBravoDelegateStorageV1.ProposalState)"}},"id":4358,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11102:17:6","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$5510","typeString":"enum GovernorBravoDelegateStorageV1.ProposalState"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4359,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5510,"src":"11123:13:6","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$5510_$","typeString":"type(enum GovernorBravoDelegateStorageV1.ProposalState)"}},"id":4360,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Executed","nodeType":"MemberAccess","referencedDeclaration":null,"src":"11123:22:6","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$5510","typeString":"enum GovernorBravoDelegateStorageV1.ProposalState"}},"src":"11102:43:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"476f7665726e6f72427261766f3a3a63616e63656c3a2063616e6e6f742063616e63656c2065786563757465642070726f706f73616c","id":4362,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11147:56:6","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_d48c38cdee932c14d51343eb15469a6b4385fa79519fea37fc1716c00abad924","typeString":"literal_string \"GovernorBravo::cancel: cannot cancel executed proposal\""},"value":"GovernorBravo::cancel: cannot cancel executed proposal"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d48c38cdee932c14d51343eb15469a6b4385fa79519fea37fc1716c00abad924","typeString":"literal_string \"GovernorBravo::cancel: cannot cancel executed proposal\""}],"id":4355,"name":"require","nodeType":"Identifier","overloadedDeclarations":[5555,5556],"referencedDeclaration":5556,"src":"11094:7:6","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4363,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11094:110:6","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4364,"nodeType":"ExpressionStatement","src":"11094:110:6"},{"assignments":[4366],"declarations":[{"constant":false,"id":4366,"name":"proposal","nodeType":"VariableDeclaration","scope":4451,"src":"11215:25:6","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5494_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal"},"typeName":{"contractScope":null,"id":4365,"name":"Proposal","nodeType":"UserDefinedTypeName","referencedDeclaration":5494,"src":"11215:8:6","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5494_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal"}},"value":null,"visibility":"internal"}],"id":4370,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":4367,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5451,"src":"11243:9:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$5494_storage_$","typeString":"mapping(uint256 => struct GovernorBravoDelegateStorageV1.Proposal storage ref)"}},"id":4369,"indexExpression":{"argumentTypes":null,"id":4368,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4352,"src":"11253:10:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11243:21:6","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5494_storage","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"11215:49:6"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":4398,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":4381,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":4375,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4372,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5552,"src":"11295:3:6","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":4373,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"11295:10:6","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"id":4374,"name":"guardian","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5514,"src":"11309:8:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11295:22:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":4380,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4376,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5552,"src":"11337:3:6","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":4377,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"11337:10:6","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4378,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4366,"src":"11351:8:6","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5494_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage pointer"}},"id":4379,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"proposer","nodeType":"MemberAccess","referencedDeclaration":5459,"src":"11351:17:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11337:31:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"11295:73:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4397,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4384,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4366,"src":"11411:8:6","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5494_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage pointer"}},"id":4385,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"proposer","nodeType":"MemberAccess","referencedDeclaration":5459,"src":"11411:17:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4387,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5542,"src":"11437:5:6","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":4388,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"number","nodeType":"MemberAccess","referencedDeclaration":null,"src":"11437:12:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"hexValue":"31","id":4389,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11451:1:6","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":4386,"name":"sub256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5108,"src":"11430:6:6","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":4390,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11430:23:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":4382,"name":"xvsVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5447,"src":"11388:8:6","typeDescriptions":{"typeIdentifier":"t_contract$_XvsVaultInterface_$2017","typeString":"contract XvsVaultInterface"}},"id":4383,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getPriorVotes","nodeType":"MemberAccess","referencedDeclaration":2016,"src":"11388:22:6","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_uint256_$returns$_t_uint96_$","typeString":"function (address,uint256) view external returns (uint96)"}},"id":4391,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11388:66:6","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":4392,"name":"proposalConfigs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5532,"src":"11473:15:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_ProposalConfig_$5528_storage_$","typeString":"mapping(uint256 => struct GovernorBravoDelegateStorageV2.ProposalConfig storage ref)"}},"id":4395,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4393,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4366,"src":"11489:8:6","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5494_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage pointer"}},"id":4394,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"proposalType","nodeType":"MemberAccess","referencedDeclaration":5493,"src":"11489:21:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11473:38:6","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalConfig_$5528_storage","typeString":"struct GovernorBravoDelegateStorageV2.ProposalConfig storage ref"}},"id":4396,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"proposalThreshold","nodeType":"MemberAccess","referencedDeclaration":5527,"src":"11473:56:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11388:141:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"11295:234:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"476f7665726e6f72427261766f3a3a63616e63656c3a2070726f706f7365722061626f7665207468726573686f6c64","id":4399,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11543:49:6","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_af71986e0c1f80c2512b8b2deae5a125bfd8f0bdb9eb99f370c87681d9dd1dd1","typeString":"literal_string \"GovernorBravo::cancel: proposer above threshold\""},"value":"GovernorBravo::cancel: proposer above threshold"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_af71986e0c1f80c2512b8b2deae5a125bfd8f0bdb9eb99f370c87681d9dd1dd1","typeString":"literal_string \"GovernorBravo::cancel: proposer above threshold\""}],"id":4371,"name":"require","nodeType":"Identifier","overloadedDeclarations":[5555,5556],"referencedDeclaration":5556,"src":"11274:7:6","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4400,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11274:328:6","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4401,"nodeType":"ExpressionStatement","src":"11274:328:6"},{"expression":{"argumentTypes":null,"id":4406,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4402,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4366,"src":"11613:8:6","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5494_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage pointer"}},"id":4404,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"canceled","nodeType":"MemberAccess","referencedDeclaration":5485,"src":"11613:17:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"hexValue":"74727565","id":4405,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"11633:4:6","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"11613:24:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4407,"nodeType":"ExpressionStatement","src":"11613:24:6"},{"body":{"id":4445,"nodeType":"Block","src":"11698:279:6","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4425,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4366,"src":"11788:8:6","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5494_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage pointer"}},"id":4426,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"targets","nodeType":"MemberAccess","referencedDeclaration":5464,"src":"11788:16:6","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":4428,"indexExpression":{"argumentTypes":null,"id":4427,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4409,"src":"11805:1:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11788:19:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4429,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4366,"src":"11825:8:6","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5494_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage pointer"}},"id":4430,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"values","nodeType":"MemberAccess","referencedDeclaration":5467,"src":"11825:15:6","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":4432,"indexExpression":{"argumentTypes":null,"id":4431,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4409,"src":"11841:1:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11825:18:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4433,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4366,"src":"11861:8:6","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5494_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage pointer"}},"id":4434,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"signatures","nodeType":"MemberAccess","referencedDeclaration":5470,"src":"11861:19:6","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage","typeString":"string storage ref[] storage ref"}},"id":4436,"indexExpression":{"argumentTypes":null,"id":4435,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4409,"src":"11881:1:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11861:22:6","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4437,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4366,"src":"11901:8:6","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5494_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage pointer"}},"id":4438,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"calldatas","nodeType":"MemberAccess","referencedDeclaration":5473,"src":"11901:18:6","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage","typeString":"bytes storage ref[] storage ref"}},"id":4440,"indexExpression":{"argumentTypes":null,"id":4439,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4409,"src":"11920:1:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11901:21:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4441,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4366,"src":"11940:8:6","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5494_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage pointer"}},"id":4442,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"eta","nodeType":"MemberAccess","referencedDeclaration":5461,"src":"11940:12:6","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,"baseExpression":{"argumentTypes":null,"id":4420,"name":"proposalTimelocks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5536,"src":"11712:17:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_contract$_TimelockInterface_$2007_$","typeString":"mapping(uint256 => contract TimelockInterface)"}},"id":4423,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4421,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4366,"src":"11730:8:6","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5494_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage pointer"}},"id":4422,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"proposalType","nodeType":"MemberAccess","referencedDeclaration":5493,"src":"11730:21:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11712:40:6","typeDescriptions":{"typeIdentifier":"t_contract$_TimelockInterface_$2007","typeString":"contract TimelockInterface"}},"id":4424,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"cancelTransaction","nodeType":"MemberAccess","referencedDeclaration":1991,"src":"11712:58:6","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":4443,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11712:254:6","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4444,"nodeType":"ExpressionStatement","src":"11712:254:6"}]},"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4416,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":4412,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4409,"src":"11664:1:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4413,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4366,"src":"11668:8:6","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5494_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage pointer"}},"id":4414,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"targets","nodeType":"MemberAccess","referencedDeclaration":5464,"src":"11668:16:6","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":4415,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"11668:23:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11664:27:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4446,"initializationExpression":{"assignments":[4409],"declarations":[{"constant":false,"id":4409,"name":"i","nodeType":"VariableDeclaration","scope":4446,"src":"11652:6:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4408,"name":"uint","nodeType":"ElementaryTypeName","src":"11652:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":4411,"initialValue":{"argumentTypes":null,"hexValue":"30","id":4410,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11661:1:6","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"11652:10:6"},"loopExpression":{"expression":{"argumentTypes":null,"id":4418,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"11693:3:6","subExpression":{"argumentTypes":null,"id":4417,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4409,"src":"11693:1:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4419,"nodeType":"ExpressionStatement","src":"11693:3:6"},"nodeType":"ForStatement","src":"11647:330:6"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":4448,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4352,"src":"12009:10:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4447,"name":"ProposalCanceled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5365,"src":"11992:16:6","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":4449,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11992:28:6","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4450,"nodeType":"EmitStatement","src":"11987:33:6"}]},"documentation":"@notice Cancels a proposal only if sender is the proposer, or proposer delegates dropped below proposal threshold\n@param proposalId The id of the proposal to cancel","id":4452,"implemented":true,"kind":"function","modifiers":[],"name":"cancel","nodeType":"FunctionDefinition","parameters":{"id":4353,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4352,"name":"proposalId","nodeType":"VariableDeclaration","scope":4452,"src":"11058:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4351,"name":"uint","nodeType":"ElementaryTypeName","src":"11058:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"11057:17:6"},"returnParameters":{"id":4354,"nodeType":"ParameterList","parameters":[],"src":"11084:0:6"},"scope":5121,"src":"11042:985:6","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":4485,"nodeType":"Block","src":"12425:124:6","statements":[{"assignments":[4470],"declarations":[{"constant":false,"id":4470,"name":"p","nodeType":"VariableDeclaration","scope":4485,"src":"12435:18:6","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5494_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal"},"typeName":{"contractScope":null,"id":4469,"name":"Proposal","nodeType":"UserDefinedTypeName","referencedDeclaration":5494,"src":"12435:8:6","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5494_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal"}},"value":null,"visibility":"internal"}],"id":4474,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":4471,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5451,"src":"12456:9:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$5494_storage_$","typeString":"mapping(uint256 => struct GovernorBravoDelegateStorageV1.Proposal storage ref)"}},"id":4473,"indexExpression":{"argumentTypes":null,"id":4472,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4454,"src":"12466:10:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12456:21:6","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5494_storage","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"12435:42:6"},{"expression":{"argumentTypes":null,"components":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4475,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4470,"src":"12495:1:6","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5494_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage pointer"}},"id":4476,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"targets","nodeType":"MemberAccess","referencedDeclaration":5464,"src":"12495:9:6","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4477,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4470,"src":"12506:1:6","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5494_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage pointer"}},"id":4478,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"values","nodeType":"MemberAccess","referencedDeclaration":5467,"src":"12506:8:6","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4479,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4470,"src":"12516:1:6","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5494_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage pointer"}},"id":4480,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"signatures","nodeType":"MemberAccess","referencedDeclaration":5470,"src":"12516:12:6","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage","typeString":"string storage ref[] storage ref"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4481,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4470,"src":"12530:1:6","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5494_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage pointer"}},"id":4482,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"calldatas","nodeType":"MemberAccess","referencedDeclaration":5473,"src":"12530:11:6","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage","typeString":"bytes storage ref[] storage ref"}}],"id":4483,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12494:48:6","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":4468,"id":4484,"nodeType":"Return","src":"12487:55:6"}]},"documentation":"@notice Gets actions of a proposal\n@param proposalId the id of the proposal\n@return targets, values, signatures, and calldatas of the proposal actions","id":4486,"implemented":true,"kind":"function","modifiers":[],"name":"getActions","nodeType":"FunctionDefinition","parameters":{"id":4455,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4454,"name":"proposalId","nodeType":"VariableDeclaration","scope":4486,"src":"12250:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4453,"name":"uint","nodeType":"ElementaryTypeName","src":"12250:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"12240:31:6"},"returnParameters":{"id":4468,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4458,"name":"targets","nodeType":"VariableDeclaration","scope":4486,"src":"12319:24:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":4456,"name":"address","nodeType":"ElementaryTypeName","src":"12319:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":4457,"length":null,"nodeType":"ArrayTypeName","src":"12319:9:6","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":4461,"name":"values","nodeType":"VariableDeclaration","scope":4486,"src":"12345:20:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":4459,"name":"uint","nodeType":"ElementaryTypeName","src":"12345:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4460,"length":null,"nodeType":"ArrayTypeName","src":"12345:6:6","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":4464,"name":"signatures","nodeType":"VariableDeclaration","scope":4486,"src":"12367:26:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_$dyn_memory_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":4462,"name":"string","nodeType":"ElementaryTypeName","src":"12367:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":4463,"length":null,"nodeType":"ArrayTypeName","src":"12367:8:6","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":4467,"name":"calldatas","nodeType":"VariableDeclaration","scope":4486,"src":"12395:24:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":4465,"name":"bytes","nodeType":"ElementaryTypeName","src":"12395:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":4466,"length":null,"nodeType":"ArrayTypeName","src":"12395:7:6","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"value":null,"visibility":"internal"}],"src":"12318:102:6"},"scope":5121,"src":"12221:328:6","stateMutability":"view","superFunction":null,"visibility":"external"},{"body":{"id":4502,"nodeType":"Block","src":"12849:61:6","statements":[{"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":4495,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5451,"src":"12866:9:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$5494_storage_$","typeString":"mapping(uint256 => struct GovernorBravoDelegateStorageV1.Proposal storage ref)"}},"id":4497,"indexExpression":{"argumentTypes":null,"id":4496,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4488,"src":"12876:10:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12866:21:6","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5494_storage","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage ref"}},"id":4498,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"receipts","nodeType":"MemberAccess","referencedDeclaration":5491,"src":"12866:30:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Receipt_$5501_storage_$","typeString":"mapping(address => struct GovernorBravoDelegateStorageV1.Receipt storage ref)"}},"id":4500,"indexExpression":{"argumentTypes":null,"id":4499,"name":"voter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4490,"src":"12897:5:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12866:37:6","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$5501_storage","typeString":"struct GovernorBravoDelegateStorageV1.Receipt storage ref"}},"functionReturnParameters":4494,"id":4501,"nodeType":"Return","src":"12859:44:6"}]},"documentation":"@notice Gets the receipt for a voter on a given proposal\n@param proposalId the id of proposal\n@param voter The address of the voter\n@return The voting receipt","id":4503,"implemented":true,"kind":"function","modifiers":[],"name":"getReceipt","nodeType":"FunctionDefinition","parameters":{"id":4491,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4488,"name":"proposalId","nodeType":"VariableDeclaration","scope":4503,"src":"12778:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4487,"name":"uint","nodeType":"ElementaryTypeName","src":"12778:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":4490,"name":"voter","nodeType":"VariableDeclaration","scope":4503,"src":"12795:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4489,"name":"address","nodeType":"ElementaryTypeName","src":"12795:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"12777:32:6"},"returnParameters":{"id":4494,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4493,"name":"","nodeType":"VariableDeclaration","scope":4503,"src":"12833:14:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$5501_memory_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Receipt"},"typeName":{"contractScope":null,"id":4492,"name":"Receipt","nodeType":"UserDefinedTypeName","referencedDeclaration":5501,"src":"12833:7:6","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$5501_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Receipt"}},"value":null,"visibility":"internal"}],"src":"12832:16:6"},"scope":5121,"src":"12758:152:6","stateMutability":"view","superFunction":null,"visibility":"external"},{"body":{"id":4609,"nodeType":"Block","src":"13122:1066:6","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":4517,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4513,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":4511,"name":"proposalCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5443,"src":"13153:13:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"argumentTypes":null,"id":4512,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4505,"src":"13170:10:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13153:27:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4516,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":4514,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4505,"src":"13184:10:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"id":4515,"name":"initialProposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5441,"src":"13197:17:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13184:30:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"13153:61:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"476f7665726e6f72427261766f3a3a73746174653a20696e76616c69642070726f706f73616c206964","id":4518,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13228:43:6","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_e61e89529abd71ebdc7fb8670e3797adfb63b8cd78cee477b188afbc4e6a151a","typeString":"literal_string \"GovernorBravo::state: invalid proposal id\""},"value":"GovernorBravo::state: invalid proposal id"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e61e89529abd71ebdc7fb8670e3797adfb63b8cd78cee477b188afbc4e6a151a","typeString":"literal_string \"GovernorBravo::state: invalid proposal id\""}],"id":4510,"name":"require","nodeType":"Identifier","overloadedDeclarations":[5555,5556],"referencedDeclaration":5556,"src":"13132:7:6","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4519,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13132:149:6","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4520,"nodeType":"ExpressionStatement","src":"13132:149:6"},{"assignments":[4522],"declarations":[{"constant":false,"id":4522,"name":"proposal","nodeType":"VariableDeclaration","scope":4609,"src":"13291:25:6","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5494_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal"},"typeName":{"contractScope":null,"id":4521,"name":"Proposal","nodeType":"UserDefinedTypeName","referencedDeclaration":5494,"src":"13291:8:6","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5494_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal"}},"value":null,"visibility":"internal"}],"id":4526,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":4523,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5451,"src":"13319:9:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$5494_storage_$","typeString":"mapping(uint256 => struct GovernorBravoDelegateStorageV1.Proposal storage ref)"}},"id":4525,"indexExpression":{"argumentTypes":null,"id":4524,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4505,"src":"13329:10:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13319:21:6","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5494_storage","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"13291:49:6"},{"condition":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4527,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4522,"src":"13354:8:6","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5494_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage pointer"}},"id":4528,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"canceled","nodeType":"MemberAccess","referencedDeclaration":5485,"src":"13354:17:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4537,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4533,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5542,"src":"13437:5:6","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":4534,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"number","nodeType":"MemberAccess","referencedDeclaration":null,"src":"13437:12:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4535,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4522,"src":"13453:8:6","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5494_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage pointer"}},"id":4536,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"startBlock","nodeType":"MemberAccess","referencedDeclaration":5475,"src":"13453:19:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13437:35:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4546,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4542,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5542,"src":"13537:5:6","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":4543,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"number","nodeType":"MemberAccess","referencedDeclaration":null,"src":"13537:12:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4544,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4522,"src":"13553:8:6","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5494_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage pointer"}},"id":4545,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"endBlock","nodeType":"MemberAccess","referencedDeclaration":5477,"src":"13553:17:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13537:33:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":4560,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4555,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4551,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4522,"src":"13634:8:6","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5494_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage pointer"}},"id":4552,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"forVotes","nodeType":"MemberAccess","referencedDeclaration":5479,"src":"13634:17:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4553,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4522,"src":"13655:8:6","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5494_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage pointer"}},"id":4554,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"againstVotes","nodeType":"MemberAccess","referencedDeclaration":5481,"src":"13655:21:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13634:42:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4559,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4556,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4522,"src":"13680:8:6","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5494_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage pointer"}},"id":4557,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"forVotes","nodeType":"MemberAccess","referencedDeclaration":5479,"src":"13680:17:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"id":4558,"name":"quorumVotes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3731,"src":"13700:11:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13680:31:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"13634:77:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4568,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4565,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4522,"src":"13777:8:6","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5494_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage pointer"}},"id":4566,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"eta","nodeType":"MemberAccess","referencedDeclaration":5461,"src":"13777:12:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"30","id":4567,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13793:1:6","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"13777:17:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4573,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4522,"src":"13861:8:6","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5494_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage pointer"}},"id":4574,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"executed","nodeType":"MemberAccess","referencedDeclaration":5487,"src":"13861:17:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4593,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4579,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5542,"src":"13957:5:6","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":4580,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":null,"src":"13957:15:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4582,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4522,"src":"13983:8:6","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5494_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage pointer"}},"id":4583,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"eta","nodeType":"MemberAccess","referencedDeclaration":5461,"src":"13983:12:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":4584,"name":"proposalTimelocks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5536,"src":"13997:17:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_contract$_TimelockInterface_$2007_$","typeString":"mapping(uint256 => contract TimelockInterface)"}},"id":4589,"indexExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4586,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4522,"src":"14021:8:6","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5494_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage pointer"}},"id":4587,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"proposalType","nodeType":"MemberAccess","referencedDeclaration":5493,"src":"14021:21:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":4585,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14015:5:6","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":"uint8"},"id":4588,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14015:28:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13997:47:6","typeDescriptions":{"typeIdentifier":"t_contract$_TimelockInterface_$2007","typeString":"contract TimelockInterface"}},"id":4590,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"GRACE_PERIOD","nodeType":"MemberAccess","referencedDeclaration":1953,"src":"13997:60:6","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":4591,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13997:62:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4581,"name":"add256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5087,"src":"13976:6:6","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":4592,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13976:84:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13957:103:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":4601,"nodeType":"Block","src":"14130:52:6","statements":[{"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4598,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5510,"src":"14151:13:6","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$5510_$","typeString":"type(enum GovernorBravoDelegateStorageV1.ProposalState)"}},"id":4599,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Queued","nodeType":"MemberAccess","referencedDeclaration":null,"src":"14151:20:6","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$5510","typeString":"enum GovernorBravoDelegateStorageV1.ProposalState"}},"functionReturnParameters":4509,"id":4600,"nodeType":"Return","src":"14144:27:6"}]},"id":4602,"nodeType":"IfStatement","src":"13940:242:6","trueBody":{"id":4597,"nodeType":"Block","src":"14071:53:6","statements":[{"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4594,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5510,"src":"14092:13:6","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$5510_$","typeString":"type(enum GovernorBravoDelegateStorageV1.ProposalState)"}},"id":4595,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Expired","nodeType":"MemberAccess","referencedDeclaration":null,"src":"14092:21:6","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$5510","typeString":"enum GovernorBravoDelegateStorageV1.ProposalState"}},"functionReturnParameters":4509,"id":4596,"nodeType":"Return","src":"14085:28:6"}]}},"id":4603,"nodeType":"IfStatement","src":"13857:325:6","trueBody":{"id":4578,"nodeType":"Block","src":"13880:54:6","statements":[{"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4575,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5510,"src":"13901:13:6","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$5510_$","typeString":"type(enum GovernorBravoDelegateStorageV1.ProposalState)"}},"id":4576,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Executed","nodeType":"MemberAccess","referencedDeclaration":null,"src":"13901:22:6","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$5510","typeString":"enum GovernorBravoDelegateStorageV1.ProposalState"}},"functionReturnParameters":4509,"id":4577,"nodeType":"Return","src":"13894:29:6"}]}},"id":4604,"nodeType":"IfStatement","src":"13773:409:6","trueBody":{"id":4572,"nodeType":"Block","src":"13796:55:6","statements":[{"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4569,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5510,"src":"13817:13:6","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$5510_$","typeString":"type(enum GovernorBravoDelegateStorageV1.ProposalState)"}},"id":4570,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Succeeded","nodeType":"MemberAccess","referencedDeclaration":null,"src":"13817:23:6","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$5510","typeString":"enum GovernorBravoDelegateStorageV1.ProposalState"}},"functionReturnParameters":4509,"id":4571,"nodeType":"Return","src":"13810:30:6"}]}},"id":4605,"nodeType":"IfStatement","src":"13630:552:6","trueBody":{"id":4564,"nodeType":"Block","src":"13713:54:6","statements":[{"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4561,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5510,"src":"13734:13:6","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$5510_$","typeString":"type(enum GovernorBravoDelegateStorageV1.ProposalState)"}},"id":4562,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Defeated","nodeType":"MemberAccess","referencedDeclaration":null,"src":"13734:22:6","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$5510","typeString":"enum GovernorBravoDelegateStorageV1.ProposalState"}},"functionReturnParameters":4509,"id":4563,"nodeType":"Return","src":"13727:29:6"}]}},"id":4606,"nodeType":"IfStatement","src":"13533:649:6","trueBody":{"id":4550,"nodeType":"Block","src":"13572:52:6","statements":[{"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4547,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5510,"src":"13593:13:6","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$5510_$","typeString":"type(enum GovernorBravoDelegateStorageV1.ProposalState)"}},"id":4548,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Active","nodeType":"MemberAccess","referencedDeclaration":null,"src":"13593:20:6","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$5510","typeString":"enum GovernorBravoDelegateStorageV1.ProposalState"}},"functionReturnParameters":4509,"id":4549,"nodeType":"Return","src":"13586:27:6"}]}},"id":4607,"nodeType":"IfStatement","src":"13433:749:6","trueBody":{"id":4541,"nodeType":"Block","src":"13474:53:6","statements":[{"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4538,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5510,"src":"13495:13:6","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$5510_$","typeString":"type(enum GovernorBravoDelegateStorageV1.ProposalState)"}},"id":4539,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Pending","nodeType":"MemberAccess","referencedDeclaration":null,"src":"13495:21:6","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$5510","typeString":"enum GovernorBravoDelegateStorageV1.ProposalState"}},"functionReturnParameters":4509,"id":4540,"nodeType":"Return","src":"13488:28:6"}]}},"id":4608,"nodeType":"IfStatement","src":"13350:832:6","trueBody":{"id":4532,"nodeType":"Block","src":"13373:54:6","statements":[{"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4529,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5510,"src":"13394:13:6","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$5510_$","typeString":"type(enum GovernorBravoDelegateStorageV1.ProposalState)"}},"id":4530,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Canceled","nodeType":"MemberAccess","referencedDeclaration":null,"src":"13394:22:6","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$5510","typeString":"enum GovernorBravoDelegateStorageV1.ProposalState"}},"functionReturnParameters":4509,"id":4531,"nodeType":"Return","src":"13387:29:6"}]}}]},"documentation":"@notice Gets the state of a proposal\n@param proposalId The id of the proposal\n@return Proposal state","id":4610,"implemented":true,"kind":"function","modifiers":[],"name":"state","nodeType":"FunctionDefinition","parameters":{"id":4506,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4505,"name":"proposalId","nodeType":"VariableDeclaration","scope":4610,"src":"13069:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4504,"name":"uint","nodeType":"ElementaryTypeName","src":"13069:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"13068:17:6"},"returnParameters":{"id":4509,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4508,"name":"","nodeType":"VariableDeclaration","scope":4610,"src":"13107:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$5510","typeString":"enum GovernorBravoDelegateStorageV1.ProposalState"},"typeName":{"contractScope":null,"id":4507,"name":"ProposalState","nodeType":"UserDefinedTypeName","referencedDeclaration":5510,"src":"13107:13:6","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$5510","typeString":"enum GovernorBravoDelegateStorageV1.ProposalState"}},"value":null,"visibility":"internal"}],"src":"13106:15:6"},"scope":5121,"src":"13054:1134:6","stateMutability":"view","superFunction":null,"visibility":"public"},{"body":{"id":4631,"nodeType":"Block","src":"14452:118:6","statements":[{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4618,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5552,"src":"14476:3:6","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":4619,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"14476:10:6","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":4620,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4612,"src":"14488:10:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":4621,"name":"support","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4614,"src":"14500:7:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4623,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5552,"src":"14526:3:6","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":4624,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"14526:10:6","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":4625,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4612,"src":"14538:10:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":4626,"name":"support","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4614,"src":"14550:7:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":4622,"name":"castVoteInternal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4865,"src":"14509:16:6","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint8_$returns$_t_uint96_$","typeString":"function (address,uint256,uint8) returns (uint96)"}},"id":4627,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14509:49:6","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},{"argumentTypes":null,"hexValue":"","id":4628,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14560:2:6","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_uint96","typeString":"uint96"},{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":4617,"name":"VoteCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5361,"src":"14467:8:6","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint8_$_t_uint256_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,uint256,uint8,uint256,string memory)"}},"id":4629,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14467:96:6","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4630,"nodeType":"EmitStatement","src":"14462:101:6"}]},"documentation":"@notice Cast a vote for a proposal\n@param proposalId The id of the proposal to vote on\n@param support The support value for the vote. 0=against, 1=for, 2=abstain","id":4632,"implemented":true,"kind":"function","modifiers":[],"name":"castVote","nodeType":"FunctionDefinition","parameters":{"id":4615,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4612,"name":"proposalId","nodeType":"VariableDeclaration","scope":4632,"src":"14411:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4611,"name":"uint","nodeType":"ElementaryTypeName","src":"14411:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":4614,"name":"support","nodeType":"VariableDeclaration","scope":4632,"src":"14428:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":4613,"name":"uint8","nodeType":"ElementaryTypeName","src":"14428:5:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":null,"visibility":"internal"}],"src":"14410:32:6"},"returnParameters":{"id":4616,"nodeType":"ParameterList","parameters":[],"src":"14452:0:6"},"scope":5121,"src":"14393:177:6","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":4655,"nodeType":"Block","src":"14946:122:6","statements":[{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4642,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5552,"src":"14970:3:6","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":4643,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"14970:10:6","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":4644,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4634,"src":"14982:10:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":4645,"name":"support","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4636,"src":"14994:7:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4647,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5552,"src":"15020:3:6","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":4648,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"15020:10:6","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":4649,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4634,"src":"15032:10:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":4650,"name":"support","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4636,"src":"15044:7:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":4646,"name":"castVoteInternal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4865,"src":"15003:16:6","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint8_$returns$_t_uint96_$","typeString":"function (address,uint256,uint8) returns (uint96)"}},"id":4651,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15003:49:6","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},{"argumentTypes":null,"id":4652,"name":"reason","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4638,"src":"15054:6:6","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_uint96","typeString":"uint96"},{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}],"id":4641,"name":"VoteCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5361,"src":"14961:8:6","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint8_$_t_uint256_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,uint256,uint8,uint256,string memory)"}},"id":4653,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14961:100:6","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4654,"nodeType":"EmitStatement","src":"14956:105:6"}]},"documentation":"@notice Cast a vote for a proposal with a reason\n@param proposalId The id of the proposal to vote on\n@param support The support value for the vote. 0=against, 1=for, 2=abstain\n@param reason The reason given for the vote by the voter","id":4656,"implemented":true,"kind":"function","modifiers":[],"name":"castVoteWithReason","nodeType":"FunctionDefinition","parameters":{"id":4639,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4634,"name":"proposalId","nodeType":"VariableDeclaration","scope":4656,"src":"14881:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4633,"name":"uint","nodeType":"ElementaryTypeName","src":"14881:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":4636,"name":"support","nodeType":"VariableDeclaration","scope":4656,"src":"14898:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":4635,"name":"uint8","nodeType":"ElementaryTypeName","src":"14898:5:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":null,"visibility":"internal"},{"constant":false,"id":4638,"name":"reason","nodeType":"VariableDeclaration","scope":4656,"src":"14913:22:6","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":4637,"name":"string","nodeType":"ElementaryTypeName","src":"14913:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"}],"src":"14880:56:6"},"returnParameters":{"id":4640,"nodeType":"ParameterList","parameters":[],"src":"14946:0:6"},"scope":5121,"src":"14853:215:6","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":4740,"nodeType":"Block","src":"15605:607:6","statements":[{"assignments":[4670],"declarations":[{"constant":false,"id":4670,"name":"domainSeparator","nodeType":"VariableDeclaration","scope":4740,"src":"15615:23:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4669,"name":"bytes32","nodeType":"ElementaryTypeName","src":"15615:7:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"id":4687,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":4674,"name":"DOMAIN_TYPEHASH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3736,"src":"15675:15:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":4677,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3694,"src":"15708:4:6","typeDescriptions":{"typeIdentifier":"t_string_memory","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory","typeString":"string memory"}],"id":4676,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15702:5:6","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":"bytes"},"id":4678,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15702:11:6","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4675,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5546,"src":"15692:9:6","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":4679,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15692:22:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"id":4680,"name":"getChainIdInternal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5120,"src":"15716:18:6","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_uint256_$","typeString":"function () pure returns (uint256)"}},"id":4681,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15716:20:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":4683,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5606,"src":"15746:4:6","typeDescriptions":{"typeIdentifier":"t_contract$_GovernorBravoDelegateV2_$5121","typeString":"contract GovernorBravoDelegateV2"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GovernorBravoDelegateV2_$5121","typeString":"contract GovernorBravoDelegateV2"}],"id":4682,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15738:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":4684,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15738:13:6","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":4672,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5539,"src":"15664:3:6","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4673,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","referencedDeclaration":null,"src":"15664:10:6","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":4685,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15664:88:6","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4671,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5546,"src":"15641:9:6","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":4686,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15641:121:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"15615:147:6"},{"assignments":[4689],"declarations":[{"constant":false,"id":4689,"name":"structHash","nodeType":"VariableDeclaration","scope":4740,"src":"15772:18:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4688,"name":"bytes32","nodeType":"ElementaryTypeName","src":"15772:7:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"id":4698,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":4693,"name":"BALLOT_TYPEHASH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3741,"src":"15814:15:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":4694,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4658,"src":"15831:10:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":4695,"name":"support","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4660,"src":"15843:7:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"argumentTypes":null,"id":4691,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5539,"src":"15803:3:6","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4692,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","referencedDeclaration":null,"src":"15803:10:6","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":4696,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15803:48:6","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4690,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5546,"src":"15793:9:6","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":4697,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15793:59:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"15772:80:6"},{"assignments":[4700],"declarations":[{"constant":false,"id":4700,"name":"digest","nodeType":"VariableDeclaration","scope":4740,"src":"15862:14:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4699,"name":"bytes32","nodeType":"ElementaryTypeName","src":"15862:7:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"id":4709,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"1901","id":4704,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15906:10:6","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541","typeString":"literal_string \"\u0019\u0001\""},"value":"\u0019\u0001"},{"argumentTypes":null,"id":4705,"name":"domainSeparator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4670,"src":"15918:15:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":4706,"name":"structHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4689,"src":"15935:10:6","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":4702,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5539,"src":"15889:3:6","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4703,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","referencedDeclaration":null,"src":"15889:16:6","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":4707,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15889:57:6","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4701,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5546,"src":"15879:9:6","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":4708,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15879:68:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"15862:85:6"},{"assignments":[4711],"declarations":[{"constant":false,"id":4711,"name":"signatory","nodeType":"VariableDeclaration","scope":4740,"src":"15957:17:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4710,"name":"address","nodeType":"ElementaryTypeName","src":"15957:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"id":4718,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":4713,"name":"digest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4700,"src":"15987:6:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":4714,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4662,"src":"15995:1:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"argumentTypes":null,"id":4715,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4664,"src":"15998:1:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":4716,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4666,"src":"16001:1:6","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":4712,"name":"ecrecover","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5544,"src":"15977:9:6","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":4717,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15977:26:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"15957:46:6"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":4724,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":4720,"name":"signatory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4711,"src":"16021:9:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":4722,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16042:1:6","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":4721,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16034:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":4723,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16034:10:6","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"16021:23:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"476f7665726e6f72427261766f3a3a63617374566f746542795369673a20696e76616c6964207369676e6174757265","id":4725,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16046:49:6","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_606b6b9610d6d8b33c2c9914e54c767f3ea3c0ecf287b2262a751d4ec2b89d60","typeString":"literal_string \"GovernorBravo::castVoteBySig: invalid signature\""},"value":"GovernorBravo::castVoteBySig: invalid signature"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_606b6b9610d6d8b33c2c9914e54c767f3ea3c0ecf287b2262a751d4ec2b89d60","typeString":"literal_string \"GovernorBravo::castVoteBySig: invalid signature\""}],"id":4719,"name":"require","nodeType":"Identifier","overloadedDeclarations":[5555,5556],"referencedDeclaration":5556,"src":"16013:7:6","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4726,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16013:83:6","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4727,"nodeType":"ExpressionStatement","src":"16013:83:6"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":4729,"name":"signatory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4711,"src":"16120:9:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":4730,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4658,"src":"16131:10:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":4731,"name":"support","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4660,"src":"16143:7:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":4733,"name":"signatory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4711,"src":"16169:9:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":4734,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4658,"src":"16180:10:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":4735,"name":"support","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4660,"src":"16192:7:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":4732,"name":"castVoteInternal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4865,"src":"16152:16:6","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint8_$returns$_t_uint96_$","typeString":"function (address,uint256,uint8) returns (uint96)"}},"id":4736,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16152:48:6","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},{"argumentTypes":null,"hexValue":"","id":4737,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16202:2:6","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_uint96","typeString":"uint96"},{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":4728,"name":"VoteCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5361,"src":"16111:8:6","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint8_$_t_uint256_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,uint256,uint8,uint256,string memory)"}},"id":4738,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16111:94:6","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4739,"nodeType":"EmitStatement","src":"16106:99:6"}]},"documentation":"@notice Cast a vote for a proposal by signature\n@dev External function that accepts EIP-712 signatures for voting on proposals.\n@param proposalId The id of the proposal to vote on\n@param support The support value for the vote. 0=against, 1=for, 2=abstain\n@param v recovery id of ECDSA signature\n@param r part of the ECDSA sig output\n@param s part of the ECDSA sig output","id":4741,"implemented":true,"kind":"function","modifiers":[],"name":"castVoteBySig","nodeType":"FunctionDefinition","parameters":{"id":4667,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4658,"name":"proposalId","nodeType":"VariableDeclaration","scope":4741,"src":"15533:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4657,"name":"uint","nodeType":"ElementaryTypeName","src":"15533:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":4660,"name":"support","nodeType":"VariableDeclaration","scope":4741,"src":"15550:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":4659,"name":"uint8","nodeType":"ElementaryTypeName","src":"15550:5:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":null,"visibility":"internal"},{"constant":false,"id":4662,"name":"v","nodeType":"VariableDeclaration","scope":4741,"src":"15565:7:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":4661,"name":"uint8","nodeType":"ElementaryTypeName","src":"15565:5:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":null,"visibility":"internal"},{"constant":false,"id":4664,"name":"r","nodeType":"VariableDeclaration","scope":4741,"src":"15574:9:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4663,"name":"bytes32","nodeType":"ElementaryTypeName","src":"15574:7:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":4666,"name":"s","nodeType":"VariableDeclaration","scope":4741,"src":"15585:9:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4665,"name":"bytes32","nodeType":"ElementaryTypeName","src":"15585:7:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"15532:63:6"},"returnParameters":{"id":4668,"nodeType":"ParameterList","parameters":[],"src":"15605:0:6"},"scope":5121,"src":"15510:702:6","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":4864,"nodeType":"Block","src":"16633:945:6","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_enum$_ProposalState_$5510","typeString":"enum GovernorBravoDelegateStorageV1.ProposalState"},"id":4758,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":4754,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4745,"src":"16657:10:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4753,"name":"state","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4610,"src":"16651:5:6","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_enum$_ProposalState_$5510_$","typeString":"function (uint256) view returns (enum GovernorBravoDelegateStorageV1.ProposalState)"}},"id":4755,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16651:17:6","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$5510","typeString":"enum GovernorBravoDelegateStorageV1.ProposalState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4756,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5510,"src":"16672:13:6","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$5510_$","typeString":"type(enum GovernorBravoDelegateStorageV1.ProposalState)"}},"id":4757,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Active","nodeType":"MemberAccess","referencedDeclaration":null,"src":"16672:20:6","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$5510","typeString":"enum GovernorBravoDelegateStorageV1.ProposalState"}},"src":"16651:41:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"476f7665726e6f72427261766f3a3a63617374566f7465496e7465726e616c3a20766f74696e6720697320636c6f736564","id":4759,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16694:51:6","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_4d8168be21aac620ed72791717aa2911167b316e34d177cc4b315ea45590cb98","typeString":"literal_string \"GovernorBravo::castVoteInternal: voting is closed\""},"value":"GovernorBravo::castVoteInternal: voting is closed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_4d8168be21aac620ed72791717aa2911167b316e34d177cc4b315ea45590cb98","typeString":"literal_string \"GovernorBravo::castVoteInternal: voting is closed\""}],"id":4752,"name":"require","nodeType":"Identifier","overloadedDeclarations":[5555,5556],"referencedDeclaration":5556,"src":"16643:7:6","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4760,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16643:103:6","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4761,"nodeType":"ExpressionStatement","src":"16643:103:6"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":4765,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":4763,"name":"support","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4747,"src":"16764:7:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"argumentTypes":null,"hexValue":"32","id":4764,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16775:1:6","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"16764:12:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"476f7665726e6f72427261766f3a3a63617374566f7465496e7465726e616c3a20696e76616c696420766f74652074797065","id":4766,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16778:52:6","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_08ca01306f73add02bd237ec4eb9b88988c263b20bc18a865949156e713112d3","typeString":"literal_string \"GovernorBravo::castVoteInternal: invalid vote type\""},"value":"GovernorBravo::castVoteInternal: invalid vote type"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_08ca01306f73add02bd237ec4eb9b88988c263b20bc18a865949156e713112d3","typeString":"literal_string \"GovernorBravo::castVoteInternal: invalid vote type\""}],"id":4762,"name":"require","nodeType":"Identifier","overloadedDeclarations":[5555,5556],"referencedDeclaration":5556,"src":"16756:7:6","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4767,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16756:75:6","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4768,"nodeType":"ExpressionStatement","src":"16756:75:6"},{"assignments":[4770],"declarations":[{"constant":false,"id":4770,"name":"proposal","nodeType":"VariableDeclaration","scope":4864,"src":"16841:25:6","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5494_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal"},"typeName":{"contractScope":null,"id":4769,"name":"Proposal","nodeType":"UserDefinedTypeName","referencedDeclaration":5494,"src":"16841:8:6","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5494_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal"}},"value":null,"visibility":"internal"}],"id":4774,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":4771,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5451,"src":"16869:9:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$5494_storage_$","typeString":"mapping(uint256 => struct GovernorBravoDelegateStorageV1.Proposal storage ref)"}},"id":4773,"indexExpression":{"argumentTypes":null,"id":4772,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4745,"src":"16879:10:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16869:21:6","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5494_storage","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"16841:49:6"},{"assignments":[4776],"declarations":[{"constant":false,"id":4776,"name":"receipt","nodeType":"VariableDeclaration","scope":4864,"src":"16900:23:6","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$5501_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Receipt"},"typeName":{"contractScope":null,"id":4775,"name":"Receipt","nodeType":"UserDefinedTypeName","referencedDeclaration":5501,"src":"16900:7:6","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$5501_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Receipt"}},"value":null,"visibility":"internal"}],"id":4781,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4777,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4770,"src":"16926:8:6","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5494_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage pointer"}},"id":4778,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"receipts","nodeType":"MemberAccess","referencedDeclaration":5491,"src":"16926:17:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Receipt_$5501_storage_$","typeString":"mapping(address => struct GovernorBravoDelegateStorageV1.Receipt storage ref)"}},"id":4780,"indexExpression":{"argumentTypes":null,"id":4779,"name":"voter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4743,"src":"16944:5:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16926:24:6","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$5501_storage","typeString":"struct GovernorBravoDelegateStorageV1.Receipt storage ref"}},"nodeType":"VariableDeclarationStatement","src":"16900:50:6"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":4786,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4783,"name":"receipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4776,"src":"16968:7:6","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$5501_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Receipt storage pointer"}},"id":4784,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"hasVoted","nodeType":"MemberAccess","referencedDeclaration":5496,"src":"16968:16:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"66616c7365","id":4785,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"16988:5:6","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"16968:25:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"476f7665726e6f72427261766f3a3a63617374566f7465496e7465726e616c3a20766f74657220616c726561647920766f746564","id":4787,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16995:54:6","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_4db4ad45458d858d12fec9cccfea17def9275e2163ec97403e3da078a04e1a11","typeString":"literal_string \"GovernorBravo::castVoteInternal: voter already voted\""},"value":"GovernorBravo::castVoteInternal: voter already voted"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_4db4ad45458d858d12fec9cccfea17def9275e2163ec97403e3da078a04e1a11","typeString":"literal_string \"GovernorBravo::castVoteInternal: voter already voted\""}],"id":4782,"name":"require","nodeType":"Identifier","overloadedDeclarations":[5555,5556],"referencedDeclaration":5556,"src":"16960:7:6","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4788,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16960:90:6","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4789,"nodeType":"ExpressionStatement","src":"16960:90:6"},{"assignments":[4791],"declarations":[{"constant":false,"id":4791,"name":"votes","nodeType":"VariableDeclaration","scope":4864,"src":"17060:12:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":4790,"name":"uint96","nodeType":"ElementaryTypeName","src":"17060:6:6","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"value":null,"visibility":"internal"}],"id":4798,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":4794,"name":"voter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4743,"src":"17098:5:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4795,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4770,"src":"17105:8:6","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5494_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage pointer"}},"id":4796,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"startBlock","nodeType":"MemberAccess","referencedDeclaration":5475,"src":"17105:19:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":4792,"name":"xvsVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5447,"src":"17075:8:6","typeDescriptions":{"typeIdentifier":"t_contract$_XvsVaultInterface_$2017","typeString":"contract XvsVaultInterface"}},"id":4793,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getPriorVotes","nodeType":"MemberAccess","referencedDeclaration":2016,"src":"17075:22:6","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_uint256_$returns$_t_uint96_$","typeString":"function (address,uint256) view external returns (uint96)"}},"id":4797,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17075:50:6","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"nodeType":"VariableDeclarationStatement","src":"17060:65:6"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":4801,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":4799,"name":"support","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4747,"src":"17140:7:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"30","id":4800,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17151:1:6","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"17140:12:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":4815,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":4813,"name":"support","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4747,"src":"17249:7:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"31","id":4814,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17260:1:6","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"17249:12:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":4829,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":4827,"name":"support","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4747,"src":"17350:7:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"32","id":4828,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17361:1:6","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"17350:12:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":4841,"nodeType":"IfStatement","src":"17346:103:6","trueBody":{"id":4840,"nodeType":"Block","src":"17364:85:6","statements":[{"expression":{"argumentTypes":null,"id":4838,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4830,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4770,"src":"17378:8:6","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5494_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage pointer"}},"id":4832,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"abstainVotes","nodeType":"MemberAccess","referencedDeclaration":5483,"src":"17378:21:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4834,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4770,"src":"17409:8:6","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5494_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage pointer"}},"id":4835,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"abstainVotes","nodeType":"MemberAccess","referencedDeclaration":5483,"src":"17409:21:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":4836,"name":"votes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4791,"src":"17432:5:6","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint96","typeString":"uint96"}],"id":4833,"name":"add256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5087,"src":"17402:6:6","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":4837,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17402:36:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17378:60:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4839,"nodeType":"ExpressionStatement","src":"17378:60:6"}]}},"id":4842,"nodeType":"IfStatement","src":"17245:204:6","trueBody":{"id":4826,"nodeType":"Block","src":"17263:77:6","statements":[{"expression":{"argumentTypes":null,"id":4824,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4816,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4770,"src":"17277:8:6","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5494_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage pointer"}},"id":4818,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"forVotes","nodeType":"MemberAccess","referencedDeclaration":5479,"src":"17277:17:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4820,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4770,"src":"17304:8:6","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5494_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage pointer"}},"id":4821,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"forVotes","nodeType":"MemberAccess","referencedDeclaration":5479,"src":"17304:17:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":4822,"name":"votes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4791,"src":"17323:5:6","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint96","typeString":"uint96"}],"id":4819,"name":"add256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5087,"src":"17297:6:6","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":4823,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17297:32:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17277:52:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4825,"nodeType":"ExpressionStatement","src":"17277:52:6"}]}},"id":4843,"nodeType":"IfStatement","src":"17136:313:6","trueBody":{"id":4812,"nodeType":"Block","src":"17154:85:6","statements":[{"expression":{"argumentTypes":null,"id":4810,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4802,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4770,"src":"17168:8:6","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5494_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage pointer"}},"id":4804,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"againstVotes","nodeType":"MemberAccess","referencedDeclaration":5481,"src":"17168:21:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4806,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4770,"src":"17199:8:6","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5494_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal storage pointer"}},"id":4807,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"againstVotes","nodeType":"MemberAccess","referencedDeclaration":5481,"src":"17199:21:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":4808,"name":"votes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4791,"src":"17222:5:6","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint96","typeString":"uint96"}],"id":4805,"name":"add256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5087,"src":"17192:6:6","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":4809,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17192:36:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17168:60:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4811,"nodeType":"ExpressionStatement","src":"17168:60:6"}]}},{"expression":{"argumentTypes":null,"id":4848,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4844,"name":"receipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4776,"src":"17459:7:6","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$5501_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Receipt storage pointer"}},"id":4846,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"hasVoted","nodeType":"MemberAccess","referencedDeclaration":5496,"src":"17459:16:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"hexValue":"74727565","id":4847,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"17478:4:6","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"17459:23:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4849,"nodeType":"ExpressionStatement","src":"17459:23:6"},{"expression":{"argumentTypes":null,"id":4854,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4850,"name":"receipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4776,"src":"17492:7:6","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$5501_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Receipt storage pointer"}},"id":4852,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"support","nodeType":"MemberAccess","referencedDeclaration":5498,"src":"17492:15:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":4853,"name":"support","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4747,"src":"17510:7:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"17492:25:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":4855,"nodeType":"ExpressionStatement","src":"17492:25:6"},{"expression":{"argumentTypes":null,"id":4860,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4856,"name":"receipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4776,"src":"17527:7:6","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$5501_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Receipt storage pointer"}},"id":4858,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"votes","nodeType":"MemberAccess","referencedDeclaration":5500,"src":"17527:13:6","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":4859,"name":"votes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4791,"src":"17543:5:6","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"src":"17527:21:6","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"id":4861,"nodeType":"ExpressionStatement","src":"17527:21:6"},{"expression":{"argumentTypes":null,"id":4862,"name":"votes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4791,"src":"17566:5:6","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"functionReturnParameters":4751,"id":4863,"nodeType":"Return","src":"17559:12:6"}]},"documentation":"@notice Internal function that caries out voting logic\n@param voter The voter that is casting their vote\n@param proposalId The id of the proposal to vote on\n@param support The support value for the vote. 0=against, 1=for, 2=abstain\n@return The number of votes cast","id":4865,"implemented":true,"kind":"function","modifiers":[],"name":"castVoteInternal","nodeType":"FunctionDefinition","parameters":{"id":4748,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4743,"name":"voter","nodeType":"VariableDeclaration","scope":4865,"src":"16560:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4742,"name":"address","nodeType":"ElementaryTypeName","src":"16560:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":4745,"name":"proposalId","nodeType":"VariableDeclaration","scope":4865,"src":"16575:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4744,"name":"uint","nodeType":"ElementaryTypeName","src":"16575:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":4747,"name":"support","nodeType":"VariableDeclaration","scope":4865,"src":"16592:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":4746,"name":"uint8","nodeType":"ElementaryTypeName","src":"16592:5:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":null,"visibility":"internal"}],"src":"16559:47:6"},"returnParameters":{"id":4751,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4750,"name":"","nodeType":"VariableDeclaration","scope":4865,"src":"16625:6:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":4749,"name":"uint96","nodeType":"ElementaryTypeName","src":"16625:6:6","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"value":null,"visibility":"internal"}],"src":"16624:8:6"},"scope":5121,"src":"16534:1044:6","stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},{"body":{"id":4905,"nodeType":"Block","src":"17758:358:6","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":4879,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":4874,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4871,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5552,"src":"17776:3:6","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":4872,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"17776:10:6","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"id":4873,"name":"guardian","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5514,"src":"17790:8:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"17776:22:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":4878,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4875,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5552,"src":"17802:3:6","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":4876,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"17802:10:6","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"id":4877,"name":"admin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5426,"src":"17816:5:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"17802:19:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"17776:45:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"476f7665726e6f72427261766f3a3a5f736574477561726469616e3a2061646d696e206f7220677561726469616e206f6e6c79","id":4880,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17823:53:6","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_f13903e1eabc7759eed6c0bff3ddcc707d2fd566e366ac64c25fa90624578ecc","typeString":"literal_string \"GovernorBravo::_setGuardian: admin or guardian only\""},"value":"GovernorBravo::_setGuardian: admin or guardian only"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f13903e1eabc7759eed6c0bff3ddcc707d2fd566e366ac64c25fa90624578ecc","typeString":"literal_string \"GovernorBravo::_setGuardian: admin or guardian only\""}],"id":4870,"name":"require","nodeType":"Identifier","overloadedDeclarations":[5555,5556],"referencedDeclaration":5556,"src":"17768:7:6","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4881,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17768:109:6","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4882,"nodeType":"ExpressionStatement","src":"17768:109:6"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":4888,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":4884,"name":"newGuardian","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4867,"src":"17895:11:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":4886,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17918:1:6","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":4885,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17910:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":4887,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17910:10:6","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"17895:25:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"476f7665726e6f72427261766f3a3a5f736574477561726469616e3a2063616e6e6f74206c69766520776974686f7574206120677561726469616e","id":4889,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17922:61:6","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_eefe3d246cd1a613548764705d4b203394f59e072e13911ce8f5cea82fc81a5c","typeString":"literal_string \"GovernorBravo::_setGuardian: cannot live without a guardian\""},"value":"GovernorBravo::_setGuardian: cannot live without a guardian"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_eefe3d246cd1a613548764705d4b203394f59e072e13911ce8f5cea82fc81a5c","typeString":"literal_string \"GovernorBravo::_setGuardian: cannot live without a guardian\""}],"id":4883,"name":"require","nodeType":"Identifier","overloadedDeclarations":[5555,5556],"referencedDeclaration":5556,"src":"17887:7:6","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4890,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17887:97:6","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4891,"nodeType":"ExpressionStatement","src":"17887:97:6"},{"assignments":[4893],"declarations":[{"constant":false,"id":4893,"name":"oldGuardian","nodeType":"VariableDeclaration","scope":4905,"src":"17994:19:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4892,"name":"address","nodeType":"ElementaryTypeName","src":"17994:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"id":4895,"initialValue":{"argumentTypes":null,"id":4894,"name":"guardian","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5514,"src":"18016:8:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"17994:30:6"},{"expression":{"argumentTypes":null,"id":4898,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":4896,"name":"guardian","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5514,"src":"18034:8:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":4897,"name":"newGuardian","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4867,"src":"18045:11:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"18034:22:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":4899,"nodeType":"ExpressionStatement","src":"18034:22:6"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":4901,"name":"oldGuardian","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4893,"src":"18084:11:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":4902,"name":"newGuardian","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4867,"src":"18097:11:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":4900,"name":"NewGuardian","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5417,"src":"18072:11:6","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":4903,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18072:37:6","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4904,"nodeType":"EmitStatement","src":"18067:42:6"}]},"documentation":"@notice Sets the new governance guardian\n@param newGuardian the address of the new guardian","id":4906,"implemented":true,"kind":"function","modifiers":[],"name":"_setGuardian","nodeType":"FunctionDefinition","parameters":{"id":4868,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4867,"name":"newGuardian","nodeType":"VariableDeclaration","scope":4906,"src":"17728:19:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4866,"name":"address","nodeType":"ElementaryTypeName","src":"17728:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"17727:21:6"},"returnParameters":{"id":4869,"nodeType":"ParameterList","parameters":[],"src":"17758:0:6"},"scope":5121,"src":"17706:410:6","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":4960,"nodeType":"Block","src":"18455:427:6","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":4915,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4912,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5552,"src":"18473:3:6","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":4913,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"18473:10:6","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"id":4914,"name":"admin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5426,"src":"18487:5:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"18473:19:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"476f7665726e6f72427261766f3a3a5f696e6974696174653a2061646d696e206f6e6c79","id":4916,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18494:38:6","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_c71cb3e7fc78df5497c78b1de8f5dd56ad9be94f8e673bd31105debcc4940e0c","typeString":"literal_string \"GovernorBravo::_initiate: admin only\""},"value":"GovernorBravo::_initiate: admin only"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c71cb3e7fc78df5497c78b1de8f5dd56ad9be94f8e673bd31105debcc4940e0c","typeString":"literal_string \"GovernorBravo::_initiate: admin only\""}],"id":4911,"name":"require","nodeType":"Identifier","overloadedDeclarations":[5555,5556],"referencedDeclaration":5556,"src":"18465:7:6","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4917,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18465:68:6","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4918,"nodeType":"ExpressionStatement","src":"18465:68:6"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4922,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":4920,"name":"initialProposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5441,"src":"18551:17:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"30","id":4921,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18572:1:6","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"18551:22:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"476f7665726e6f72427261766f3a3a5f696e6974696174653a2063616e206f6e6c7920696e697469617465206f6e6365","id":4923,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18575:50:6","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_928739bbf55fe0185a70df55366e78160f0fe2084090e539cc66d62f04507e17","typeString":"literal_string \"GovernorBravo::_initiate: can only initiate once\""},"value":"GovernorBravo::_initiate: can only initiate once"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_928739bbf55fe0185a70df55366e78160f0fe2084090e539cc66d62f04507e17","typeString":"literal_string \"GovernorBravo::_initiate: can only initiate once\""}],"id":4919,"name":"require","nodeType":"Identifier","overloadedDeclarations":[5555,5556],"referencedDeclaration":5556,"src":"18543:7:6","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4924,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18543:83:6","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4925,"nodeType":"ExpressionStatement","src":"18543:83:6"},{"expression":{"argumentTypes":null,"id":4932,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":4926,"name":"proposalCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5443,"src":"18636:13:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":4928,"name":"governorAlpha","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4908,"src":"18675:13:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4927,"name":"GovernorAlphaInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2023,"src":"18652:22:6","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GovernorAlphaInterface_$2023_$","typeString":"type(contract GovernorAlphaInterface)"}},"id":4929,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18652:37:6","typeDescriptions":{"typeIdentifier":"t_contract$_GovernorAlphaInterface_$2023","typeString":"contract GovernorAlphaInterface"}},"id":4930,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"proposalCount","nodeType":"MemberAccess","referencedDeclaration":2022,"src":"18652:51:6","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$_t_uint256_$","typeString":"function () external returns (uint256)"}},"id":4931,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18652:53:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18636:69:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4933,"nodeType":"ExpressionStatement","src":"18636:69:6"},{"expression":{"argumentTypes":null,"id":4936,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":4934,"name":"initialProposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5441,"src":"18715:17:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":4935,"name":"proposalCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5443,"src":"18735:13:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18715:33:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4937,"nodeType":"ExpressionStatement","src":"18715:33:6"},{"body":{"id":4958,"nodeType":"Block","src":"18817:59:6","statements":[{"expression":{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":4952,"name":"proposalTimelocks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5536,"src":"18831:17:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_contract$_TimelockInterface_$2007_$","typeString":"mapping(uint256 => contract TimelockInterface)"}},"id":4954,"indexExpression":{"argumentTypes":null,"id":4953,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4939,"src":"18849:1:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18831:20:6","typeDescriptions":{"typeIdentifier":"t_contract$_TimelockInterface_$2007","typeString":"contract TimelockInterface"}},"id":4955,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"acceptAdmin","nodeType":"MemberAccess","referencedDeclaration":1956,"src":"18831:32:6","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":4956,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18831:34:6","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4957,"nodeType":"ExpressionStatement","src":"18831:34:6"}]},"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4948,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":4941,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4939,"src":"18774:1:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":4947,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4943,"name":"ProposalType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5521,"src":"18784:12:6","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalType_$5521_$","typeString":"type(enum GovernorBravoDelegateStorageV2.ProposalType)"}},"id":4944,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"CRITICAL","nodeType":"MemberAccess","referencedDeclaration":null,"src":"18784:21:6","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$5521","typeString":"enum GovernorBravoDelegateStorageV2.ProposalType"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_ProposalType_$5521","typeString":"enum GovernorBravoDelegateStorageV2.ProposalType"}],"id":4942,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18778:5:6","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":"uint8"},"id":4945,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18778:28:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"argumentTypes":null,"hexValue":"31","id":4946,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18809:1:6","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"18778:32:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"18774:36:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4959,"initializationExpression":{"assignments":[4939],"declarations":[{"constant":false,"id":4939,"name":"i","nodeType":"VariableDeclaration","scope":4959,"src":"18763:9:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4938,"name":"uint256","nodeType":"ElementaryTypeName","src":"18763:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":4940,"initialValue":null,"nodeType":"VariableDeclarationStatement","src":"18763:9:6"},"loopExpression":{"expression":{"argumentTypes":null,"id":4950,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"18812:3:6","subExpression":{"argumentTypes":null,"id":4949,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4939,"src":"18814:1:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4951,"nodeType":"ExpressionStatement","src":"18812:3:6"},"nodeType":"ForStatement","src":"18758:118:6"}]},"documentation":"@notice Initiate the GovernorBravo contract\n@dev Admin only. Sets initial proposal id which initiates the contract, ensuring a continuous proposal id count\n@param governorAlpha The address for the Governor to continue the proposal id count from","id":4961,"implemented":true,"kind":"function","modifiers":[],"name":"_initiate","nodeType":"FunctionDefinition","parameters":{"id":4909,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4908,"name":"governorAlpha","nodeType":"VariableDeclaration","scope":4961,"src":"18423:21:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4907,"name":"address","nodeType":"ElementaryTypeName","src":"18423:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"18422:23:6"},"returnParameters":{"id":4910,"nodeType":"ParameterList","parameters":[],"src":"18455:0:6"},"scope":5121,"src":"18404:478:6","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":4987,"nodeType":"Block","src":"19105:314:6","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":4970,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4967,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5552,"src":"19123:3:6","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":4968,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"19123:10:6","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"id":4969,"name":"admin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5426,"src":"19137:5:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"19123:19:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"476f7665726e6f72427261766f3a3a5f73657450726f706f73616c4d61784f7065726174696f6e733a2061646d696e206f6e6c79","id":4971,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"19144:54:6","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_b749d63b62ec9246db67e424bdb9ab02b022070d8cd7b8fbd4eca85c166a94e5","typeString":"literal_string \"GovernorBravo::_setProposalMaxOperations: admin only\""},"value":"GovernorBravo::_setProposalMaxOperations: admin only"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b749d63b62ec9246db67e424bdb9ab02b022070d8cd7b8fbd4eca85c166a94e5","typeString":"literal_string \"GovernorBravo::_setProposalMaxOperations: admin only\""}],"id":4966,"name":"require","nodeType":"Identifier","overloadedDeclarations":[5555,5556],"referencedDeclaration":5556,"src":"19115:7:6","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4972,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19115:84:6","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4973,"nodeType":"ExpressionStatement","src":"19115:84:6"},{"assignments":[4975],"declarations":[{"constant":false,"id":4975,"name":"oldProposalMaxOperations","nodeType":"VariableDeclaration","scope":4987,"src":"19209:29:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4974,"name":"uint","nodeType":"ElementaryTypeName","src":"19209:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":4977,"initialValue":{"argumentTypes":null,"id":4976,"name":"proposalMaxOperations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5512,"src":"19241:21:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"19209:53:6"},{"expression":{"argumentTypes":null,"id":4980,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":4978,"name":"proposalMaxOperations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5512,"src":"19272:21:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":4979,"name":"proposalMaxOperations_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4963,"src":"19296:22:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19272:46:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4981,"nodeType":"ExpressionStatement","src":"19272:46:6"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":4983,"name":"oldProposalMaxOperations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4975,"src":"19363:24:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":4984,"name":"proposalMaxOperations_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4963,"src":"19389:22:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4982,"name":"ProposalMaxOperationsUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5423,"src":"19334:28:6","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":4985,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19334:78:6","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4986,"nodeType":"EmitStatement","src":"19329:83:6"}]},"documentation":"@notice Set max proposal operations\n@dev Admin only.\n@param proposalMaxOperations_ Max proposal operations","id":4988,"implemented":true,"kind":"function","modifiers":[],"name":"_setProposalMaxOperations","nodeType":"FunctionDefinition","parameters":{"id":4964,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4963,"name":"proposalMaxOperations_","nodeType":"VariableDeclaration","scope":4988,"src":"19067:27:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4962,"name":"uint","nodeType":"ElementaryTypeName","src":"19067:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"19066:29:6"},"returnParameters":{"id":4965,"nodeType":"ParameterList","parameters":[],"src":"19105:0:6"},"scope":5121,"src":"19032:387:6","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":5014,"nodeType":"Block","src":"19793:461:6","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":4997,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4994,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5552,"src":"19843:3:6","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":4995,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"19843:10:6","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"id":4996,"name":"admin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5426,"src":"19857:5:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"19843:19:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"476f7665726e6f72427261766f3a5f73657450656e64696e6741646d696e3a2061646d696e206f6e6c79","id":4998,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"19864:44:6","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_15b86236d8e6aaae4fbee852729fd208d60cf2b5c9f6ec4ea2291e707cb07995","typeString":"literal_string \"GovernorBravo:_setPendingAdmin: admin only\""},"value":"GovernorBravo:_setPendingAdmin: admin only"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_15b86236d8e6aaae4fbee852729fd208d60cf2b5c9f6ec4ea2291e707cb07995","typeString":"literal_string \"GovernorBravo:_setPendingAdmin: admin only\""}],"id":4993,"name":"require","nodeType":"Identifier","overloadedDeclarations":[5555,5556],"referencedDeclaration":5556,"src":"19835:7:6","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4999,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19835:74:6","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5000,"nodeType":"ExpressionStatement","src":"19835:74:6"},{"assignments":[5002],"declarations":[{"constant":false,"id":5002,"name":"oldPendingAdmin","nodeType":"VariableDeclaration","scope":5014,"src":"19980:23:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5001,"name":"address","nodeType":"ElementaryTypeName","src":"19980:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"id":5004,"initialValue":{"argumentTypes":null,"id":5003,"name":"pendingAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5428,"src":"20006:12:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"19980:38:6"},{"expression":{"argumentTypes":null,"id":5007,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":5005,"name":"pendingAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5428,"src":"20086:12:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":5006,"name":"newPendingAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4990,"src":"20101:15:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"20086:30:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":5008,"nodeType":"ExpressionStatement","src":"20086:30:6"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":5010,"name":"oldPendingAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5002,"src":"20214:15:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":5011,"name":"newPendingAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4990,"src":"20231:15:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":5009,"name":"NewPendingAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5405,"src":"20198:15:6","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":5012,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20198:49:6","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5013,"nodeType":"EmitStatement","src":"20193:54:6"}]},"documentation":"@notice Begins transfer of admin rights. The newPendingAdmin must call `_acceptAdmin` to finalize the transfer.\n@dev Admin function to begin change of admin. The newPendingAdmin must call `_acceptAdmin` to finalize the transfer.\n@param newPendingAdmin New pending admin.","id":5015,"implemented":true,"kind":"function","modifiers":[],"name":"_setPendingAdmin","nodeType":"FunctionDefinition","parameters":{"id":4991,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4990,"name":"newPendingAdmin","nodeType":"VariableDeclaration","scope":5015,"src":"19759:23:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4989,"name":"address","nodeType":"ElementaryTypeName","src":"19759:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"19758:25:6"},"returnParameters":{"id":4992,"nodeType":"ParameterList","parameters":[],"src":"19793:0:6"},"scope":5121,"src":"19733:521:6","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":5061,"nodeType":"Block","src":"20467:622:6","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":5029,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":5022,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":5019,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5552,"src":"20570:3:6","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5020,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"20570:10:6","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"id":5021,"name":"pendingAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5428,"src":"20584:12:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"20570:26:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"id":5028,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":5023,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5552,"src":"20600:3:6","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5024,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"20600:10:6","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":5026,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20622:1:6","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":5025,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20614:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":5027,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20614:10:6","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"20600:24:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"20570:54:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"476f7665726e6f72427261766f3a5f61636365707441646d696e3a2070656e64696e672061646d696e206f6e6c79","id":5030,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"20638:48:6","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_a193c43d3fcb6bad7dee9cd0aee4d22b57650045fda67e20f8280b4ef9e1a8a8","typeString":"literal_string \"GovernorBravo:_acceptAdmin: pending admin only\""},"value":"GovernorBravo:_acceptAdmin: pending admin only"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_a193c43d3fcb6bad7dee9cd0aee4d22b57650045fda67e20f8280b4ef9e1a8a8","typeString":"literal_string \"GovernorBravo:_acceptAdmin: pending admin only\""}],"id":5018,"name":"require","nodeType":"Identifier","overloadedDeclarations":[5555,5556],"referencedDeclaration":5556,"src":"20549:7:6","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":5031,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20549:147:6","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5032,"nodeType":"ExpressionStatement","src":"20549:147:6"},{"assignments":[5034],"declarations":[{"constant":false,"id":5034,"name":"oldAdmin","nodeType":"VariableDeclaration","scope":5061,"src":"20759:16:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5033,"name":"address","nodeType":"ElementaryTypeName","src":"20759:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"id":5036,"initialValue":{"argumentTypes":null,"id":5035,"name":"admin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5426,"src":"20778:5:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"20759:24:6"},{"assignments":[5038],"declarations":[{"constant":false,"id":5038,"name":"oldPendingAdmin","nodeType":"VariableDeclaration","scope":5061,"src":"20793:23:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5037,"name":"address","nodeType":"ElementaryTypeName","src":"20793:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"id":5040,"initialValue":{"argumentTypes":null,"id":5039,"name":"pendingAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5428,"src":"20819:12:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"20793:38:6"},{"expression":{"argumentTypes":null,"id":5043,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":5041,"name":"admin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5426,"src":"20889:5:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":5042,"name":"pendingAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5428,"src":"20897:12:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"20889:20:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":5044,"nodeType":"ExpressionStatement","src":"20889:20:6"},{"expression":{"argumentTypes":null,"id":5049,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":5045,"name":"pendingAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5428,"src":"20955:12:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":5047,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20978:1:6","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":5046,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20970:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":5048,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20970:10:6","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"20955:25:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":5050,"nodeType":"ExpressionStatement","src":"20955:25:6"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":5052,"name":"oldAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5034,"src":"21005:8:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":5053,"name":"admin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5426,"src":"21015:5:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":5051,"name":"NewAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5411,"src":"20996:8:6","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":5054,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20996:25:6","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5055,"nodeType":"EmitStatement","src":"20991:30:6"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":5057,"name":"oldPendingAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5038,"src":"21052:15:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":5058,"name":"pendingAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5428,"src":"21069:12:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":5056,"name":"NewPendingAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5405,"src":"21036:15:6","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":5059,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"21036:46:6","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5060,"nodeType":"EmitStatement","src":"21031:51:6"}]},"documentation":"@notice Accepts transfer of admin rights. msg.sender must be pendingAdmin\n@dev Admin function for pending admin to accept role and update admin","id":5062,"implemented":true,"kind":"function","modifiers":[],"name":"_acceptAdmin","nodeType":"FunctionDefinition","parameters":{"id":5016,"nodeType":"ParameterList","parameters":[],"src":"20455:2:6"},"returnParameters":{"id":5017,"nodeType":"ParameterList","parameters":[],"src":"20467:0:6"},"scope":5121,"src":"20434:655:6","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":5086,"nodeType":"Block","src":"21162:95:6","statements":[{"assignments":[5072],"declarations":[{"constant":false,"id":5072,"name":"c","nodeType":"VariableDeclaration","scope":5086,"src":"21172:6:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5071,"name":"uint","nodeType":"ElementaryTypeName","src":"21172:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":5076,"initialValue":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5075,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":5073,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5064,"src":"21181:1:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"argumentTypes":null,"id":5074,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5066,"src":"21185:1:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21181:5:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"21172:14:6"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5080,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":5078,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5072,"src":"21204:1:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"argumentTypes":null,"id":5079,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5064,"src":"21209:1:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21204:6:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"6164646974696f6e206f766572666c6f77","id":5081,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"21212:19:6","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":5077,"name":"require","nodeType":"Identifier","overloadedDeclarations":[5555,5556],"referencedDeclaration":5556,"src":"21196:7:6","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":5082,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"21196:36:6","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5083,"nodeType":"ExpressionStatement","src":"21196:36:6"},{"expression":{"argumentTypes":null,"id":5084,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5072,"src":"21249:1:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":5070,"id":5085,"nodeType":"Return","src":"21242:8:6"}]},"documentation":null,"id":5087,"implemented":true,"kind":"function","modifiers":[],"name":"add256","nodeType":"FunctionDefinition","parameters":{"id":5067,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5064,"name":"a","nodeType":"VariableDeclaration","scope":5087,"src":"21111:9:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5063,"name":"uint256","nodeType":"ElementaryTypeName","src":"21111:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":5066,"name":"b","nodeType":"VariableDeclaration","scope":5087,"src":"21122:9:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5065,"name":"uint256","nodeType":"ElementaryTypeName","src":"21122:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"21110:22:6"},"returnParameters":{"id":5070,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5069,"name":"","nodeType":"VariableDeclaration","scope":5087,"src":"21156:4:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5068,"name":"uint","nodeType":"ElementaryTypeName","src":"21156:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"21155:6:6"},"scope":5121,"src":"21095:162:6","stateMutability":"pure","superFunction":null,"visibility":"internal"},{"body":{"id":5107,"nodeType":"Block","src":"21330:79:6","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5099,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":5097,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5091,"src":"21348:1:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"argumentTypes":null,"id":5098,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5089,"src":"21353:1:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21348:6:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"7375627472616374696f6e20756e646572666c6f77","id":5100,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"21356:23:6","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":5096,"name":"require","nodeType":"Identifier","overloadedDeclarations":[5555,5556],"referencedDeclaration":5556,"src":"21340:7:6","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":5101,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"21340:40:6","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5102,"nodeType":"ExpressionStatement","src":"21340:40:6"},{"expression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5105,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":5103,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5089,"src":"21397:1:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"argumentTypes":null,"id":5104,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5091,"src":"21401:1:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21397:5:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":5095,"id":5106,"nodeType":"Return","src":"21390:12:6"}]},"documentation":null,"id":5108,"implemented":true,"kind":"function","modifiers":[],"name":"sub256","nodeType":"FunctionDefinition","parameters":{"id":5092,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5089,"name":"a","nodeType":"VariableDeclaration","scope":5108,"src":"21279:9:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5088,"name":"uint256","nodeType":"ElementaryTypeName","src":"21279:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":5091,"name":"b","nodeType":"VariableDeclaration","scope":5108,"src":"21290:9:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5090,"name":"uint256","nodeType":"ElementaryTypeName","src":"21290:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"21278:22:6"},"returnParameters":{"id":5095,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5094,"name":"","nodeType":"VariableDeclaration","scope":5108,"src":"21324:4:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5093,"name":"uint","nodeType":"ElementaryTypeName","src":"21324:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"21323:6:6"},"scope":5121,"src":"21263:146:6","stateMutability":"pure","superFunction":null,"visibility":"internal"},{"body":{"id":5119,"nodeType":"Block","src":"21474:115:6","statements":[{"assignments":[5114],"declarations":[{"constant":false,"id":5114,"name":"chainId","nodeType":"VariableDeclaration","scope":5119,"src":"21484:12:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5113,"name":"uint","nodeType":"ElementaryTypeName","src":"21484:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":5115,"initialValue":null,"nodeType":"VariableDeclarationStatement","src":"21484:12:6"},{"externalReferences":[{"chainId":{"declaration":5114,"isOffset":false,"isSlot":false,"src":"21529:7:6","valueSize":1}}],"id":5116,"nodeType":"InlineAssembly","operations":"{ chainId := chainid() }","src":"21506:53:6"},{"expression":{"argumentTypes":null,"id":5117,"name":"chainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5114,"src":"21575:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":5112,"id":5118,"nodeType":"Return","src":"21568:14:6"}]},"documentation":null,"id":5120,"implemented":true,"kind":"function","modifiers":[],"name":"getChainIdInternal","nodeType":"FunctionDefinition","parameters":{"id":5109,"nodeType":"ParameterList","parameters":[],"src":"21442:2:6"},"returnParameters":{"id":5112,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5111,"name":"","nodeType":"VariableDeclaration","scope":5120,"src":"21468:4:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5110,"name":"uint","nodeType":"ElementaryTypeName","src":"21468:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"21467:6:6"},"scope":5121,"src":"21415:174:6","stateMutability":"pure","superFunction":null,"visibility":"internal"}],"scope":5122,"src":"332:21259:6"}],"src":"0:21592:6"},"id":6},"contracts/legacy/GovernorBravoInterfaces.sol":{"ast":{"absolutePath":"contracts/legacy/GovernorBravoInterfaces.sol","exportedSymbols":{"GovernorBravoDelegateStorageV1":[5316],"GovernorBravoDelegatorStorage":[5234],"GovernorBravoEventsV1":[5227]},"id":5317,"nodeType":"SourceUnit","nodes":[{"id":5123,"literals":["solidity","^","0.5",".16"],"nodeType":"PragmaDirective","src":"0:24:7"},{"id":5124,"literals":["experimental","ABIEncoderV2"],"nodeType":"PragmaDirective","src":"25:33:7"},{"absolutePath":"contracts/Governance/GovernorBravoInterfaces.sol","file":"../Governance/GovernorBravoInterfaces.sol","id":5128,"nodeType":"ImportDirective","scope":5317,"sourceUnit":2024,"src":"60:121:7","symbolAliases":[{"foreign":5125,"local":null},{"foreign":5126,"local":null},{"foreign":5127,"local":null}],"unitAlias":""},{"baseContracts":[],"contractDependencies":[],"contractKind":"contract","documentation":"@title GovernorBravoEvents\n@author Venus\n@notice Set of events emitted by the first GovernorBravo implementation contract.\n@dev This contract is included for archival and testing purposes as the ProposalCreated event has a different signature than the latest implementation.","fullyImplemented":true,"id":5227,"linearizedBaseContracts":[5227],"name":"GovernorBravoEventsV1","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"documentation":"@notice An event emitted when a new proposal is created","id":5152,"name":"ProposalCreated","nodeType":"EventDefinition","parameters":{"id":5151,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5130,"indexed":false,"name":"id","nodeType":"VariableDeclaration","scope":5152,"src":"610:7:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5129,"name":"uint","nodeType":"ElementaryTypeName","src":"610:4:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":5132,"indexed":false,"name":"proposer","nodeType":"VariableDeclaration","scope":5152,"src":"627:16:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5131,"name":"address","nodeType":"ElementaryTypeName","src":"627:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":5135,"indexed":false,"name":"targets","nodeType":"VariableDeclaration","scope":5152,"src":"653:17:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":5133,"name":"address","nodeType":"ElementaryTypeName","src":"653:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":5134,"length":null,"nodeType":"ArrayTypeName","src":"653:9:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":5138,"indexed":false,"name":"values","nodeType":"VariableDeclaration","scope":5152,"src":"680:13:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":5136,"name":"uint","nodeType":"ElementaryTypeName","src":"680:4:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5137,"length":null,"nodeType":"ArrayTypeName","src":"680:6:7","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":5141,"indexed":false,"name":"signatures","nodeType":"VariableDeclaration","scope":5152,"src":"703:19:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_$dyn_memory_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":5139,"name":"string","nodeType":"ElementaryTypeName","src":"703:6:7","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":5140,"length":null,"nodeType":"ArrayTypeName","src":"703:8:7","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":5144,"indexed":false,"name":"calldatas","nodeType":"VariableDeclaration","scope":5152,"src":"732:17:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":5142,"name":"bytes","nodeType":"ElementaryTypeName","src":"732:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":5143,"length":null,"nodeType":"ArrayTypeName","src":"732:7:7","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":5146,"indexed":false,"name":"startBlock","nodeType":"VariableDeclaration","scope":5152,"src":"759:15:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5145,"name":"uint","nodeType":"ElementaryTypeName","src":"759:4:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":5148,"indexed":false,"name":"endBlock","nodeType":"VariableDeclaration","scope":5152,"src":"784:13:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5147,"name":"uint","nodeType":"ElementaryTypeName","src":"784:4:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":5150,"indexed":false,"name":"description","nodeType":"VariableDeclaration","scope":5152,"src":"807:18:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5149,"name":"string","nodeType":"ElementaryTypeName","src":"807:6:7","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"}],"src":"600:231:7"},"src":"579:253:7"},{"anonymous":false,"documentation":"@notice An event emitted when a vote has been cast on a proposal\n @param voter The address which casted a vote\n @param proposalId The proposal id which was voted on\n @param support Support value for the vote. 0=against, 1=for, 2=abstain\n @param votes Number of votes which were cast by the voter\n @param reason The reason given for the vote by the voter","id":5164,"name":"VoteCast","nodeType":"EventDefinition","parameters":{"id":5163,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5154,"indexed":true,"name":"voter","nodeType":"VariableDeclaration","scope":5164,"src":"1250:21:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5153,"name":"address","nodeType":"ElementaryTypeName","src":"1250:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":5156,"indexed":false,"name":"proposalId","nodeType":"VariableDeclaration","scope":5164,"src":"1273:15:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5155,"name":"uint","nodeType":"ElementaryTypeName","src":"1273:4:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":5158,"indexed":false,"name":"support","nodeType":"VariableDeclaration","scope":5164,"src":"1290:13:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":5157,"name":"uint8","nodeType":"ElementaryTypeName","src":"1290:5:7","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":null,"visibility":"internal"},{"constant":false,"id":5160,"indexed":false,"name":"votes","nodeType":"VariableDeclaration","scope":5164,"src":"1305:10:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5159,"name":"uint","nodeType":"ElementaryTypeName","src":"1305:4:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":5162,"indexed":false,"name":"reason","nodeType":"VariableDeclaration","scope":5164,"src":"1317:13:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5161,"name":"string","nodeType":"ElementaryTypeName","src":"1317:6:7","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"}],"src":"1249:82:7"},"src":"1235:97:7"},{"anonymous":false,"documentation":"@notice An event emitted when a proposal has been canceled","id":5168,"name":"ProposalCanceled","nodeType":"EventDefinition","parameters":{"id":5167,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5166,"indexed":false,"name":"id","nodeType":"VariableDeclaration","scope":5168,"src":"1428:7:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5165,"name":"uint","nodeType":"ElementaryTypeName","src":"1428:4:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"1427:9:7"},"src":"1405:32:7"},{"anonymous":false,"documentation":"@notice An event emitted when a proposal has been queued in the Timelock","id":5174,"name":"ProposalQueued","nodeType":"EventDefinition","parameters":{"id":5173,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5170,"indexed":false,"name":"id","nodeType":"VariableDeclaration","scope":5174,"src":"1545:7:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5169,"name":"uint","nodeType":"ElementaryTypeName","src":"1545:4:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":5172,"indexed":false,"name":"eta","nodeType":"VariableDeclaration","scope":5174,"src":"1554:8:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5171,"name":"uint","nodeType":"ElementaryTypeName","src":"1554:4:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"1544:19:7"},"src":"1524:40:7"},{"anonymous":false,"documentation":"@notice An event emitted when a proposal has been executed in the Timelock","id":5178,"name":"ProposalExecuted","nodeType":"EventDefinition","parameters":{"id":5177,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5176,"indexed":false,"name":"id","nodeType":"VariableDeclaration","scope":5178,"src":"1676:7:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5175,"name":"uint","nodeType":"ElementaryTypeName","src":"1676:4:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"1675:9:7"},"src":"1653:32:7"},{"anonymous":false,"documentation":"@notice An event emitted when the voting delay is set","id":5184,"name":"VotingDelaySet","nodeType":"EventDefinition","parameters":{"id":5183,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5180,"indexed":false,"name":"oldVotingDelay","nodeType":"VariableDeclaration","scope":5184,"src":"1774:19:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5179,"name":"uint","nodeType":"ElementaryTypeName","src":"1774:4:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":5182,"indexed":false,"name":"newVotingDelay","nodeType":"VariableDeclaration","scope":5184,"src":"1795:19:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5181,"name":"uint","nodeType":"ElementaryTypeName","src":"1795:4:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"1773:42:7"},"src":"1753:63:7"},{"anonymous":false,"documentation":"@notice An event emitted when the voting period is set","id":5190,"name":"VotingPeriodSet","nodeType":"EventDefinition","parameters":{"id":5189,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5186,"indexed":false,"name":"oldVotingPeriod","nodeType":"VariableDeclaration","scope":5190,"src":"1907:20:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5185,"name":"uint","nodeType":"ElementaryTypeName","src":"1907:4:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":5188,"indexed":false,"name":"newVotingPeriod","nodeType":"VariableDeclaration","scope":5190,"src":"1929:20:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5187,"name":"uint","nodeType":"ElementaryTypeName","src":"1929:4:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"1906:44:7"},"src":"1885:66:7"},{"anonymous":false,"documentation":"@notice Emitted when implementation is changed","id":5196,"name":"NewImplementation","nodeType":"EventDefinition","parameters":{"id":5195,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5192,"indexed":false,"name":"oldImplementation","nodeType":"VariableDeclaration","scope":5196,"src":"2036:25:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5191,"name":"address","nodeType":"ElementaryTypeName","src":"2036:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":5194,"indexed":false,"name":"newImplementation","nodeType":"VariableDeclaration","scope":5196,"src":"2063:25:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5193,"name":"address","nodeType":"ElementaryTypeName","src":"2063:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"2035:54:7"},"src":"2012:78:7"},{"anonymous":false,"documentation":"@notice Emitted when proposal threshold is set","id":5202,"name":"ProposalThresholdSet","nodeType":"EventDefinition","parameters":{"id":5201,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5198,"indexed":false,"name":"oldProposalThreshold","nodeType":"VariableDeclaration","scope":5202,"src":"2178:25:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5197,"name":"uint","nodeType":"ElementaryTypeName","src":"2178:4:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":5200,"indexed":false,"name":"newProposalThreshold","nodeType":"VariableDeclaration","scope":5202,"src":"2205:25:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5199,"name":"uint","nodeType":"ElementaryTypeName","src":"2205:4:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"2177:54:7"},"src":"2151:81:7"},{"anonymous":false,"documentation":"@notice Emitted when pendingAdmin is changed","id":5208,"name":"NewPendingAdmin","nodeType":"EventDefinition","parameters":{"id":5207,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5204,"indexed":false,"name":"oldPendingAdmin","nodeType":"VariableDeclaration","scope":5208,"src":"2313:23:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5203,"name":"address","nodeType":"ElementaryTypeName","src":"2313:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":5206,"indexed":false,"name":"newPendingAdmin","nodeType":"VariableDeclaration","scope":5208,"src":"2338:23:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5205,"name":"address","nodeType":"ElementaryTypeName","src":"2338:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"2312:50:7"},"src":"2291:72:7"},{"anonymous":false,"documentation":"@notice Emitted when pendingAdmin is accepted, which means admin is updated","id":5214,"name":"NewAdmin","nodeType":"EventDefinition","parameters":{"id":5213,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5210,"indexed":false,"name":"oldAdmin","nodeType":"VariableDeclaration","scope":5214,"src":"2468:16:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5209,"name":"address","nodeType":"ElementaryTypeName","src":"2468:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":5212,"indexed":false,"name":"newAdmin","nodeType":"VariableDeclaration","scope":5214,"src":"2486:16:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5211,"name":"address","nodeType":"ElementaryTypeName","src":"2486:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"2467:36:7"},"src":"2453:51:7"},{"anonymous":false,"documentation":"@notice Emitted when the new guardian address is set","id":5220,"name":"NewGuardian","nodeType":"EventDefinition","parameters":{"id":5219,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5216,"indexed":false,"name":"oldGuardian","nodeType":"VariableDeclaration","scope":5220,"src":"2589:19:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5215,"name":"address","nodeType":"ElementaryTypeName","src":"2589:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":5218,"indexed":false,"name":"newGuardian","nodeType":"VariableDeclaration","scope":5220,"src":"2610:19:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5217,"name":"address","nodeType":"ElementaryTypeName","src":"2610:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"2588:42:7"},"src":"2571:60:7"},{"anonymous":false,"documentation":"@notice Emitted when the maximum number of operations in one proposal is updated","id":5226,"name":"ProposalMaxOperationsUpdated","nodeType":"EventDefinition","parameters":{"id":5225,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5222,"indexed":false,"name":"oldMaxOperations","nodeType":"VariableDeclaration","scope":5226,"src":"2761:21:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5221,"name":"uint","nodeType":"ElementaryTypeName","src":"2761:4:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":5224,"indexed":false,"name":"newMaxOperations","nodeType":"VariableDeclaration","scope":5226,"src":"2784:21:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5223,"name":"uint","nodeType":"ElementaryTypeName","src":"2784:4:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"2760:46:7"},"src":"2726:81:7"}],"scope":5317,"src":"478:2331:7"},{"baseContracts":[],"contractDependencies":[],"contractKind":"contract","documentation":"@title GovernorBravoDelegatorStorage\n@author Venus\n@notice Storage layout of the `GovernorBravoDelegator` contract","fullyImplemented":true,"id":5234,"linearizedBaseContracts":[5234],"name":"GovernorBravoDelegatorStorage","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":5229,"name":"admin","nodeType":"VariableDeclaration","scope":5234,"src":"3036:20:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5228,"name":"address","nodeType":"ElementaryTypeName","src":"3036:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"public"},{"constant":false,"id":5231,"name":"pendingAdmin","nodeType":"VariableDeclaration","scope":5234,"src":"3119:27:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5230,"name":"address","nodeType":"ElementaryTypeName","src":"3119:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"public"},{"constant":false,"id":5233,"name":"implementation","nodeType":"VariableDeclaration","scope":5234,"src":"3195:29:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5232,"name":"address","nodeType":"ElementaryTypeName","src":"3195:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"public"}],"scope":5317,"src":"2943:284:7"},{"baseContracts":[{"arguments":null,"baseName":{"contractScope":null,"id":5235,"name":"GovernorBravoDelegatorStorage","nodeType":"UserDefinedTypeName","referencedDeclaration":5234,"src":"3466:29:7","typeDescriptions":{"typeIdentifier":"t_contract$_GovernorBravoDelegatorStorage_$5234","typeString":"contract GovernorBravoDelegatorStorage"}},"id":5236,"nodeType":"InheritanceSpecifier","src":"3466:29:7"}],"contractDependencies":[5234],"contractKind":"contract","documentation":"@title GovernorBravoDelegateStorageV1\n@dev This contract is included for archival and testing purposes as the Proposal struct has a different shape than the latest implementation.","fullyImplemented":true,"id":5316,"linearizedBaseContracts":[5316,5234],"name":"GovernorBravoDelegateStorageV1","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":5238,"name":"votingDelay","nodeType":"VariableDeclaration","scope":5316,"src":"3608:23:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5237,"name":"uint","nodeType":"ElementaryTypeName","src":"3608:4:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"public"},{"constant":false,"id":5240,"name":"votingPeriod","nodeType":"VariableDeclaration","scope":5316,"src":"3713:24:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5239,"name":"uint","nodeType":"ElementaryTypeName","src":"3713:4:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"public"},{"constant":false,"id":5242,"name":"proposalThreshold","nodeType":"VariableDeclaration","scope":5316,"src":"3842:29:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5241,"name":"uint","nodeType":"ElementaryTypeName","src":"3842:4:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"public"},{"constant":false,"id":5244,"name":"initialProposalId","nodeType":"VariableDeclaration","scope":5316,"src":"3928:29:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5243,"name":"uint","nodeType":"ElementaryTypeName","src":"3928:4:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"public"},{"constant":false,"id":5246,"name":"proposalCount","nodeType":"VariableDeclaration","scope":5316,"src":"4010:25:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5245,"name":"uint","nodeType":"ElementaryTypeName","src":"4010:4:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"public"},{"constant":false,"id":5248,"name":"timelock","nodeType":"VariableDeclaration","scope":5316,"src":"4101:33:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_TimelockInterface_$2007","typeString":"contract TimelockInterface"},"typeName":{"contractScope":null,"id":5247,"name":"TimelockInterface","nodeType":"UserDefinedTypeName","referencedDeclaration":2007,"src":"4101:17:7","typeDescriptions":{"typeIdentifier":"t_contract$_TimelockInterface_$2007","typeString":"contract TimelockInterface"}},"value":null,"visibility":"public"},{"constant":false,"id":5250,"name":"xvsVault","nodeType":"VariableDeclaration","scope":5316,"src":"4199:33:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_XvsVaultInterface_$2017","typeString":"contract XvsVaultInterface"},"typeName":{"contractScope":null,"id":5249,"name":"XvsVaultInterface","nodeType":"UserDefinedTypeName","referencedDeclaration":2017,"src":"4199:17:7","typeDescriptions":{"typeIdentifier":"t_contract$_XvsVaultInterface_$2017","typeString":"contract XvsVaultInterface"}},"value":null,"visibility":"public"},{"constant":false,"id":5254,"name":"proposals","nodeType":"VariableDeclaration","scope":5316,"src":"4306:42:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$5295_storage_$","typeString":"mapping(uint256 => struct GovernorBravoDelegateStorageV1.Proposal)"},"typeName":{"id":5253,"keyType":{"id":5251,"name":"uint","nodeType":"ElementaryTypeName","src":"4314:4:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"4306:25:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$5295_storage_$","typeString":"mapping(uint256 => struct GovernorBravoDelegateStorageV1.Proposal)"},"valueType":{"contractScope":null,"id":5252,"name":"Proposal","nodeType":"UserDefinedTypeName","referencedDeclaration":5295,"src":"4322:8:7","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5295_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal"}}},"value":null,"visibility":"public"},{"constant":false,"id":5258,"name":"latestProposalIds","nodeType":"VariableDeclaration","scope":5316,"src":"4409:49:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":5257,"keyType":{"id":5255,"name":"address","nodeType":"ElementaryTypeName","src":"4417:7:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"4409:24:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueType":{"id":5256,"name":"uint","nodeType":"ElementaryTypeName","src":"4428:4:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"value":null,"visibility":"public"},{"canonicalName":"GovernorBravoDelegateStorageV1.Proposal","id":5295,"members":[{"constant":false,"id":5260,"name":"id","nodeType":"VariableDeclaration","scope":5295,"src":"4547:7:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5259,"name":"uint","nodeType":"ElementaryTypeName","src":"4547:4:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":5262,"name":"proposer","nodeType":"VariableDeclaration","scope":5295,"src":"4608:16:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5261,"name":"address","nodeType":"ElementaryTypeName","src":"4608:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":5264,"name":"eta","nodeType":"VariableDeclaration","scope":5295,"src":"4746:8:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5263,"name":"uint","nodeType":"ElementaryTypeName","src":"4746:4:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":5267,"name":"targets","nodeType":"VariableDeclaration","scope":5295,"src":"4842:17:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":5265,"name":"address","nodeType":"ElementaryTypeName","src":"4842:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":5266,"length":null,"nodeType":"ArrayTypeName","src":"4842:9:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":5270,"name":"values","nodeType":"VariableDeclaration","scope":5295,"src":"4970:13:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":5268,"name":"uint","nodeType":"ElementaryTypeName","src":"4970:4:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5269,"length":null,"nodeType":"ArrayTypeName","src":"4970:6:7","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":5273,"name":"signatures","nodeType":"VariableDeclaration","scope":5295,"src":"5066:19:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":5271,"name":"string","nodeType":"ElementaryTypeName","src":"5066:6:7","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":5272,"length":null,"nodeType":"ArrayTypeName","src":"5066:8:7","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":5276,"name":"calldatas","nodeType":"VariableDeclaration","scope":5295,"src":"5170:17:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":5274,"name":"bytes","nodeType":"ElementaryTypeName","src":"5170:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":5275,"length":null,"nodeType":"ArrayTypeName","src":"5170:7:7","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":5278,"name":"startBlock","nodeType":"VariableDeclaration","scope":5295,"src":"5305:15:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5277,"name":"uint","nodeType":"ElementaryTypeName","src":"5305:4:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":5280,"name":"endBlock","nodeType":"VariableDeclaration","scope":5295,"src":"5421:13:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5279,"name":"uint","nodeType":"ElementaryTypeName","src":"5421:4:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":5282,"name":"forVotes","nodeType":"VariableDeclaration","scope":5295,"src":"5514:13:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5281,"name":"uint","nodeType":"ElementaryTypeName","src":"5514:4:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":5284,"name":"againstVotes","nodeType":"VariableDeclaration","scope":5295,"src":"5612:17:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5283,"name":"uint","nodeType":"ElementaryTypeName","src":"5612:4:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":5286,"name":"abstainVotes","nodeType":"VariableDeclaration","scope":5295,"src":"5716:17:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5285,"name":"uint","nodeType":"ElementaryTypeName","src":"5716:4:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":5288,"name":"canceled","nodeType":"VariableDeclaration","scope":5295,"src":"5815:13:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5287,"name":"bool","nodeType":"ElementaryTypeName","src":"5815:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"},{"constant":false,"id":5290,"name":"executed","nodeType":"VariableDeclaration","scope":5295,"src":"5910:13:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5289,"name":"bool","nodeType":"ElementaryTypeName","src":"5910:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"},{"constant":false,"id":5294,"name":"receipts","nodeType":"VariableDeclaration","scope":5295,"src":"6002:36:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Receipt_$5302_storage_$","typeString":"mapping(address => struct GovernorBravoDelegateStorageV1.Receipt)"},"typeName":{"id":5293,"keyType":{"id":5291,"name":"address","nodeType":"ElementaryTypeName","src":"6010:7:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"6002:27:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Receipt_$5302_storage_$","typeString":"mapping(address => struct GovernorBravoDelegateStorageV1.Receipt)"},"valueType":{"contractScope":null,"id":5292,"name":"Receipt","nodeType":"UserDefinedTypeName","referencedDeclaration":5302,"src":"6021:7:7","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$5302_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Receipt"}}},"value":null,"visibility":"internal"}],"name":"Proposal","nodeType":"StructDefinition","scope":5316,"src":"4465:1580:7","visibility":"public"},{"canonicalName":"GovernorBravoDelegateStorageV1.Receipt","id":5302,"members":[{"constant":false,"id":5297,"name":"hasVoted","nodeType":"VariableDeclaration","scope":5302,"src":"6182:13:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5296,"name":"bool","nodeType":"ElementaryTypeName","src":"6182:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"},{"constant":false,"id":5299,"name":"support","nodeType":"VariableDeclaration","scope":5302,"src":"6284:13:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":5298,"name":"uint8","nodeType":"ElementaryTypeName","src":"6284:5:7","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":null,"visibility":"internal"},{"constant":false,"id":5301,"name":"votes","nodeType":"VariableDeclaration","scope":5302,"src":"6378:12:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":5300,"name":"uint96","nodeType":"ElementaryTypeName","src":"6378:6:7","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"value":null,"visibility":"internal"}],"name":"Receipt","nodeType":"StructDefinition","scope":5316,"src":"6101:296:7","visibility":"public"},{"canonicalName":"GovernorBravoDelegateStorageV1.ProposalState","id":5311,"members":[{"id":5303,"name":"Pending","nodeType":"EnumValue","src":"6490:7:7"},{"id":5304,"name":"Active","nodeType":"EnumValue","src":"6507:6:7"},{"id":5305,"name":"Canceled","nodeType":"EnumValue","src":"6523:8:7"},{"id":5306,"name":"Defeated","nodeType":"EnumValue","src":"6541:8:7"},{"id":5307,"name":"Succeeded","nodeType":"EnumValue","src":"6559:9:7"},{"id":5308,"name":"Queued","nodeType":"EnumValue","src":"6578:6:7"},{"id":5309,"name":"Expired","nodeType":"EnumValue","src":"6594:7:7"},{"id":5310,"name":"Executed","nodeType":"EnumValue","src":"6611:8:7"}],"name":"ProposalState","nodeType":"EnumDefinition","src":"6461:164:7"},{"constant":false,"id":5313,"name":"proposalMaxOperations","nodeType":"VariableDeclaration","scope":5316,"src":"6712:33:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5312,"name":"uint","nodeType":"ElementaryTypeName","src":"6712:4:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"public"},{"constant":false,"id":5315,"name":"guardian","nodeType":"VariableDeclaration","scope":5316,"src":"6815:23:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5314,"name":"address","nodeType":"ElementaryTypeName","src":"6815:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"public"}],"scope":5317,"src":"3423:3418:7"}],"src":"0:6842:7"},"id":7},"contracts/legacy/GovernorBravoInterfacesV2.sol":{"ast":{"absolutePath":"contracts/legacy/GovernorBravoInterfacesV2.sol","exportedSymbols":{"GovernorBravoDelegateStorageV1":[5515],"GovernorBravoDelegateStorageV2":[5537],"GovernorBravoDelegatorStorage":[5431],"GovernorBravoEventsV2":[5424]},"id":5538,"nodeType":"SourceUnit","nodes":[{"id":5318,"literals":["solidity","^","0.5",".16"],"nodeType":"PragmaDirective","src":"0:24:8"},{"id":5319,"literals":["experimental","ABIEncoderV2"],"nodeType":"PragmaDirective","src":"25:33:8"},{"absolutePath":"contracts/Governance/GovernorBravoInterfaces.sol","file":"../Governance/GovernorBravoInterfaces.sol","id":5323,"nodeType":"ImportDirective","scope":5538,"sourceUnit":2024,"src":"60:121:8","symbolAliases":[{"foreign":5320,"local":null},{"foreign":5321,"local":null},{"foreign":5322,"local":null}],"unitAlias":""},{"baseContracts":[],"contractDependencies":[],"contractKind":"contract","documentation":"@title GovernorBravoEvents\n@author Venus\n@notice Set of events emitted by the second GovernorBravo implementation contract.\n@dev This contract is included for archival and testing purposes.","fullyImplemented":true,"id":5424,"linearizedBaseContracts":[5424],"name":"GovernorBravoEventsV2","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"documentation":"@notice An event emitted when a new proposal is created","id":5349,"name":"ProposalCreated","nodeType":"EventDefinition","parameters":{"id":5348,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5325,"indexed":false,"name":"id","nodeType":"VariableDeclaration","scope":5349,"src":"525:7:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5324,"name":"uint","nodeType":"ElementaryTypeName","src":"525:4:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":5327,"indexed":false,"name":"proposer","nodeType":"VariableDeclaration","scope":5349,"src":"542:16:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5326,"name":"address","nodeType":"ElementaryTypeName","src":"542:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":5330,"indexed":false,"name":"targets","nodeType":"VariableDeclaration","scope":5349,"src":"568:17:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":5328,"name":"address","nodeType":"ElementaryTypeName","src":"568:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":5329,"length":null,"nodeType":"ArrayTypeName","src":"568:9:8","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":5333,"indexed":false,"name":"values","nodeType":"VariableDeclaration","scope":5349,"src":"595:13:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":5331,"name":"uint","nodeType":"ElementaryTypeName","src":"595:4:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5332,"length":null,"nodeType":"ArrayTypeName","src":"595:6:8","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":5336,"indexed":false,"name":"signatures","nodeType":"VariableDeclaration","scope":5349,"src":"618:19:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_$dyn_memory_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":5334,"name":"string","nodeType":"ElementaryTypeName","src":"618:6:8","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":5335,"length":null,"nodeType":"ArrayTypeName","src":"618:8:8","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":5339,"indexed":false,"name":"calldatas","nodeType":"VariableDeclaration","scope":5349,"src":"647:17:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":5337,"name":"bytes","nodeType":"ElementaryTypeName","src":"647:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":5338,"length":null,"nodeType":"ArrayTypeName","src":"647:7:8","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":5341,"indexed":false,"name":"startBlock","nodeType":"VariableDeclaration","scope":5349,"src":"674:15:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5340,"name":"uint","nodeType":"ElementaryTypeName","src":"674:4:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":5343,"indexed":false,"name":"endBlock","nodeType":"VariableDeclaration","scope":5349,"src":"699:13:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5342,"name":"uint","nodeType":"ElementaryTypeName","src":"699:4:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":5345,"indexed":false,"name":"description","nodeType":"VariableDeclaration","scope":5349,"src":"722:18:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5344,"name":"string","nodeType":"ElementaryTypeName","src":"722:6:8","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"},{"constant":false,"id":5347,"indexed":false,"name":"proposalType","nodeType":"VariableDeclaration","scope":5349,"src":"750:18:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":5346,"name":"uint8","nodeType":"ElementaryTypeName","src":"750:5:8","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":null,"visibility":"internal"}],"src":"515:259:8"},"src":"494:281:8"},{"anonymous":false,"documentation":"@notice An event emitted when a vote has been cast on a proposal\n @param voter The address which casted a vote\n @param proposalId The proposal id which was voted on\n @param support Support value for the vote. 0=against, 1=for, 2=abstain\n @param votes Number of votes which were cast by the voter\n @param reason The reason given for the vote by the voter","id":5361,"name":"VoteCast","nodeType":"EventDefinition","parameters":{"id":5360,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5351,"indexed":true,"name":"voter","nodeType":"VariableDeclaration","scope":5361,"src":"1193:21:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5350,"name":"address","nodeType":"ElementaryTypeName","src":"1193:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":5353,"indexed":false,"name":"proposalId","nodeType":"VariableDeclaration","scope":5361,"src":"1216:15:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5352,"name":"uint","nodeType":"ElementaryTypeName","src":"1216:4:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":5355,"indexed":false,"name":"support","nodeType":"VariableDeclaration","scope":5361,"src":"1233:13:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":5354,"name":"uint8","nodeType":"ElementaryTypeName","src":"1233:5:8","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":null,"visibility":"internal"},{"constant":false,"id":5357,"indexed":false,"name":"votes","nodeType":"VariableDeclaration","scope":5361,"src":"1248:10:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5356,"name":"uint","nodeType":"ElementaryTypeName","src":"1248:4:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":5359,"indexed":false,"name":"reason","nodeType":"VariableDeclaration","scope":5361,"src":"1260:13:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5358,"name":"string","nodeType":"ElementaryTypeName","src":"1260:6:8","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"}],"src":"1192:82:8"},"src":"1178:97:8"},{"anonymous":false,"documentation":"@notice An event emitted when a proposal has been canceled","id":5365,"name":"ProposalCanceled","nodeType":"EventDefinition","parameters":{"id":5364,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5363,"indexed":false,"name":"id","nodeType":"VariableDeclaration","scope":5365,"src":"1371:7:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5362,"name":"uint","nodeType":"ElementaryTypeName","src":"1371:4:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"1370:9:8"},"src":"1348:32:8"},{"anonymous":false,"documentation":"@notice An event emitted when a proposal has been queued in the Timelock","id":5371,"name":"ProposalQueued","nodeType":"EventDefinition","parameters":{"id":5370,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5367,"indexed":false,"name":"id","nodeType":"VariableDeclaration","scope":5371,"src":"1488:7:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5366,"name":"uint","nodeType":"ElementaryTypeName","src":"1488:4:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":5369,"indexed":false,"name":"eta","nodeType":"VariableDeclaration","scope":5371,"src":"1497:8:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5368,"name":"uint","nodeType":"ElementaryTypeName","src":"1497:4:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"1487:19:8"},"src":"1467:40:8"},{"anonymous":false,"documentation":"@notice An event emitted when a proposal has been executed in the Timelock","id":5375,"name":"ProposalExecuted","nodeType":"EventDefinition","parameters":{"id":5374,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5373,"indexed":false,"name":"id","nodeType":"VariableDeclaration","scope":5375,"src":"1619:7:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5372,"name":"uint","nodeType":"ElementaryTypeName","src":"1619:4:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"1618:9:8"},"src":"1596:32:8"},{"anonymous":false,"documentation":"@notice An event emitted when the voting delay is set","id":5381,"name":"VotingDelaySet","nodeType":"EventDefinition","parameters":{"id":5380,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5377,"indexed":false,"name":"oldVotingDelay","nodeType":"VariableDeclaration","scope":5381,"src":"1717:19:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5376,"name":"uint","nodeType":"ElementaryTypeName","src":"1717:4:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":5379,"indexed":false,"name":"newVotingDelay","nodeType":"VariableDeclaration","scope":5381,"src":"1738:19:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5378,"name":"uint","nodeType":"ElementaryTypeName","src":"1738:4:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"1716:42:8"},"src":"1696:63:8"},{"anonymous":false,"documentation":"@notice An event emitted when the voting period is set","id":5387,"name":"VotingPeriodSet","nodeType":"EventDefinition","parameters":{"id":5386,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5383,"indexed":false,"name":"oldVotingPeriod","nodeType":"VariableDeclaration","scope":5387,"src":"1850:20:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5382,"name":"uint","nodeType":"ElementaryTypeName","src":"1850:4:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":5385,"indexed":false,"name":"newVotingPeriod","nodeType":"VariableDeclaration","scope":5387,"src":"1872:20:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5384,"name":"uint","nodeType":"ElementaryTypeName","src":"1872:4:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"1849:44:8"},"src":"1828:66:8"},{"anonymous":false,"documentation":"@notice Emitted when implementation is changed","id":5393,"name":"NewImplementation","nodeType":"EventDefinition","parameters":{"id":5392,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5389,"indexed":false,"name":"oldImplementation","nodeType":"VariableDeclaration","scope":5393,"src":"1979:25:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5388,"name":"address","nodeType":"ElementaryTypeName","src":"1979:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":5391,"indexed":false,"name":"newImplementation","nodeType":"VariableDeclaration","scope":5393,"src":"2006:25:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5390,"name":"address","nodeType":"ElementaryTypeName","src":"2006:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"1978:54:8"},"src":"1955:78:8"},{"anonymous":false,"documentation":"@notice Emitted when proposal threshold is set","id":5399,"name":"ProposalThresholdSet","nodeType":"EventDefinition","parameters":{"id":5398,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5395,"indexed":false,"name":"oldProposalThreshold","nodeType":"VariableDeclaration","scope":5399,"src":"2121:25:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5394,"name":"uint","nodeType":"ElementaryTypeName","src":"2121:4:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":5397,"indexed":false,"name":"newProposalThreshold","nodeType":"VariableDeclaration","scope":5399,"src":"2148:25:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5396,"name":"uint","nodeType":"ElementaryTypeName","src":"2148:4:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"2120:54:8"},"src":"2094:81:8"},{"anonymous":false,"documentation":"@notice Emitted when pendingAdmin is changed","id":5405,"name":"NewPendingAdmin","nodeType":"EventDefinition","parameters":{"id":5404,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5401,"indexed":false,"name":"oldPendingAdmin","nodeType":"VariableDeclaration","scope":5405,"src":"2256:23:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5400,"name":"address","nodeType":"ElementaryTypeName","src":"2256:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":5403,"indexed":false,"name":"newPendingAdmin","nodeType":"VariableDeclaration","scope":5405,"src":"2281:23:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5402,"name":"address","nodeType":"ElementaryTypeName","src":"2281:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"2255:50:8"},"src":"2234:72:8"},{"anonymous":false,"documentation":"@notice Emitted when pendingAdmin is accepted, which means admin is updated","id":5411,"name":"NewAdmin","nodeType":"EventDefinition","parameters":{"id":5410,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5407,"indexed":false,"name":"oldAdmin","nodeType":"VariableDeclaration","scope":5411,"src":"2411:16:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5406,"name":"address","nodeType":"ElementaryTypeName","src":"2411:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":5409,"indexed":false,"name":"newAdmin","nodeType":"VariableDeclaration","scope":5411,"src":"2429:16:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5408,"name":"address","nodeType":"ElementaryTypeName","src":"2429:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"2410:36:8"},"src":"2396:51:8"},{"anonymous":false,"documentation":"@notice Emitted when the new guardian address is set","id":5417,"name":"NewGuardian","nodeType":"EventDefinition","parameters":{"id":5416,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5413,"indexed":false,"name":"oldGuardian","nodeType":"VariableDeclaration","scope":5417,"src":"2532:19:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5412,"name":"address","nodeType":"ElementaryTypeName","src":"2532:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":5415,"indexed":false,"name":"newGuardian","nodeType":"VariableDeclaration","scope":5417,"src":"2553:19:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5414,"name":"address","nodeType":"ElementaryTypeName","src":"2553:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"2531:42:8"},"src":"2514:60:8"},{"anonymous":false,"documentation":"@notice Emitted when the maximum number of operations in one proposal is updated","id":5423,"name":"ProposalMaxOperationsUpdated","nodeType":"EventDefinition","parameters":{"id":5422,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5419,"indexed":false,"name":"oldMaxOperations","nodeType":"VariableDeclaration","scope":5423,"src":"2704:21:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5418,"name":"uint","nodeType":"ElementaryTypeName","src":"2704:4:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":5421,"indexed":false,"name":"newMaxOperations","nodeType":"VariableDeclaration","scope":5423,"src":"2727:21:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5420,"name":"uint","nodeType":"ElementaryTypeName","src":"2727:4:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"2703:46:8"},"src":"2669:81:8"}],"scope":5538,"src":"393:2359:8"},{"baseContracts":[],"contractDependencies":[],"contractKind":"contract","documentation":"@title GovernorBravoDelegatorStorage\n@author Venus\n@notice Storage layout of the `GovernorBravoDelegator` contract","fullyImplemented":true,"id":5431,"linearizedBaseContracts":[5431],"name":"GovernorBravoDelegatorStorage","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":5426,"name":"admin","nodeType":"VariableDeclaration","scope":5431,"src":"2979:20:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5425,"name":"address","nodeType":"ElementaryTypeName","src":"2979:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"public"},{"constant":false,"id":5428,"name":"pendingAdmin","nodeType":"VariableDeclaration","scope":5431,"src":"3062:27:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5427,"name":"address","nodeType":"ElementaryTypeName","src":"3062:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"public"},{"constant":false,"id":5430,"name":"implementation","nodeType":"VariableDeclaration","scope":5431,"src":"3138:29:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5429,"name":"address","nodeType":"ElementaryTypeName","src":"3138:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"public"}],"scope":5538,"src":"2886:284:8"},{"baseContracts":[{"arguments":null,"baseName":{"contractScope":null,"id":5432,"name":"GovernorBravoDelegatorStorage","nodeType":"UserDefinedTypeName","referencedDeclaration":5431,"src":"3333:29:8","typeDescriptions":{"typeIdentifier":"t_contract$_GovernorBravoDelegatorStorage_$5431","typeString":"contract GovernorBravoDelegatorStorage"}},"id":5433,"nodeType":"InheritanceSpecifier","src":"3333:29:8"}],"contractDependencies":[5431],"contractKind":"contract","documentation":"@title GovernorBravoDelegateStorageV1\n@dev This contract is included for archival and testing purposes.","fullyImplemented":true,"id":5515,"linearizedBaseContracts":[5515,5431],"name":"GovernorBravoDelegateStorageV1","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":5435,"name":"votingDelay","nodeType":"VariableDeclaration","scope":5515,"src":"3475:23:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5434,"name":"uint","nodeType":"ElementaryTypeName","src":"3475:4:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"public"},{"constant":false,"id":5437,"name":"votingPeriod","nodeType":"VariableDeclaration","scope":5515,"src":"3580:24:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5436,"name":"uint","nodeType":"ElementaryTypeName","src":"3580:4:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"public"},{"constant":false,"id":5439,"name":"proposalThreshold","nodeType":"VariableDeclaration","scope":5515,"src":"3709:29:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5438,"name":"uint","nodeType":"ElementaryTypeName","src":"3709:4:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"public"},{"constant":false,"id":5441,"name":"initialProposalId","nodeType":"VariableDeclaration","scope":5515,"src":"3795:29:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5440,"name":"uint","nodeType":"ElementaryTypeName","src":"3795:4:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"public"},{"constant":false,"id":5443,"name":"proposalCount","nodeType":"VariableDeclaration","scope":5515,"src":"3877:25:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5442,"name":"uint","nodeType":"ElementaryTypeName","src":"3877:4:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"public"},{"constant":false,"id":5445,"name":"timelock","nodeType":"VariableDeclaration","scope":5515,"src":"3968:33:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_TimelockInterface_$2007","typeString":"contract TimelockInterface"},"typeName":{"contractScope":null,"id":5444,"name":"TimelockInterface","nodeType":"UserDefinedTypeName","referencedDeclaration":2007,"src":"3968:17:8","typeDescriptions":{"typeIdentifier":"t_contract$_TimelockInterface_$2007","typeString":"contract TimelockInterface"}},"value":null,"visibility":"public"},{"constant":false,"id":5447,"name":"xvsVault","nodeType":"VariableDeclaration","scope":5515,"src":"4066:33:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_XvsVaultInterface_$2017","typeString":"contract XvsVaultInterface"},"typeName":{"contractScope":null,"id":5446,"name":"XvsVaultInterface","nodeType":"UserDefinedTypeName","referencedDeclaration":2017,"src":"4066:17:8","typeDescriptions":{"typeIdentifier":"t_contract$_XvsVaultInterface_$2017","typeString":"contract XvsVaultInterface"}},"value":null,"visibility":"public"},{"constant":false,"id":5451,"name":"proposals","nodeType":"VariableDeclaration","scope":5515,"src":"4173:42:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$5494_storage_$","typeString":"mapping(uint256 => struct GovernorBravoDelegateStorageV1.Proposal)"},"typeName":{"id":5450,"keyType":{"id":5448,"name":"uint","nodeType":"ElementaryTypeName","src":"4181:4:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"4173:25:8","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$5494_storage_$","typeString":"mapping(uint256 => struct GovernorBravoDelegateStorageV1.Proposal)"},"valueType":{"contractScope":null,"id":5449,"name":"Proposal","nodeType":"UserDefinedTypeName","referencedDeclaration":5494,"src":"4189:8:8","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$5494_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Proposal"}}},"value":null,"visibility":"public"},{"constant":false,"id":5455,"name":"latestProposalIds","nodeType":"VariableDeclaration","scope":5515,"src":"4276:49:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":5454,"keyType":{"id":5452,"name":"address","nodeType":"ElementaryTypeName","src":"4284:7:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"4276:24:8","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueType":{"id":5453,"name":"uint","nodeType":"ElementaryTypeName","src":"4295:4:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"value":null,"visibility":"public"},{"canonicalName":"GovernorBravoDelegateStorageV1.Proposal","id":5494,"members":[{"constant":false,"id":5457,"name":"id","nodeType":"VariableDeclaration","scope":5494,"src":"4414:7:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5456,"name":"uint","nodeType":"ElementaryTypeName","src":"4414:4:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":5459,"name":"proposer","nodeType":"VariableDeclaration","scope":5494,"src":"4475:16:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5458,"name":"address","nodeType":"ElementaryTypeName","src":"4475:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":5461,"name":"eta","nodeType":"VariableDeclaration","scope":5494,"src":"4613:8:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5460,"name":"uint","nodeType":"ElementaryTypeName","src":"4613:4:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":5464,"name":"targets","nodeType":"VariableDeclaration","scope":5494,"src":"4709:17:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":5462,"name":"address","nodeType":"ElementaryTypeName","src":"4709:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":5463,"length":null,"nodeType":"ArrayTypeName","src":"4709:9:8","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":5467,"name":"values","nodeType":"VariableDeclaration","scope":5494,"src":"4837:13:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":5465,"name":"uint","nodeType":"ElementaryTypeName","src":"4837:4:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5466,"length":null,"nodeType":"ArrayTypeName","src":"4837:6:8","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":5470,"name":"signatures","nodeType":"VariableDeclaration","scope":5494,"src":"4933:19:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":5468,"name":"string","nodeType":"ElementaryTypeName","src":"4933:6:8","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":5469,"length":null,"nodeType":"ArrayTypeName","src":"4933:8:8","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":5473,"name":"calldatas","nodeType":"VariableDeclaration","scope":5494,"src":"5037:17:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":5471,"name":"bytes","nodeType":"ElementaryTypeName","src":"5037:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":5472,"length":null,"nodeType":"ArrayTypeName","src":"5037:7:8","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":5475,"name":"startBlock","nodeType":"VariableDeclaration","scope":5494,"src":"5172:15:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5474,"name":"uint","nodeType":"ElementaryTypeName","src":"5172:4:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":5477,"name":"endBlock","nodeType":"VariableDeclaration","scope":5494,"src":"5288:13:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5476,"name":"uint","nodeType":"ElementaryTypeName","src":"5288:4:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":5479,"name":"forVotes","nodeType":"VariableDeclaration","scope":5494,"src":"5381:13:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5478,"name":"uint","nodeType":"ElementaryTypeName","src":"5381:4:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":5481,"name":"againstVotes","nodeType":"VariableDeclaration","scope":5494,"src":"5479:17:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5480,"name":"uint","nodeType":"ElementaryTypeName","src":"5479:4:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":5483,"name":"abstainVotes","nodeType":"VariableDeclaration","scope":5494,"src":"5583:17:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5482,"name":"uint","nodeType":"ElementaryTypeName","src":"5583:4:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":5485,"name":"canceled","nodeType":"VariableDeclaration","scope":5494,"src":"5682:13:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5484,"name":"bool","nodeType":"ElementaryTypeName","src":"5682:4:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"},{"constant":false,"id":5487,"name":"executed","nodeType":"VariableDeclaration","scope":5494,"src":"5777:13:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5486,"name":"bool","nodeType":"ElementaryTypeName","src":"5777:4:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"},{"constant":false,"id":5491,"name":"receipts","nodeType":"VariableDeclaration","scope":5494,"src":"5869:36:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Receipt_$5501_storage_$","typeString":"mapping(address => struct GovernorBravoDelegateStorageV1.Receipt)"},"typeName":{"id":5490,"keyType":{"id":5488,"name":"address","nodeType":"ElementaryTypeName","src":"5877:7:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"5869:27:8","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Receipt_$5501_storage_$","typeString":"mapping(address => struct GovernorBravoDelegateStorageV1.Receipt)"},"valueType":{"contractScope":null,"id":5489,"name":"Receipt","nodeType":"UserDefinedTypeName","referencedDeclaration":5501,"src":"5888:7:8","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$5501_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV1.Receipt"}}},"value":null,"visibility":"internal"},{"constant":false,"id":5493,"name":"proposalType","nodeType":"VariableDeclaration","scope":5494,"src":"5960:18:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":5492,"name":"uint8","nodeType":"ElementaryTypeName","src":"5960:5:8","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":null,"visibility":"internal"}],"name":"Proposal","nodeType":"StructDefinition","scope":5515,"src":"4332:1653:8","visibility":"public"},{"canonicalName":"GovernorBravoDelegateStorageV1.Receipt","id":5501,"members":[{"constant":false,"id":5496,"name":"hasVoted","nodeType":"VariableDeclaration","scope":5501,"src":"6122:13:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5495,"name":"bool","nodeType":"ElementaryTypeName","src":"6122:4:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"},{"constant":false,"id":5498,"name":"support","nodeType":"VariableDeclaration","scope":5501,"src":"6224:13:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":5497,"name":"uint8","nodeType":"ElementaryTypeName","src":"6224:5:8","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":null,"visibility":"internal"},{"constant":false,"id":5500,"name":"votes","nodeType":"VariableDeclaration","scope":5501,"src":"6318:12:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":5499,"name":"uint96","nodeType":"ElementaryTypeName","src":"6318:6:8","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"value":null,"visibility":"internal"}],"name":"Receipt","nodeType":"StructDefinition","scope":5515,"src":"6041:296:8","visibility":"public"},{"canonicalName":"GovernorBravoDelegateStorageV1.ProposalState","id":5510,"members":[{"id":5502,"name":"Pending","nodeType":"EnumValue","src":"6430:7:8"},{"id":5503,"name":"Active","nodeType":"EnumValue","src":"6447:6:8"},{"id":5504,"name":"Canceled","nodeType":"EnumValue","src":"6463:8:8"},{"id":5505,"name":"Defeated","nodeType":"EnumValue","src":"6481:8:8"},{"id":5506,"name":"Succeeded","nodeType":"EnumValue","src":"6499:9:8"},{"id":5507,"name":"Queued","nodeType":"EnumValue","src":"6518:6:8"},{"id":5508,"name":"Expired","nodeType":"EnumValue","src":"6534:7:8"},{"id":5509,"name":"Executed","nodeType":"EnumValue","src":"6551:8:8"}],"name":"ProposalState","nodeType":"EnumDefinition","src":"6401:164:8"},{"constant":false,"id":5512,"name":"proposalMaxOperations","nodeType":"VariableDeclaration","scope":5515,"src":"6652:33:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5511,"name":"uint","nodeType":"ElementaryTypeName","src":"6652:4:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"public"},{"constant":false,"id":5514,"name":"guardian","nodeType":"VariableDeclaration","scope":5515,"src":"6755:23:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5513,"name":"address","nodeType":"ElementaryTypeName","src":"6755:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"public"}],"scope":5538,"src":"3290:3491:8"},{"baseContracts":[{"arguments":null,"baseName":{"contractScope":null,"id":5516,"name":"GovernorBravoDelegateStorageV1","nodeType":"UserDefinedTypeName","referencedDeclaration":5515,"src":"7094:30:8","typeDescriptions":{"typeIdentifier":"t_contract$_GovernorBravoDelegateStorageV1_$5515","typeString":"contract GovernorBravoDelegateStorageV1"}},"id":5517,"nodeType":"InheritanceSpecifier","src":"7094:30:8"}],"contractDependencies":[5431,5515],"contractKind":"contract","documentation":"@title GovernorBravoDelegateStorageV2\n@dev For future upgrades, do not change GovernorBravoDelegateStorageV2. Create a new\ncontract which implements GovernorBravoDelegateStorageV2 and following the naming convention\nGovernorBravoDelegateStorageVX.","fullyImplemented":true,"id":5537,"linearizedBaseContracts":[5537,5515,5431],"name":"GovernorBravoDelegateStorageV2","nodeType":"ContractDefinition","nodes":[{"canonicalName":"GovernorBravoDelegateStorageV2.ProposalType","id":5521,"members":[{"id":5518,"name":"NORMAL","nodeType":"EnumValue","src":"7159:6:8"},{"id":5519,"name":"FASTTRACK","nodeType":"EnumValue","src":"7175:9:8"},{"id":5520,"name":"CRITICAL","nodeType":"EnumValue","src":"7194:8:8"}],"name":"ProposalType","nodeType":"EnumDefinition","src":"7131:77:8"},{"canonicalName":"GovernorBravoDelegateStorageV2.ProposalConfig","id":5528,"members":[{"constant":false,"id":5523,"name":"votingDelay","nodeType":"VariableDeclaration","scope":5528,"src":"7345:19:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5522,"name":"uint256","nodeType":"ElementaryTypeName","src":"7345:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":5525,"name":"votingPeriod","nodeType":"VariableDeclaration","scope":5528,"src":"7442:20:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5524,"name":"uint256","nodeType":"ElementaryTypeName","src":"7442:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":5527,"name":"proposalThreshold","nodeType":"VariableDeclaration","scope":5528,"src":"7563:25:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5526,"name":"uint256","nodeType":"ElementaryTypeName","src":"7563:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"name":"ProposalConfig","nodeType":"StructDefinition","scope":5537,"src":"7214:381:8","visibility":"public"},{"constant":false,"id":5532,"name":"proposalConfigs","nodeType":"VariableDeclaration","scope":5537,"src":"7673:54:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_ProposalConfig_$5528_storage_$","typeString":"mapping(uint256 => struct GovernorBravoDelegateStorageV2.ProposalConfig)"},"typeName":{"id":5531,"keyType":{"id":5529,"name":"uint","nodeType":"ElementaryTypeName","src":"7681:4:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"7673:31:8","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_ProposalConfig_$5528_storage_$","typeString":"mapping(uint256 => struct GovernorBravoDelegateStorageV2.ProposalConfig)"},"valueType":{"contractScope":null,"id":5530,"name":"ProposalConfig","nodeType":"UserDefinedTypeName","referencedDeclaration":5528,"src":"7689:14:8","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalConfig_$5528_storage_ptr","typeString":"struct GovernorBravoDelegateStorageV2.ProposalConfig"}}},"value":null,"visibility":"public"},{"constant":false,"id":5536,"name":"proposalTimelocks","nodeType":"VariableDeclaration","scope":5537,"src":"7811:59:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_contract$_TimelockInterface_$2007_$","typeString":"mapping(uint256 => contract TimelockInterface)"},"typeName":{"id":5535,"keyType":{"id":5533,"name":"uint","nodeType":"ElementaryTypeName","src":"7819:4:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"7811:34:8","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_contract$_TimelockInterface_$2007_$","typeString":"mapping(uint256 => contract TimelockInterface)"},"valueType":{"contractScope":null,"id":5534,"name":"TimelockInterface","nodeType":"UserDefinedTypeName","referencedDeclaration":2007,"src":"7827:17:8","typeDescriptions":{"typeIdentifier":"t_contract$_TimelockInterface_$2007","typeString":"contract TimelockInterface"}}},"value":null,"visibility":"public"}],"scope":5538,"src":"7051:822:8"}],"src":"0:7874:8"},"id":8}},"contracts":{"contracts/Governance/GovernorBravoDelegate.sol":{"GovernorBravoDelegate":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldAdmin","type":"address"},{"indexed":false,"internalType":"address","name":"newAdmin","type":"address"}],"name":"NewAdmin","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldGuardian","type":"address"},{"indexed":false,"internalType":"address","name":"newGuardian","type":"address"}],"name":"NewGuardian","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldImplementation","type":"address"},{"indexed":false,"internalType":"address","name":"newImplementation","type":"address"}],"name":"NewImplementation","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldPendingAdmin","type":"address"},{"indexed":false,"internalType":"address","name":"newPendingAdmin","type":"address"}],"name":"NewPendingAdmin","type":"event"},{"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"},{"indexed":false,"internalType":"uint8","name":"proposalType","type":"uint8"}],"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":"oldMaxOperations","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newMaxOperations","type":"uint256"}],"name":"ProposalMaxOperationsUpdated","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":"uint256","name":"oldProposalThreshold","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newProposalThreshold","type":"uint256"}],"name":"ProposalThresholdSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"votingPeriod","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"votingDelay","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"proposalThreshold","type":"uint256"}],"name":"SetProposalConfigs","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"oldMinVotingPeriod","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newMinVotingPeriod","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"oldmaxVotingPeriod","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newmaxVotingPeriod","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"oldminVotingDelay","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newminVotingDelay","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"oldmaxVotingDelay","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newmaxVotingDelay","type":"uint256"}],"name":"SetValidationParams","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"voter","type":"address"},{"indexed":false,"internalType":"uint256","name":"proposalId","type":"uint256"},{"indexed":false,"internalType":"uint8","name":"support","type":"uint8"},{"indexed":false,"internalType":"uint256","name":"votes","type":"uint256"},{"indexed":false,"internalType":"string","name":"reason","type":"string"}],"name":"VoteCast","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"oldVotingDelay","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newVotingDelay","type":"uint256"}],"name":"VotingDelaySet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"oldVotingPeriod","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newVotingPeriod","type":"uint256"}],"name":"VotingPeriodSet","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":true,"inputs":[],"name":"MAX_PROPOSAL_THRESHOLD","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"MIN_PROPOSAL_THRESHOLD","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":"governorAlpha","type":"address"}],"name":"_initiate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"newGuardian","type":"address"}],"name":"_setGuardian","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"newPendingAdmin","type":"address"}],"name":"_setPendingAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"proposalMaxOperations_","type":"uint256"}],"name":"_setProposalMaxOperations","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"admin","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","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":"uint8","name":"support","type":"uint8"}],"name":"castVote","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"uint8","name":"support","type":"uint8"},{"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"},{"internalType":"uint8","name":"support","type":"uint8"},{"internalType":"string","name":"reason","type":"string"}],"name":"castVoteWithReason","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"}],"name":"execute","outputs":[],"payable":false,"stateMutability":"nonpayable","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":"uint8","name":"support","type":"uint8"},{"internalType":"uint96","name":"votes","type":"uint96"}],"internalType":"struct GovernorBravoDelegateStorageV1.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":[],"name":"implementation","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"initialProposalId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"xvsVault_","type":"address"},{"components":[{"internalType":"uint256","name":"minVotingPeriod","type":"uint256"},{"internalType":"uint256","name":"maxVotingPeriod","type":"uint256"},{"internalType":"uint256","name":"minVotingDelay","type":"uint256"},{"internalType":"uint256","name":"maxVotingDelay","type":"uint256"}],"internalType":"struct GovernorBravoDelegateStorageV3.ValidationParams","name":"validationParams_","type":"tuple"},{"components":[{"internalType":"uint256","name":"votingDelay","type":"uint256"},{"internalType":"uint256","name":"votingPeriod","type":"uint256"},{"internalType":"uint256","name":"proposalThreshold","type":"uint256"}],"internalType":"struct GovernorBravoDelegateStorageV2.ProposalConfig[]","name":"proposalConfigs_","type":"tuple[]"},{"internalType":"contract TimelockInterface[]","name":"timelocks","type":"address[]"},{"internalType":"address","name":"guardian_","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","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":"pendingAdmin","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"proposalConfigs","outputs":[{"internalType":"uint256","name":"votingDelay","type":"uint256"},{"internalType":"uint256","name":"votingPeriod","type":"uint256"},{"internalType":"uint256","name":"proposalThreshold","type":"uint256"}],"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":"view","type":"function"},{"constant":true,"inputs":[],"name":"proposalThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"proposalTimelocks","outputs":[{"internalType":"contract TimelockInterface","name":"","type":"address"}],"payable":false,"stateMutability":"view","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":"uint256","name":"abstainVotes","type":"uint256"},{"internalType":"bool","name":"canceled","type":"bool"},{"internalType":"bool","name":"executed","type":"bool"},{"internalType":"uint8","name":"proposalType","type":"uint8"}],"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"},{"internalType":"enum GovernorBravoDelegateStorageV2.ProposalType","name":"proposalType","type":"uint8"}],"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":"view","type":"function"},{"constant":false,"inputs":[{"components":[{"internalType":"uint256","name":"votingDelay","type":"uint256"},{"internalType":"uint256","name":"votingPeriod","type":"uint256"},{"internalType":"uint256","name":"proposalThreshold","type":"uint256"}],"internalType":"struct GovernorBravoDelegateStorageV2.ProposalConfig[]","name":"proposalConfigs_","type":"tuple[]"}],"name":"setProposalConfigs","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"components":[{"internalType":"uint256","name":"minVotingPeriod","type":"uint256"},{"internalType":"uint256","name":"maxVotingPeriod","type":"uint256"},{"internalType":"uint256","name":"minVotingDelay","type":"uint256"},{"internalType":"uint256","name":"maxVotingDelay","type":"uint256"}],"internalType":"struct GovernorBravoDelegateStorageV3.ValidationParams","name":"newValidationParams","type":"tuple"}],"name":"setValidationParams","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"}],"name":"state","outputs":[{"internalType":"enum GovernorBravoDelegateStorageV1.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":"validationParams","outputs":[{"internalType":"uint256","name":"minVotingPeriod","type":"uint256"},{"internalType":"uint256","name":"maxVotingPeriod","type":"uint256"},{"internalType":"uint256","name":"minVotingDelay","type":"uint256"},{"internalType":"uint256","name":"maxVotingDelay","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"votingDelay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"votingPeriod","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"xvsVault","outputs":[{"internalType":"contract XvsVaultInterface","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}],"devdoc":{"methods":{"_acceptAdmin()":{"details":"Admin function for pending admin to accept role and update admin"},"_initiate(address)":{"details":"Admin only. Sets initial proposal id which initiates the contract, ensuring a continuous proposal id count","params":{"governorAlpha":"The address for the Governor to continue the proposal id count from"}},"_setGuardian(address)":{"params":{"newGuardian":"the address of the new guardian"}},"_setPendingAdmin(address)":{"details":"Admin function to begin change of admin. The newPendingAdmin must call `_acceptAdmin` to finalize the transfer.","params":{"newPendingAdmin":"New pending admin."}},"_setProposalMaxOperations(uint256)":{"details":"Admin only.","params":{"proposalMaxOperations_":"Max proposal operations"}},"cancel(uint256)":{"params":{"proposalId":"The id of the proposal to cancel"}},"castVote(uint256,uint8)":{"params":{"proposalId":"The id of the proposal to vote on","support":"The support value for the vote. 0=against, 1=for, 2=abstain"}},"castVoteBySig(uint256,uint8,uint8,bytes32,bytes32)":{"details":"External function that accepts EIP-712 signatures for voting on proposals.","params":{"proposalId":"The id of the proposal to vote on","r":"part of the ECDSA sig output","s":"part of the ECDSA sig output","support":"The support value for the vote. 0=against, 1=for, 2=abstain","v":"recovery id of ECDSA signature"}},"castVoteWithReason(uint256,uint8,string)":{"params":{"proposalId":"The id of the proposal to vote on","reason":"The reason given for the vote by the voter","support":"The support value for the vote. 0=against, 1=for, 2=abstain"}},"execute(uint256)":{"params":{"proposalId":"The id of the proposal to execute"}},"getActions(uint256)":{"params":{"proposalId":"the id of the proposal"},"return":"targets, values, signatures, and calldatas of the proposal actions"},"getReceipt(uint256,address)":{"params":{"proposalId":"the id of proposal","voter":"The address of the voter"},"return":"The voting receipt"},"initialize(address,(uint256,uint256,uint256,uint256),(uint256,uint256,uint256)[],address[],address)":{"params":{"proposalConfigs_":"Governance configs for each governance route","timelocks":"Timelock addresses for each governance route","xvsVault_":"The address of the XvsVault"}},"propose(address[],uint256[],string[],bytes[],string,uint8)":{"details":"NOTE: Proposals with duplicate set of actions can not be queued for execution. If the proposals consists of duplicate actions, it's recommended to split those actions into separate proposals","params":{"calldatas":"Calldatas for proposal calls","description":"String description of the proposal","proposalType":"the type of the proposal (e.g NORMAL, FASTTRACK, CRITICAL)","signatures":"Function signatures for proposal calls","targets":"Target addresses for proposal calls","values":"BNB values for proposal calls"},"return":"Proposal id of new proposal"},"queue(uint256)":{"params":{"proposalId":"The id of the proposal to queue"}},"state(uint256)":{"params":{"proposalId":"The id of the proposal"},"return":"Proposal state"}},"title":"GovernorBravoDelegate"},"evm":{"bytecode":{"linkReferences":{},"object":"608060405234801561001057600080fd5b50614f84806100206000396000f3fe608060405234801561001057600080fd5b50600436106102535760003560e01c806346416f9211610146578063da35c664116100c3578063e9c714f211610087578063e9c714f2146104d5578063ee9799ee146104dd578063f851a440146104f0578063f9d28b80146104f8578063fc4eee421461050b578063fe0d94c11461051357610253565b8063da35c6641461047f578063ddf0b00914610487578063deaaa7cc1461049a578063e23a9a52146104a2578063e38e8c0f146104c257610253565b80637bdbe4d01161010a5780637bdbe4d014610441578063b58131b014610449578063b71d1a0c14610451578063bb08c32114610464578063d33219b41461047757610253565b806346416f92146103f8578063567813881461040b5780635c60da1b1461041e578063791f5d23146104265780637b3c71d31461042e57610253565b806325fd935a116101d45780633932abb1116101985780633932abb1146103a25780633bccf4fd146103aa5780633e4f49e6146103bd57806340e58ee5146103dd578063452a9320146103f057610253565b806325fd935a146103285780632678224714610330578063328dd9821461034557806334cf39091461036857806335a87de21461038057610253565b80631b9ce5751161021b5780631b9ce575146102db5780631e75adf2146102f05780631ebcfefd1461030557806320606b701461031857806324bc1a641461032057610253565b8063013cf08b1461025857806302a251a31461028b57806306fdde03146102a0578063164a1ab1146102b557806317977c61146102c8575b600080fd5b61026b610266366004613159565b610526565b6040516102829b9a99989796959493929190614bac565b60405180910390f35b610293610592565b6040516102829190614750565b6102a8610598565b6040516102829190614815565b6102936102c3366004612f9e565b6105c8565b6102936102d6366004612ed4565b610a86565b6102e3610a98565b60405161028291906147f9565b6103036102fe366004613097565b610aa7565b005b610303610313366004613159565b610d8d565b610293610dfd565b610293610e14565b610293610e22565b610338610e30565b6040516102829190614620565b610358610353366004613159565b610e3f565b6040516102829493929190614703565b6103706110ce565b6040516102829493929190614c86565b61039361038e366004613159565b6110dd565b60405161028293929190614c5e565b6102936110fe565b6103036103b8366004613248565b611104565b6103d06103cb366004613159565b6112dc565b6040516102829190614807565b6103036103eb366004613159565b611476565b61033861170c565b610303610406366004612efa565b61171b565b6103036104193660046131b1565b611925565b61033861196f565b61029361197e565b61030361043c3660046131e1565b61198c565b6102936119dc565b6102936119e2565b61030361045f366004612ed4565b6119e8565b61030361047236600461313b565b611a65565b6102e3611b5f565b610293611b6e565b610303610495366004613159565b611b74565b610293611e08565b6104b56104b0366004613177565b611e14565b6040516102829190614ae6565b6103036104d0366004612ed4565b611e81565b610303611f39565b6102e36104eb366004613159565b612017565b610338612032565b610303610506366004612ed4565b612041565b61029361218e565b610303610521366004613159565b612194565b600a60208190526000918252604090912080546001820154600283015460078401546008850154600986015496860154600b870154600c880154600e9098015496986001600160a01b039096169794969395929492939192909160ff808316926101009004811691168b565b60045481565b6040518060400160405280601481526020017356656e757320476f7665726e6f7220427261766f60601b81525081565b6000600654600014156105f65760405162461bcd60e51b81526004016105ed906148a6565b60405180910390fd5b600e600083600281111561060657fe5b60ff1681526020810191909152604001600020600201546009546001600160a01b031663782d6fe13361063a436001612347565b6040518363ffffffff1660e01b815260040161065792919061462e565b60206040518083038186803b15801561066f57600080fd5b505afa158015610683573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506106a791908101906132b0565b6001600160601b031610156106ce5760405162461bcd60e51b81526004016105ed90614a46565b855187511480156106e0575084518751145b80156106ed575083518751145b6107095760405162461bcd60e51b81526004016105ed90614916565b86516107275760405162461bcd60e51b81526004016105ed90614986565b600c548751111561074a5760405162461bcd60e51b81526004016105ed906149e6565b336000908152600b602052604090205480156107c757600061076b826112dc565b9050600181600781111561077b57fe5b14156107995760405162461bcd60e51b81526004016105ed90614a26565b60008160078111156107a757fe5b14156107c55760405162461bcd60e51b81526004016105ed906149f6565b505b60006107f743600e60008760028111156107dd57fe5b60ff1681526020019081526020016000206000015461236f565b9050600061082982600e600088600281111561080f57fe5b60ff1681526020019081526020016000206001015461236f565b600780546001019055905061083c61270e565b604051806101e001604052806007548152602001336001600160a01b03168152602001600081526020018c81526020018b81526020018a81526020018981526020018481526020018381526020016000815260200160008152602001600081526020016000151581526020016000151581526020018760028111156108bd57fe5b60ff16905280516000908152600a602090815260409182902083518155818401516001820180546001600160a01b0319166001600160a01b039092169190911790559183015160028301556060830151805193945084936109249260038501920190612794565b50608082015180516109409160048401916020909101906127f9565b5060a0820151805161095c916005840191602090910190612840565b5060c08201518051610978916006840191602090910190612899565b5060e082015160078201556101008083015160088301556101208301516009830155610140830151600a830155610160830151600b80840191909155610180840151600c840180546101a087015160ff199182169315159390931761ff0019169215159094029190911790556101c090930151600e909201805490911660ff90921691909117905581516020808401516001600160a01b0316600090815292905260409091205580517fc8df7ff219f3c0358e14500814d8b62b443a4bebf3a596baa60b9295b1cf1bde90338d8d8d8d89898f8f6002811115610a5757fe5b604051610a6d9a99989796959493929190614af4565b60405180910390a15193505050505b9695505050505050565b600b6020526000908152604090205481565b6009546001600160a01b031681565b6000546001600160a01b03163314610ad15760405162461bcd60e51b81526004016105ed90614906565b60105415801590610ae3575060115415155b8015610af0575060125415155b8015610afd575060135415155b610b195760405162461bcd60e51b81526004016105ed90614856565b8051610b2361239b565b60ff168114610b445760405162461bcd60e51b81526004016105ed90614826565b60005b81811015610d8857601060000154838281518110610b6157fe5b6020026020010151602001511015610b8b5760405162461bcd60e51b81526004016105ed90614886565b601060010154838281518110610b9d57fe5b6020026020010151602001511115610bc75760405162461bcd60e51b81526004016105ed90614ad6565b601060020154838281518110610bd957fe5b6020026020010151600001511015610c035760405162461bcd60e51b81526004016105ed906149b6565b601060030154838281518110610c1557fe5b6020026020010151600001511115610c3f5760405162461bcd60e51b81526004016105ed90614996565b691fc3842bd1f071c00000838281518110610c5657fe5b6020026020010151604001511015610c805760405162461bcd60e51b81526004016105ed90614a86565b693f870857a3e0e3800000838281518110610c9757fe5b6020026020010151604001511115610cc15760405162461bcd60e51b81526004016105ed90614836565b828181518110610ccd57fe5b6020908102919091018101516000838152600e835260409081902082518155928201516001840155015160029091015582517f99382998f89cd4c8aec7ae5d6deca4b4b0bfa01691740ccd702bf76b6a6816d290849083908110610d2d57fe5b602002602001015160200151848381518110610d4557fe5b602002602001015160000151858481518110610d5d57fe5b602002602001015160400151604051610d7893929190614c5e565b60405180910390a1600101610b47565b505050565b6000546001600160a01b03163314610db75760405162461bcd60e51b81526004016105ed90614a06565b600c8054908290556040517fd03b3c3c5c1446bcdd31423061041c94ca3bc5450fe7ccfb0f636f4c420de87e90610df19083908590614c50565b60405180910390a15050565b604051610e0990614615565b604051809103902081565b697f0e10af47c1c700000081565b693f870857a3e0e380000081565b6001546001600160a01b031681565b6060806060806000600a600087815260200190815260200160002090508060030181600401826005018360060183805480602002602001604051908101604052809291908181526020018280548015610ec157602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610ea3575b5050505050935082805480602002602001604051908101604052809291908181526020018280548015610f1357602002820191906000526020600020905b815481526020019060010190808311610eff575b5050505050925081805480602002602001604051908101604052809291908181526020016000905b82821015610fe65760008481526020908190208301805460408051601f6002600019610100600187161502019094169390930492830185900485028101850190915281815292830182828015610fd25780601f10610fa757610100808354040283529160200191610fd2565b820191906000526020600020905b815481529060010190602001808311610fb557829003601f168201915b505050505081526020019060010190610f3b565b50505050915080805480602002602001604051908101604052809291908181526020016000905b828210156110b85760008481526020908190208301805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156110a45780601f10611079576101008083540402835291602001916110a4565b820191906000526020600020905b81548152906001019060200180831161108757829003601f168201915b50505050508152602001906001019061100d565b5050505090509450945094509450509193509193565b60105460115460125460135484565b600e6020526000908152604090208054600182015460029092015490919083565b60035481565b600060405161111290614615565b60408051918290038220828201909152601482527356656e757320476f7665726e6f7220427261766f60601b6020909201919091527f157d76627a3b71c0167806f5879f7a61d3e301322f3a3b9f900315f15937671a6111706123a1565b30604051602001611184949392919061475e565b60405160208183030381529060405280519060200120905060006040516111aa906145d9565b6040519081900381206111c3918990899060200161479c565b604051602081830303815290604052805190602001209050600082826040516020016111f09291906145e4565b60405160208183030381529060405280519060200120905060006001828888886040516000815260200160405260405161122d94939291906147c4565b6020604051602081039080840390855afa15801561124f573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166112825760405162461bcd60e51b81526004016105ed906148f6565b806001600160a01b03167fb8e138887d0aa13bab447e82de9d5c1777041ecd21ca36ba824ff1e6c07ddda48a8a6112ba858e8e6123a5565b6040516112c993929190614d5e565b60405180910390a2505050505050505050565b600081600754101580156112f1575060065482115b61130d5760405162461bcd60e51b81526004016105ed90614a76565b6000828152600a60205260409020600c81015460ff1615611332576002915050611471565b80600701544311611347576000915050611471565b8060080154431161135c576001915050611471565b80600a015481600901541115806113805750697f0e10af47c1c70000008160090154105b1561138f576003915050611471565b60028101546113a2576004915050611471565b600c810154610100900460ff16156113be576007915050611471565b6002810154600e82015460ff166000908152600f60209081526040918290205482516360d143f160e11b8152925161145b94936001600160a01b039092169263c1a287e29260048082019391829003018186803b15801561141e57600080fd5b505afa158015611432573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061145691908101906130e9565b61236f565b421061146b576006915050611471565b60059150505b919050565b6007611481826112dc565b600781111561148c57fe5b14156114aa5760405162461bcd60e51b81526004016105ed90614a66565b6000818152600a60205260409020600d546001600160a01b03163314806114dd575060018101546001600160a01b031633145b806115a05750600e8181015460ff16600090815260209190915260409020600201546009546001808401546001600160a01b039283169263782d6fe192911690611528904390612347565b6040518363ffffffff1660e01b8152600401611545929190614664565b60206040518083038186803b15801561155d57600080fd5b505afa158015611571573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061159591908101906132b0565b6001600160601b0316105b6115bc5760405162461bcd60e51b81526004016105ed906149c6565b600c8101805460ff1916600117905560005b60038201548110156116dc57600e82015460ff166000908152600f60205260409020546003830180546001600160a01b039092169163591fcdfe91908490811061161457fe5b6000918252602090912001546004850180546001600160a01b03909216918590811061163c57fe5b906000526020600020015485600501858154811061165657fe5b9060005260206000200186600601868154811061166f57fe5b9060005260206000200187600201546040518663ffffffff1660e01b815260040161169e9594939291906146c2565b600060405180830381600087803b1580156116b857600080fd5b505af11580156116cc573d6000803e3d6000fd5b5050600190920191506115ce9050565b507f789cf55be980739dad1d0699b93b58e806b51c9d96619bfa8fe0a28abaa7b30c82604051610df19190614750565b600d546001600160a01b031681565b60008052600f6020527ff4803e074bd026baaf6ed2e288c9515f68c72fb7216eebdd7cae1718a53ec375546001600160a01b03161561176c5760405162461bcd60e51b81526004016105ed90614936565b6000546001600160a01b031633146117965760405162461bcd60e51b81526004016105ed90614926565b6001600160a01b0385166117bc5760405162461bcd60e51b81526004016105ed906148d6565b6001600160a01b0381166117e25760405162461bcd60e51b81526004016105ed906149d6565b6117ea61239b565b60ff1682511461180c5760405162461bcd60e51b81526004016105ed90614896565b61181461239b565b60ff168351146118365760405162461bcd60e51b81526004016105ed90614a96565b600980546001600160a01b038088166001600160a01b031992831617909255600a600c55600d80549284169290911691909117905561187484611a65565b61187d83610aa7565b815160005b8181101561191c5760006001600160a01b03168482815181106118a157fe5b60200260200101516001600160a01b031614156118d05760405162461bcd60e51b81526004016105ed90614a16565b8381815181106118dc57fe5b6020908102919091018101516000838152600f909252604090912080546001600160a01b0319166001600160a01b03909216919091179055600101611882565b50505050505050565b337fb8e138887d0aa13bab447e82de9d5c1777041ecd21ca36ba824ff1e6c07ddda483836119548483836123a5565b60405161196393929190614d5e565b60405180910390a25050565b6002546001600160a01b031681565b691fc3842bd1f071c0000081565b337fb8e138887d0aa13bab447e82de9d5c1777041ecd21ca36ba824ff1e6c07ddda485856119bb8483836123a5565b86866040516119ce959493929190614d18565b60405180910390a250505050565b600c5481565b60055481565b6000546001600160a01b03163314611a125760405162461bcd60e51b81526004016105ed90614866565b600180546001600160a01b038381166001600160a01b03198316179092556040519116907fca4f2f25d0898edd99413412fb94012f9e54ec8142f9b093e7720646a95b16a990610df19083908590614649565b6000546001600160a01b03163314611a8f5760405162461bcd60e51b81526004016105ed90614966565b805115801590611aa3575060008160400151115b8015611ab6575080606001518160400151105b8015611ac6575060208101518151105b611ae25760405162461bcd60e51b81526004016105ed90614a56565b60105481516011546020840151601254604080870151601354606089015192517fc90c7ad68c13a491443f1c63dafa18b365428ee69170415afe234c16dc6f650d98611b3998909790969095909490939291614ca1565b60405180910390a180516010556020810151601155604081015160125560600151601355565b6008546001600160a01b031681565b60075481565b6004611b7f826112dc565b6007811115611b8a57fe5b14611ba75760405162461bcd60e51b81526004016105ed90614946565b6000818152600a60209081526040808320600e81015460ff168452600f8352818420548251630d48571f60e31b81529251919493611c109342936001600160a01b0390931692636a42b8f892600480840193919291829003018186803b15801561141e57600080fd5b905060005b6003830154811015611dc157611db9836003018281548110611c3357fe5b6000918252602090912001546004850180546001600160a01b039092169184908110611c5b57fe5b9060005260206000200154856005018481548110611c7557fe5b600091825260209182902001805460408051601f6002600019610100600187161502019094169390930492830185900485028101850190915281815292830182828015611d035780601f10611cd857610100808354040283529160200191611d03565b820191906000526020600020905b815481529060010190602001808311611ce657829003601f168201915b5050505050866006018581548110611d1757fe5b600091825260209182902001805460408051601f6002600019610100600187161502019094169390930492830185900485028101850190915281815292830182828015611da55780601f10611d7a57610100808354040283529160200191611da5565b820191906000526020600020905b815481529060010190602001808311611d8857829003601f168201915b50505050600e89015488915060ff16612595565b600101611c15565b50600282018190556040517f9a2e42fd6722813d69113e7d0079d3d940171428df7373df9c7f7617cfda289290611dfb9085908490614c50565b60405180910390a1505050565b604051610e09906145d9565b611e1c6128f2565b506000828152600a602090815260408083206001600160a01b0385168452600d018252918290208251606081018452905460ff8082161515835261010082041692820192909252620100009091046001600160601b0316918101919091525b92915050565b600d546001600160a01b0316331480611ea457506000546001600160a01b031633145b611ec05760405162461bcd60e51b81526004016105ed90614ab6565b6001600160a01b038116611ee65760405162461bcd60e51b81526004016105ed90614aa6565b600d80546001600160a01b038381166001600160a01b03198316179092556040519116907f08fdaf06427a2010e5958f4329b566993472d14ce81d3f16ce7f2a2660da98e390610df19083908590614649565b6001546001600160a01b031633148015611f5257503315155b611f6e5760405162461bcd60e51b81526004016105ed906149a6565b60008054600180546001600160a01b038082166001600160a01b03198086168217968790559092169092556040519282169390927ff9ffabca9c8276e99321725bcb43fb076a6c66a54b7f21c4e8146d8519b417dc92611fd2928692911690614649565b60405180910390a16001546040517fca4f2f25d0898edd99413412fb94012f9e54ec8142f9b093e7720646a95b16a991610df19184916001600160a01b031690614649565b600f602052600090815260409020546001600160a01b031681565b6000546001600160a01b031681565b6000546001600160a01b0316331461206b5760405162461bcd60e51b81526004016105ed90614a36565b6006541561208b5760405162461bcd60e51b81526004016105ed90614976565b806001600160a01b031663da35c6646040518163ffffffff1660e01b8152600401602060405180830381600087803b1580156120c657600080fd5b505af11580156120da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506120fe91908101906130e9565b600781905560065560005b61211161239b565b60ff1681101561218a576000818152600f6020526040808220548151630e18b68160e01b815291516001600160a01b0390911692630e18b681926004808201939182900301818387803b15801561216757600080fd5b505af115801561217b573d6000803e3d6000fd5b50505050806001019050612109565b5050565b60065481565b600561219f826112dc565b60078111156121aa57fe5b146121c75760405162461bcd60e51b81526004016105ed906148e6565b6000818152600a60205260408120600c8101805461ff001916610100179055905b600382015481101561231757600e82015460ff166000908152600f60205260409020546003830180546001600160a01b0390921691630825f38f91908490811061222e57fe5b6000918252602090912001546004850180546001600160a01b03909216918590811061225657fe5b906000526020600020015485600501858154811061227057fe5b9060005260206000200186600601868154811061228957fe5b9060005260206000200187600201546040518663ffffffff1660e01b81526004016122b89594939291906146c2565b600060405180830381600087803b1580156122d257600080fd5b505af11580156122e6573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261230e9190810190613107565b506001016121e8565b507f712ae1383f79ac853f8d882153778e0260ef8f03b504e2866e0593e04d2b291f82604051610df19190614750565b6000828211156123695760405162461bcd60e51b81526004016105ed90614ac6565b50900390565b6000828201838110156123945760405162461bcd60e51b81526004016105ed90614956565b9392505050565b60035b90565b4690565b600060016123b2846112dc565b60078111156123bd57fe5b146123da5760405162461bcd60e51b81526004016105ed906148b6565b60028260ff1611156123fe5760405162461bcd60e51b81526004016105ed90614846565b6000838152600a602090815260408083206001600160a01b0388168452600d8101909252909120805460ff16156124475760405162461bcd60e51b81526004016105ed906148c6565b600954600783015460405163782d6fe160e01b81526000926001600160a01b03169163782d6fe19161247d918b91600401614664565b60206040518083038186803b15801561249557600080fd5b505afa1580156124a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506124cd91908101906132b0565b905060ff85166124f8576124ee83600a0154826001600160601b031661236f565b600a84015561254e565b8460ff16600114156125255761251b8360090154826001600160601b031661236f565b600984015561254e565b8460ff166002141561254e5761254883600b0154826001600160601b031661236f565b600b8401555b8154600160ff199091161761ff00191661010060ff871602176dffffffffffffffffffffffff00001916620100006001600160601b03831602179091559150509392505050565b60ff81166000908152600f60209081526040918290205491516001600160a01b039092169163f2b06537916125d4918a918a918a918a918a9101614672565b604051602081830303815290604052805190602001206040518263ffffffff1660e01b81526004016126069190614750565b60206040518083038186803b15801561261e57600080fd5b505afa158015612632573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061265691908101906130cb565b156126735760405162461bcd60e51b81526004016105ed90614876565b60ff81166000908152600f602052604090819020549051633a66f90160e01b81526001600160a01b0390911690633a66f901906126bc9089908990899089908990600401614672565b602060405180830381600087803b1580156126d657600080fd5b505af11580156126ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061191c91908101906130e9565b604051806101e001604052806000815260200160006001600160a01b0316815260200160008152602001606081526020016060815260200160608152602001606081526020016000815260200160008152602001600081526020016000815260200160008152602001600015158152602001600015158152602001600060ff1681525090565b8280548282559060005260206000209081019282156127e9579160200282015b828111156127e957825182546001600160a01b0319166001600160a01b039091161782556020909201916001909101906127b4565b506127f5929150612912565b5090565b828054828255906000526020600020908101928215612834579160200282015b82811115612834578251825591602001919060010190612819565b506127f5929150612936565b82805482825590600052602060002090810192821561288d579160200282015b8281111561288d578251805161287d918491602090910190612950565b5091602001919060010190612860565b506127f59291506129bd565b8280548282559060005260206000209081019282156128e6579160200282015b828111156128e657825180516128d6918491602090910190612950565b50916020019190600101906128b9565b506127f59291506129e0565b604080516060810182526000808252602082018190529181019190915290565b61239e91905b808211156127f55780546001600160a01b0319168155600101612918565b61239e91905b808211156127f5576000815560010161293c565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061299157805160ff1916838001178555612834565b828001600101855582156128345791820182811115612834578251825591602001919060010190612819565b61239e91905b808211156127f55760006129d78282612a03565b506001016129c3565b61239e91905b808211156127f55760006129fa8282612a03565b506001016129e6565b50805460018160011615610100020316600290046000825580601f10612a295750612a47565b601f016020900490600052602060002090810190612a479190612936565b50565b8035611e7b81614ed3565b600082601f830112612a6657600080fd5b8135612a79612a7482614dbd565b614d97565b91508181835260208401935060208101905083856020840282011115612a9e57600080fd5b60005b83811015612aca5781612ab48882612a4a565b8452506020928301929190910190600101612aa1565b5050505092915050565b600082601f830112612ae557600080fd5b8135612af3612a7482614dbd565b81815260209384019390925082018360005b83811015612aca5781358601612b1b8882612d01565b8452506020928301929190910190600101612b05565b600082601f830112612b4257600080fd5b8135612b50612a7482614dbd565b91508181835260208401935060208101905083856020840282011115612b7557600080fd5b60005b83811015612aca5781612b8b8882612d96565b8452506020928301929190910190600101612b78565b600082601f830112612bb257600080fd5b8135612bc0612a7482614dbd565b81815260209384019390925082018360005b83811015612aca5781358601612be88882612d01565b8452506020928301929190910190600101612bd2565b600082601f830112612c0f57600080fd5b8135612c1d612a7482614dbd565b91508181835260208401935060208101905083856060840282011115612c4257600080fd5b60005b83811015612aca5781612c588882612df4565b84525060209092019160609190910190600101612c45565b600082601f830112612c8157600080fd5b8135612c8f612a7482614dbd565b91508181835260208401935060208101905083856020840282011115612cb457600080fd5b60005b83811015612aca5781612cca8882612ceb565b8452506020928301929190910190600101612cb7565b8051611e7b81614ee7565b8035611e7b81614ef0565b8051611e7b81614ef0565b600082601f830112612d1257600080fd5b8135612d20612a7482614ddd565b91508082526020830160208301858383011115612d3c57600080fd5b612d47838284614e87565b50505092915050565b600082601f830112612d6157600080fd5b8151612d6f612a7482614ddd565b91508082526020830160208301858383011115612d8b57600080fd5b612d47838284614e93565b8035611e7b81614ef9565b8035611e7b81614f02565b60008083601f840112612dbe57600080fd5b5081356001600160401b03811115612dd557600080fd5b602083019150836001820283011115612ded57600080fd5b9250929050565b600060608284031215612e0657600080fd5b612e106060614d97565b90506000612e1e8484612ceb565b8252506020612e2f84848301612ceb565b6020830152506040612e4384828501612ceb565b60408301525092915050565b600060808284031215612e6157600080fd5b612e6b6080614d97565b90506000612e798484612ceb565b8252506020612e8a84848301612ceb565b6020830152506040612e9e84828501612ceb565b6040830152506060612eb284828501612ceb565b60608301525092915050565b8035611e7b81614f0f565b8051611e7b81614f18565b600060208284031215612ee657600080fd5b6000612ef28484612a4a565b949350505050565b60008060008060006101008688031215612f1357600080fd5b6000612f1f8888612a4a565b9550506020612f3088828901612e4f565b94505060a08601356001600160401b03811115612f4c57600080fd5b612f5888828901612bfe565b93505060c08601356001600160401b03811115612f7457600080fd5b612f8088828901612b31565b92505060e0612f9188828901612a4a565b9150509295509295909350565b60008060008060008060c08789031215612fb757600080fd5b86356001600160401b03811115612fcd57600080fd5b612fd989828a01612a55565b96505060208701356001600160401b03811115612ff557600080fd5b61300189828a01612c70565b95505060408701356001600160401b0381111561301d57600080fd5b61302989828a01612ba1565b94505060608701356001600160401b0381111561304557600080fd5b61305189828a01612ad4565b93505060808701356001600160401b0381111561306d57600080fd5b61307989828a01612d01565b92505060a061308a89828a01612da1565b9150509295509295509295565b6000602082840312156130a957600080fd5b81356001600160401b038111156130bf57600080fd5b612ef284828501612bfe565b6000602082840312156130dd57600080fd5b6000612ef28484612ce0565b6000602082840312156130fb57600080fd5b6000612ef28484612cf6565b60006020828403121561311957600080fd5b81516001600160401b0381111561312f57600080fd5b612ef284828501612d50565b60006080828403121561314d57600080fd5b6000612ef28484612e4f565b60006020828403121561316b57600080fd5b6000612ef28484612ceb565b6000806040838503121561318a57600080fd5b60006131968585612ceb565b92505060206131a785828601612a4a565b9150509250929050565b600080604083850312156131c457600080fd5b60006131d08585612ceb565b92505060206131a785828601612ebe565b600080600080606085870312156131f757600080fd5b60006132038787612ceb565b945050602061321487828801612ebe565b93505060408501356001600160401b0381111561323057600080fd5b61323c87828801612dac565b95989497509550505050565b600080600080600060a0868803121561326057600080fd5b600061326c8888612ceb565b955050602061327d88828901612ebe565b945050604061328e88828901612ebe565b935050606061329f88828901612ceb565b9250506080612f9188828901612ceb565b6000602082840312156132c257600080fd5b6000612ef28484612ec9565b60006132da8383613309565b505060200190565b600061239483836134ab565b60006132da8383613491565b61330381614e66565b82525050565b61330381614e23565b600061331d82614e16565b6133278185614e1a565b935061333283614e04565b8060005b8381101561336057815161334a88826132ce565b975061335583614e04565b925050600101613336565b509495945050505050565b600061337682614e16565b6133808185614e1a565b93508360208202850161339285614e04565b8060005b858110156133cc57848403895281516133af85826132e2565b94506133ba83614e04565b60209a909a0199925050600101613396565b5091979650505050505050565b60006133e482614e16565b6133ee8185614e1a565b93508360208202850161340085614e04565b8060005b858110156133cc578484038952815161341d85826132e2565b945061342883614e04565b60209a909a0199925050600101613404565b600061344582614e16565b61344f8185614e1a565b935061345a83614e04565b8060005b8381101561336057815161347288826132ee565b975061347d83614e04565b92505060010161345e565b61330381614e2e565b6133038161239e565b6133036134a68261239e565b61239e565b60006134b682614e16565b6134c08185614e1a565b93506134d0818560208601614e93565b6134d981614ebf565b9093019392505050565b600081546001811660008114613500576001811461352657613565565b607f60028304166135118187614e1a565b60ff1984168152955050602085019250613565565b600282046135348187614e1a565b955061353f85614e0a565b60005b8281101561355e57815488820152600190910190602001613542565b8701945050505b505092915050565b61330381614e33565b61330381614e71565b600061358b8385614e1a565b9350613598838584614e87565b6134d983614ebf565b60006135ae604183614e1a565b600080516020614f2283398151915281527f733a20696e76616c69642070726f706f73616c20636f6e666967206c656e67746020820152600d60fb1b604082015260600192915050565b6000613605604183614e1a565b600080516020614f2283398151915281527f733a20696e76616c6964206d61782070726f706f73616c207468726573686f6c6020820152601960fa1b604082015260600192915050565b600061365c603283614e1a565b7f476f7665726e6f72427261766f3a3a63617374566f7465496e7465726e616c3a81527120696e76616c696420766f7465207479706560701b602082015260400192915050565b60006136b0604783614e1a565b600080516020614f2283398151915281527f733a2076616c69646174696f6e20706172616d73206e6f7420636f6e666967756020820152661c9959081e595d60ca1b604082015260600192915050565b600061370d602883611471565b7f42616c6c6f742875696e743235362070726f706f73616c49642c75696e743820815267737570706f72742960c01b602082015260280192915050565b6000613757602a83614e1a565b7f476f7665726e6f72427261766f3a5f73657450656e64696e6741646d696e3a2081526961646d696e206f6e6c7960b01b602082015260400192915050565b60006137a3605583614e1a565b7f476f7665726e6f72427261766f3a3a71756575654f72526576657274496e746581527f726e616c3a206964656e746963616c2070726f706f73616c20616374696f6e20602082015274616c7265616479207175657565642061742065746160581b604082015260600192915050565b6000613820603c83614e1a565b600080516020614f2283398151915281527f733a20696e76616c6964206d696e20766f74696e6720706572696f6400000000602082015260400192915050565b600061386d605683614e1a565b7f476f7665726e6f72427261766f3a3a696e697469616c697a653a6e756d62657281527f206f662074696d656c6f636b732073686f756c64206d61746368206e756d626560208201527572206f6620676f7665726e616e636520726f7574657360501b604082015260600192915050565b60006138eb603183614e1a565b7f476f7665726e6f72427261766f3a3a70726f706f73653a20476f7665726e6f7281527020427261766f206e6f742061637469766560781b602082015260400192915050565b600061393e600283611471565b61190160f01b815260020192915050565b600061395c603183614e1a565b7f476f7665726e6f72427261766f3a3a63617374566f7465496e7465726e616c3a815270081d9bdd1a5b99c81a5cc818db1bdcd959607a1b602082015260400192915050565b60006139af603483614e1a565b7f476f7665726e6f72427261766f3a3a63617374566f7465496e7465726e616c3a815273081d9bdd195c88185b1c9958591e481d9bdd195960621b602082015260400192915050565b6000613a05603483614e1a565b7f476f7665726e6f72427261766f3a3a696e697469616c697a653a20696e76616c815273696420787673207661756c74206164647265737360601b602082015260400192915050565b6000613a5b604583614e1a565b7f476f7665726e6f72427261766f3a3a657865637574653a2070726f706f73616c81527f2063616e206f6e6c7920626520657865637574656420696620697420697320716020820152641d595d595960da1b604082015260600192915050565b6000613ac8602f83614e1a565b7f476f7665726e6f72427261766f3a3a63617374566f746542795369673a20696e81526e76616c6964207369676e617475726560881b602082015260400192915050565b6000613b19602d83614e1a565b600080516020614f2283398151915281526c733a2061646d696e206f6e6c7960981b602082015260400192915050565b6000613b56604483614e1a565b7f476f7665726e6f72427261766f3a3a70726f706f73653a2070726f706f73616c81527f2066756e6374696f6e20696e666f726d6174696f6e206172697479206d69736d6020820152630c2e8c6d60e31b604082015260600192915050565b6000613bc2602583614e1a565b7f476f7665726e6f72427261766f3a3a696e697469616c697a653a2061646d696e815264206f6e6c7960d81b602082015260400192915050565b6000613c09603283614e1a565b7f476f7665726e6f72427261766f3a3a696e697469616c697a653a2063616e6e6f8152717420696e697469616c697a6520747769636560701b602082015260400192915050565b6000613c5d604483614e1a565b7f476f7665726e6f72427261766f3a3a71756575653a2070726f706f73616c206381527f616e206f6e6c79206265207175657565642069662069742069732073756363656020820152631959195960e21b604082015260600192915050565b6000613cc9601183614e1a565b706164646974696f6e206f766572666c6f7760781b815260200192915050565b6000613cf6604383611471565b7f454950373132446f6d61696e28737472696e67206e616d652c75696e7432353681527f20636861696e49642c6164647265737320766572696679696e67436f6e74726160208201526263742960e81b604082015260430192915050565b6000613d61602e83614e1a565b7f476f7665726e6f72427261766f3a3a73657456616c69646174696f6e5061726181526d6d733a2061646d696e206f6e6c7960901b602082015260400192915050565b6000613db1603083614e1a565b7f476f7665726e6f72427261766f3a3a5f696e6974696174653a2063616e206f6e81526f6c7920696e697469617465206f6e636560801b602082015260400192915050565b6000613e03602c83614e1a565b7f476f7665726e6f72427261766f3a3a70726f706f73653a206d7573742070726f81526b7669646520616374696f6e7360a01b602082015260400192915050565b6000613e51603b83614e1a565b600080516020614f2283398151915281527f733a20696e76616c6964206d617820766f74696e672064656c61790000000000602082015260400192915050565b6000613e9e602e83614e1a565b7f476f7665726e6f72427261766f3a5f61636365707441646d696e3a2070656e6481526d696e672061646d696e206f6e6c7960901b602082015260400192915050565b6000613eee603b83614e1a565b600080516020614f2283398151915281527f733a20696e76616c6964206d696e20766f74696e672064656c61790000000000602082015260400192915050565b6000613f3b602f83614e1a565b7f476f7665726e6f72427261766f3a3a63616e63656c3a2070726f706f7365722081526e18589bdd99481d1a1c995cda1bdb19608a1b602082015260400192915050565b6000613f8c602b83614e1a565b7f476f7665726e6f72427261766f3a3a696e697469616c697a653a20696e76616c81526a34b21033bab0b93234b0b760a91b602082015260400192915050565b6000613fd9602883614e1a565b7f476f7665726e6f72427261766f3a3a70726f706f73653a20746f6f206d616e7981526720616374696f6e7360c01b602082015260400192915050565b6000614023605983614e1a565b7f476f7665726e6f72427261766f3a3a70726f706f73653a206f6e65206c69766581527f2070726f706f73616c207065722070726f706f7365722c20666f756e6420616e60208201527f20616c72656164792070656e64696e672070726f706f73616c00000000000000604082015260600192915050565b60006140a8603483614e1a565b7f476f7665726e6f72427261766f3a3a5f73657450726f706f73616c4d61784f7081527365726174696f6e733a2061646d696e206f6e6c7960601b602082015260400192915050565b60006140fe603283614e1a565b7f476f7665726e6f72427261766f3a3a696e697469616c697a653a696e76616c69815271642074696d656c6f636b206164647265737360701b602082015260400192915050565b6000614152605883614e1a565b7f476f7665726e6f72427261766f3a3a70726f706f73653a206f6e65206c69766581527f2070726f706f73616c207065722070726f706f7365722c20666f756e6420616e60208201527f20616c7265616479206163746976652070726f706f73616c0000000000000000604082015260600192915050565b6000611e7b600083614e1a565b60006141e4602483614e1a565b7f476f7665726e6f72427261766f3a3a5f696e6974696174653a2061646d696e208152636f6e6c7960e01b602082015260400192915050565b600061422a603f83614e1a565b7f476f7665726e6f72427261766f3a3a70726f706f73653a2070726f706f73657281527f20766f7465732062656c6f772070726f706f73616c207468726573686f6c6400602082015260400192915050565b6000614289603283614e1a565b7f476f7665726e6f72427261766f3a3a73657456616c69646174696f6e506172618152716d733a20696e76616c696420706172616d7360701b602082015260400192915050565b60006142dd603683614e1a565b7f476f7665726e6f72427261766f3a3a63616e63656c3a2063616e6e6f742063618152751b98d95b08195e1958dd5d1959081c1c9bdc1bdcd85b60521b602082015260400192915050565b6000614335602983614e1a565b7f476f7665726e6f72427261766f3a3a73746174653a20696e76616c69642070728152681bdc1bdcd85b081a5960ba1b602082015260400192915050565b6000614380604183614e1a565b600080516020614f2283398151915281527f733a20696e76616c6964206d696e2070726f706f73616c207468726573686f6c6020820152601960fa1b604082015260600192915050565b60006143d7605d83614e1a565b7f476f7665726e6f72427261766f3a3a696e697469616c697a653a6e756d62657281527f206f662070726f706f73616c20636f6e666967732073686f756c64206d61746360208201527f68206e756d626572206f6620676f7665726e616e636520726f75746573000000604082015260600192915050565b600061445c603b83614e1a565b7f476f7665726e6f72427261766f3a3a5f736574477561726469616e3a2063616e81527f6e6f74206c69766520776974686f7574206120677561726469616e0000000000602082015260400192915050565b60006144bb603383614e1a565b7f476f7665726e6f72427261766f3a3a5f736574477561726469616e3a2061646d815272696e206f7220677561726469616e206f6e6c7960681b602082015260400192915050565b6000614510601583614e1a565b747375627472616374696f6e20756e646572666c6f7760581b815260200192915050565b6000614541603c83614e1a565b600080516020614f2283398151915281527f733a20696e76616c6964206d617820766f74696e6720706572696f6400000000602082015260400192915050565b805160608301906145928482613488565b5060208201516145a560208501826145be565b5060408201516145b860408501826145d0565b50505050565b61330381614e54565b61330381614e7c565b61330381614e5a565b6000611e7b82613700565b60006145ef82613931565b91506145fb828561349a565b60208201915061460b828461349a565b5060200192915050565b6000611e7b82613ce9565b60208101611e7b8284613309565b6040810161463c82856132fa565b6123946020830184613491565b604081016146578285613309565b6123946020830184613309565b6040810161463c8285613309565b60a081016146808288613309565b61468d6020830187613491565b818103604083015261469f81866134ab565b905081810360608301526146b381856134ab565b9050610a7c6080830184613491565b60a081016146d08288613309565b6146dd6020830187613491565b81810360408301526146ef81866134e3565b905081810360608301526146b381856134e3565b608080825281016147148187613312565b90508181036020830152614728818661343a565b9050818103604083015261473c81856133d9565b90508181036060830152610a7c818461336b565b60208101611e7b8284613491565b6080810161476c8287613491565b6147796020830186613491565b6147866040830185613491565b6147936060830184613309565b95945050505050565b606081016147aa8286613491565b6147b76020830185613491565b612ef260408301846145be565b608081016147d28287613491565b6147df60208301866145be565b6147ec6040830185613491565b6147936060830184613491565b60208101611e7b828461356d565b60208101611e7b8284613576565b6020808252810161239481846134ab565b60208082528101611e7b816135a1565b60208082528101611e7b816135f8565b60208082528101611e7b8161364f565b60208082528101611e7b816136a3565b60208082528101611e7b8161374a565b60208082528101611e7b81613796565b60208082528101611e7b81613813565b60208082528101611e7b81613860565b60208082528101611e7b816138de565b60208082528101611e7b8161394f565b60208082528101611e7b816139a2565b60208082528101611e7b816139f8565b60208082528101611e7b81613a4e565b60208082528101611e7b81613abb565b60208082528101611e7b81613b0c565b60208082528101611e7b81613b49565b60208082528101611e7b81613bb5565b60208082528101611e7b81613bfc565b60208082528101611e7b81613c50565b60208082528101611e7b81613cbc565b60208082528101611e7b81613d54565b60208082528101611e7b81613da4565b60208082528101611e7b81613df6565b60208082528101611e7b81613e44565b60208082528101611e7b81613e91565b60208082528101611e7b81613ee1565b60208082528101611e7b81613f2e565b60208082528101611e7b81613f7f565b60208082528101611e7b81613fcc565b60208082528101611e7b81614016565b60208082528101611e7b8161409b565b60208082528101611e7b816140f1565b60208082528101611e7b81614145565b60208082528101611e7b816141d7565b60208082528101611e7b8161421d565b60208082528101611e7b8161427c565b60208082528101611e7b816142d0565b60208082528101611e7b81614328565b60208082528101611e7b81614373565b60208082528101611e7b816143ca565b60208082528101611e7b8161444f565b60208082528101611e7b816144ae565b60208082528101611e7b81614503565b60208082528101611e7b81614534565b60608101611e7b8284614581565b6101408101614b03828d613491565b614b10602083018c6132fa565b8181036040830152614b22818b613312565b90508181036060830152614b36818a61343a565b90508181036080830152614b4a81896133d9565b905081810360a0830152614b5e818861336b565b9050614b6d60c0830187613491565b614b7a60e0830186613491565b818103610100830152614b8d81856134ab565b9050614b9d6101208301846145be565b9b9a5050505050505050505050565b6101608101614bbb828e613491565b614bc8602083018d613309565b614bd5604083018c613491565b614be2606083018b613491565b614bef608083018a613491565b614bfc60a0830189613491565b614c0960c0830188613491565b614c1660e0830187613491565b614c24610100830186613488565b614c32610120830185613488565b614c406101408301846145be565b9c9b505050505050505050505050565b6040810161463c8285613491565b60608101614c6c8286613491565b614c796020830185613491565b612ef26040830184613491565b60808101614c948287613491565b6147df6020830186613491565b6101008101614cb0828b613491565b614cbd602083018a613491565b614cca6040830189613491565b614cd76060830188613491565b614ce46080830187613491565b614cf160a0830186613491565b614cfe60c0830185613491565b614d0b60e0830184613491565b9998505050505050505050565b60808101614d268288613491565b614d3360208301876145be565b614d4060408301866145c7565b8181036060830152614d5381848661357f565b979650505050505050565b60808101614d6c8286613491565b614d7960208301856145be565b614d8660408301846145c7565b8181036060830152614793816141ca565b6040518181016001600160401b0381118282101715614db557600080fd5b604052919050565b60006001600160401b03821115614dd357600080fd5b5060209081020190565b60006001600160401b03821115614df357600080fd5b506020601f91909101601f19160190565b60200190565b60009081526020902090565b5190565b90815260200190565b6000611e7b82614e48565b151590565b6000611e7b82614e23565b8061147181614ec9565b6001600160a01b031690565b60ff1690565b6001600160601b031690565b6000611e7b82614e33565b6000611e7b82614e3e565b6000611e7b82614e5a565b82818337506000910152565b60005b83811015614eae578181015183820152602001614e96565b838111156145b85750506000910152565b601f01601f191690565b60088110612a4757fe5b614edc81614e23565b8114612a4757600080fd5b614edc81614e2e565b614edc8161239e565b614edc81614e33565b60038110612a4757600080fd5b614edc81614e54565b614edc81614e5a56fe476f7665726e6f72427261766f3a3a73657450726f706f73616c436f6e666967a365627a7a7231582066ce3abc94ebcd9177d96280ac97067f0b34d7b6191f57e0b338117aecacfca66c6578706572696d656e74616cf564736f6c63430005100040","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4F84 DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x253 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x46416F92 GT PUSH2 0x146 JUMPI DUP1 PUSH4 0xDA35C664 GT PUSH2 0xC3 JUMPI DUP1 PUSH4 0xE9C714F2 GT PUSH2 0x87 JUMPI DUP1 PUSH4 0xE9C714F2 EQ PUSH2 0x4D5 JUMPI DUP1 PUSH4 0xEE9799EE EQ PUSH2 0x4DD JUMPI DUP1 PUSH4 0xF851A440 EQ PUSH2 0x4F0 JUMPI DUP1 PUSH4 0xF9D28B80 EQ PUSH2 0x4F8 JUMPI DUP1 PUSH4 0xFC4EEE42 EQ PUSH2 0x50B JUMPI DUP1 PUSH4 0xFE0D94C1 EQ PUSH2 0x513 JUMPI PUSH2 0x253 JUMP JUMPDEST DUP1 PUSH4 0xDA35C664 EQ PUSH2 0x47F JUMPI DUP1 PUSH4 0xDDF0B009 EQ PUSH2 0x487 JUMPI DUP1 PUSH4 0xDEAAA7CC EQ PUSH2 0x49A JUMPI DUP1 PUSH4 0xE23A9A52 EQ PUSH2 0x4A2 JUMPI DUP1 PUSH4 0xE38E8C0F EQ PUSH2 0x4C2 JUMPI PUSH2 0x253 JUMP JUMPDEST DUP1 PUSH4 0x7BDBE4D0 GT PUSH2 0x10A JUMPI DUP1 PUSH4 0x7BDBE4D0 EQ PUSH2 0x441 JUMPI DUP1 PUSH4 0xB58131B0 EQ PUSH2 0x449 JUMPI DUP1 PUSH4 0xB71D1A0C EQ PUSH2 0x451 JUMPI DUP1 PUSH4 0xBB08C321 EQ PUSH2 0x464 JUMPI DUP1 PUSH4 0xD33219B4 EQ PUSH2 0x477 JUMPI PUSH2 0x253 JUMP JUMPDEST DUP1 PUSH4 0x46416F92 EQ PUSH2 0x3F8 JUMPI DUP1 PUSH4 0x56781388 EQ PUSH2 0x40B JUMPI DUP1 PUSH4 0x5C60DA1B EQ PUSH2 0x41E JUMPI DUP1 PUSH4 0x791F5D23 EQ PUSH2 0x426 JUMPI DUP1 PUSH4 0x7B3C71D3 EQ PUSH2 0x42E JUMPI PUSH2 0x253 JUMP JUMPDEST DUP1 PUSH4 0x25FD935A GT PUSH2 0x1D4 JUMPI DUP1 PUSH4 0x3932ABB1 GT PUSH2 0x198 JUMPI DUP1 PUSH4 0x3932ABB1 EQ PUSH2 0x3A2 JUMPI DUP1 PUSH4 0x3BCCF4FD EQ PUSH2 0x3AA JUMPI DUP1 PUSH4 0x3E4F49E6 EQ PUSH2 0x3BD JUMPI DUP1 PUSH4 0x40E58EE5 EQ PUSH2 0x3DD JUMPI DUP1 PUSH4 0x452A9320 EQ PUSH2 0x3F0 JUMPI PUSH2 0x253 JUMP JUMPDEST DUP1 PUSH4 0x25FD935A EQ PUSH2 0x328 JUMPI DUP1 PUSH4 0x26782247 EQ PUSH2 0x330 JUMPI DUP1 PUSH4 0x328DD982 EQ PUSH2 0x345 JUMPI DUP1 PUSH4 0x34CF3909 EQ PUSH2 0x368 JUMPI DUP1 PUSH4 0x35A87DE2 EQ PUSH2 0x380 JUMPI PUSH2 0x253 JUMP JUMPDEST DUP1 PUSH4 0x1B9CE575 GT PUSH2 0x21B JUMPI DUP1 PUSH4 0x1B9CE575 EQ PUSH2 0x2DB JUMPI DUP1 PUSH4 0x1E75ADF2 EQ PUSH2 0x2F0 JUMPI DUP1 PUSH4 0x1EBCFEFD EQ PUSH2 0x305 JUMPI DUP1 PUSH4 0x20606B70 EQ PUSH2 0x318 JUMPI DUP1 PUSH4 0x24BC1A64 EQ PUSH2 0x320 JUMPI PUSH2 0x253 JUMP JUMPDEST DUP1 PUSH4 0x13CF08B EQ PUSH2 0x258 JUMPI DUP1 PUSH4 0x2A251A3 EQ PUSH2 0x28B JUMPI DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x2A0 JUMPI DUP1 PUSH4 0x164A1AB1 EQ PUSH2 0x2B5 JUMPI DUP1 PUSH4 0x17977C61 EQ PUSH2 0x2C8 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x26B PUSH2 0x266 CALLDATASIZE PUSH1 0x4 PUSH2 0x3159 JUMP JUMPDEST PUSH2 0x526 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x282 SWAP12 SWAP11 SWAP10 SWAP9 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4BAC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x293 PUSH2 0x592 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x282 SWAP2 SWAP1 PUSH2 0x4750 JUMP JUMPDEST PUSH2 0x2A8 PUSH2 0x598 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x282 SWAP2 SWAP1 PUSH2 0x4815 JUMP JUMPDEST PUSH2 0x293 PUSH2 0x2C3 CALLDATASIZE PUSH1 0x4 PUSH2 0x2F9E JUMP JUMPDEST PUSH2 0x5C8 JUMP JUMPDEST PUSH2 0x293 PUSH2 0x2D6 CALLDATASIZE PUSH1 0x4 PUSH2 0x2ED4 JUMP JUMPDEST PUSH2 0xA86 JUMP JUMPDEST PUSH2 0x2E3 PUSH2 0xA98 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x282 SWAP2 SWAP1 PUSH2 0x47F9 JUMP JUMPDEST PUSH2 0x303 PUSH2 0x2FE CALLDATASIZE PUSH1 0x4 PUSH2 0x3097 JUMP JUMPDEST PUSH2 0xAA7 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x303 PUSH2 0x313 CALLDATASIZE PUSH1 0x4 PUSH2 0x3159 JUMP JUMPDEST PUSH2 0xD8D JUMP JUMPDEST PUSH2 0x293 PUSH2 0xDFD JUMP JUMPDEST PUSH2 0x293 PUSH2 0xE14 JUMP JUMPDEST PUSH2 0x293 PUSH2 0xE22 JUMP JUMPDEST PUSH2 0x338 PUSH2 0xE30 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x282 SWAP2 SWAP1 PUSH2 0x4620 JUMP JUMPDEST PUSH2 0x358 PUSH2 0x353 CALLDATASIZE PUSH1 0x4 PUSH2 0x3159 JUMP JUMPDEST PUSH2 0xE3F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x282 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4703 JUMP JUMPDEST PUSH2 0x370 PUSH2 0x10CE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x282 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4C86 JUMP JUMPDEST PUSH2 0x393 PUSH2 0x38E CALLDATASIZE PUSH1 0x4 PUSH2 0x3159 JUMP JUMPDEST PUSH2 0x10DD JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x282 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4C5E JUMP JUMPDEST PUSH2 0x293 PUSH2 0x10FE JUMP JUMPDEST PUSH2 0x303 PUSH2 0x3B8 CALLDATASIZE PUSH1 0x4 PUSH2 0x3248 JUMP JUMPDEST PUSH2 0x1104 JUMP JUMPDEST PUSH2 0x3D0 PUSH2 0x3CB CALLDATASIZE PUSH1 0x4 PUSH2 0x3159 JUMP JUMPDEST PUSH2 0x12DC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x282 SWAP2 SWAP1 PUSH2 0x4807 JUMP JUMPDEST PUSH2 0x303 PUSH2 0x3EB CALLDATASIZE PUSH1 0x4 PUSH2 0x3159 JUMP JUMPDEST PUSH2 0x1476 JUMP JUMPDEST PUSH2 0x338 PUSH2 0x170C JUMP JUMPDEST PUSH2 0x303 PUSH2 0x406 CALLDATASIZE PUSH1 0x4 PUSH2 0x2EFA JUMP JUMPDEST PUSH2 0x171B JUMP JUMPDEST PUSH2 0x303 PUSH2 0x419 CALLDATASIZE PUSH1 0x4 PUSH2 0x31B1 JUMP JUMPDEST PUSH2 0x1925 JUMP JUMPDEST PUSH2 0x338 PUSH2 0x196F JUMP JUMPDEST PUSH2 0x293 PUSH2 0x197E JUMP JUMPDEST PUSH2 0x303 PUSH2 0x43C CALLDATASIZE PUSH1 0x4 PUSH2 0x31E1 JUMP JUMPDEST PUSH2 0x198C JUMP JUMPDEST PUSH2 0x293 PUSH2 0x19DC JUMP JUMPDEST PUSH2 0x293 PUSH2 0x19E2 JUMP JUMPDEST PUSH2 0x303 PUSH2 0x45F CALLDATASIZE PUSH1 0x4 PUSH2 0x2ED4 JUMP JUMPDEST PUSH2 0x19E8 JUMP JUMPDEST PUSH2 0x303 PUSH2 0x472 CALLDATASIZE PUSH1 0x4 PUSH2 0x313B JUMP JUMPDEST PUSH2 0x1A65 JUMP JUMPDEST PUSH2 0x2E3 PUSH2 0x1B5F JUMP JUMPDEST PUSH2 0x293 PUSH2 0x1B6E JUMP JUMPDEST PUSH2 0x303 PUSH2 0x495 CALLDATASIZE PUSH1 0x4 PUSH2 0x3159 JUMP JUMPDEST PUSH2 0x1B74 JUMP JUMPDEST PUSH2 0x293 PUSH2 0x1E08 JUMP JUMPDEST PUSH2 0x4B5 PUSH2 0x4B0 CALLDATASIZE PUSH1 0x4 PUSH2 0x3177 JUMP JUMPDEST PUSH2 0x1E14 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x282 SWAP2 SWAP1 PUSH2 0x4AE6 JUMP JUMPDEST PUSH2 0x303 PUSH2 0x4D0 CALLDATASIZE PUSH1 0x4 PUSH2 0x2ED4 JUMP JUMPDEST PUSH2 0x1E81 JUMP JUMPDEST PUSH2 0x303 PUSH2 0x1F39 JUMP JUMPDEST PUSH2 0x2E3 PUSH2 0x4EB CALLDATASIZE PUSH1 0x4 PUSH2 0x3159 JUMP JUMPDEST PUSH2 0x2017 JUMP JUMPDEST PUSH2 0x338 PUSH2 0x2032 JUMP JUMPDEST PUSH2 0x303 PUSH2 0x506 CALLDATASIZE PUSH1 0x4 PUSH2 0x2ED4 JUMP JUMPDEST PUSH2 0x2041 JUMP JUMPDEST PUSH2 0x293 PUSH2 0x218E JUMP JUMPDEST PUSH2 0x303 PUSH2 0x521 CALLDATASIZE PUSH1 0x4 PUSH2 0x3159 JUMP JUMPDEST PUSH2 0x2194 JUMP JUMPDEST PUSH1 0xA PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x40 SWAP1 SWAP2 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 SWAP7 DUP7 ADD SLOAD PUSH1 0xB DUP8 ADD SLOAD PUSH1 0xC DUP9 ADD SLOAD PUSH1 0xE SWAP1 SWAP9 ADD SLOAD SWAP7 SWAP9 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP7 AND SWAP8 SWAP5 SWAP7 SWAP4 SWAP6 SWAP3 SWAP5 SWAP3 SWAP4 SWAP2 SWAP3 SWAP1 SWAP2 PUSH1 0xFF DUP1 DUP4 AND SWAP3 PUSH2 0x100 SWAP1 DIV DUP2 AND SWAP2 AND DUP12 JUMP JUMPDEST PUSH1 0x4 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x14 DUP2 MSTORE PUSH1 0x20 ADD PUSH20 0x56656E757320476F7665726E6F7220427261766F PUSH1 0x60 SHL DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x6 SLOAD PUSH1 0x0 EQ ISZERO PUSH2 0x5F6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5ED SWAP1 PUSH2 0x48A6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0xE PUSH1 0x0 DUP4 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x606 JUMPI INVALID JUMPDEST PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 PUSH1 0x2 ADD SLOAD PUSH1 0x9 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x782D6FE1 CALLER PUSH2 0x63A NUMBER PUSH1 0x1 PUSH2 0x2347 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x657 SWAP3 SWAP2 SWAP1 PUSH2 0x462E JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x66F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x683 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 0x6A7 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x32B0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB AND LT ISZERO PUSH2 0x6CE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5ED SWAP1 PUSH2 0x4A46 JUMP JUMPDEST DUP6 MLOAD DUP8 MLOAD EQ DUP1 ISZERO PUSH2 0x6E0 JUMPI POP DUP5 MLOAD DUP8 MLOAD EQ JUMPDEST DUP1 ISZERO PUSH2 0x6ED JUMPI POP DUP4 MLOAD DUP8 MLOAD EQ JUMPDEST PUSH2 0x709 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5ED SWAP1 PUSH2 0x4916 JUMP JUMPDEST DUP7 MLOAD PUSH2 0x727 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5ED SWAP1 PUSH2 0x4986 JUMP JUMPDEST PUSH1 0xC SLOAD DUP8 MLOAD GT ISZERO PUSH2 0x74A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5ED SWAP1 PUSH2 0x49E6 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP1 ISZERO PUSH2 0x7C7 JUMPI PUSH1 0x0 PUSH2 0x76B DUP3 PUSH2 0x12DC JUMP JUMPDEST SWAP1 POP PUSH1 0x1 DUP2 PUSH1 0x7 DUP2 GT ISZERO PUSH2 0x77B JUMPI INVALID JUMPDEST EQ ISZERO PUSH2 0x799 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5ED SWAP1 PUSH2 0x4A26 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x7 DUP2 GT ISZERO PUSH2 0x7A7 JUMPI INVALID JUMPDEST EQ ISZERO PUSH2 0x7C5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5ED SWAP1 PUSH2 0x49F6 JUMP JUMPDEST POP JUMPDEST PUSH1 0x0 PUSH2 0x7F7 NUMBER PUSH1 0xE PUSH1 0x0 DUP8 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x7DD JUMPI INVALID JUMPDEST PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD PUSH2 0x236F JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x829 DUP3 PUSH1 0xE PUSH1 0x0 DUP9 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x80F JUMPI INVALID JUMPDEST PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH2 0x236F JUMP JUMPDEST PUSH1 0x7 DUP1 SLOAD PUSH1 0x1 ADD SWAP1 SSTORE SWAP1 POP PUSH2 0x83C PUSH2 0x270E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH2 0x1E0 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x7 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 DUP13 DUP2 MSTORE PUSH1 0x20 ADD DUP12 DUP2 MSTORE PUSH1 0x20 ADD DUP11 DUP2 MSTORE PUSH1 0x20 ADD DUP10 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 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD DUP8 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x8BD JUMPI INVALID JUMPDEST PUSH1 0xFF AND SWAP1 MSTORE DUP1 MLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP4 MLOAD DUP2 SSTORE DUP2 DUP5 ADD MLOAD PUSH1 0x1 DUP3 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE SWAP2 DUP4 ADD MLOAD PUSH1 0x2 DUP4 ADD SSTORE PUSH1 0x60 DUP4 ADD MLOAD DUP1 MLOAD SWAP4 SWAP5 POP DUP5 SWAP4 PUSH2 0x924 SWAP3 PUSH1 0x3 DUP6 ADD SWAP3 ADD SWAP1 PUSH2 0x2794 JUMP JUMPDEST POP PUSH1 0x80 DUP3 ADD MLOAD DUP1 MLOAD PUSH2 0x940 SWAP2 PUSH1 0x4 DUP5 ADD SWAP2 PUSH1 0x20 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x27F9 JUMP JUMPDEST POP PUSH1 0xA0 DUP3 ADD MLOAD DUP1 MLOAD PUSH2 0x95C SWAP2 PUSH1 0x5 DUP5 ADD SWAP2 PUSH1 0x20 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x2840 JUMP JUMPDEST POP PUSH1 0xC0 DUP3 ADD MLOAD DUP1 MLOAD PUSH2 0x978 SWAP2 PUSH1 0x6 DUP5 ADD SWAP2 PUSH1 0x20 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x2899 JUMP JUMPDEST POP PUSH1 0xE0 DUP3 ADD MLOAD PUSH1 0x7 DUP3 ADD SSTORE PUSH2 0x100 DUP1 DUP4 ADD MLOAD PUSH1 0x8 DUP4 ADD SSTORE PUSH2 0x120 DUP4 ADD MLOAD PUSH1 0x9 DUP4 ADD SSTORE PUSH2 0x140 DUP4 ADD MLOAD PUSH1 0xA DUP4 ADD SSTORE PUSH2 0x160 DUP4 ADD MLOAD PUSH1 0xB DUP1 DUP5 ADD SWAP2 SWAP1 SWAP2 SSTORE PUSH2 0x180 DUP5 ADD MLOAD PUSH1 0xC DUP5 ADD DUP1 SLOAD PUSH2 0x1A0 DUP8 ADD MLOAD PUSH1 0xFF NOT SWAP2 DUP3 AND SWAP4 ISZERO ISZERO SWAP4 SWAP1 SWAP4 OR PUSH2 0xFF00 NOT AND SWAP3 ISZERO ISZERO SWAP1 SWAP5 MUL SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x1C0 SWAP1 SWAP4 ADD MLOAD PUSH1 0xE SWAP1 SWAP3 ADD DUP1 SLOAD SWAP1 SWAP2 AND PUSH1 0xFF SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE DUP2 MLOAD PUSH1 0x20 DUP1 DUP5 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE SWAP3 SWAP1 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 SSTORE DUP1 MLOAD PUSH32 0xC8DF7FF219F3C0358E14500814D8B62B443A4BEBF3A596BAA60B9295B1CF1BDE SWAP1 CALLER DUP14 DUP14 DUP14 DUP14 DUP10 DUP10 DUP16 DUP16 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xA57 JUMPI INVALID JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xA6D SWAP11 SWAP10 SWAP9 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4AF4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 MLOAD SWAP4 POP POP POP POP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xAD1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5ED SWAP1 PUSH2 0x4906 JUMP JUMPDEST PUSH1 0x10 SLOAD ISZERO DUP1 ISZERO SWAP1 PUSH2 0xAE3 JUMPI POP PUSH1 0x11 SLOAD ISZERO ISZERO JUMPDEST DUP1 ISZERO PUSH2 0xAF0 JUMPI POP PUSH1 0x12 SLOAD ISZERO ISZERO JUMPDEST DUP1 ISZERO PUSH2 0xAFD JUMPI POP PUSH1 0x13 SLOAD ISZERO ISZERO JUMPDEST PUSH2 0xB19 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5ED SWAP1 PUSH2 0x4856 JUMP JUMPDEST DUP1 MLOAD PUSH2 0xB23 PUSH2 0x239B JUMP JUMPDEST PUSH1 0xFF AND DUP2 EQ PUSH2 0xB44 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5ED SWAP1 PUSH2 0x4826 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0xD88 JUMPI PUSH1 0x10 PUSH1 0x0 ADD SLOAD DUP4 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0xB61 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x20 ADD MLOAD LT ISZERO PUSH2 0xB8B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5ED SWAP1 PUSH2 0x4886 JUMP JUMPDEST PUSH1 0x10 PUSH1 0x1 ADD SLOAD DUP4 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0xB9D JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x20 ADD MLOAD GT ISZERO PUSH2 0xBC7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5ED SWAP1 PUSH2 0x4AD6 JUMP JUMPDEST PUSH1 0x10 PUSH1 0x2 ADD SLOAD DUP4 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0xBD9 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x0 ADD MLOAD LT ISZERO PUSH2 0xC03 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5ED SWAP1 PUSH2 0x49B6 JUMP JUMPDEST PUSH1 0x10 PUSH1 0x3 ADD SLOAD DUP4 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0xC15 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x0 ADD MLOAD GT ISZERO PUSH2 0xC3F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5ED SWAP1 PUSH2 0x4996 JUMP JUMPDEST PUSH10 0x1FC3842BD1F071C00000 DUP4 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0xC56 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x40 ADD MLOAD LT ISZERO PUSH2 0xC80 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5ED SWAP1 PUSH2 0x4A86 JUMP JUMPDEST PUSH10 0x3F870857A3E0E3800000 DUP4 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0xC97 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x40 ADD MLOAD GT ISZERO PUSH2 0xCC1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5ED SWAP1 PUSH2 0x4836 JUMP JUMPDEST DUP3 DUP2 DUP2 MLOAD DUP2 LT PUSH2 0xCCD JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0xE DUP4 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 DUP3 MLOAD DUP2 SSTORE SWAP3 DUP3 ADD MLOAD PUSH1 0x1 DUP5 ADD SSTORE ADD MLOAD PUSH1 0x2 SWAP1 SWAP2 ADD SSTORE DUP3 MLOAD PUSH32 0x99382998F89CD4C8AEC7AE5D6DECA4B4B0BFA01691740CCD702BF76B6A6816D2 SWAP1 DUP5 SWAP1 DUP4 SWAP1 DUP2 LT PUSH2 0xD2D JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x20 ADD MLOAD DUP5 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0xD45 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x0 ADD MLOAD DUP6 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0xD5D JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x40 ADD MLOAD PUSH1 0x40 MLOAD PUSH2 0xD78 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4C5E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x1 ADD PUSH2 0xB47 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xDB7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5ED SWAP1 PUSH2 0x4A06 JUMP JUMPDEST PUSH1 0xC DUP1 SLOAD SWAP1 DUP3 SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH32 0xD03B3C3C5C1446BCDD31423061041C94CA3BC5450FE7CCFB0F636F4C420DE87E SWAP1 PUSH2 0xDF1 SWAP1 DUP4 SWAP1 DUP6 SWAP1 PUSH2 0x4C50 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xE09 SWAP1 PUSH2 0x4615 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 DUP2 JUMP JUMPDEST PUSH10 0x7F0E10AF47C1C7000000 DUP2 JUMP JUMPDEST PUSH10 0x3F870857A3E0E3800000 DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x60 DUP1 PUSH1 0x60 DUP1 PUSH1 0x0 PUSH1 0xA 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 0xEC1 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 0xEA3 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 0xF13 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 0xEFF 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 0xFE6 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 0xFD2 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xFA7 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xFD2 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 0xFB5 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 0xF3B 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 0x10B8 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 0x10A4 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1079 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x10A4 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 0x1087 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 0x100D 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 0x10 SLOAD PUSH1 0x11 SLOAD PUSH1 0x12 SLOAD PUSH1 0x13 SLOAD DUP5 JUMP JUMPDEST PUSH1 0xE PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0x2 SWAP1 SWAP3 ADD SLOAD SWAP1 SWAP2 SWAP1 DUP4 JUMP JUMPDEST PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD PUSH2 0x1112 SWAP1 PUSH2 0x4615 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB DUP3 KECCAK256 DUP3 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x14 DUP3 MSTORE PUSH20 0x56656E757320476F7665726E6F7220427261766F PUSH1 0x60 SHL PUSH1 0x20 SWAP1 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0x157D76627A3B71C0167806F5879F7A61D3E301322F3A3B9F900315F15937671A PUSH2 0x1170 PUSH2 0x23A1 JUMP JUMPDEST ADDRESS PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x1184 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x475E 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 0x11AA SWAP1 PUSH2 0x45D9 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB DUP2 KECCAK256 PUSH2 0x11C3 SWAP2 DUP10 SWAP1 DUP10 SWAP1 PUSH1 0x20 ADD PUSH2 0x479C 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 0x11F0 SWAP3 SWAP2 SWAP1 PUSH2 0x45E4 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 0x122D SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x47C4 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x124F 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 0x1282 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5ED SWAP1 PUSH2 0x48F6 JUMP JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xB8E138887D0AA13BAB447E82DE9D5C1777041ECD21CA36BA824FF1E6C07DDDA4 DUP11 DUP11 PUSH2 0x12BA DUP6 DUP15 DUP15 PUSH2 0x23A5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x12C9 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4D5E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x7 SLOAD LT ISZERO DUP1 ISZERO PUSH2 0x12F1 JUMPI POP PUSH1 0x6 SLOAD DUP3 GT JUMPDEST PUSH2 0x130D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5ED SWAP1 PUSH2 0x4A76 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0xC DUP2 ADD SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x1332 JUMPI PUSH1 0x2 SWAP2 POP POP PUSH2 0x1471 JUMP JUMPDEST DUP1 PUSH1 0x7 ADD SLOAD NUMBER GT PUSH2 0x1347 JUMPI PUSH1 0x0 SWAP2 POP POP PUSH2 0x1471 JUMP JUMPDEST DUP1 PUSH1 0x8 ADD SLOAD NUMBER GT PUSH2 0x135C JUMPI PUSH1 0x1 SWAP2 POP POP PUSH2 0x1471 JUMP JUMPDEST DUP1 PUSH1 0xA ADD SLOAD DUP2 PUSH1 0x9 ADD SLOAD GT ISZERO DUP1 PUSH2 0x1380 JUMPI POP PUSH10 0x7F0E10AF47C1C7000000 DUP2 PUSH1 0x9 ADD SLOAD LT JUMPDEST ISZERO PUSH2 0x138F JUMPI PUSH1 0x3 SWAP2 POP POP PUSH2 0x1471 JUMP JUMPDEST PUSH1 0x2 DUP2 ADD SLOAD PUSH2 0x13A2 JUMPI PUSH1 0x4 SWAP2 POP POP PUSH2 0x1471 JUMP JUMPDEST PUSH1 0xC DUP2 ADD SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x13BE JUMPI PUSH1 0x7 SWAP2 POP POP PUSH2 0x1471 JUMP JUMPDEST PUSH1 0x2 DUP2 ADD SLOAD PUSH1 0xE DUP3 ADD SLOAD PUSH1 0xFF AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SLOAD DUP3 MLOAD PUSH4 0x60D143F1 PUSH1 0xE1 SHL DUP2 MSTORE SWAP3 MLOAD PUSH2 0x145B SWAP5 SWAP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP3 PUSH4 0xC1A287E2 SWAP3 PUSH1 0x4 DUP1 DUP3 ADD SWAP4 SWAP2 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x141E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1432 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 0x1456 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x30E9 JUMP JUMPDEST PUSH2 0x236F JUMP JUMPDEST TIMESTAMP LT PUSH2 0x146B JUMPI PUSH1 0x6 SWAP2 POP POP PUSH2 0x1471 JUMP JUMPDEST PUSH1 0x5 SWAP2 POP POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x7 PUSH2 0x1481 DUP3 PUSH2 0x12DC JUMP JUMPDEST PUSH1 0x7 DUP2 GT ISZERO PUSH2 0x148C JUMPI INVALID JUMPDEST EQ ISZERO PUSH2 0x14AA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5ED SWAP1 PUSH2 0x4A66 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0xD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ DUP1 PUSH2 0x14DD JUMPI POP PUSH1 0x1 DUP2 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ JUMPDEST DUP1 PUSH2 0x15A0 JUMPI POP PUSH1 0xE DUP2 DUP2 ADD SLOAD PUSH1 0xFF AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x2 ADD SLOAD PUSH1 0x9 SLOAD PUSH1 0x1 DUP1 DUP5 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 AND SWAP3 PUSH4 0x782D6FE1 SWAP3 SWAP2 AND SWAP1 PUSH2 0x1528 SWAP1 NUMBER SWAP1 PUSH2 0x2347 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1545 SWAP3 SWAP2 SWAP1 PUSH2 0x4664 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x155D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1571 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 0x1595 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x32B0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB AND LT JUMPDEST PUSH2 0x15BC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5ED SWAP1 PUSH2 0x49C6 JUMP JUMPDEST PUSH1 0xC 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 0x16DC JUMPI PUSH1 0xE DUP3 ADD SLOAD PUSH1 0xFF AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 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 0x1614 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 0x163C JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD DUP6 PUSH1 0x5 ADD DUP6 DUP2 SLOAD DUP2 LT PUSH2 0x1656 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD DUP7 PUSH1 0x6 ADD DUP7 DUP2 SLOAD DUP2 LT PUSH2 0x166F 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 0x169E SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x46C2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x16B8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x16CC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 POP PUSH2 0x15CE SWAP1 POP JUMP JUMPDEST POP PUSH32 0x789CF55BE980739DAD1D0699B93B58E806B51C9D96619BFA8FE0A28ABAA7B30C DUP3 PUSH1 0x40 MLOAD PUSH2 0xDF1 SWAP2 SWAP1 PUSH2 0x4750 JUMP JUMPDEST PUSH1 0xD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 MSTORE PUSH1 0xF PUSH1 0x20 MSTORE PUSH32 0xF4803E074BD026BAAF6ED2E288C9515F68C72FB7216EEBDD7CAE1718A53EC375 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ISZERO PUSH2 0x176C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5ED SWAP1 PUSH2 0x4936 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x1796 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5ED SWAP1 PUSH2 0x4926 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH2 0x17BC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5ED SWAP1 PUSH2 0x48D6 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x17E2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5ED SWAP1 PUSH2 0x49D6 JUMP JUMPDEST PUSH2 0x17EA PUSH2 0x239B JUMP JUMPDEST PUSH1 0xFF AND DUP3 MLOAD EQ PUSH2 0x180C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5ED SWAP1 PUSH2 0x4896 JUMP JUMPDEST PUSH2 0x1814 PUSH2 0x239B JUMP JUMPDEST PUSH1 0xFF AND DUP4 MLOAD EQ PUSH2 0x1836 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5ED SWAP1 PUSH2 0x4A96 JUMP JUMPDEST PUSH1 0x9 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP9 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP3 DUP4 AND OR SWAP1 SWAP3 SSTORE PUSH1 0xA PUSH1 0xC SSTORE PUSH1 0xD DUP1 SLOAD SWAP3 DUP5 AND SWAP3 SWAP1 SWAP2 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x1874 DUP5 PUSH2 0x1A65 JUMP JUMPDEST PUSH2 0x187D DUP4 PUSH2 0xAA7 JUMP JUMPDEST DUP2 MLOAD PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x191C JUMPI PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x18A1 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO PUSH2 0x18D0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5ED SWAP1 PUSH2 0x4A16 JUMP JUMPDEST DUP4 DUP2 DUP2 MLOAD DUP2 LT PUSH2 0x18DC JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0xF SWAP1 SWAP3 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH1 0x1 ADD PUSH2 0x1882 JUMP JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST CALLER PUSH32 0xB8E138887D0AA13BAB447E82DE9D5C1777041ECD21CA36BA824FF1E6C07DDDA4 DUP4 DUP4 PUSH2 0x1954 DUP5 DUP4 DUP4 PUSH2 0x23A5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1963 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4D5E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH10 0x1FC3842BD1F071C00000 DUP2 JUMP JUMPDEST CALLER PUSH32 0xB8E138887D0AA13BAB447E82DE9D5C1777041ECD21CA36BA824FF1E6C07DDDA4 DUP6 DUP6 PUSH2 0x19BB DUP5 DUP4 DUP4 PUSH2 0x23A5 JUMP JUMPDEST DUP7 DUP7 PUSH1 0x40 MLOAD PUSH2 0x19CE SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4D18 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP POP JUMP JUMPDEST PUSH1 0xC SLOAD DUP2 JUMP JUMPDEST PUSH1 0x5 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x1A12 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5ED SWAP1 PUSH2 0x4866 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND OR SWAP1 SWAP3 SSTORE PUSH1 0x40 MLOAD SWAP2 AND SWAP1 PUSH32 0xCA4F2F25D0898EDD99413412FB94012F9E54EC8142F9B093E7720646A95B16A9 SWAP1 PUSH2 0xDF1 SWAP1 DUP4 SWAP1 DUP6 SWAP1 PUSH2 0x4649 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x1A8F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5ED SWAP1 PUSH2 0x4966 JUMP JUMPDEST DUP1 MLOAD ISZERO DUP1 ISZERO SWAP1 PUSH2 0x1AA3 JUMPI POP PUSH1 0x0 DUP2 PUSH1 0x40 ADD MLOAD GT JUMPDEST DUP1 ISZERO PUSH2 0x1AB6 JUMPI POP DUP1 PUSH1 0x60 ADD MLOAD DUP2 PUSH1 0x40 ADD MLOAD LT JUMPDEST DUP1 ISZERO PUSH2 0x1AC6 JUMPI POP PUSH1 0x20 DUP2 ADD MLOAD DUP2 MLOAD LT JUMPDEST PUSH2 0x1AE2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5ED SWAP1 PUSH2 0x4A56 JUMP JUMPDEST PUSH1 0x10 SLOAD DUP2 MLOAD PUSH1 0x11 SLOAD PUSH1 0x20 DUP5 ADD MLOAD PUSH1 0x12 SLOAD PUSH1 0x40 DUP1 DUP8 ADD MLOAD PUSH1 0x13 SLOAD PUSH1 0x60 DUP10 ADD MLOAD SWAP3 MLOAD PUSH32 0xC90C7AD68C13A491443F1C63DAFA18B365428EE69170415AFE234C16DC6F650D SWAP9 PUSH2 0x1B39 SWAP9 SWAP1 SWAP8 SWAP1 SWAP7 SWAP1 SWAP6 SWAP1 SWAP5 SWAP1 SWAP4 SWAP3 SWAP2 PUSH2 0x4CA1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 DUP1 MLOAD PUSH1 0x10 SSTORE PUSH1 0x20 DUP2 ADD MLOAD PUSH1 0x11 SSTORE PUSH1 0x40 DUP2 ADD MLOAD PUSH1 0x12 SSTORE PUSH1 0x60 ADD MLOAD PUSH1 0x13 SSTORE JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x7 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x4 PUSH2 0x1B7F DUP3 PUSH2 0x12DC JUMP JUMPDEST PUSH1 0x7 DUP2 GT ISZERO PUSH2 0x1B8A JUMPI INVALID JUMPDEST EQ PUSH2 0x1BA7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5ED SWAP1 PUSH2 0x4946 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0xE DUP2 ADD SLOAD PUSH1 0xFF AND DUP5 MSTORE PUSH1 0xF DUP4 MSTORE DUP2 DUP5 KECCAK256 SLOAD DUP3 MLOAD PUSH4 0xD48571F PUSH1 0xE3 SHL DUP2 MSTORE SWAP3 MLOAD SWAP2 SWAP5 SWAP4 PUSH2 0x1C10 SWAP4 TIMESTAMP SWAP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP4 AND SWAP3 PUSH4 0x6A42B8F8 SWAP3 PUSH1 0x4 DUP1 DUP5 ADD SWAP4 SWAP2 SWAP3 SWAP2 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x141E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 POP PUSH1 0x0 JUMPDEST PUSH1 0x3 DUP4 ADD SLOAD DUP2 LT ISZERO PUSH2 0x1DC1 JUMPI PUSH2 0x1DB9 DUP4 PUSH1 0x3 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x1C33 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 0x1C5B JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD DUP6 PUSH1 0x5 ADD DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x1C75 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 0x1D03 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1CD8 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1D03 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 0x1CE6 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 0x1D17 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 0x1DA5 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1D7A JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1DA5 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 0x1D88 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP PUSH1 0xE DUP10 ADD SLOAD DUP9 SWAP2 POP PUSH1 0xFF AND PUSH2 0x2595 JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0x1C15 JUMP JUMPDEST POP PUSH1 0x2 DUP3 ADD DUP2 SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH32 0x9A2E42FD6722813D69113E7D0079D3D940171428DF7373DF9C7F7617CFDA2892 SWAP1 PUSH2 0x1DFB SWAP1 DUP6 SWAP1 DUP5 SWAP1 PUSH2 0x4C50 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xE09 SWAP1 PUSH2 0x45D9 JUMP JUMPDEST PUSH2 0x1E1C PUSH2 0x28F2 JUMP JUMPDEST POP PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP5 MSTORE PUSH1 0xD 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 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 0xD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ DUP1 PUSH2 0x1EA4 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ JUMPDEST PUSH2 0x1EC0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5ED SWAP1 PUSH2 0x4AB6 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x1EE6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5ED SWAP1 PUSH2 0x4AA6 JUMP JUMPDEST PUSH1 0xD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND OR SWAP1 SWAP3 SSTORE PUSH1 0x40 MLOAD SWAP2 AND SWAP1 PUSH32 0x8FDAF06427A2010E5958F4329B566993472D14CE81D3F16CE7F2A2660DA98E3 SWAP1 PUSH2 0xDF1 SWAP1 DUP4 SWAP1 DUP6 SWAP1 PUSH2 0x4649 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ DUP1 ISZERO PUSH2 0x1F52 JUMPI POP CALLER ISZERO ISZERO JUMPDEST PUSH2 0x1F6E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5ED SWAP1 PUSH2 0x49A6 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP3 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP1 DUP7 AND DUP3 OR SWAP7 DUP8 SWAP1 SSTORE SWAP1 SWAP3 AND SWAP1 SWAP3 SSTORE PUSH1 0x40 MLOAD SWAP3 DUP3 AND SWAP4 SWAP1 SWAP3 PUSH32 0xF9FFABCA9C8276E99321725BCB43FB076A6C66A54B7F21C4E8146D8519B417DC SWAP3 PUSH2 0x1FD2 SWAP3 DUP7 SWAP3 SWAP2 AND SWAP1 PUSH2 0x4649 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD PUSH32 0xCA4F2F25D0898EDD99413412FB94012F9E54EC8142F9B093E7720646A95B16A9 SWAP2 PUSH2 0xDF1 SWAP2 DUP5 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH2 0x4649 JUMP JUMPDEST PUSH1 0xF PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x206B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5ED SWAP1 PUSH2 0x4A36 JUMP JUMPDEST PUSH1 0x6 SLOAD ISZERO PUSH2 0x208B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5ED SWAP1 PUSH2 0x4976 JUMP JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xDA35C664 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x20C6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x20DA 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 0x20FE SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x30E9 JUMP JUMPDEST PUSH1 0x7 DUP2 SWAP1 SSTORE PUSH1 0x6 SSTORE PUSH1 0x0 JUMPDEST PUSH2 0x2111 PUSH2 0x239B JUMP JUMPDEST PUSH1 0xFF AND DUP2 LT ISZERO PUSH2 0x218A JUMPI PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SLOAD DUP2 MLOAD PUSH4 0xE18B681 PUSH1 0xE0 SHL DUP2 MSTORE SWAP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP3 PUSH4 0xE18B681 SWAP3 PUSH1 0x4 DUP1 DUP3 ADD SWAP4 SWAP2 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2167 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x217B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP DUP1 PUSH1 0x1 ADD SWAP1 POP PUSH2 0x2109 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x6 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x5 PUSH2 0x219F DUP3 PUSH2 0x12DC JUMP JUMPDEST PUSH1 0x7 DUP2 GT ISZERO PUSH2 0x21AA JUMPI INVALID JUMPDEST EQ PUSH2 0x21C7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5ED SWAP1 PUSH2 0x48E6 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH1 0xC DUP2 ADD DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE SWAP1 JUMPDEST PUSH1 0x3 DUP3 ADD SLOAD DUP2 LT ISZERO PUSH2 0x2317 JUMPI PUSH1 0xE DUP3 ADD SLOAD PUSH1 0xFF AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x3 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 0x222E 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 0x2256 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD DUP6 PUSH1 0x5 ADD DUP6 DUP2 SLOAD DUP2 LT PUSH2 0x2270 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD DUP7 PUSH1 0x6 ADD DUP7 DUP2 SLOAD DUP2 LT PUSH2 0x2289 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 0x22B8 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x46C2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x22D2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x22E6 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 0x230E SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x3107 JUMP JUMPDEST POP PUSH1 0x1 ADD PUSH2 0x21E8 JUMP JUMPDEST POP PUSH32 0x712AE1383F79AC853F8D882153778E0260EF8F03B504E2866E0593E04D2B291F DUP3 PUSH1 0x40 MLOAD PUSH2 0xDF1 SWAP2 SWAP1 PUSH2 0x4750 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 GT ISZERO PUSH2 0x2369 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5ED SWAP1 PUSH2 0x4AC6 JUMP JUMPDEST POP SWAP1 SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 ADD DUP4 DUP2 LT ISZERO PUSH2 0x2394 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5ED SWAP1 PUSH2 0x4956 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x3 JUMPDEST SWAP1 JUMP JUMPDEST CHAINID SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH2 0x23B2 DUP5 PUSH2 0x12DC JUMP JUMPDEST PUSH1 0x7 DUP2 GT ISZERO PUSH2 0x23BD JUMPI INVALID JUMPDEST EQ PUSH2 0x23DA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5ED SWAP1 PUSH2 0x48B6 JUMP JUMPDEST PUSH1 0x2 DUP3 PUSH1 0xFF AND GT ISZERO PUSH2 0x23FE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5ED SWAP1 PUSH2 0x4846 JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND DUP5 MSTORE PUSH1 0xD DUP2 ADD SWAP1 SWAP3 MSTORE SWAP1 SWAP2 KECCAK256 DUP1 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x2447 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5ED SWAP1 PUSH2 0x48C6 JUMP JUMPDEST PUSH1 0x9 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 0x247D SWAP2 DUP12 SWAP2 PUSH1 0x4 ADD PUSH2 0x4664 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2495 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x24A9 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 0x24CD SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x32B0 JUMP JUMPDEST SWAP1 POP PUSH1 0xFF DUP6 AND PUSH2 0x24F8 JUMPI PUSH2 0x24EE DUP4 PUSH1 0xA ADD SLOAD DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB AND PUSH2 0x236F JUMP JUMPDEST PUSH1 0xA DUP5 ADD SSTORE PUSH2 0x254E JUMP JUMPDEST DUP5 PUSH1 0xFF AND PUSH1 0x1 EQ ISZERO PUSH2 0x2525 JUMPI PUSH2 0x251B DUP4 PUSH1 0x9 ADD SLOAD DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB AND PUSH2 0x236F JUMP JUMPDEST PUSH1 0x9 DUP5 ADD SSTORE PUSH2 0x254E JUMP JUMPDEST DUP5 PUSH1 0xFF AND PUSH1 0x2 EQ ISZERO PUSH2 0x254E JUMPI PUSH2 0x2548 DUP4 PUSH1 0xB ADD SLOAD DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB AND PUSH2 0x236F JUMP JUMPDEST PUSH1 0xB DUP5 ADD SSTORE JUMPDEST DUP2 SLOAD PUSH1 0x1 PUSH1 0xFF NOT SWAP1 SWAP2 AND OR PUSH2 0xFF00 NOT AND PUSH2 0x100 PUSH1 0xFF DUP8 AND MUL OR PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFF0000 NOT AND PUSH3 0x10000 PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB DUP4 AND MUL OR SWAP1 SWAP2 SSTORE SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0xFF DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SLOAD SWAP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 PUSH4 0xF2B06537 SWAP2 PUSH2 0x25D4 SWAP2 DUP11 SWAP2 DUP11 SWAP2 DUP11 SWAP2 DUP11 SWAP2 DUP11 SWAP2 ADD PUSH2 0x4672 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 0x2606 SWAP2 SWAP1 PUSH2 0x4750 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x261E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2632 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 0x2656 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x30CB JUMP JUMPDEST ISZERO PUSH2 0x2673 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5ED SWAP1 PUSH2 0x4876 JUMP JUMPDEST PUSH1 0xFF DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 SLOAD SWAP1 MLOAD PUSH4 0x3A66F901 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x3A66F901 SWAP1 PUSH2 0x26BC SWAP1 DUP10 SWAP1 DUP10 SWAP1 DUP10 SWAP1 DUP10 SWAP1 DUP10 SWAP1 PUSH1 0x4 ADD PUSH2 0x4672 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x26D6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x26EA 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 0x191C SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x30E9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH2 0x1E0 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 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH1 0xFF AND 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 0x27E9 JUMPI SWAP2 PUSH1 0x20 MUL DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x27E9 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 0x27B4 JUMP JUMPDEST POP PUSH2 0x27F5 SWAP3 SWAP2 POP PUSH2 0x2912 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 0x2834 JUMPI SWAP2 PUSH1 0x20 MUL DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x2834 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x2819 JUMP JUMPDEST POP PUSH2 0x27F5 SWAP3 SWAP2 POP PUSH2 0x2936 JUMP JUMPDEST DUP3 DUP1 SLOAD DUP3 DUP3 SSTORE SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP3 DUP3 ISZERO PUSH2 0x288D JUMPI SWAP2 PUSH1 0x20 MUL DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x288D JUMPI DUP3 MLOAD DUP1 MLOAD PUSH2 0x287D SWAP2 DUP5 SWAP2 PUSH1 0x20 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x2950 JUMP JUMPDEST POP SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x2860 JUMP JUMPDEST POP PUSH2 0x27F5 SWAP3 SWAP2 POP PUSH2 0x29BD JUMP JUMPDEST DUP3 DUP1 SLOAD DUP3 DUP3 SSTORE SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP3 DUP3 ISZERO PUSH2 0x28E6 JUMPI SWAP2 PUSH1 0x20 MUL DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x28E6 JUMPI DUP3 MLOAD DUP1 MLOAD PUSH2 0x28D6 SWAP2 DUP5 SWAP2 PUSH1 0x20 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x2950 JUMP JUMPDEST POP SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x28B9 JUMP JUMPDEST POP PUSH2 0x27F5 SWAP3 SWAP2 POP PUSH2 0x29E0 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 0x239E SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x27F5 JUMPI DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x2918 JUMP JUMPDEST PUSH2 0x239E SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x27F5 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x293C 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 0x2991 JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH2 0x2834 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x2834 JUMPI SWAP2 DUP3 ADD DUP3 DUP2 GT ISZERO PUSH2 0x2834 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x2819 JUMP JUMPDEST PUSH2 0x239E SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x27F5 JUMPI PUSH1 0x0 PUSH2 0x29D7 DUP3 DUP3 PUSH2 0x2A03 JUMP JUMPDEST POP PUSH1 0x1 ADD PUSH2 0x29C3 JUMP JUMPDEST PUSH2 0x239E SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x27F5 JUMPI PUSH1 0x0 PUSH2 0x29FA DUP3 DUP3 PUSH2 0x2A03 JUMP JUMPDEST POP PUSH1 0x1 ADD PUSH2 0x29E6 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 0x2A29 JUMPI POP PUSH2 0x2A47 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2A47 SWAP2 SWAP1 PUSH2 0x2936 JUMP JUMPDEST POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x1E7B DUP2 PUSH2 0x4ED3 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2A66 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x2A79 PUSH2 0x2A74 DUP3 PUSH2 0x4DBD JUMP JUMPDEST PUSH2 0x4D97 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 0x2A9E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2ACA JUMPI DUP2 PUSH2 0x2AB4 DUP9 DUP3 PUSH2 0x2A4A JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x2AA1 JUMP JUMPDEST POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2AE5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x2AF3 PUSH2 0x2A74 DUP3 PUSH2 0x4DBD 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 0x2ACA JUMPI DUP2 CALLDATALOAD DUP7 ADD PUSH2 0x2B1B DUP9 DUP3 PUSH2 0x2D01 JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x2B05 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2B42 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x2B50 PUSH2 0x2A74 DUP3 PUSH2 0x4DBD 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 0x2B75 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2ACA JUMPI DUP2 PUSH2 0x2B8B DUP9 DUP3 PUSH2 0x2D96 JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x2B78 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2BB2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x2BC0 PUSH2 0x2A74 DUP3 PUSH2 0x4DBD 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 0x2ACA JUMPI DUP2 CALLDATALOAD DUP7 ADD PUSH2 0x2BE8 DUP9 DUP3 PUSH2 0x2D01 JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x2BD2 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2C0F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x2C1D PUSH2 0x2A74 DUP3 PUSH2 0x4DBD JUMP JUMPDEST SWAP2 POP DUP2 DUP2 DUP4 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH1 0x20 DUP2 ADD SWAP1 POP DUP4 DUP6 PUSH1 0x60 DUP5 MUL DUP3 ADD GT ISZERO PUSH2 0x2C42 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2ACA JUMPI DUP2 PUSH2 0x2C58 DUP9 DUP3 PUSH2 0x2DF4 JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP1 SWAP3 ADD SWAP2 PUSH1 0x60 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x2C45 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2C81 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x2C8F PUSH2 0x2A74 DUP3 PUSH2 0x4DBD 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 0x2CB4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2ACA JUMPI DUP2 PUSH2 0x2CCA DUP9 DUP3 PUSH2 0x2CEB JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x2CB7 JUMP JUMPDEST DUP1 MLOAD PUSH2 0x1E7B DUP2 PUSH2 0x4EE7 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x1E7B DUP2 PUSH2 0x4EF0 JUMP JUMPDEST DUP1 MLOAD PUSH2 0x1E7B DUP2 PUSH2 0x4EF0 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2D12 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x2D20 PUSH2 0x2A74 DUP3 PUSH2 0x4DDD JUMP JUMPDEST SWAP2 POP DUP1 DUP3 MSTORE PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP4 ADD DUP6 DUP4 DUP4 ADD GT ISZERO PUSH2 0x2D3C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2D47 DUP4 DUP3 DUP5 PUSH2 0x4E87 JUMP JUMPDEST POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2D61 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x2D6F PUSH2 0x2A74 DUP3 PUSH2 0x4DDD JUMP JUMPDEST SWAP2 POP DUP1 DUP3 MSTORE PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP4 ADD DUP6 DUP4 DUP4 ADD GT ISZERO PUSH2 0x2D8B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2D47 DUP4 DUP3 DUP5 PUSH2 0x4E93 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x1E7B DUP2 PUSH2 0x4EF9 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x1E7B DUP2 PUSH2 0x4F02 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x2DBE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2DD5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x2DED JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2E06 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2E10 PUSH1 0x60 PUSH2 0x4D97 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x2E1E DUP5 DUP5 PUSH2 0x2CEB JUMP JUMPDEST DUP3 MSTORE POP PUSH1 0x20 PUSH2 0x2E2F DUP5 DUP5 DUP4 ADD PUSH2 0x2CEB JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x2E43 DUP5 DUP3 DUP6 ADD PUSH2 0x2CEB JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2E61 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2E6B PUSH1 0x80 PUSH2 0x4D97 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x2E79 DUP5 DUP5 PUSH2 0x2CEB JUMP JUMPDEST DUP3 MSTORE POP PUSH1 0x20 PUSH2 0x2E8A DUP5 DUP5 DUP4 ADD PUSH2 0x2CEB JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x2E9E DUP5 DUP3 DUP6 ADD PUSH2 0x2CEB JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 PUSH2 0x2EB2 DUP5 DUP3 DUP6 ADD PUSH2 0x2CEB JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x1E7B DUP2 PUSH2 0x4F0F JUMP JUMPDEST DUP1 MLOAD PUSH2 0x1E7B DUP2 PUSH2 0x4F18 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2EE6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2EF2 DUP5 DUP5 PUSH2 0x2A4A JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x100 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x2F13 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2F1F DUP9 DUP9 PUSH2 0x2A4A JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 PUSH2 0x2F30 DUP9 DUP3 DUP10 ADD PUSH2 0x2E4F JUMP JUMPDEST SWAP5 POP POP PUSH1 0xA0 DUP7 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2F4C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2F58 DUP9 DUP3 DUP10 ADD PUSH2 0x2BFE JUMP JUMPDEST SWAP4 POP POP PUSH1 0xC0 DUP7 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2F74 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2F80 DUP9 DUP3 DUP10 ADD PUSH2 0x2B31 JUMP JUMPDEST SWAP3 POP POP PUSH1 0xE0 PUSH2 0x2F91 DUP9 DUP3 DUP10 ADD PUSH2 0x2A4A JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xC0 DUP8 DUP10 SUB SLT ISZERO PUSH2 0x2FB7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP7 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2FCD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2FD9 DUP10 DUP3 DUP11 ADD PUSH2 0x2A55 JUMP JUMPDEST SWAP7 POP POP PUSH1 0x20 DUP8 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2FF5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3001 DUP10 DUP3 DUP11 ADD PUSH2 0x2C70 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x40 DUP8 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x301D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3029 DUP10 DUP3 DUP11 ADD PUSH2 0x2BA1 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x60 DUP8 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x3045 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3051 DUP10 DUP3 DUP11 ADD PUSH2 0x2AD4 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x80 DUP8 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x306D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3079 DUP10 DUP3 DUP11 ADD PUSH2 0x2D01 JUMP JUMPDEST SWAP3 POP POP PUSH1 0xA0 PUSH2 0x308A DUP10 DUP3 DUP11 ADD PUSH2 0x2DA1 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 POP SWAP3 SWAP6 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x30A9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x30BF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2EF2 DUP5 DUP3 DUP6 ADD PUSH2 0x2BFE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x30DD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2EF2 DUP5 DUP5 PUSH2 0x2CE0 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x30FB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2EF2 DUP5 DUP5 PUSH2 0x2CF6 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3119 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x312F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2EF2 DUP5 DUP3 DUP6 ADD PUSH2 0x2D50 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x314D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2EF2 DUP5 DUP5 PUSH2 0x2E4F JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x316B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2EF2 DUP5 DUP5 PUSH2 0x2CEB JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x318A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x3196 DUP6 DUP6 PUSH2 0x2CEB JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x31A7 DUP6 DUP3 DUP7 ADD PUSH2 0x2A4A JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x31C4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x31D0 DUP6 DUP6 PUSH2 0x2CEB JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x31A7 DUP6 DUP3 DUP7 ADD PUSH2 0x2EBE JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x60 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x31F7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x3203 DUP8 DUP8 PUSH2 0x2CEB JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 PUSH2 0x3214 DUP8 DUP3 DUP9 ADD PUSH2 0x2EBE JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x3230 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x323C DUP8 DUP3 DUP9 ADD PUSH2 0x2DAC JUMP JUMPDEST SWAP6 SWAP9 SWAP5 SWAP8 POP SWAP6 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x3260 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x326C DUP9 DUP9 PUSH2 0x2CEB JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 PUSH2 0x327D DUP9 DUP3 DUP10 ADD PUSH2 0x2EBE JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 PUSH2 0x328E DUP9 DUP3 DUP10 ADD PUSH2 0x2EBE JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 PUSH2 0x329F DUP9 DUP3 DUP10 ADD PUSH2 0x2CEB JUMP JUMPDEST SWAP3 POP POP PUSH1 0x80 PUSH2 0x2F91 DUP9 DUP3 DUP10 ADD PUSH2 0x2CEB JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x32C2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2EF2 DUP5 DUP5 PUSH2 0x2EC9 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x32DA DUP4 DUP4 PUSH2 0x3309 JUMP JUMPDEST POP POP PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2394 DUP4 DUP4 PUSH2 0x34AB JUMP JUMPDEST PUSH1 0x0 PUSH2 0x32DA DUP4 DUP4 PUSH2 0x3491 JUMP JUMPDEST PUSH2 0x3303 DUP2 PUSH2 0x4E66 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x3303 DUP2 PUSH2 0x4E23 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x331D DUP3 PUSH2 0x4E16 JUMP JUMPDEST PUSH2 0x3327 DUP2 DUP6 PUSH2 0x4E1A JUMP JUMPDEST SWAP4 POP PUSH2 0x3332 DUP4 PUSH2 0x4E04 JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x3360 JUMPI DUP2 MLOAD PUSH2 0x334A DUP9 DUP3 PUSH2 0x32CE JUMP JUMPDEST SWAP8 POP PUSH2 0x3355 DUP4 PUSH2 0x4E04 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 ADD PUSH2 0x3336 JUMP JUMPDEST POP SWAP5 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3376 DUP3 PUSH2 0x4E16 JUMP JUMPDEST PUSH2 0x3380 DUP2 DUP6 PUSH2 0x4E1A JUMP JUMPDEST SWAP4 POP DUP4 PUSH1 0x20 DUP3 MUL DUP6 ADD PUSH2 0x3392 DUP6 PUSH2 0x4E04 JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP6 DUP2 LT ISZERO PUSH2 0x33CC JUMPI DUP5 DUP5 SUB DUP10 MSTORE DUP2 MLOAD PUSH2 0x33AF DUP6 DUP3 PUSH2 0x32E2 JUMP JUMPDEST SWAP5 POP PUSH2 0x33BA DUP4 PUSH2 0x4E04 JUMP JUMPDEST PUSH1 0x20 SWAP11 SWAP1 SWAP11 ADD SWAP10 SWAP3 POP POP PUSH1 0x1 ADD PUSH2 0x3396 JUMP JUMPDEST POP SWAP2 SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x33E4 DUP3 PUSH2 0x4E16 JUMP JUMPDEST PUSH2 0x33EE DUP2 DUP6 PUSH2 0x4E1A JUMP JUMPDEST SWAP4 POP DUP4 PUSH1 0x20 DUP3 MUL DUP6 ADD PUSH2 0x3400 DUP6 PUSH2 0x4E04 JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP6 DUP2 LT ISZERO PUSH2 0x33CC JUMPI DUP5 DUP5 SUB DUP10 MSTORE DUP2 MLOAD PUSH2 0x341D DUP6 DUP3 PUSH2 0x32E2 JUMP JUMPDEST SWAP5 POP PUSH2 0x3428 DUP4 PUSH2 0x4E04 JUMP JUMPDEST PUSH1 0x20 SWAP11 SWAP1 SWAP11 ADD SWAP10 SWAP3 POP POP PUSH1 0x1 ADD PUSH2 0x3404 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3445 DUP3 PUSH2 0x4E16 JUMP JUMPDEST PUSH2 0x344F DUP2 DUP6 PUSH2 0x4E1A JUMP JUMPDEST SWAP4 POP PUSH2 0x345A DUP4 PUSH2 0x4E04 JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x3360 JUMPI DUP2 MLOAD PUSH2 0x3472 DUP9 DUP3 PUSH2 0x32EE JUMP JUMPDEST SWAP8 POP PUSH2 0x347D DUP4 PUSH2 0x4E04 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 ADD PUSH2 0x345E JUMP JUMPDEST PUSH2 0x3303 DUP2 PUSH2 0x4E2E JUMP JUMPDEST PUSH2 0x3303 DUP2 PUSH2 0x239E JUMP JUMPDEST PUSH2 0x3303 PUSH2 0x34A6 DUP3 PUSH2 0x239E JUMP JUMPDEST PUSH2 0x239E JUMP JUMPDEST PUSH1 0x0 PUSH2 0x34B6 DUP3 PUSH2 0x4E16 JUMP JUMPDEST PUSH2 0x34C0 DUP2 DUP6 PUSH2 0x4E1A JUMP JUMPDEST SWAP4 POP PUSH2 0x34D0 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x4E93 JUMP JUMPDEST PUSH2 0x34D9 DUP2 PUSH2 0x4EBF 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 0x3500 JUMPI PUSH1 0x1 DUP2 EQ PUSH2 0x3526 JUMPI PUSH2 0x3565 JUMP JUMPDEST PUSH1 0x7F PUSH1 0x2 DUP4 DIV AND PUSH2 0x3511 DUP2 DUP8 PUSH2 0x4E1A JUMP JUMPDEST PUSH1 0xFF NOT DUP5 AND DUP2 MSTORE SWAP6 POP POP PUSH1 0x20 DUP6 ADD SWAP3 POP PUSH2 0x3565 JUMP JUMPDEST PUSH1 0x2 DUP3 DIV PUSH2 0x3534 DUP2 DUP8 PUSH2 0x4E1A JUMP JUMPDEST SWAP6 POP PUSH2 0x353F DUP6 PUSH2 0x4E0A JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x355E JUMPI DUP2 SLOAD DUP9 DUP3 ADD MSTORE PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x20 ADD PUSH2 0x3542 JUMP JUMPDEST DUP8 ADD SWAP5 POP POP POP JUMPDEST POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x3303 DUP2 PUSH2 0x4E33 JUMP JUMPDEST PUSH2 0x3303 DUP2 PUSH2 0x4E71 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x358B DUP4 DUP6 PUSH2 0x4E1A JUMP JUMPDEST SWAP4 POP PUSH2 0x3598 DUP4 DUP6 DUP5 PUSH2 0x4E87 JUMP JUMPDEST PUSH2 0x34D9 DUP4 PUSH2 0x4EBF JUMP JUMPDEST PUSH1 0x0 PUSH2 0x35AE PUSH1 0x41 DUP4 PUSH2 0x4E1A JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4F22 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP2 MSTORE PUSH32 0x733A20696E76616C69642070726F706F73616C20636F6E666967206C656E6774 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0xFB SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3605 PUSH1 0x41 DUP4 PUSH2 0x4E1A JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4F22 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP2 MSTORE PUSH32 0x733A20696E76616C6964206D61782070726F706F73616C207468726573686F6C PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0xFA SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x365C PUSH1 0x32 DUP4 PUSH2 0x4E1A JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A63617374566F7465496E7465726E616C3A DUP2 MSTORE PUSH18 0x20696E76616C696420766F74652074797065 PUSH1 0x70 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x36B0 PUSH1 0x47 DUP4 PUSH2 0x4E1A JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4F22 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP2 MSTORE PUSH32 0x733A2076616C69646174696F6E20706172616D73206E6F7420636F6E66696775 PUSH1 0x20 DUP3 ADD MSTORE PUSH7 0x1C9959081E595D PUSH1 0xCA SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x370D PUSH1 0x28 DUP4 PUSH2 0x1471 JUMP JUMPDEST PUSH32 0x42616C6C6F742875696E743235362070726F706F73616C49642C75696E743820 DUP2 MSTORE PUSH8 0x737570706F727429 PUSH1 0xC0 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x28 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3757 PUSH1 0x2A DUP4 PUSH2 0x4E1A JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A5F73657450656E64696E6741646D696E3A20 DUP2 MSTORE PUSH10 0x61646D696E206F6E6C79 PUSH1 0xB0 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x37A3 PUSH1 0x55 DUP4 PUSH2 0x4E1A JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A71756575654F72526576657274496E7465 DUP2 MSTORE PUSH32 0x726E616C3A206964656E746963616C2070726F706F73616C20616374696F6E20 PUSH1 0x20 DUP3 ADD MSTORE PUSH21 0x616C72656164792071756575656420617420657461 PUSH1 0x58 SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3820 PUSH1 0x3C DUP4 PUSH2 0x4E1A JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4F22 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP2 MSTORE PUSH32 0x733A20696E76616C6964206D696E20766F74696E6720706572696F6400000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x386D PUSH1 0x56 DUP4 PUSH2 0x4E1A JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A696E697469616C697A653A6E756D626572 DUP2 MSTORE PUSH32 0x206F662074696D656C6F636B732073686F756C64206D61746368206E756D6265 PUSH1 0x20 DUP3 ADD MSTORE PUSH22 0x72206F6620676F7665726E616E636520726F75746573 PUSH1 0x50 SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x38EB PUSH1 0x31 DUP4 PUSH2 0x4E1A JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A70726F706F73653A20476F7665726E6F72 DUP2 MSTORE PUSH17 0x20427261766F206E6F7420616374697665 PUSH1 0x78 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x393E PUSH1 0x2 DUP4 PUSH2 0x1471 JUMP JUMPDEST PUSH2 0x1901 PUSH1 0xF0 SHL DUP2 MSTORE PUSH1 0x2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x395C PUSH1 0x31 DUP4 PUSH2 0x4E1A JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A63617374566F7465496E7465726E616C3A DUP2 MSTORE PUSH17 0x81D9BDD1A5B99C81A5CC818DB1BDCD959 PUSH1 0x7A SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x39AF PUSH1 0x34 DUP4 PUSH2 0x4E1A JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A63617374566F7465496E7465726E616C3A DUP2 MSTORE PUSH20 0x81D9BDD195C88185B1C9958591E481D9BDD1959 PUSH1 0x62 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3A05 PUSH1 0x34 DUP4 PUSH2 0x4E1A JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A696E697469616C697A653A20696E76616C DUP2 MSTORE PUSH20 0x696420787673207661756C742061646472657373 PUSH1 0x60 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3A5B PUSH1 0x45 DUP4 PUSH2 0x4E1A JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A657865637574653A2070726F706F73616C 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 0x3AC8 PUSH1 0x2F DUP4 PUSH2 0x4E1A JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A63617374566F746542795369673A20696E DUP2 MSTORE PUSH15 0x76616C6964207369676E6174757265 PUSH1 0x88 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3B19 PUSH1 0x2D DUP4 PUSH2 0x4E1A JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4F22 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP2 MSTORE PUSH13 0x733A2061646D696E206F6E6C79 PUSH1 0x98 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3B56 PUSH1 0x44 DUP4 PUSH2 0x4E1A JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A70726F706F73653A2070726F706F73616C 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 0x3BC2 PUSH1 0x25 DUP4 PUSH2 0x4E1A JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A696E697469616C697A653A2061646D696E DUP2 MSTORE PUSH5 0x206F6E6C79 PUSH1 0xD8 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3C09 PUSH1 0x32 DUP4 PUSH2 0x4E1A JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A696E697469616C697A653A2063616E6E6F DUP2 MSTORE PUSH18 0x7420696E697469616C697A65207477696365 PUSH1 0x70 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3C5D PUSH1 0x44 DUP4 PUSH2 0x4E1A JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A71756575653A2070726F706F73616C2063 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 0x3CC9 PUSH1 0x11 DUP4 PUSH2 0x4E1A JUMP JUMPDEST PUSH17 0x6164646974696F6E206F766572666C6F77 PUSH1 0x78 SHL DUP2 MSTORE PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3CF6 PUSH1 0x43 DUP4 PUSH2 0x1471 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 0x3D61 PUSH1 0x2E DUP4 PUSH2 0x4E1A JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A73657456616C69646174696F6E50617261 DUP2 MSTORE PUSH14 0x6D733A2061646D696E206F6E6C79 PUSH1 0x90 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3DB1 PUSH1 0x30 DUP4 PUSH2 0x4E1A JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A5F696E6974696174653A2063616E206F6E DUP2 MSTORE PUSH16 0x6C7920696E697469617465206F6E6365 PUSH1 0x80 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3E03 PUSH1 0x2C DUP4 PUSH2 0x4E1A JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A70726F706F73653A206D7573742070726F DUP2 MSTORE PUSH12 0x7669646520616374696F6E73 PUSH1 0xA0 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3E51 PUSH1 0x3B DUP4 PUSH2 0x4E1A JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4F22 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP2 MSTORE PUSH32 0x733A20696E76616C6964206D617820766F74696E672064656C61790000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3E9E PUSH1 0x2E DUP4 PUSH2 0x4E1A JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A5F61636365707441646D696E3A2070656E64 DUP2 MSTORE PUSH14 0x696E672061646D696E206F6E6C79 PUSH1 0x90 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3EEE PUSH1 0x3B DUP4 PUSH2 0x4E1A JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4F22 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP2 MSTORE PUSH32 0x733A20696E76616C6964206D696E20766F74696E672064656C61790000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3F3B PUSH1 0x2F DUP4 PUSH2 0x4E1A JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A63616E63656C3A2070726F706F73657220 DUP2 MSTORE PUSH15 0x18589BDD99481D1A1C995CDA1BDB19 PUSH1 0x8A SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3F8C PUSH1 0x2B DUP4 PUSH2 0x4E1A JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A696E697469616C697A653A20696E76616C DUP2 MSTORE PUSH11 0x34B21033BAB0B93234B0B7 PUSH1 0xA9 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3FD9 PUSH1 0x28 DUP4 PUSH2 0x4E1A JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A70726F706F73653A20746F6F206D616E79 DUP2 MSTORE PUSH8 0x20616374696F6E73 PUSH1 0xC0 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4023 PUSH1 0x59 DUP4 PUSH2 0x4E1A JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A70726F706F73653A206F6E65206C697665 DUP2 MSTORE PUSH32 0x2070726F706F73616C207065722070726F706F7365722C20666F756E6420616E PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x20616C72656164792070656E64696E672070726F706F73616C00000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x40A8 PUSH1 0x34 DUP4 PUSH2 0x4E1A JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A5F73657450726F706F73616C4D61784F70 DUP2 MSTORE PUSH20 0x65726174696F6E733A2061646D696E206F6E6C79 PUSH1 0x60 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x40FE PUSH1 0x32 DUP4 PUSH2 0x4E1A JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A696E697469616C697A653A696E76616C69 DUP2 MSTORE PUSH18 0x642074696D656C6F636B2061646472657373 PUSH1 0x70 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4152 PUSH1 0x58 DUP4 PUSH2 0x4E1A JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A70726F706F73653A206F6E65206C697665 DUP2 MSTORE PUSH32 0x2070726F706F73616C207065722070726F706F7365722C20666F756E6420616E PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x20616C7265616479206163746976652070726F706F73616C0000000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1E7B PUSH1 0x0 DUP4 PUSH2 0x4E1A JUMP JUMPDEST PUSH1 0x0 PUSH2 0x41E4 PUSH1 0x24 DUP4 PUSH2 0x4E1A JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A5F696E6974696174653A2061646D696E20 DUP2 MSTORE PUSH4 0x6F6E6C79 PUSH1 0xE0 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x422A PUSH1 0x3F DUP4 PUSH2 0x4E1A JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A70726F706F73653A2070726F706F736572 DUP2 MSTORE PUSH32 0x20766F7465732062656C6F772070726F706F73616C207468726573686F6C6400 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4289 PUSH1 0x32 DUP4 PUSH2 0x4E1A JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A73657456616C69646174696F6E50617261 DUP2 MSTORE PUSH18 0x6D733A20696E76616C696420706172616D73 PUSH1 0x70 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x42DD PUSH1 0x36 DUP4 PUSH2 0x4E1A JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A63616E63656C3A2063616E6E6F74206361 DUP2 MSTORE PUSH22 0x1B98D95B08195E1958DD5D1959081C1C9BDC1BDCD85B PUSH1 0x52 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4335 PUSH1 0x29 DUP4 PUSH2 0x4E1A JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A73746174653A20696E76616C6964207072 DUP2 MSTORE PUSH9 0x1BDC1BDCD85B081A59 PUSH1 0xBA SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4380 PUSH1 0x41 DUP4 PUSH2 0x4E1A JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4F22 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP2 MSTORE PUSH32 0x733A20696E76616C6964206D696E2070726F706F73616C207468726573686F6C PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0xFA SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x43D7 PUSH1 0x5D DUP4 PUSH2 0x4E1A JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A696E697469616C697A653A6E756D626572 DUP2 MSTORE PUSH32 0x206F662070726F706F73616C20636F6E666967732073686F756C64206D617463 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x68206E756D626572206F6620676F7665726E616E636520726F75746573000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x445C PUSH1 0x3B DUP4 PUSH2 0x4E1A JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A5F736574477561726469616E3A2063616E DUP2 MSTORE PUSH32 0x6E6F74206C69766520776974686F7574206120677561726469616E0000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x44BB PUSH1 0x33 DUP4 PUSH2 0x4E1A JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A5F736574477561726469616E3A2061646D DUP2 MSTORE PUSH19 0x696E206F7220677561726469616E206F6E6C79 PUSH1 0x68 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4510 PUSH1 0x15 DUP4 PUSH2 0x4E1A JUMP JUMPDEST PUSH21 0x7375627472616374696F6E20756E646572666C6F77 PUSH1 0x58 SHL DUP2 MSTORE PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4541 PUSH1 0x3C DUP4 PUSH2 0x4E1A JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4F22 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP2 MSTORE PUSH32 0x733A20696E76616C6964206D617820766F74696E6720706572696F6400000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 MLOAD PUSH1 0x60 DUP4 ADD SWAP1 PUSH2 0x4592 DUP5 DUP3 PUSH2 0x3488 JUMP JUMPDEST POP PUSH1 0x20 DUP3 ADD MLOAD PUSH2 0x45A5 PUSH1 0x20 DUP6 ADD DUP3 PUSH2 0x45BE JUMP JUMPDEST POP PUSH1 0x40 DUP3 ADD MLOAD PUSH2 0x45B8 PUSH1 0x40 DUP6 ADD DUP3 PUSH2 0x45D0 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0x3303 DUP2 PUSH2 0x4E54 JUMP JUMPDEST PUSH2 0x3303 DUP2 PUSH2 0x4E7C JUMP JUMPDEST PUSH2 0x3303 DUP2 PUSH2 0x4E5A JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1E7B DUP3 PUSH2 0x3700 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x45EF DUP3 PUSH2 0x3931 JUMP JUMPDEST SWAP2 POP PUSH2 0x45FB DUP3 DUP6 PUSH2 0x349A JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH2 0x460B DUP3 DUP5 PUSH2 0x349A JUMP JUMPDEST POP PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1E7B DUP3 PUSH2 0x3CE9 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x1E7B DUP3 DUP5 PUSH2 0x3309 JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0x463C DUP3 DUP6 PUSH2 0x32FA JUMP JUMPDEST PUSH2 0x2394 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x3491 JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0x4657 DUP3 DUP6 PUSH2 0x3309 JUMP JUMPDEST PUSH2 0x2394 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x3309 JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0x463C DUP3 DUP6 PUSH2 0x3309 JUMP JUMPDEST PUSH1 0xA0 DUP2 ADD PUSH2 0x4680 DUP3 DUP9 PUSH2 0x3309 JUMP JUMPDEST PUSH2 0x468D PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x3491 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x469F DUP2 DUP7 PUSH2 0x34AB JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x46B3 DUP2 DUP6 PUSH2 0x34AB JUMP JUMPDEST SWAP1 POP PUSH2 0xA7C PUSH1 0x80 DUP4 ADD DUP5 PUSH2 0x3491 JUMP JUMPDEST PUSH1 0xA0 DUP2 ADD PUSH2 0x46D0 DUP3 DUP9 PUSH2 0x3309 JUMP JUMPDEST PUSH2 0x46DD PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x3491 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x46EF DUP2 DUP7 PUSH2 0x34E3 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x46B3 DUP2 DUP6 PUSH2 0x34E3 JUMP JUMPDEST PUSH1 0x80 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4714 DUP2 DUP8 PUSH2 0x3312 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x4728 DUP2 DUP7 PUSH2 0x343A JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x473C DUP2 DUP6 PUSH2 0x33D9 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0xA7C DUP2 DUP5 PUSH2 0x336B JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x1E7B DUP3 DUP5 PUSH2 0x3491 JUMP JUMPDEST PUSH1 0x80 DUP2 ADD PUSH2 0x476C DUP3 DUP8 PUSH2 0x3491 JUMP JUMPDEST PUSH2 0x4779 PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x3491 JUMP JUMPDEST PUSH2 0x4786 PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x3491 JUMP JUMPDEST PUSH2 0x4793 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x3309 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP2 ADD PUSH2 0x47AA DUP3 DUP7 PUSH2 0x3491 JUMP JUMPDEST PUSH2 0x47B7 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x3491 JUMP JUMPDEST PUSH2 0x2EF2 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x45BE JUMP JUMPDEST PUSH1 0x80 DUP2 ADD PUSH2 0x47D2 DUP3 DUP8 PUSH2 0x3491 JUMP JUMPDEST PUSH2 0x47DF PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x45BE JUMP JUMPDEST PUSH2 0x47EC PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x3491 JUMP JUMPDEST PUSH2 0x4793 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x3491 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x1E7B DUP3 DUP5 PUSH2 0x356D JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x1E7B DUP3 DUP5 PUSH2 0x3576 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x2394 DUP2 DUP5 PUSH2 0x34AB JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1E7B DUP2 PUSH2 0x35A1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1E7B DUP2 PUSH2 0x35F8 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1E7B DUP2 PUSH2 0x364F JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1E7B DUP2 PUSH2 0x36A3 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1E7B DUP2 PUSH2 0x374A JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1E7B DUP2 PUSH2 0x3796 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1E7B DUP2 PUSH2 0x3813 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1E7B DUP2 PUSH2 0x3860 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1E7B DUP2 PUSH2 0x38DE JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1E7B DUP2 PUSH2 0x394F JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1E7B DUP2 PUSH2 0x39A2 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1E7B DUP2 PUSH2 0x39F8 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1E7B DUP2 PUSH2 0x3A4E JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1E7B DUP2 PUSH2 0x3ABB JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1E7B DUP2 PUSH2 0x3B0C JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1E7B DUP2 PUSH2 0x3B49 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1E7B DUP2 PUSH2 0x3BB5 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1E7B DUP2 PUSH2 0x3BFC JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1E7B DUP2 PUSH2 0x3C50 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1E7B DUP2 PUSH2 0x3CBC JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1E7B DUP2 PUSH2 0x3D54 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1E7B DUP2 PUSH2 0x3DA4 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1E7B DUP2 PUSH2 0x3DF6 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1E7B DUP2 PUSH2 0x3E44 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1E7B DUP2 PUSH2 0x3E91 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1E7B DUP2 PUSH2 0x3EE1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1E7B DUP2 PUSH2 0x3F2E JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1E7B DUP2 PUSH2 0x3F7F JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1E7B DUP2 PUSH2 0x3FCC JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1E7B DUP2 PUSH2 0x4016 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1E7B DUP2 PUSH2 0x409B JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1E7B DUP2 PUSH2 0x40F1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1E7B DUP2 PUSH2 0x4145 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1E7B DUP2 PUSH2 0x41D7 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1E7B DUP2 PUSH2 0x421D JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1E7B DUP2 PUSH2 0x427C JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1E7B DUP2 PUSH2 0x42D0 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1E7B DUP2 PUSH2 0x4328 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1E7B DUP2 PUSH2 0x4373 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1E7B DUP2 PUSH2 0x43CA JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1E7B DUP2 PUSH2 0x444F JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1E7B DUP2 PUSH2 0x44AE JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1E7B DUP2 PUSH2 0x4503 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1E7B DUP2 PUSH2 0x4534 JUMP JUMPDEST PUSH1 0x60 DUP2 ADD PUSH2 0x1E7B DUP3 DUP5 PUSH2 0x4581 JUMP JUMPDEST PUSH2 0x140 DUP2 ADD PUSH2 0x4B03 DUP3 DUP14 PUSH2 0x3491 JUMP JUMPDEST PUSH2 0x4B10 PUSH1 0x20 DUP4 ADD DUP13 PUSH2 0x32FA JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x4B22 DUP2 DUP12 PUSH2 0x3312 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x4B36 DUP2 DUP11 PUSH2 0x343A JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x80 DUP4 ADD MSTORE PUSH2 0x4B4A DUP2 DUP10 PUSH2 0x33D9 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0xA0 DUP4 ADD MSTORE PUSH2 0x4B5E DUP2 DUP9 PUSH2 0x336B JUMP JUMPDEST SWAP1 POP PUSH2 0x4B6D PUSH1 0xC0 DUP4 ADD DUP8 PUSH2 0x3491 JUMP JUMPDEST PUSH2 0x4B7A PUSH1 0xE0 DUP4 ADD DUP7 PUSH2 0x3491 JUMP JUMPDEST DUP2 DUP2 SUB PUSH2 0x100 DUP4 ADD MSTORE PUSH2 0x4B8D DUP2 DUP6 PUSH2 0x34AB JUMP JUMPDEST SWAP1 POP PUSH2 0x4B9D PUSH2 0x120 DUP4 ADD DUP5 PUSH2 0x45BE JUMP JUMPDEST SWAP12 SWAP11 POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x160 DUP2 ADD PUSH2 0x4BBB DUP3 DUP15 PUSH2 0x3491 JUMP JUMPDEST PUSH2 0x4BC8 PUSH1 0x20 DUP4 ADD DUP14 PUSH2 0x3309 JUMP JUMPDEST PUSH2 0x4BD5 PUSH1 0x40 DUP4 ADD DUP13 PUSH2 0x3491 JUMP JUMPDEST PUSH2 0x4BE2 PUSH1 0x60 DUP4 ADD DUP12 PUSH2 0x3491 JUMP JUMPDEST PUSH2 0x4BEF PUSH1 0x80 DUP4 ADD DUP11 PUSH2 0x3491 JUMP JUMPDEST PUSH2 0x4BFC PUSH1 0xA0 DUP4 ADD DUP10 PUSH2 0x3491 JUMP JUMPDEST PUSH2 0x4C09 PUSH1 0xC0 DUP4 ADD DUP9 PUSH2 0x3491 JUMP JUMPDEST PUSH2 0x4C16 PUSH1 0xE0 DUP4 ADD DUP8 PUSH2 0x3491 JUMP JUMPDEST PUSH2 0x4C24 PUSH2 0x100 DUP4 ADD DUP7 PUSH2 0x3488 JUMP JUMPDEST PUSH2 0x4C32 PUSH2 0x120 DUP4 ADD DUP6 PUSH2 0x3488 JUMP JUMPDEST PUSH2 0x4C40 PUSH2 0x140 DUP4 ADD DUP5 PUSH2 0x45BE JUMP JUMPDEST SWAP13 SWAP12 POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0x463C DUP3 DUP6 PUSH2 0x3491 JUMP JUMPDEST PUSH1 0x60 DUP2 ADD PUSH2 0x4C6C DUP3 DUP7 PUSH2 0x3491 JUMP JUMPDEST PUSH2 0x4C79 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x3491 JUMP JUMPDEST PUSH2 0x2EF2 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x3491 JUMP JUMPDEST PUSH1 0x80 DUP2 ADD PUSH2 0x4C94 DUP3 DUP8 PUSH2 0x3491 JUMP JUMPDEST PUSH2 0x47DF PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x3491 JUMP JUMPDEST PUSH2 0x100 DUP2 ADD PUSH2 0x4CB0 DUP3 DUP12 PUSH2 0x3491 JUMP JUMPDEST PUSH2 0x4CBD PUSH1 0x20 DUP4 ADD DUP11 PUSH2 0x3491 JUMP JUMPDEST PUSH2 0x4CCA PUSH1 0x40 DUP4 ADD DUP10 PUSH2 0x3491 JUMP JUMPDEST PUSH2 0x4CD7 PUSH1 0x60 DUP4 ADD DUP9 PUSH2 0x3491 JUMP JUMPDEST PUSH2 0x4CE4 PUSH1 0x80 DUP4 ADD DUP8 PUSH2 0x3491 JUMP JUMPDEST PUSH2 0x4CF1 PUSH1 0xA0 DUP4 ADD DUP7 PUSH2 0x3491 JUMP JUMPDEST PUSH2 0x4CFE PUSH1 0xC0 DUP4 ADD DUP6 PUSH2 0x3491 JUMP JUMPDEST PUSH2 0x4D0B PUSH1 0xE0 DUP4 ADD DUP5 PUSH2 0x3491 JUMP JUMPDEST SWAP10 SWAP9 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x80 DUP2 ADD PUSH2 0x4D26 DUP3 DUP9 PUSH2 0x3491 JUMP JUMPDEST PUSH2 0x4D33 PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x45BE JUMP JUMPDEST PUSH2 0x4D40 PUSH1 0x40 DUP4 ADD DUP7 PUSH2 0x45C7 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x4D53 DUP2 DUP5 DUP7 PUSH2 0x357F JUMP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x80 DUP2 ADD PUSH2 0x4D6C DUP3 DUP7 PUSH2 0x3491 JUMP JUMPDEST PUSH2 0x4D79 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x45BE JUMP JUMPDEST PUSH2 0x4D86 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x45C7 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x4793 DUP2 PUSH2 0x41CA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP2 DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x4DB5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH2 0x4DD3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x20 SWAP1 DUP2 MUL ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH2 0x4DF3 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 0x1E7B DUP3 PUSH2 0x4E48 JUMP JUMPDEST ISZERO ISZERO SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1E7B DUP3 PUSH2 0x4E23 JUMP JUMPDEST DUP1 PUSH2 0x1471 DUP2 PUSH2 0x4EC9 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 0x1E7B DUP3 PUSH2 0x4E33 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1E7B DUP3 PUSH2 0x4E3E JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1E7B DUP3 PUSH2 0x4E5A JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x4EAE JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x4E96 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x45B8 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 0x2A47 JUMPI INVALID JUMPDEST PUSH2 0x4EDC DUP2 PUSH2 0x4E23 JUMP JUMPDEST DUP2 EQ PUSH2 0x2A47 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4EDC DUP2 PUSH2 0x4E2E JUMP JUMPDEST PUSH2 0x4EDC DUP2 PUSH2 0x239E JUMP JUMPDEST PUSH2 0x4EDC DUP2 PUSH2 0x4E33 JUMP JUMPDEST PUSH1 0x3 DUP2 LT PUSH2 0x2A47 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4EDC DUP2 PUSH2 0x4E54 JUMP JUMPDEST PUSH2 0x4EDC DUP2 PUSH2 0x4E5A JUMP INVALID SELFBALANCE PUSH16 0x7665726E6F72427261766F3A3A736574 POP PUSH19 0x6F706F73616C436F6E666967A365627A7A7231 PC KECCAK256 PUSH7 0xCE3ABC94EBCD91 PUSH24 0xD96280AC97067F0B34D7B6191F57E0B338117AECACFCA66C PUSH6 0x78706572696D PUSH6 0x6E74616CF564 PUSH20 0x6F6C634300051000400000000000000000000000 ","sourceMap":"4581:23593:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4581:23593:0;;;;;;;"},"deployedBytecode":{"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106102535760003560e01c806346416f9211610146578063da35c664116100c3578063e9c714f211610087578063e9c714f2146104d5578063ee9799ee146104dd578063f851a440146104f0578063f9d28b80146104f8578063fc4eee421461050b578063fe0d94c11461051357610253565b8063da35c6641461047f578063ddf0b00914610487578063deaaa7cc1461049a578063e23a9a52146104a2578063e38e8c0f146104c257610253565b80637bdbe4d01161010a5780637bdbe4d014610441578063b58131b014610449578063b71d1a0c14610451578063bb08c32114610464578063d33219b41461047757610253565b806346416f92146103f8578063567813881461040b5780635c60da1b1461041e578063791f5d23146104265780637b3c71d31461042e57610253565b806325fd935a116101d45780633932abb1116101985780633932abb1146103a25780633bccf4fd146103aa5780633e4f49e6146103bd57806340e58ee5146103dd578063452a9320146103f057610253565b806325fd935a146103285780632678224714610330578063328dd9821461034557806334cf39091461036857806335a87de21461038057610253565b80631b9ce5751161021b5780631b9ce575146102db5780631e75adf2146102f05780631ebcfefd1461030557806320606b701461031857806324bc1a641461032057610253565b8063013cf08b1461025857806302a251a31461028b57806306fdde03146102a0578063164a1ab1146102b557806317977c61146102c8575b600080fd5b61026b610266366004613159565b610526565b6040516102829b9a99989796959493929190614bac565b60405180910390f35b610293610592565b6040516102829190614750565b6102a8610598565b6040516102829190614815565b6102936102c3366004612f9e565b6105c8565b6102936102d6366004612ed4565b610a86565b6102e3610a98565b60405161028291906147f9565b6103036102fe366004613097565b610aa7565b005b610303610313366004613159565b610d8d565b610293610dfd565b610293610e14565b610293610e22565b610338610e30565b6040516102829190614620565b610358610353366004613159565b610e3f565b6040516102829493929190614703565b6103706110ce565b6040516102829493929190614c86565b61039361038e366004613159565b6110dd565b60405161028293929190614c5e565b6102936110fe565b6103036103b8366004613248565b611104565b6103d06103cb366004613159565b6112dc565b6040516102829190614807565b6103036103eb366004613159565b611476565b61033861170c565b610303610406366004612efa565b61171b565b6103036104193660046131b1565b611925565b61033861196f565b61029361197e565b61030361043c3660046131e1565b61198c565b6102936119dc565b6102936119e2565b61030361045f366004612ed4565b6119e8565b61030361047236600461313b565b611a65565b6102e3611b5f565b610293611b6e565b610303610495366004613159565b611b74565b610293611e08565b6104b56104b0366004613177565b611e14565b6040516102829190614ae6565b6103036104d0366004612ed4565b611e81565b610303611f39565b6102e36104eb366004613159565b612017565b610338612032565b610303610506366004612ed4565b612041565b61029361218e565b610303610521366004613159565b612194565b600a60208190526000918252604090912080546001820154600283015460078401546008850154600986015496860154600b870154600c880154600e9098015496986001600160a01b039096169794969395929492939192909160ff808316926101009004811691168b565b60045481565b6040518060400160405280601481526020017356656e757320476f7665726e6f7220427261766f60601b81525081565b6000600654600014156105f65760405162461bcd60e51b81526004016105ed906148a6565b60405180910390fd5b600e600083600281111561060657fe5b60ff1681526020810191909152604001600020600201546009546001600160a01b031663782d6fe13361063a436001612347565b6040518363ffffffff1660e01b815260040161065792919061462e565b60206040518083038186803b15801561066f57600080fd5b505afa158015610683573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506106a791908101906132b0565b6001600160601b031610156106ce5760405162461bcd60e51b81526004016105ed90614a46565b855187511480156106e0575084518751145b80156106ed575083518751145b6107095760405162461bcd60e51b81526004016105ed90614916565b86516107275760405162461bcd60e51b81526004016105ed90614986565b600c548751111561074a5760405162461bcd60e51b81526004016105ed906149e6565b336000908152600b602052604090205480156107c757600061076b826112dc565b9050600181600781111561077b57fe5b14156107995760405162461bcd60e51b81526004016105ed90614a26565b60008160078111156107a757fe5b14156107c55760405162461bcd60e51b81526004016105ed906149f6565b505b60006107f743600e60008760028111156107dd57fe5b60ff1681526020019081526020016000206000015461236f565b9050600061082982600e600088600281111561080f57fe5b60ff1681526020019081526020016000206001015461236f565b600780546001019055905061083c61270e565b604051806101e001604052806007548152602001336001600160a01b03168152602001600081526020018c81526020018b81526020018a81526020018981526020018481526020018381526020016000815260200160008152602001600081526020016000151581526020016000151581526020018760028111156108bd57fe5b60ff16905280516000908152600a602090815260409182902083518155818401516001820180546001600160a01b0319166001600160a01b039092169190911790559183015160028301556060830151805193945084936109249260038501920190612794565b50608082015180516109409160048401916020909101906127f9565b5060a0820151805161095c916005840191602090910190612840565b5060c08201518051610978916006840191602090910190612899565b5060e082015160078201556101008083015160088301556101208301516009830155610140830151600a830155610160830151600b80840191909155610180840151600c840180546101a087015160ff199182169315159390931761ff0019169215159094029190911790556101c090930151600e909201805490911660ff90921691909117905581516020808401516001600160a01b0316600090815292905260409091205580517fc8df7ff219f3c0358e14500814d8b62b443a4bebf3a596baa60b9295b1cf1bde90338d8d8d8d89898f8f6002811115610a5757fe5b604051610a6d9a99989796959493929190614af4565b60405180910390a15193505050505b9695505050505050565b600b6020526000908152604090205481565b6009546001600160a01b031681565b6000546001600160a01b03163314610ad15760405162461bcd60e51b81526004016105ed90614906565b60105415801590610ae3575060115415155b8015610af0575060125415155b8015610afd575060135415155b610b195760405162461bcd60e51b81526004016105ed90614856565b8051610b2361239b565b60ff168114610b445760405162461bcd60e51b81526004016105ed90614826565b60005b81811015610d8857601060000154838281518110610b6157fe5b6020026020010151602001511015610b8b5760405162461bcd60e51b81526004016105ed90614886565b601060010154838281518110610b9d57fe5b6020026020010151602001511115610bc75760405162461bcd60e51b81526004016105ed90614ad6565b601060020154838281518110610bd957fe5b6020026020010151600001511015610c035760405162461bcd60e51b81526004016105ed906149b6565b601060030154838281518110610c1557fe5b6020026020010151600001511115610c3f5760405162461bcd60e51b81526004016105ed90614996565b691fc3842bd1f071c00000838281518110610c5657fe5b6020026020010151604001511015610c805760405162461bcd60e51b81526004016105ed90614a86565b693f870857a3e0e3800000838281518110610c9757fe5b6020026020010151604001511115610cc15760405162461bcd60e51b81526004016105ed90614836565b828181518110610ccd57fe5b6020908102919091018101516000838152600e835260409081902082518155928201516001840155015160029091015582517f99382998f89cd4c8aec7ae5d6deca4b4b0bfa01691740ccd702bf76b6a6816d290849083908110610d2d57fe5b602002602001015160200151848381518110610d4557fe5b602002602001015160000151858481518110610d5d57fe5b602002602001015160400151604051610d7893929190614c5e565b60405180910390a1600101610b47565b505050565b6000546001600160a01b03163314610db75760405162461bcd60e51b81526004016105ed90614a06565b600c8054908290556040517fd03b3c3c5c1446bcdd31423061041c94ca3bc5450fe7ccfb0f636f4c420de87e90610df19083908590614c50565b60405180910390a15050565b604051610e0990614615565b604051809103902081565b697f0e10af47c1c700000081565b693f870857a3e0e380000081565b6001546001600160a01b031681565b6060806060806000600a600087815260200190815260200160002090508060030181600401826005018360060183805480602002602001604051908101604052809291908181526020018280548015610ec157602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610ea3575b5050505050935082805480602002602001604051908101604052809291908181526020018280548015610f1357602002820191906000526020600020905b815481526020019060010190808311610eff575b5050505050925081805480602002602001604051908101604052809291908181526020016000905b82821015610fe65760008481526020908190208301805460408051601f6002600019610100600187161502019094169390930492830185900485028101850190915281815292830182828015610fd25780601f10610fa757610100808354040283529160200191610fd2565b820191906000526020600020905b815481529060010190602001808311610fb557829003601f168201915b505050505081526020019060010190610f3b565b50505050915080805480602002602001604051908101604052809291908181526020016000905b828210156110b85760008481526020908190208301805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156110a45780601f10611079576101008083540402835291602001916110a4565b820191906000526020600020905b81548152906001019060200180831161108757829003601f168201915b50505050508152602001906001019061100d565b5050505090509450945094509450509193509193565b60105460115460125460135484565b600e6020526000908152604090208054600182015460029092015490919083565b60035481565b600060405161111290614615565b60408051918290038220828201909152601482527356656e757320476f7665726e6f7220427261766f60601b6020909201919091527f157d76627a3b71c0167806f5879f7a61d3e301322f3a3b9f900315f15937671a6111706123a1565b30604051602001611184949392919061475e565b60405160208183030381529060405280519060200120905060006040516111aa906145d9565b6040519081900381206111c3918990899060200161479c565b604051602081830303815290604052805190602001209050600082826040516020016111f09291906145e4565b60405160208183030381529060405280519060200120905060006001828888886040516000815260200160405260405161122d94939291906147c4565b6020604051602081039080840390855afa15801561124f573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166112825760405162461bcd60e51b81526004016105ed906148f6565b806001600160a01b03167fb8e138887d0aa13bab447e82de9d5c1777041ecd21ca36ba824ff1e6c07ddda48a8a6112ba858e8e6123a5565b6040516112c993929190614d5e565b60405180910390a2505050505050505050565b600081600754101580156112f1575060065482115b61130d5760405162461bcd60e51b81526004016105ed90614a76565b6000828152600a60205260409020600c81015460ff1615611332576002915050611471565b80600701544311611347576000915050611471565b8060080154431161135c576001915050611471565b80600a015481600901541115806113805750697f0e10af47c1c70000008160090154105b1561138f576003915050611471565b60028101546113a2576004915050611471565b600c810154610100900460ff16156113be576007915050611471565b6002810154600e82015460ff166000908152600f60209081526040918290205482516360d143f160e11b8152925161145b94936001600160a01b039092169263c1a287e29260048082019391829003018186803b15801561141e57600080fd5b505afa158015611432573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061145691908101906130e9565b61236f565b421061146b576006915050611471565b60059150505b919050565b6007611481826112dc565b600781111561148c57fe5b14156114aa5760405162461bcd60e51b81526004016105ed90614a66565b6000818152600a60205260409020600d546001600160a01b03163314806114dd575060018101546001600160a01b031633145b806115a05750600e8181015460ff16600090815260209190915260409020600201546009546001808401546001600160a01b039283169263782d6fe192911690611528904390612347565b6040518363ffffffff1660e01b8152600401611545929190614664565b60206040518083038186803b15801561155d57600080fd5b505afa158015611571573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061159591908101906132b0565b6001600160601b0316105b6115bc5760405162461bcd60e51b81526004016105ed906149c6565b600c8101805460ff1916600117905560005b60038201548110156116dc57600e82015460ff166000908152600f60205260409020546003830180546001600160a01b039092169163591fcdfe91908490811061161457fe5b6000918252602090912001546004850180546001600160a01b03909216918590811061163c57fe5b906000526020600020015485600501858154811061165657fe5b9060005260206000200186600601868154811061166f57fe5b9060005260206000200187600201546040518663ffffffff1660e01b815260040161169e9594939291906146c2565b600060405180830381600087803b1580156116b857600080fd5b505af11580156116cc573d6000803e3d6000fd5b5050600190920191506115ce9050565b507f789cf55be980739dad1d0699b93b58e806b51c9d96619bfa8fe0a28abaa7b30c82604051610df19190614750565b600d546001600160a01b031681565b60008052600f6020527ff4803e074bd026baaf6ed2e288c9515f68c72fb7216eebdd7cae1718a53ec375546001600160a01b03161561176c5760405162461bcd60e51b81526004016105ed90614936565b6000546001600160a01b031633146117965760405162461bcd60e51b81526004016105ed90614926565b6001600160a01b0385166117bc5760405162461bcd60e51b81526004016105ed906148d6565b6001600160a01b0381166117e25760405162461bcd60e51b81526004016105ed906149d6565b6117ea61239b565b60ff1682511461180c5760405162461bcd60e51b81526004016105ed90614896565b61181461239b565b60ff168351146118365760405162461bcd60e51b81526004016105ed90614a96565b600980546001600160a01b038088166001600160a01b031992831617909255600a600c55600d80549284169290911691909117905561187484611a65565b61187d83610aa7565b815160005b8181101561191c5760006001600160a01b03168482815181106118a157fe5b60200260200101516001600160a01b031614156118d05760405162461bcd60e51b81526004016105ed90614a16565b8381815181106118dc57fe5b6020908102919091018101516000838152600f909252604090912080546001600160a01b0319166001600160a01b03909216919091179055600101611882565b50505050505050565b337fb8e138887d0aa13bab447e82de9d5c1777041ecd21ca36ba824ff1e6c07ddda483836119548483836123a5565b60405161196393929190614d5e565b60405180910390a25050565b6002546001600160a01b031681565b691fc3842bd1f071c0000081565b337fb8e138887d0aa13bab447e82de9d5c1777041ecd21ca36ba824ff1e6c07ddda485856119bb8483836123a5565b86866040516119ce959493929190614d18565b60405180910390a250505050565b600c5481565b60055481565b6000546001600160a01b03163314611a125760405162461bcd60e51b81526004016105ed90614866565b600180546001600160a01b038381166001600160a01b03198316179092556040519116907fca4f2f25d0898edd99413412fb94012f9e54ec8142f9b093e7720646a95b16a990610df19083908590614649565b6000546001600160a01b03163314611a8f5760405162461bcd60e51b81526004016105ed90614966565b805115801590611aa3575060008160400151115b8015611ab6575080606001518160400151105b8015611ac6575060208101518151105b611ae25760405162461bcd60e51b81526004016105ed90614a56565b60105481516011546020840151601254604080870151601354606089015192517fc90c7ad68c13a491443f1c63dafa18b365428ee69170415afe234c16dc6f650d98611b3998909790969095909490939291614ca1565b60405180910390a180516010556020810151601155604081015160125560600151601355565b6008546001600160a01b031681565b60075481565b6004611b7f826112dc565b6007811115611b8a57fe5b14611ba75760405162461bcd60e51b81526004016105ed90614946565b6000818152600a60209081526040808320600e81015460ff168452600f8352818420548251630d48571f60e31b81529251919493611c109342936001600160a01b0390931692636a42b8f892600480840193919291829003018186803b15801561141e57600080fd5b905060005b6003830154811015611dc157611db9836003018281548110611c3357fe5b6000918252602090912001546004850180546001600160a01b039092169184908110611c5b57fe5b9060005260206000200154856005018481548110611c7557fe5b600091825260209182902001805460408051601f6002600019610100600187161502019094169390930492830185900485028101850190915281815292830182828015611d035780601f10611cd857610100808354040283529160200191611d03565b820191906000526020600020905b815481529060010190602001808311611ce657829003601f168201915b5050505050866006018581548110611d1757fe5b600091825260209182902001805460408051601f6002600019610100600187161502019094169390930492830185900485028101850190915281815292830182828015611da55780601f10611d7a57610100808354040283529160200191611da5565b820191906000526020600020905b815481529060010190602001808311611d8857829003601f168201915b50505050600e89015488915060ff16612595565b600101611c15565b50600282018190556040517f9a2e42fd6722813d69113e7d0079d3d940171428df7373df9c7f7617cfda289290611dfb9085908490614c50565b60405180910390a1505050565b604051610e09906145d9565b611e1c6128f2565b506000828152600a602090815260408083206001600160a01b0385168452600d018252918290208251606081018452905460ff8082161515835261010082041692820192909252620100009091046001600160601b0316918101919091525b92915050565b600d546001600160a01b0316331480611ea457506000546001600160a01b031633145b611ec05760405162461bcd60e51b81526004016105ed90614ab6565b6001600160a01b038116611ee65760405162461bcd60e51b81526004016105ed90614aa6565b600d80546001600160a01b038381166001600160a01b03198316179092556040519116907f08fdaf06427a2010e5958f4329b566993472d14ce81d3f16ce7f2a2660da98e390610df19083908590614649565b6001546001600160a01b031633148015611f5257503315155b611f6e5760405162461bcd60e51b81526004016105ed906149a6565b60008054600180546001600160a01b038082166001600160a01b03198086168217968790559092169092556040519282169390927ff9ffabca9c8276e99321725bcb43fb076a6c66a54b7f21c4e8146d8519b417dc92611fd2928692911690614649565b60405180910390a16001546040517fca4f2f25d0898edd99413412fb94012f9e54ec8142f9b093e7720646a95b16a991610df19184916001600160a01b031690614649565b600f602052600090815260409020546001600160a01b031681565b6000546001600160a01b031681565b6000546001600160a01b0316331461206b5760405162461bcd60e51b81526004016105ed90614a36565b6006541561208b5760405162461bcd60e51b81526004016105ed90614976565b806001600160a01b031663da35c6646040518163ffffffff1660e01b8152600401602060405180830381600087803b1580156120c657600080fd5b505af11580156120da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506120fe91908101906130e9565b600781905560065560005b61211161239b565b60ff1681101561218a576000818152600f6020526040808220548151630e18b68160e01b815291516001600160a01b0390911692630e18b681926004808201939182900301818387803b15801561216757600080fd5b505af115801561217b573d6000803e3d6000fd5b50505050806001019050612109565b5050565b60065481565b600561219f826112dc565b60078111156121aa57fe5b146121c75760405162461bcd60e51b81526004016105ed906148e6565b6000818152600a60205260408120600c8101805461ff001916610100179055905b600382015481101561231757600e82015460ff166000908152600f60205260409020546003830180546001600160a01b0390921691630825f38f91908490811061222e57fe5b6000918252602090912001546004850180546001600160a01b03909216918590811061225657fe5b906000526020600020015485600501858154811061227057fe5b9060005260206000200186600601868154811061228957fe5b9060005260206000200187600201546040518663ffffffff1660e01b81526004016122b89594939291906146c2565b600060405180830381600087803b1580156122d257600080fd5b505af11580156122e6573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261230e9190810190613107565b506001016121e8565b507f712ae1383f79ac853f8d882153778e0260ef8f03b504e2866e0593e04d2b291f82604051610df19190614750565b6000828211156123695760405162461bcd60e51b81526004016105ed90614ac6565b50900390565b6000828201838110156123945760405162461bcd60e51b81526004016105ed90614956565b9392505050565b60035b90565b4690565b600060016123b2846112dc565b60078111156123bd57fe5b146123da5760405162461bcd60e51b81526004016105ed906148b6565b60028260ff1611156123fe5760405162461bcd60e51b81526004016105ed90614846565b6000838152600a602090815260408083206001600160a01b0388168452600d8101909252909120805460ff16156124475760405162461bcd60e51b81526004016105ed906148c6565b600954600783015460405163782d6fe160e01b81526000926001600160a01b03169163782d6fe19161247d918b91600401614664565b60206040518083038186803b15801561249557600080fd5b505afa1580156124a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506124cd91908101906132b0565b905060ff85166124f8576124ee83600a0154826001600160601b031661236f565b600a84015561254e565b8460ff16600114156125255761251b8360090154826001600160601b031661236f565b600984015561254e565b8460ff166002141561254e5761254883600b0154826001600160601b031661236f565b600b8401555b8154600160ff199091161761ff00191661010060ff871602176dffffffffffffffffffffffff00001916620100006001600160601b03831602179091559150509392505050565b60ff81166000908152600f60209081526040918290205491516001600160a01b039092169163f2b06537916125d4918a918a918a918a918a9101614672565b604051602081830303815290604052805190602001206040518263ffffffff1660e01b81526004016126069190614750565b60206040518083038186803b15801561261e57600080fd5b505afa158015612632573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061265691908101906130cb565b156126735760405162461bcd60e51b81526004016105ed90614876565b60ff81166000908152600f602052604090819020549051633a66f90160e01b81526001600160a01b0390911690633a66f901906126bc9089908990899089908990600401614672565b602060405180830381600087803b1580156126d657600080fd5b505af11580156126ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061191c91908101906130e9565b604051806101e001604052806000815260200160006001600160a01b0316815260200160008152602001606081526020016060815260200160608152602001606081526020016000815260200160008152602001600081526020016000815260200160008152602001600015158152602001600015158152602001600060ff1681525090565b8280548282559060005260206000209081019282156127e9579160200282015b828111156127e957825182546001600160a01b0319166001600160a01b039091161782556020909201916001909101906127b4565b506127f5929150612912565b5090565b828054828255906000526020600020908101928215612834579160200282015b82811115612834578251825591602001919060010190612819565b506127f5929150612936565b82805482825590600052602060002090810192821561288d579160200282015b8281111561288d578251805161287d918491602090910190612950565b5091602001919060010190612860565b506127f59291506129bd565b8280548282559060005260206000209081019282156128e6579160200282015b828111156128e657825180516128d6918491602090910190612950565b50916020019190600101906128b9565b506127f59291506129e0565b604080516060810182526000808252602082018190529181019190915290565b61239e91905b808211156127f55780546001600160a01b0319168155600101612918565b61239e91905b808211156127f5576000815560010161293c565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061299157805160ff1916838001178555612834565b828001600101855582156128345791820182811115612834578251825591602001919060010190612819565b61239e91905b808211156127f55760006129d78282612a03565b506001016129c3565b61239e91905b808211156127f55760006129fa8282612a03565b506001016129e6565b50805460018160011615610100020316600290046000825580601f10612a295750612a47565b601f016020900490600052602060002090810190612a479190612936565b50565b8035611e7b81614ed3565b600082601f830112612a6657600080fd5b8135612a79612a7482614dbd565b614d97565b91508181835260208401935060208101905083856020840282011115612a9e57600080fd5b60005b83811015612aca5781612ab48882612a4a565b8452506020928301929190910190600101612aa1565b5050505092915050565b600082601f830112612ae557600080fd5b8135612af3612a7482614dbd565b81815260209384019390925082018360005b83811015612aca5781358601612b1b8882612d01565b8452506020928301929190910190600101612b05565b600082601f830112612b4257600080fd5b8135612b50612a7482614dbd565b91508181835260208401935060208101905083856020840282011115612b7557600080fd5b60005b83811015612aca5781612b8b8882612d96565b8452506020928301929190910190600101612b78565b600082601f830112612bb257600080fd5b8135612bc0612a7482614dbd565b81815260209384019390925082018360005b83811015612aca5781358601612be88882612d01565b8452506020928301929190910190600101612bd2565b600082601f830112612c0f57600080fd5b8135612c1d612a7482614dbd565b91508181835260208401935060208101905083856060840282011115612c4257600080fd5b60005b83811015612aca5781612c588882612df4565b84525060209092019160609190910190600101612c45565b600082601f830112612c8157600080fd5b8135612c8f612a7482614dbd565b91508181835260208401935060208101905083856020840282011115612cb457600080fd5b60005b83811015612aca5781612cca8882612ceb565b8452506020928301929190910190600101612cb7565b8051611e7b81614ee7565b8035611e7b81614ef0565b8051611e7b81614ef0565b600082601f830112612d1257600080fd5b8135612d20612a7482614ddd565b91508082526020830160208301858383011115612d3c57600080fd5b612d47838284614e87565b50505092915050565b600082601f830112612d6157600080fd5b8151612d6f612a7482614ddd565b91508082526020830160208301858383011115612d8b57600080fd5b612d47838284614e93565b8035611e7b81614ef9565b8035611e7b81614f02565b60008083601f840112612dbe57600080fd5b5081356001600160401b03811115612dd557600080fd5b602083019150836001820283011115612ded57600080fd5b9250929050565b600060608284031215612e0657600080fd5b612e106060614d97565b90506000612e1e8484612ceb565b8252506020612e2f84848301612ceb565b6020830152506040612e4384828501612ceb565b60408301525092915050565b600060808284031215612e6157600080fd5b612e6b6080614d97565b90506000612e798484612ceb565b8252506020612e8a84848301612ceb565b6020830152506040612e9e84828501612ceb565b6040830152506060612eb284828501612ceb565b60608301525092915050565b8035611e7b81614f0f565b8051611e7b81614f18565b600060208284031215612ee657600080fd5b6000612ef28484612a4a565b949350505050565b60008060008060006101008688031215612f1357600080fd5b6000612f1f8888612a4a565b9550506020612f3088828901612e4f565b94505060a08601356001600160401b03811115612f4c57600080fd5b612f5888828901612bfe565b93505060c08601356001600160401b03811115612f7457600080fd5b612f8088828901612b31565b92505060e0612f9188828901612a4a565b9150509295509295909350565b60008060008060008060c08789031215612fb757600080fd5b86356001600160401b03811115612fcd57600080fd5b612fd989828a01612a55565b96505060208701356001600160401b03811115612ff557600080fd5b61300189828a01612c70565b95505060408701356001600160401b0381111561301d57600080fd5b61302989828a01612ba1565b94505060608701356001600160401b0381111561304557600080fd5b61305189828a01612ad4565b93505060808701356001600160401b0381111561306d57600080fd5b61307989828a01612d01565b92505060a061308a89828a01612da1565b9150509295509295509295565b6000602082840312156130a957600080fd5b81356001600160401b038111156130bf57600080fd5b612ef284828501612bfe565b6000602082840312156130dd57600080fd5b6000612ef28484612ce0565b6000602082840312156130fb57600080fd5b6000612ef28484612cf6565b60006020828403121561311957600080fd5b81516001600160401b0381111561312f57600080fd5b612ef284828501612d50565b60006080828403121561314d57600080fd5b6000612ef28484612e4f565b60006020828403121561316b57600080fd5b6000612ef28484612ceb565b6000806040838503121561318a57600080fd5b60006131968585612ceb565b92505060206131a785828601612a4a565b9150509250929050565b600080604083850312156131c457600080fd5b60006131d08585612ceb565b92505060206131a785828601612ebe565b600080600080606085870312156131f757600080fd5b60006132038787612ceb565b945050602061321487828801612ebe565b93505060408501356001600160401b0381111561323057600080fd5b61323c87828801612dac565b95989497509550505050565b600080600080600060a0868803121561326057600080fd5b600061326c8888612ceb565b955050602061327d88828901612ebe565b945050604061328e88828901612ebe565b935050606061329f88828901612ceb565b9250506080612f9188828901612ceb565b6000602082840312156132c257600080fd5b6000612ef28484612ec9565b60006132da8383613309565b505060200190565b600061239483836134ab565b60006132da8383613491565b61330381614e66565b82525050565b61330381614e23565b600061331d82614e16565b6133278185614e1a565b935061333283614e04565b8060005b8381101561336057815161334a88826132ce565b975061335583614e04565b925050600101613336565b509495945050505050565b600061337682614e16565b6133808185614e1a565b93508360208202850161339285614e04565b8060005b858110156133cc57848403895281516133af85826132e2565b94506133ba83614e04565b60209a909a0199925050600101613396565b5091979650505050505050565b60006133e482614e16565b6133ee8185614e1a565b93508360208202850161340085614e04565b8060005b858110156133cc578484038952815161341d85826132e2565b945061342883614e04565b60209a909a0199925050600101613404565b600061344582614e16565b61344f8185614e1a565b935061345a83614e04565b8060005b8381101561336057815161347288826132ee565b975061347d83614e04565b92505060010161345e565b61330381614e2e565b6133038161239e565b6133036134a68261239e565b61239e565b60006134b682614e16565b6134c08185614e1a565b93506134d0818560208601614e93565b6134d981614ebf565b9093019392505050565b600081546001811660008114613500576001811461352657613565565b607f60028304166135118187614e1a565b60ff1984168152955050602085019250613565565b600282046135348187614e1a565b955061353f85614e0a565b60005b8281101561355e57815488820152600190910190602001613542565b8701945050505b505092915050565b61330381614e33565b61330381614e71565b600061358b8385614e1a565b9350613598838584614e87565b6134d983614ebf565b60006135ae604183614e1a565b600080516020614f2283398151915281527f733a20696e76616c69642070726f706f73616c20636f6e666967206c656e67746020820152600d60fb1b604082015260600192915050565b6000613605604183614e1a565b600080516020614f2283398151915281527f733a20696e76616c6964206d61782070726f706f73616c207468726573686f6c6020820152601960fa1b604082015260600192915050565b600061365c603283614e1a565b7f476f7665726e6f72427261766f3a3a63617374566f7465496e7465726e616c3a81527120696e76616c696420766f7465207479706560701b602082015260400192915050565b60006136b0604783614e1a565b600080516020614f2283398151915281527f733a2076616c69646174696f6e20706172616d73206e6f7420636f6e666967756020820152661c9959081e595d60ca1b604082015260600192915050565b600061370d602883611471565b7f42616c6c6f742875696e743235362070726f706f73616c49642c75696e743820815267737570706f72742960c01b602082015260280192915050565b6000613757602a83614e1a565b7f476f7665726e6f72427261766f3a5f73657450656e64696e6741646d696e3a2081526961646d696e206f6e6c7960b01b602082015260400192915050565b60006137a3605583614e1a565b7f476f7665726e6f72427261766f3a3a71756575654f72526576657274496e746581527f726e616c3a206964656e746963616c2070726f706f73616c20616374696f6e20602082015274616c7265616479207175657565642061742065746160581b604082015260600192915050565b6000613820603c83614e1a565b600080516020614f2283398151915281527f733a20696e76616c6964206d696e20766f74696e6720706572696f6400000000602082015260400192915050565b600061386d605683614e1a565b7f476f7665726e6f72427261766f3a3a696e697469616c697a653a6e756d62657281527f206f662074696d656c6f636b732073686f756c64206d61746368206e756d626560208201527572206f6620676f7665726e616e636520726f7574657360501b604082015260600192915050565b60006138eb603183614e1a565b7f476f7665726e6f72427261766f3a3a70726f706f73653a20476f7665726e6f7281527020427261766f206e6f742061637469766560781b602082015260400192915050565b600061393e600283611471565b61190160f01b815260020192915050565b600061395c603183614e1a565b7f476f7665726e6f72427261766f3a3a63617374566f7465496e7465726e616c3a815270081d9bdd1a5b99c81a5cc818db1bdcd959607a1b602082015260400192915050565b60006139af603483614e1a565b7f476f7665726e6f72427261766f3a3a63617374566f7465496e7465726e616c3a815273081d9bdd195c88185b1c9958591e481d9bdd195960621b602082015260400192915050565b6000613a05603483614e1a565b7f476f7665726e6f72427261766f3a3a696e697469616c697a653a20696e76616c815273696420787673207661756c74206164647265737360601b602082015260400192915050565b6000613a5b604583614e1a565b7f476f7665726e6f72427261766f3a3a657865637574653a2070726f706f73616c81527f2063616e206f6e6c7920626520657865637574656420696620697420697320716020820152641d595d595960da1b604082015260600192915050565b6000613ac8602f83614e1a565b7f476f7665726e6f72427261766f3a3a63617374566f746542795369673a20696e81526e76616c6964207369676e617475726560881b602082015260400192915050565b6000613b19602d83614e1a565b600080516020614f2283398151915281526c733a2061646d696e206f6e6c7960981b602082015260400192915050565b6000613b56604483614e1a565b7f476f7665726e6f72427261766f3a3a70726f706f73653a2070726f706f73616c81527f2066756e6374696f6e20696e666f726d6174696f6e206172697479206d69736d6020820152630c2e8c6d60e31b604082015260600192915050565b6000613bc2602583614e1a565b7f476f7665726e6f72427261766f3a3a696e697469616c697a653a2061646d696e815264206f6e6c7960d81b602082015260400192915050565b6000613c09603283614e1a565b7f476f7665726e6f72427261766f3a3a696e697469616c697a653a2063616e6e6f8152717420696e697469616c697a6520747769636560701b602082015260400192915050565b6000613c5d604483614e1a565b7f476f7665726e6f72427261766f3a3a71756575653a2070726f706f73616c206381527f616e206f6e6c79206265207175657565642069662069742069732073756363656020820152631959195960e21b604082015260600192915050565b6000613cc9601183614e1a565b706164646974696f6e206f766572666c6f7760781b815260200192915050565b6000613cf6604383611471565b7f454950373132446f6d61696e28737472696e67206e616d652c75696e7432353681527f20636861696e49642c6164647265737320766572696679696e67436f6e74726160208201526263742960e81b604082015260430192915050565b6000613d61602e83614e1a565b7f476f7665726e6f72427261766f3a3a73657456616c69646174696f6e5061726181526d6d733a2061646d696e206f6e6c7960901b602082015260400192915050565b6000613db1603083614e1a565b7f476f7665726e6f72427261766f3a3a5f696e6974696174653a2063616e206f6e81526f6c7920696e697469617465206f6e636560801b602082015260400192915050565b6000613e03602c83614e1a565b7f476f7665726e6f72427261766f3a3a70726f706f73653a206d7573742070726f81526b7669646520616374696f6e7360a01b602082015260400192915050565b6000613e51603b83614e1a565b600080516020614f2283398151915281527f733a20696e76616c6964206d617820766f74696e672064656c61790000000000602082015260400192915050565b6000613e9e602e83614e1a565b7f476f7665726e6f72427261766f3a5f61636365707441646d696e3a2070656e6481526d696e672061646d696e206f6e6c7960901b602082015260400192915050565b6000613eee603b83614e1a565b600080516020614f2283398151915281527f733a20696e76616c6964206d696e20766f74696e672064656c61790000000000602082015260400192915050565b6000613f3b602f83614e1a565b7f476f7665726e6f72427261766f3a3a63616e63656c3a2070726f706f7365722081526e18589bdd99481d1a1c995cda1bdb19608a1b602082015260400192915050565b6000613f8c602b83614e1a565b7f476f7665726e6f72427261766f3a3a696e697469616c697a653a20696e76616c81526a34b21033bab0b93234b0b760a91b602082015260400192915050565b6000613fd9602883614e1a565b7f476f7665726e6f72427261766f3a3a70726f706f73653a20746f6f206d616e7981526720616374696f6e7360c01b602082015260400192915050565b6000614023605983614e1a565b7f476f7665726e6f72427261766f3a3a70726f706f73653a206f6e65206c69766581527f2070726f706f73616c207065722070726f706f7365722c20666f756e6420616e60208201527f20616c72656164792070656e64696e672070726f706f73616c00000000000000604082015260600192915050565b60006140a8603483614e1a565b7f476f7665726e6f72427261766f3a3a5f73657450726f706f73616c4d61784f7081527365726174696f6e733a2061646d696e206f6e6c7960601b602082015260400192915050565b60006140fe603283614e1a565b7f476f7665726e6f72427261766f3a3a696e697469616c697a653a696e76616c69815271642074696d656c6f636b206164647265737360701b602082015260400192915050565b6000614152605883614e1a565b7f476f7665726e6f72427261766f3a3a70726f706f73653a206f6e65206c69766581527f2070726f706f73616c207065722070726f706f7365722c20666f756e6420616e60208201527f20616c7265616479206163746976652070726f706f73616c0000000000000000604082015260600192915050565b6000611e7b600083614e1a565b60006141e4602483614e1a565b7f476f7665726e6f72427261766f3a3a5f696e6974696174653a2061646d696e208152636f6e6c7960e01b602082015260400192915050565b600061422a603f83614e1a565b7f476f7665726e6f72427261766f3a3a70726f706f73653a2070726f706f73657281527f20766f7465732062656c6f772070726f706f73616c207468726573686f6c6400602082015260400192915050565b6000614289603283614e1a565b7f476f7665726e6f72427261766f3a3a73657456616c69646174696f6e506172618152716d733a20696e76616c696420706172616d7360701b602082015260400192915050565b60006142dd603683614e1a565b7f476f7665726e6f72427261766f3a3a63616e63656c3a2063616e6e6f742063618152751b98d95b08195e1958dd5d1959081c1c9bdc1bdcd85b60521b602082015260400192915050565b6000614335602983614e1a565b7f476f7665726e6f72427261766f3a3a73746174653a20696e76616c69642070728152681bdc1bdcd85b081a5960ba1b602082015260400192915050565b6000614380604183614e1a565b600080516020614f2283398151915281527f733a20696e76616c6964206d696e2070726f706f73616c207468726573686f6c6020820152601960fa1b604082015260600192915050565b60006143d7605d83614e1a565b7f476f7665726e6f72427261766f3a3a696e697469616c697a653a6e756d62657281527f206f662070726f706f73616c20636f6e666967732073686f756c64206d61746360208201527f68206e756d626572206f6620676f7665726e616e636520726f75746573000000604082015260600192915050565b600061445c603b83614e1a565b7f476f7665726e6f72427261766f3a3a5f736574477561726469616e3a2063616e81527f6e6f74206c69766520776974686f7574206120677561726469616e0000000000602082015260400192915050565b60006144bb603383614e1a565b7f476f7665726e6f72427261766f3a3a5f736574477561726469616e3a2061646d815272696e206f7220677561726469616e206f6e6c7960681b602082015260400192915050565b6000614510601583614e1a565b747375627472616374696f6e20756e646572666c6f7760581b815260200192915050565b6000614541603c83614e1a565b600080516020614f2283398151915281527f733a20696e76616c6964206d617820766f74696e6720706572696f6400000000602082015260400192915050565b805160608301906145928482613488565b5060208201516145a560208501826145be565b5060408201516145b860408501826145d0565b50505050565b61330381614e54565b61330381614e7c565b61330381614e5a565b6000611e7b82613700565b60006145ef82613931565b91506145fb828561349a565b60208201915061460b828461349a565b5060200192915050565b6000611e7b82613ce9565b60208101611e7b8284613309565b6040810161463c82856132fa565b6123946020830184613491565b604081016146578285613309565b6123946020830184613309565b6040810161463c8285613309565b60a081016146808288613309565b61468d6020830187613491565b818103604083015261469f81866134ab565b905081810360608301526146b381856134ab565b9050610a7c6080830184613491565b60a081016146d08288613309565b6146dd6020830187613491565b81810360408301526146ef81866134e3565b905081810360608301526146b381856134e3565b608080825281016147148187613312565b90508181036020830152614728818661343a565b9050818103604083015261473c81856133d9565b90508181036060830152610a7c818461336b565b60208101611e7b8284613491565b6080810161476c8287613491565b6147796020830186613491565b6147866040830185613491565b6147936060830184613309565b95945050505050565b606081016147aa8286613491565b6147b76020830185613491565b612ef260408301846145be565b608081016147d28287613491565b6147df60208301866145be565b6147ec6040830185613491565b6147936060830184613491565b60208101611e7b828461356d565b60208101611e7b8284613576565b6020808252810161239481846134ab565b60208082528101611e7b816135a1565b60208082528101611e7b816135f8565b60208082528101611e7b8161364f565b60208082528101611e7b816136a3565b60208082528101611e7b8161374a565b60208082528101611e7b81613796565b60208082528101611e7b81613813565b60208082528101611e7b81613860565b60208082528101611e7b816138de565b60208082528101611e7b8161394f565b60208082528101611e7b816139a2565b60208082528101611e7b816139f8565b60208082528101611e7b81613a4e565b60208082528101611e7b81613abb565b60208082528101611e7b81613b0c565b60208082528101611e7b81613b49565b60208082528101611e7b81613bb5565b60208082528101611e7b81613bfc565b60208082528101611e7b81613c50565b60208082528101611e7b81613cbc565b60208082528101611e7b81613d54565b60208082528101611e7b81613da4565b60208082528101611e7b81613df6565b60208082528101611e7b81613e44565b60208082528101611e7b81613e91565b60208082528101611e7b81613ee1565b60208082528101611e7b81613f2e565b60208082528101611e7b81613f7f565b60208082528101611e7b81613fcc565b60208082528101611e7b81614016565b60208082528101611e7b8161409b565b60208082528101611e7b816140f1565b60208082528101611e7b81614145565b60208082528101611e7b816141d7565b60208082528101611e7b8161421d565b60208082528101611e7b8161427c565b60208082528101611e7b816142d0565b60208082528101611e7b81614328565b60208082528101611e7b81614373565b60208082528101611e7b816143ca565b60208082528101611e7b8161444f565b60208082528101611e7b816144ae565b60208082528101611e7b81614503565b60208082528101611e7b81614534565b60608101611e7b8284614581565b6101408101614b03828d613491565b614b10602083018c6132fa565b8181036040830152614b22818b613312565b90508181036060830152614b36818a61343a565b90508181036080830152614b4a81896133d9565b905081810360a0830152614b5e818861336b565b9050614b6d60c0830187613491565b614b7a60e0830186613491565b818103610100830152614b8d81856134ab565b9050614b9d6101208301846145be565b9b9a5050505050505050505050565b6101608101614bbb828e613491565b614bc8602083018d613309565b614bd5604083018c613491565b614be2606083018b613491565b614bef608083018a613491565b614bfc60a0830189613491565b614c0960c0830188613491565b614c1660e0830187613491565b614c24610100830186613488565b614c32610120830185613488565b614c406101408301846145be565b9c9b505050505050505050505050565b6040810161463c8285613491565b60608101614c6c8286613491565b614c796020830185613491565b612ef26040830184613491565b60808101614c948287613491565b6147df6020830186613491565b6101008101614cb0828b613491565b614cbd602083018a613491565b614cca6040830189613491565b614cd76060830188613491565b614ce46080830187613491565b614cf160a0830186613491565b614cfe60c0830185613491565b614d0b60e0830184613491565b9998505050505050505050565b60808101614d268288613491565b614d3360208301876145be565b614d4060408301866145c7565b8181036060830152614d5381848661357f565b979650505050505050565b60808101614d6c8286613491565b614d7960208301856145be565b614d8660408301846145c7565b8181036060830152614793816141ca565b6040518181016001600160401b0381118282101715614db557600080fd5b604052919050565b60006001600160401b03821115614dd357600080fd5b5060209081020190565b60006001600160401b03821115614df357600080fd5b506020601f91909101601f19160190565b60200190565b60009081526020902090565b5190565b90815260200190565b6000611e7b82614e48565b151590565b6000611e7b82614e23565b8061147181614ec9565b6001600160a01b031690565b60ff1690565b6001600160601b031690565b6000611e7b82614e33565b6000611e7b82614e3e565b6000611e7b82614e5a565b82818337506000910152565b60005b83811015614eae578181015183820152602001614e96565b838111156145b85750506000910152565b601f01601f191690565b60088110612a4757fe5b614edc81614e23565b8114612a4757600080fd5b614edc81614e2e565b614edc8161239e565b614edc81614e33565b60038110612a4757600080fd5b614edc81614e54565b614edc81614e5a56fe476f7665726e6f72427261766f3a3a73657450726f706f73616c436f6e666967a365627a7a7231582066ce3abc94ebcd9177d96280ac97067f0b34d7b6191f57e0b338117aecacfca66c6578706572696d656e74616cf564736f6c63430005100040","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x253 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x46416F92 GT PUSH2 0x146 JUMPI DUP1 PUSH4 0xDA35C664 GT PUSH2 0xC3 JUMPI DUP1 PUSH4 0xE9C714F2 GT PUSH2 0x87 JUMPI DUP1 PUSH4 0xE9C714F2 EQ PUSH2 0x4D5 JUMPI DUP1 PUSH4 0xEE9799EE EQ PUSH2 0x4DD JUMPI DUP1 PUSH4 0xF851A440 EQ PUSH2 0x4F0 JUMPI DUP1 PUSH4 0xF9D28B80 EQ PUSH2 0x4F8 JUMPI DUP1 PUSH4 0xFC4EEE42 EQ PUSH2 0x50B JUMPI DUP1 PUSH4 0xFE0D94C1 EQ PUSH2 0x513 JUMPI PUSH2 0x253 JUMP JUMPDEST DUP1 PUSH4 0xDA35C664 EQ PUSH2 0x47F JUMPI DUP1 PUSH4 0xDDF0B009 EQ PUSH2 0x487 JUMPI DUP1 PUSH4 0xDEAAA7CC EQ PUSH2 0x49A JUMPI DUP1 PUSH4 0xE23A9A52 EQ PUSH2 0x4A2 JUMPI DUP1 PUSH4 0xE38E8C0F EQ PUSH2 0x4C2 JUMPI PUSH2 0x253 JUMP JUMPDEST DUP1 PUSH4 0x7BDBE4D0 GT PUSH2 0x10A JUMPI DUP1 PUSH4 0x7BDBE4D0 EQ PUSH2 0x441 JUMPI DUP1 PUSH4 0xB58131B0 EQ PUSH2 0x449 JUMPI DUP1 PUSH4 0xB71D1A0C EQ PUSH2 0x451 JUMPI DUP1 PUSH4 0xBB08C321 EQ PUSH2 0x464 JUMPI DUP1 PUSH4 0xD33219B4 EQ PUSH2 0x477 JUMPI PUSH2 0x253 JUMP JUMPDEST DUP1 PUSH4 0x46416F92 EQ PUSH2 0x3F8 JUMPI DUP1 PUSH4 0x56781388 EQ PUSH2 0x40B JUMPI DUP1 PUSH4 0x5C60DA1B EQ PUSH2 0x41E JUMPI DUP1 PUSH4 0x791F5D23 EQ PUSH2 0x426 JUMPI DUP1 PUSH4 0x7B3C71D3 EQ PUSH2 0x42E JUMPI PUSH2 0x253 JUMP JUMPDEST DUP1 PUSH4 0x25FD935A GT PUSH2 0x1D4 JUMPI DUP1 PUSH4 0x3932ABB1 GT PUSH2 0x198 JUMPI DUP1 PUSH4 0x3932ABB1 EQ PUSH2 0x3A2 JUMPI DUP1 PUSH4 0x3BCCF4FD EQ PUSH2 0x3AA JUMPI DUP1 PUSH4 0x3E4F49E6 EQ PUSH2 0x3BD JUMPI DUP1 PUSH4 0x40E58EE5 EQ PUSH2 0x3DD JUMPI DUP1 PUSH4 0x452A9320 EQ PUSH2 0x3F0 JUMPI PUSH2 0x253 JUMP JUMPDEST DUP1 PUSH4 0x25FD935A EQ PUSH2 0x328 JUMPI DUP1 PUSH4 0x26782247 EQ PUSH2 0x330 JUMPI DUP1 PUSH4 0x328DD982 EQ PUSH2 0x345 JUMPI DUP1 PUSH4 0x34CF3909 EQ PUSH2 0x368 JUMPI DUP1 PUSH4 0x35A87DE2 EQ PUSH2 0x380 JUMPI PUSH2 0x253 JUMP JUMPDEST DUP1 PUSH4 0x1B9CE575 GT PUSH2 0x21B JUMPI DUP1 PUSH4 0x1B9CE575 EQ PUSH2 0x2DB JUMPI DUP1 PUSH4 0x1E75ADF2 EQ PUSH2 0x2F0 JUMPI DUP1 PUSH4 0x1EBCFEFD EQ PUSH2 0x305 JUMPI DUP1 PUSH4 0x20606B70 EQ PUSH2 0x318 JUMPI DUP1 PUSH4 0x24BC1A64 EQ PUSH2 0x320 JUMPI PUSH2 0x253 JUMP JUMPDEST DUP1 PUSH4 0x13CF08B EQ PUSH2 0x258 JUMPI DUP1 PUSH4 0x2A251A3 EQ PUSH2 0x28B JUMPI DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x2A0 JUMPI DUP1 PUSH4 0x164A1AB1 EQ PUSH2 0x2B5 JUMPI DUP1 PUSH4 0x17977C61 EQ PUSH2 0x2C8 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x26B PUSH2 0x266 CALLDATASIZE PUSH1 0x4 PUSH2 0x3159 JUMP JUMPDEST PUSH2 0x526 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x282 SWAP12 SWAP11 SWAP10 SWAP9 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4BAC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x293 PUSH2 0x592 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x282 SWAP2 SWAP1 PUSH2 0x4750 JUMP JUMPDEST PUSH2 0x2A8 PUSH2 0x598 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x282 SWAP2 SWAP1 PUSH2 0x4815 JUMP JUMPDEST PUSH2 0x293 PUSH2 0x2C3 CALLDATASIZE PUSH1 0x4 PUSH2 0x2F9E JUMP JUMPDEST PUSH2 0x5C8 JUMP JUMPDEST PUSH2 0x293 PUSH2 0x2D6 CALLDATASIZE PUSH1 0x4 PUSH2 0x2ED4 JUMP JUMPDEST PUSH2 0xA86 JUMP JUMPDEST PUSH2 0x2E3 PUSH2 0xA98 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x282 SWAP2 SWAP1 PUSH2 0x47F9 JUMP JUMPDEST PUSH2 0x303 PUSH2 0x2FE CALLDATASIZE PUSH1 0x4 PUSH2 0x3097 JUMP JUMPDEST PUSH2 0xAA7 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x303 PUSH2 0x313 CALLDATASIZE PUSH1 0x4 PUSH2 0x3159 JUMP JUMPDEST PUSH2 0xD8D JUMP JUMPDEST PUSH2 0x293 PUSH2 0xDFD JUMP JUMPDEST PUSH2 0x293 PUSH2 0xE14 JUMP JUMPDEST PUSH2 0x293 PUSH2 0xE22 JUMP JUMPDEST PUSH2 0x338 PUSH2 0xE30 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x282 SWAP2 SWAP1 PUSH2 0x4620 JUMP JUMPDEST PUSH2 0x358 PUSH2 0x353 CALLDATASIZE PUSH1 0x4 PUSH2 0x3159 JUMP JUMPDEST PUSH2 0xE3F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x282 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4703 JUMP JUMPDEST PUSH2 0x370 PUSH2 0x10CE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x282 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4C86 JUMP JUMPDEST PUSH2 0x393 PUSH2 0x38E CALLDATASIZE PUSH1 0x4 PUSH2 0x3159 JUMP JUMPDEST PUSH2 0x10DD JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x282 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4C5E JUMP JUMPDEST PUSH2 0x293 PUSH2 0x10FE JUMP JUMPDEST PUSH2 0x303 PUSH2 0x3B8 CALLDATASIZE PUSH1 0x4 PUSH2 0x3248 JUMP JUMPDEST PUSH2 0x1104 JUMP JUMPDEST PUSH2 0x3D0 PUSH2 0x3CB CALLDATASIZE PUSH1 0x4 PUSH2 0x3159 JUMP JUMPDEST PUSH2 0x12DC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x282 SWAP2 SWAP1 PUSH2 0x4807 JUMP JUMPDEST PUSH2 0x303 PUSH2 0x3EB CALLDATASIZE PUSH1 0x4 PUSH2 0x3159 JUMP JUMPDEST PUSH2 0x1476 JUMP JUMPDEST PUSH2 0x338 PUSH2 0x170C JUMP JUMPDEST PUSH2 0x303 PUSH2 0x406 CALLDATASIZE PUSH1 0x4 PUSH2 0x2EFA JUMP JUMPDEST PUSH2 0x171B JUMP JUMPDEST PUSH2 0x303 PUSH2 0x419 CALLDATASIZE PUSH1 0x4 PUSH2 0x31B1 JUMP JUMPDEST PUSH2 0x1925 JUMP JUMPDEST PUSH2 0x338 PUSH2 0x196F JUMP JUMPDEST PUSH2 0x293 PUSH2 0x197E JUMP JUMPDEST PUSH2 0x303 PUSH2 0x43C CALLDATASIZE PUSH1 0x4 PUSH2 0x31E1 JUMP JUMPDEST PUSH2 0x198C JUMP JUMPDEST PUSH2 0x293 PUSH2 0x19DC JUMP JUMPDEST PUSH2 0x293 PUSH2 0x19E2 JUMP JUMPDEST PUSH2 0x303 PUSH2 0x45F CALLDATASIZE PUSH1 0x4 PUSH2 0x2ED4 JUMP JUMPDEST PUSH2 0x19E8 JUMP JUMPDEST PUSH2 0x303 PUSH2 0x472 CALLDATASIZE PUSH1 0x4 PUSH2 0x313B JUMP JUMPDEST PUSH2 0x1A65 JUMP JUMPDEST PUSH2 0x2E3 PUSH2 0x1B5F JUMP JUMPDEST PUSH2 0x293 PUSH2 0x1B6E JUMP JUMPDEST PUSH2 0x303 PUSH2 0x495 CALLDATASIZE PUSH1 0x4 PUSH2 0x3159 JUMP JUMPDEST PUSH2 0x1B74 JUMP JUMPDEST PUSH2 0x293 PUSH2 0x1E08 JUMP JUMPDEST PUSH2 0x4B5 PUSH2 0x4B0 CALLDATASIZE PUSH1 0x4 PUSH2 0x3177 JUMP JUMPDEST PUSH2 0x1E14 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x282 SWAP2 SWAP1 PUSH2 0x4AE6 JUMP JUMPDEST PUSH2 0x303 PUSH2 0x4D0 CALLDATASIZE PUSH1 0x4 PUSH2 0x2ED4 JUMP JUMPDEST PUSH2 0x1E81 JUMP JUMPDEST PUSH2 0x303 PUSH2 0x1F39 JUMP JUMPDEST PUSH2 0x2E3 PUSH2 0x4EB CALLDATASIZE PUSH1 0x4 PUSH2 0x3159 JUMP JUMPDEST PUSH2 0x2017 JUMP JUMPDEST PUSH2 0x338 PUSH2 0x2032 JUMP JUMPDEST PUSH2 0x303 PUSH2 0x506 CALLDATASIZE PUSH1 0x4 PUSH2 0x2ED4 JUMP JUMPDEST PUSH2 0x2041 JUMP JUMPDEST PUSH2 0x293 PUSH2 0x218E JUMP JUMPDEST PUSH2 0x303 PUSH2 0x521 CALLDATASIZE PUSH1 0x4 PUSH2 0x3159 JUMP JUMPDEST PUSH2 0x2194 JUMP JUMPDEST PUSH1 0xA PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x40 SWAP1 SWAP2 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 SWAP7 DUP7 ADD SLOAD PUSH1 0xB DUP8 ADD SLOAD PUSH1 0xC DUP9 ADD SLOAD PUSH1 0xE SWAP1 SWAP9 ADD SLOAD SWAP7 SWAP9 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP7 AND SWAP8 SWAP5 SWAP7 SWAP4 SWAP6 SWAP3 SWAP5 SWAP3 SWAP4 SWAP2 SWAP3 SWAP1 SWAP2 PUSH1 0xFF DUP1 DUP4 AND SWAP3 PUSH2 0x100 SWAP1 DIV DUP2 AND SWAP2 AND DUP12 JUMP JUMPDEST PUSH1 0x4 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x14 DUP2 MSTORE PUSH1 0x20 ADD PUSH20 0x56656E757320476F7665726E6F7220427261766F PUSH1 0x60 SHL DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x6 SLOAD PUSH1 0x0 EQ ISZERO PUSH2 0x5F6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5ED SWAP1 PUSH2 0x48A6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0xE PUSH1 0x0 DUP4 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x606 JUMPI INVALID JUMPDEST PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 PUSH1 0x2 ADD SLOAD PUSH1 0x9 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x782D6FE1 CALLER PUSH2 0x63A NUMBER PUSH1 0x1 PUSH2 0x2347 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x657 SWAP3 SWAP2 SWAP1 PUSH2 0x462E JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x66F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x683 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 0x6A7 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x32B0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB AND LT ISZERO PUSH2 0x6CE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5ED SWAP1 PUSH2 0x4A46 JUMP JUMPDEST DUP6 MLOAD DUP8 MLOAD EQ DUP1 ISZERO PUSH2 0x6E0 JUMPI POP DUP5 MLOAD DUP8 MLOAD EQ JUMPDEST DUP1 ISZERO PUSH2 0x6ED JUMPI POP DUP4 MLOAD DUP8 MLOAD EQ JUMPDEST PUSH2 0x709 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5ED SWAP1 PUSH2 0x4916 JUMP JUMPDEST DUP7 MLOAD PUSH2 0x727 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5ED SWAP1 PUSH2 0x4986 JUMP JUMPDEST PUSH1 0xC SLOAD DUP8 MLOAD GT ISZERO PUSH2 0x74A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5ED SWAP1 PUSH2 0x49E6 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP1 ISZERO PUSH2 0x7C7 JUMPI PUSH1 0x0 PUSH2 0x76B DUP3 PUSH2 0x12DC JUMP JUMPDEST SWAP1 POP PUSH1 0x1 DUP2 PUSH1 0x7 DUP2 GT ISZERO PUSH2 0x77B JUMPI INVALID JUMPDEST EQ ISZERO PUSH2 0x799 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5ED SWAP1 PUSH2 0x4A26 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x7 DUP2 GT ISZERO PUSH2 0x7A7 JUMPI INVALID JUMPDEST EQ ISZERO PUSH2 0x7C5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5ED SWAP1 PUSH2 0x49F6 JUMP JUMPDEST POP JUMPDEST PUSH1 0x0 PUSH2 0x7F7 NUMBER PUSH1 0xE PUSH1 0x0 DUP8 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x7DD JUMPI INVALID JUMPDEST PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD PUSH2 0x236F JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x829 DUP3 PUSH1 0xE PUSH1 0x0 DUP9 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x80F JUMPI INVALID JUMPDEST PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH2 0x236F JUMP JUMPDEST PUSH1 0x7 DUP1 SLOAD PUSH1 0x1 ADD SWAP1 SSTORE SWAP1 POP PUSH2 0x83C PUSH2 0x270E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH2 0x1E0 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x7 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 DUP13 DUP2 MSTORE PUSH1 0x20 ADD DUP12 DUP2 MSTORE PUSH1 0x20 ADD DUP11 DUP2 MSTORE PUSH1 0x20 ADD DUP10 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 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD DUP8 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x8BD JUMPI INVALID JUMPDEST PUSH1 0xFF AND SWAP1 MSTORE DUP1 MLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP4 MLOAD DUP2 SSTORE DUP2 DUP5 ADD MLOAD PUSH1 0x1 DUP3 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE SWAP2 DUP4 ADD MLOAD PUSH1 0x2 DUP4 ADD SSTORE PUSH1 0x60 DUP4 ADD MLOAD DUP1 MLOAD SWAP4 SWAP5 POP DUP5 SWAP4 PUSH2 0x924 SWAP3 PUSH1 0x3 DUP6 ADD SWAP3 ADD SWAP1 PUSH2 0x2794 JUMP JUMPDEST POP PUSH1 0x80 DUP3 ADD MLOAD DUP1 MLOAD PUSH2 0x940 SWAP2 PUSH1 0x4 DUP5 ADD SWAP2 PUSH1 0x20 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x27F9 JUMP JUMPDEST POP PUSH1 0xA0 DUP3 ADD MLOAD DUP1 MLOAD PUSH2 0x95C SWAP2 PUSH1 0x5 DUP5 ADD SWAP2 PUSH1 0x20 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x2840 JUMP JUMPDEST POP PUSH1 0xC0 DUP3 ADD MLOAD DUP1 MLOAD PUSH2 0x978 SWAP2 PUSH1 0x6 DUP5 ADD SWAP2 PUSH1 0x20 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x2899 JUMP JUMPDEST POP PUSH1 0xE0 DUP3 ADD MLOAD PUSH1 0x7 DUP3 ADD SSTORE PUSH2 0x100 DUP1 DUP4 ADD MLOAD PUSH1 0x8 DUP4 ADD SSTORE PUSH2 0x120 DUP4 ADD MLOAD PUSH1 0x9 DUP4 ADD SSTORE PUSH2 0x140 DUP4 ADD MLOAD PUSH1 0xA DUP4 ADD SSTORE PUSH2 0x160 DUP4 ADD MLOAD PUSH1 0xB DUP1 DUP5 ADD SWAP2 SWAP1 SWAP2 SSTORE PUSH2 0x180 DUP5 ADD MLOAD PUSH1 0xC DUP5 ADD DUP1 SLOAD PUSH2 0x1A0 DUP8 ADD MLOAD PUSH1 0xFF NOT SWAP2 DUP3 AND SWAP4 ISZERO ISZERO SWAP4 SWAP1 SWAP4 OR PUSH2 0xFF00 NOT AND SWAP3 ISZERO ISZERO SWAP1 SWAP5 MUL SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x1C0 SWAP1 SWAP4 ADD MLOAD PUSH1 0xE SWAP1 SWAP3 ADD DUP1 SLOAD SWAP1 SWAP2 AND PUSH1 0xFF SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE DUP2 MLOAD PUSH1 0x20 DUP1 DUP5 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE SWAP3 SWAP1 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 SSTORE DUP1 MLOAD PUSH32 0xC8DF7FF219F3C0358E14500814D8B62B443A4BEBF3A596BAA60B9295B1CF1BDE SWAP1 CALLER DUP14 DUP14 DUP14 DUP14 DUP10 DUP10 DUP16 DUP16 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xA57 JUMPI INVALID JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xA6D SWAP11 SWAP10 SWAP9 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4AF4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 MLOAD SWAP4 POP POP POP POP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xAD1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5ED SWAP1 PUSH2 0x4906 JUMP JUMPDEST PUSH1 0x10 SLOAD ISZERO DUP1 ISZERO SWAP1 PUSH2 0xAE3 JUMPI POP PUSH1 0x11 SLOAD ISZERO ISZERO JUMPDEST DUP1 ISZERO PUSH2 0xAF0 JUMPI POP PUSH1 0x12 SLOAD ISZERO ISZERO JUMPDEST DUP1 ISZERO PUSH2 0xAFD JUMPI POP PUSH1 0x13 SLOAD ISZERO ISZERO JUMPDEST PUSH2 0xB19 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5ED SWAP1 PUSH2 0x4856 JUMP JUMPDEST DUP1 MLOAD PUSH2 0xB23 PUSH2 0x239B JUMP JUMPDEST PUSH1 0xFF AND DUP2 EQ PUSH2 0xB44 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5ED SWAP1 PUSH2 0x4826 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0xD88 JUMPI PUSH1 0x10 PUSH1 0x0 ADD SLOAD DUP4 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0xB61 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x20 ADD MLOAD LT ISZERO PUSH2 0xB8B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5ED SWAP1 PUSH2 0x4886 JUMP JUMPDEST PUSH1 0x10 PUSH1 0x1 ADD SLOAD DUP4 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0xB9D JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x20 ADD MLOAD GT ISZERO PUSH2 0xBC7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5ED SWAP1 PUSH2 0x4AD6 JUMP JUMPDEST PUSH1 0x10 PUSH1 0x2 ADD SLOAD DUP4 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0xBD9 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x0 ADD MLOAD LT ISZERO PUSH2 0xC03 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5ED SWAP1 PUSH2 0x49B6 JUMP JUMPDEST PUSH1 0x10 PUSH1 0x3 ADD SLOAD DUP4 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0xC15 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x0 ADD MLOAD GT ISZERO PUSH2 0xC3F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5ED SWAP1 PUSH2 0x4996 JUMP JUMPDEST PUSH10 0x1FC3842BD1F071C00000 DUP4 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0xC56 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x40 ADD MLOAD LT ISZERO PUSH2 0xC80 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5ED SWAP1 PUSH2 0x4A86 JUMP JUMPDEST PUSH10 0x3F870857A3E0E3800000 DUP4 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0xC97 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x40 ADD MLOAD GT ISZERO PUSH2 0xCC1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5ED SWAP1 PUSH2 0x4836 JUMP JUMPDEST DUP3 DUP2 DUP2 MLOAD DUP2 LT PUSH2 0xCCD JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0xE DUP4 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 DUP3 MLOAD DUP2 SSTORE SWAP3 DUP3 ADD MLOAD PUSH1 0x1 DUP5 ADD SSTORE ADD MLOAD PUSH1 0x2 SWAP1 SWAP2 ADD SSTORE DUP3 MLOAD PUSH32 0x99382998F89CD4C8AEC7AE5D6DECA4B4B0BFA01691740CCD702BF76B6A6816D2 SWAP1 DUP5 SWAP1 DUP4 SWAP1 DUP2 LT PUSH2 0xD2D JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x20 ADD MLOAD DUP5 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0xD45 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x0 ADD MLOAD DUP6 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0xD5D JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x40 ADD MLOAD PUSH1 0x40 MLOAD PUSH2 0xD78 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4C5E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x1 ADD PUSH2 0xB47 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xDB7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5ED SWAP1 PUSH2 0x4A06 JUMP JUMPDEST PUSH1 0xC DUP1 SLOAD SWAP1 DUP3 SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH32 0xD03B3C3C5C1446BCDD31423061041C94CA3BC5450FE7CCFB0F636F4C420DE87E SWAP1 PUSH2 0xDF1 SWAP1 DUP4 SWAP1 DUP6 SWAP1 PUSH2 0x4C50 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xE09 SWAP1 PUSH2 0x4615 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 DUP2 JUMP JUMPDEST PUSH10 0x7F0E10AF47C1C7000000 DUP2 JUMP JUMPDEST PUSH10 0x3F870857A3E0E3800000 DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x60 DUP1 PUSH1 0x60 DUP1 PUSH1 0x0 PUSH1 0xA 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 0xEC1 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 0xEA3 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 0xF13 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 0xEFF 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 0xFE6 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 0xFD2 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xFA7 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xFD2 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 0xFB5 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 0xF3B 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 0x10B8 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 0x10A4 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1079 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x10A4 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 0x1087 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 0x100D 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 0x10 SLOAD PUSH1 0x11 SLOAD PUSH1 0x12 SLOAD PUSH1 0x13 SLOAD DUP5 JUMP JUMPDEST PUSH1 0xE PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0x2 SWAP1 SWAP3 ADD SLOAD SWAP1 SWAP2 SWAP1 DUP4 JUMP JUMPDEST PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD PUSH2 0x1112 SWAP1 PUSH2 0x4615 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB DUP3 KECCAK256 DUP3 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x14 DUP3 MSTORE PUSH20 0x56656E757320476F7665726E6F7220427261766F PUSH1 0x60 SHL PUSH1 0x20 SWAP1 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0x157D76627A3B71C0167806F5879F7A61D3E301322F3A3B9F900315F15937671A PUSH2 0x1170 PUSH2 0x23A1 JUMP JUMPDEST ADDRESS PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x1184 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x475E 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 0x11AA SWAP1 PUSH2 0x45D9 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB DUP2 KECCAK256 PUSH2 0x11C3 SWAP2 DUP10 SWAP1 DUP10 SWAP1 PUSH1 0x20 ADD PUSH2 0x479C 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 0x11F0 SWAP3 SWAP2 SWAP1 PUSH2 0x45E4 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 0x122D SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x47C4 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x124F 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 0x1282 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5ED SWAP1 PUSH2 0x48F6 JUMP JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xB8E138887D0AA13BAB447E82DE9D5C1777041ECD21CA36BA824FF1E6C07DDDA4 DUP11 DUP11 PUSH2 0x12BA DUP6 DUP15 DUP15 PUSH2 0x23A5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x12C9 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4D5E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x7 SLOAD LT ISZERO DUP1 ISZERO PUSH2 0x12F1 JUMPI POP PUSH1 0x6 SLOAD DUP3 GT JUMPDEST PUSH2 0x130D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5ED SWAP1 PUSH2 0x4A76 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0xC DUP2 ADD SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x1332 JUMPI PUSH1 0x2 SWAP2 POP POP PUSH2 0x1471 JUMP JUMPDEST DUP1 PUSH1 0x7 ADD SLOAD NUMBER GT PUSH2 0x1347 JUMPI PUSH1 0x0 SWAP2 POP POP PUSH2 0x1471 JUMP JUMPDEST DUP1 PUSH1 0x8 ADD SLOAD NUMBER GT PUSH2 0x135C JUMPI PUSH1 0x1 SWAP2 POP POP PUSH2 0x1471 JUMP JUMPDEST DUP1 PUSH1 0xA ADD SLOAD DUP2 PUSH1 0x9 ADD SLOAD GT ISZERO DUP1 PUSH2 0x1380 JUMPI POP PUSH10 0x7F0E10AF47C1C7000000 DUP2 PUSH1 0x9 ADD SLOAD LT JUMPDEST ISZERO PUSH2 0x138F JUMPI PUSH1 0x3 SWAP2 POP POP PUSH2 0x1471 JUMP JUMPDEST PUSH1 0x2 DUP2 ADD SLOAD PUSH2 0x13A2 JUMPI PUSH1 0x4 SWAP2 POP POP PUSH2 0x1471 JUMP JUMPDEST PUSH1 0xC DUP2 ADD SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x13BE JUMPI PUSH1 0x7 SWAP2 POP POP PUSH2 0x1471 JUMP JUMPDEST PUSH1 0x2 DUP2 ADD SLOAD PUSH1 0xE DUP3 ADD SLOAD PUSH1 0xFF AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SLOAD DUP3 MLOAD PUSH4 0x60D143F1 PUSH1 0xE1 SHL DUP2 MSTORE SWAP3 MLOAD PUSH2 0x145B SWAP5 SWAP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP3 PUSH4 0xC1A287E2 SWAP3 PUSH1 0x4 DUP1 DUP3 ADD SWAP4 SWAP2 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x141E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1432 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 0x1456 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x30E9 JUMP JUMPDEST PUSH2 0x236F JUMP JUMPDEST TIMESTAMP LT PUSH2 0x146B JUMPI PUSH1 0x6 SWAP2 POP POP PUSH2 0x1471 JUMP JUMPDEST PUSH1 0x5 SWAP2 POP POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x7 PUSH2 0x1481 DUP3 PUSH2 0x12DC JUMP JUMPDEST PUSH1 0x7 DUP2 GT ISZERO PUSH2 0x148C JUMPI INVALID JUMPDEST EQ ISZERO PUSH2 0x14AA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5ED SWAP1 PUSH2 0x4A66 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0xD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ DUP1 PUSH2 0x14DD JUMPI POP PUSH1 0x1 DUP2 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ JUMPDEST DUP1 PUSH2 0x15A0 JUMPI POP PUSH1 0xE DUP2 DUP2 ADD SLOAD PUSH1 0xFF AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x2 ADD SLOAD PUSH1 0x9 SLOAD PUSH1 0x1 DUP1 DUP5 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 AND SWAP3 PUSH4 0x782D6FE1 SWAP3 SWAP2 AND SWAP1 PUSH2 0x1528 SWAP1 NUMBER SWAP1 PUSH2 0x2347 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1545 SWAP3 SWAP2 SWAP1 PUSH2 0x4664 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x155D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1571 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 0x1595 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x32B0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB AND LT JUMPDEST PUSH2 0x15BC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5ED SWAP1 PUSH2 0x49C6 JUMP JUMPDEST PUSH1 0xC 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 0x16DC JUMPI PUSH1 0xE DUP3 ADD SLOAD PUSH1 0xFF AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 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 0x1614 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 0x163C JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD DUP6 PUSH1 0x5 ADD DUP6 DUP2 SLOAD DUP2 LT PUSH2 0x1656 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD DUP7 PUSH1 0x6 ADD DUP7 DUP2 SLOAD DUP2 LT PUSH2 0x166F 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 0x169E SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x46C2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x16B8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x16CC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 POP PUSH2 0x15CE SWAP1 POP JUMP JUMPDEST POP PUSH32 0x789CF55BE980739DAD1D0699B93B58E806B51C9D96619BFA8FE0A28ABAA7B30C DUP3 PUSH1 0x40 MLOAD PUSH2 0xDF1 SWAP2 SWAP1 PUSH2 0x4750 JUMP JUMPDEST PUSH1 0xD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 MSTORE PUSH1 0xF PUSH1 0x20 MSTORE PUSH32 0xF4803E074BD026BAAF6ED2E288C9515F68C72FB7216EEBDD7CAE1718A53EC375 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ISZERO PUSH2 0x176C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5ED SWAP1 PUSH2 0x4936 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x1796 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5ED SWAP1 PUSH2 0x4926 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH2 0x17BC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5ED SWAP1 PUSH2 0x48D6 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x17E2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5ED SWAP1 PUSH2 0x49D6 JUMP JUMPDEST PUSH2 0x17EA PUSH2 0x239B JUMP JUMPDEST PUSH1 0xFF AND DUP3 MLOAD EQ PUSH2 0x180C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5ED SWAP1 PUSH2 0x4896 JUMP JUMPDEST PUSH2 0x1814 PUSH2 0x239B JUMP JUMPDEST PUSH1 0xFF AND DUP4 MLOAD EQ PUSH2 0x1836 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5ED SWAP1 PUSH2 0x4A96 JUMP JUMPDEST PUSH1 0x9 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP9 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP3 DUP4 AND OR SWAP1 SWAP3 SSTORE PUSH1 0xA PUSH1 0xC SSTORE PUSH1 0xD DUP1 SLOAD SWAP3 DUP5 AND SWAP3 SWAP1 SWAP2 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x1874 DUP5 PUSH2 0x1A65 JUMP JUMPDEST PUSH2 0x187D DUP4 PUSH2 0xAA7 JUMP JUMPDEST DUP2 MLOAD PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x191C JUMPI PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x18A1 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO PUSH2 0x18D0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5ED SWAP1 PUSH2 0x4A16 JUMP JUMPDEST DUP4 DUP2 DUP2 MLOAD DUP2 LT PUSH2 0x18DC JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0xF SWAP1 SWAP3 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH1 0x1 ADD PUSH2 0x1882 JUMP JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST CALLER PUSH32 0xB8E138887D0AA13BAB447E82DE9D5C1777041ECD21CA36BA824FF1E6C07DDDA4 DUP4 DUP4 PUSH2 0x1954 DUP5 DUP4 DUP4 PUSH2 0x23A5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1963 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4D5E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH10 0x1FC3842BD1F071C00000 DUP2 JUMP JUMPDEST CALLER PUSH32 0xB8E138887D0AA13BAB447E82DE9D5C1777041ECD21CA36BA824FF1E6C07DDDA4 DUP6 DUP6 PUSH2 0x19BB DUP5 DUP4 DUP4 PUSH2 0x23A5 JUMP JUMPDEST DUP7 DUP7 PUSH1 0x40 MLOAD PUSH2 0x19CE SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4D18 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP POP JUMP JUMPDEST PUSH1 0xC SLOAD DUP2 JUMP JUMPDEST PUSH1 0x5 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x1A12 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5ED SWAP1 PUSH2 0x4866 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND OR SWAP1 SWAP3 SSTORE PUSH1 0x40 MLOAD SWAP2 AND SWAP1 PUSH32 0xCA4F2F25D0898EDD99413412FB94012F9E54EC8142F9B093E7720646A95B16A9 SWAP1 PUSH2 0xDF1 SWAP1 DUP4 SWAP1 DUP6 SWAP1 PUSH2 0x4649 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x1A8F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5ED SWAP1 PUSH2 0x4966 JUMP JUMPDEST DUP1 MLOAD ISZERO DUP1 ISZERO SWAP1 PUSH2 0x1AA3 JUMPI POP PUSH1 0x0 DUP2 PUSH1 0x40 ADD MLOAD GT JUMPDEST DUP1 ISZERO PUSH2 0x1AB6 JUMPI POP DUP1 PUSH1 0x60 ADD MLOAD DUP2 PUSH1 0x40 ADD MLOAD LT JUMPDEST DUP1 ISZERO PUSH2 0x1AC6 JUMPI POP PUSH1 0x20 DUP2 ADD MLOAD DUP2 MLOAD LT JUMPDEST PUSH2 0x1AE2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5ED SWAP1 PUSH2 0x4A56 JUMP JUMPDEST PUSH1 0x10 SLOAD DUP2 MLOAD PUSH1 0x11 SLOAD PUSH1 0x20 DUP5 ADD MLOAD PUSH1 0x12 SLOAD PUSH1 0x40 DUP1 DUP8 ADD MLOAD PUSH1 0x13 SLOAD PUSH1 0x60 DUP10 ADD MLOAD SWAP3 MLOAD PUSH32 0xC90C7AD68C13A491443F1C63DAFA18B365428EE69170415AFE234C16DC6F650D SWAP9 PUSH2 0x1B39 SWAP9 SWAP1 SWAP8 SWAP1 SWAP7 SWAP1 SWAP6 SWAP1 SWAP5 SWAP1 SWAP4 SWAP3 SWAP2 PUSH2 0x4CA1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 DUP1 MLOAD PUSH1 0x10 SSTORE PUSH1 0x20 DUP2 ADD MLOAD PUSH1 0x11 SSTORE PUSH1 0x40 DUP2 ADD MLOAD PUSH1 0x12 SSTORE PUSH1 0x60 ADD MLOAD PUSH1 0x13 SSTORE JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x7 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x4 PUSH2 0x1B7F DUP3 PUSH2 0x12DC JUMP JUMPDEST PUSH1 0x7 DUP2 GT ISZERO PUSH2 0x1B8A JUMPI INVALID JUMPDEST EQ PUSH2 0x1BA7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5ED SWAP1 PUSH2 0x4946 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0xE DUP2 ADD SLOAD PUSH1 0xFF AND DUP5 MSTORE PUSH1 0xF DUP4 MSTORE DUP2 DUP5 KECCAK256 SLOAD DUP3 MLOAD PUSH4 0xD48571F PUSH1 0xE3 SHL DUP2 MSTORE SWAP3 MLOAD SWAP2 SWAP5 SWAP4 PUSH2 0x1C10 SWAP4 TIMESTAMP SWAP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP4 AND SWAP3 PUSH4 0x6A42B8F8 SWAP3 PUSH1 0x4 DUP1 DUP5 ADD SWAP4 SWAP2 SWAP3 SWAP2 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x141E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 POP PUSH1 0x0 JUMPDEST PUSH1 0x3 DUP4 ADD SLOAD DUP2 LT ISZERO PUSH2 0x1DC1 JUMPI PUSH2 0x1DB9 DUP4 PUSH1 0x3 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x1C33 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 0x1C5B JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD DUP6 PUSH1 0x5 ADD DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x1C75 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 0x1D03 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1CD8 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1D03 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 0x1CE6 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 0x1D17 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 0x1DA5 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1D7A JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1DA5 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 0x1D88 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP PUSH1 0xE DUP10 ADD SLOAD DUP9 SWAP2 POP PUSH1 0xFF AND PUSH2 0x2595 JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0x1C15 JUMP JUMPDEST POP PUSH1 0x2 DUP3 ADD DUP2 SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH32 0x9A2E42FD6722813D69113E7D0079D3D940171428DF7373DF9C7F7617CFDA2892 SWAP1 PUSH2 0x1DFB SWAP1 DUP6 SWAP1 DUP5 SWAP1 PUSH2 0x4C50 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xE09 SWAP1 PUSH2 0x45D9 JUMP JUMPDEST PUSH2 0x1E1C PUSH2 0x28F2 JUMP JUMPDEST POP PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP5 MSTORE PUSH1 0xD 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 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 0xD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ DUP1 PUSH2 0x1EA4 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ JUMPDEST PUSH2 0x1EC0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5ED SWAP1 PUSH2 0x4AB6 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x1EE6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5ED SWAP1 PUSH2 0x4AA6 JUMP JUMPDEST PUSH1 0xD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND OR SWAP1 SWAP3 SSTORE PUSH1 0x40 MLOAD SWAP2 AND SWAP1 PUSH32 0x8FDAF06427A2010E5958F4329B566993472D14CE81D3F16CE7F2A2660DA98E3 SWAP1 PUSH2 0xDF1 SWAP1 DUP4 SWAP1 DUP6 SWAP1 PUSH2 0x4649 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ DUP1 ISZERO PUSH2 0x1F52 JUMPI POP CALLER ISZERO ISZERO JUMPDEST PUSH2 0x1F6E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5ED SWAP1 PUSH2 0x49A6 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP3 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP1 DUP7 AND DUP3 OR SWAP7 DUP8 SWAP1 SSTORE SWAP1 SWAP3 AND SWAP1 SWAP3 SSTORE PUSH1 0x40 MLOAD SWAP3 DUP3 AND SWAP4 SWAP1 SWAP3 PUSH32 0xF9FFABCA9C8276E99321725BCB43FB076A6C66A54B7F21C4E8146D8519B417DC SWAP3 PUSH2 0x1FD2 SWAP3 DUP7 SWAP3 SWAP2 AND SWAP1 PUSH2 0x4649 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD PUSH32 0xCA4F2F25D0898EDD99413412FB94012F9E54EC8142F9B093E7720646A95B16A9 SWAP2 PUSH2 0xDF1 SWAP2 DUP5 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH2 0x4649 JUMP JUMPDEST PUSH1 0xF PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x206B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5ED SWAP1 PUSH2 0x4A36 JUMP JUMPDEST PUSH1 0x6 SLOAD ISZERO PUSH2 0x208B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5ED SWAP1 PUSH2 0x4976 JUMP JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xDA35C664 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x20C6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x20DA 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 0x20FE SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x30E9 JUMP JUMPDEST PUSH1 0x7 DUP2 SWAP1 SSTORE PUSH1 0x6 SSTORE PUSH1 0x0 JUMPDEST PUSH2 0x2111 PUSH2 0x239B JUMP JUMPDEST PUSH1 0xFF AND DUP2 LT ISZERO PUSH2 0x218A JUMPI PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SLOAD DUP2 MLOAD PUSH4 0xE18B681 PUSH1 0xE0 SHL DUP2 MSTORE SWAP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP3 PUSH4 0xE18B681 SWAP3 PUSH1 0x4 DUP1 DUP3 ADD SWAP4 SWAP2 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2167 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x217B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP DUP1 PUSH1 0x1 ADD SWAP1 POP PUSH2 0x2109 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x6 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x5 PUSH2 0x219F DUP3 PUSH2 0x12DC JUMP JUMPDEST PUSH1 0x7 DUP2 GT ISZERO PUSH2 0x21AA JUMPI INVALID JUMPDEST EQ PUSH2 0x21C7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5ED SWAP1 PUSH2 0x48E6 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH1 0xC DUP2 ADD DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE SWAP1 JUMPDEST PUSH1 0x3 DUP3 ADD SLOAD DUP2 LT ISZERO PUSH2 0x2317 JUMPI PUSH1 0xE DUP3 ADD SLOAD PUSH1 0xFF AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x3 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 0x222E 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 0x2256 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD DUP6 PUSH1 0x5 ADD DUP6 DUP2 SLOAD DUP2 LT PUSH2 0x2270 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD DUP7 PUSH1 0x6 ADD DUP7 DUP2 SLOAD DUP2 LT PUSH2 0x2289 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 0x22B8 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x46C2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x22D2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x22E6 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 0x230E SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x3107 JUMP JUMPDEST POP PUSH1 0x1 ADD PUSH2 0x21E8 JUMP JUMPDEST POP PUSH32 0x712AE1383F79AC853F8D882153778E0260EF8F03B504E2866E0593E04D2B291F DUP3 PUSH1 0x40 MLOAD PUSH2 0xDF1 SWAP2 SWAP1 PUSH2 0x4750 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 GT ISZERO PUSH2 0x2369 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5ED SWAP1 PUSH2 0x4AC6 JUMP JUMPDEST POP SWAP1 SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 ADD DUP4 DUP2 LT ISZERO PUSH2 0x2394 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5ED SWAP1 PUSH2 0x4956 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x3 JUMPDEST SWAP1 JUMP JUMPDEST CHAINID SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH2 0x23B2 DUP5 PUSH2 0x12DC JUMP JUMPDEST PUSH1 0x7 DUP2 GT ISZERO PUSH2 0x23BD JUMPI INVALID JUMPDEST EQ PUSH2 0x23DA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5ED SWAP1 PUSH2 0x48B6 JUMP JUMPDEST PUSH1 0x2 DUP3 PUSH1 0xFF AND GT ISZERO PUSH2 0x23FE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5ED SWAP1 PUSH2 0x4846 JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND DUP5 MSTORE PUSH1 0xD DUP2 ADD SWAP1 SWAP3 MSTORE SWAP1 SWAP2 KECCAK256 DUP1 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x2447 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5ED SWAP1 PUSH2 0x48C6 JUMP JUMPDEST PUSH1 0x9 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 0x247D SWAP2 DUP12 SWAP2 PUSH1 0x4 ADD PUSH2 0x4664 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2495 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x24A9 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 0x24CD SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x32B0 JUMP JUMPDEST SWAP1 POP PUSH1 0xFF DUP6 AND PUSH2 0x24F8 JUMPI PUSH2 0x24EE DUP4 PUSH1 0xA ADD SLOAD DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB AND PUSH2 0x236F JUMP JUMPDEST PUSH1 0xA DUP5 ADD SSTORE PUSH2 0x254E JUMP JUMPDEST DUP5 PUSH1 0xFF AND PUSH1 0x1 EQ ISZERO PUSH2 0x2525 JUMPI PUSH2 0x251B DUP4 PUSH1 0x9 ADD SLOAD DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB AND PUSH2 0x236F JUMP JUMPDEST PUSH1 0x9 DUP5 ADD SSTORE PUSH2 0x254E JUMP JUMPDEST DUP5 PUSH1 0xFF AND PUSH1 0x2 EQ ISZERO PUSH2 0x254E JUMPI PUSH2 0x2548 DUP4 PUSH1 0xB ADD SLOAD DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB AND PUSH2 0x236F JUMP JUMPDEST PUSH1 0xB DUP5 ADD SSTORE JUMPDEST DUP2 SLOAD PUSH1 0x1 PUSH1 0xFF NOT SWAP1 SWAP2 AND OR PUSH2 0xFF00 NOT AND PUSH2 0x100 PUSH1 0xFF DUP8 AND MUL OR PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFF0000 NOT AND PUSH3 0x10000 PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB DUP4 AND MUL OR SWAP1 SWAP2 SSTORE SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0xFF DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SLOAD SWAP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 PUSH4 0xF2B06537 SWAP2 PUSH2 0x25D4 SWAP2 DUP11 SWAP2 DUP11 SWAP2 DUP11 SWAP2 DUP11 SWAP2 DUP11 SWAP2 ADD PUSH2 0x4672 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 0x2606 SWAP2 SWAP1 PUSH2 0x4750 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x261E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2632 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 0x2656 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x30CB JUMP JUMPDEST ISZERO PUSH2 0x2673 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5ED SWAP1 PUSH2 0x4876 JUMP JUMPDEST PUSH1 0xFF DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 SLOAD SWAP1 MLOAD PUSH4 0x3A66F901 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x3A66F901 SWAP1 PUSH2 0x26BC SWAP1 DUP10 SWAP1 DUP10 SWAP1 DUP10 SWAP1 DUP10 SWAP1 DUP10 SWAP1 PUSH1 0x4 ADD PUSH2 0x4672 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x26D6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x26EA 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 0x191C SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x30E9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH2 0x1E0 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 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH1 0xFF AND 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 0x27E9 JUMPI SWAP2 PUSH1 0x20 MUL DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x27E9 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 0x27B4 JUMP JUMPDEST POP PUSH2 0x27F5 SWAP3 SWAP2 POP PUSH2 0x2912 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 0x2834 JUMPI SWAP2 PUSH1 0x20 MUL DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x2834 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x2819 JUMP JUMPDEST POP PUSH2 0x27F5 SWAP3 SWAP2 POP PUSH2 0x2936 JUMP JUMPDEST DUP3 DUP1 SLOAD DUP3 DUP3 SSTORE SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP3 DUP3 ISZERO PUSH2 0x288D JUMPI SWAP2 PUSH1 0x20 MUL DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x288D JUMPI DUP3 MLOAD DUP1 MLOAD PUSH2 0x287D SWAP2 DUP5 SWAP2 PUSH1 0x20 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x2950 JUMP JUMPDEST POP SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x2860 JUMP JUMPDEST POP PUSH2 0x27F5 SWAP3 SWAP2 POP PUSH2 0x29BD JUMP JUMPDEST DUP3 DUP1 SLOAD DUP3 DUP3 SSTORE SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP3 DUP3 ISZERO PUSH2 0x28E6 JUMPI SWAP2 PUSH1 0x20 MUL DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x28E6 JUMPI DUP3 MLOAD DUP1 MLOAD PUSH2 0x28D6 SWAP2 DUP5 SWAP2 PUSH1 0x20 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x2950 JUMP JUMPDEST POP SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x28B9 JUMP JUMPDEST POP PUSH2 0x27F5 SWAP3 SWAP2 POP PUSH2 0x29E0 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 0x239E SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x27F5 JUMPI DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x2918 JUMP JUMPDEST PUSH2 0x239E SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x27F5 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x293C 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 0x2991 JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH2 0x2834 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x2834 JUMPI SWAP2 DUP3 ADD DUP3 DUP2 GT ISZERO PUSH2 0x2834 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x2819 JUMP JUMPDEST PUSH2 0x239E SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x27F5 JUMPI PUSH1 0x0 PUSH2 0x29D7 DUP3 DUP3 PUSH2 0x2A03 JUMP JUMPDEST POP PUSH1 0x1 ADD PUSH2 0x29C3 JUMP JUMPDEST PUSH2 0x239E SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x27F5 JUMPI PUSH1 0x0 PUSH2 0x29FA DUP3 DUP3 PUSH2 0x2A03 JUMP JUMPDEST POP PUSH1 0x1 ADD PUSH2 0x29E6 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 0x2A29 JUMPI POP PUSH2 0x2A47 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2A47 SWAP2 SWAP1 PUSH2 0x2936 JUMP JUMPDEST POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x1E7B DUP2 PUSH2 0x4ED3 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2A66 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x2A79 PUSH2 0x2A74 DUP3 PUSH2 0x4DBD JUMP JUMPDEST PUSH2 0x4D97 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 0x2A9E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2ACA JUMPI DUP2 PUSH2 0x2AB4 DUP9 DUP3 PUSH2 0x2A4A JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x2AA1 JUMP JUMPDEST POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2AE5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x2AF3 PUSH2 0x2A74 DUP3 PUSH2 0x4DBD 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 0x2ACA JUMPI DUP2 CALLDATALOAD DUP7 ADD PUSH2 0x2B1B DUP9 DUP3 PUSH2 0x2D01 JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x2B05 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2B42 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x2B50 PUSH2 0x2A74 DUP3 PUSH2 0x4DBD 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 0x2B75 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2ACA JUMPI DUP2 PUSH2 0x2B8B DUP9 DUP3 PUSH2 0x2D96 JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x2B78 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2BB2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x2BC0 PUSH2 0x2A74 DUP3 PUSH2 0x4DBD 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 0x2ACA JUMPI DUP2 CALLDATALOAD DUP7 ADD PUSH2 0x2BE8 DUP9 DUP3 PUSH2 0x2D01 JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x2BD2 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2C0F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x2C1D PUSH2 0x2A74 DUP3 PUSH2 0x4DBD JUMP JUMPDEST SWAP2 POP DUP2 DUP2 DUP4 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH1 0x20 DUP2 ADD SWAP1 POP DUP4 DUP6 PUSH1 0x60 DUP5 MUL DUP3 ADD GT ISZERO PUSH2 0x2C42 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2ACA JUMPI DUP2 PUSH2 0x2C58 DUP9 DUP3 PUSH2 0x2DF4 JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP1 SWAP3 ADD SWAP2 PUSH1 0x60 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x2C45 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2C81 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x2C8F PUSH2 0x2A74 DUP3 PUSH2 0x4DBD 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 0x2CB4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2ACA JUMPI DUP2 PUSH2 0x2CCA DUP9 DUP3 PUSH2 0x2CEB JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x2CB7 JUMP JUMPDEST DUP1 MLOAD PUSH2 0x1E7B DUP2 PUSH2 0x4EE7 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x1E7B DUP2 PUSH2 0x4EF0 JUMP JUMPDEST DUP1 MLOAD PUSH2 0x1E7B DUP2 PUSH2 0x4EF0 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2D12 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x2D20 PUSH2 0x2A74 DUP3 PUSH2 0x4DDD JUMP JUMPDEST SWAP2 POP DUP1 DUP3 MSTORE PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP4 ADD DUP6 DUP4 DUP4 ADD GT ISZERO PUSH2 0x2D3C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2D47 DUP4 DUP3 DUP5 PUSH2 0x4E87 JUMP JUMPDEST POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2D61 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x2D6F PUSH2 0x2A74 DUP3 PUSH2 0x4DDD JUMP JUMPDEST SWAP2 POP DUP1 DUP3 MSTORE PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP4 ADD DUP6 DUP4 DUP4 ADD GT ISZERO PUSH2 0x2D8B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2D47 DUP4 DUP3 DUP5 PUSH2 0x4E93 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x1E7B DUP2 PUSH2 0x4EF9 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x1E7B DUP2 PUSH2 0x4F02 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x2DBE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2DD5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x2DED JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2E06 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2E10 PUSH1 0x60 PUSH2 0x4D97 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x2E1E DUP5 DUP5 PUSH2 0x2CEB JUMP JUMPDEST DUP3 MSTORE POP PUSH1 0x20 PUSH2 0x2E2F DUP5 DUP5 DUP4 ADD PUSH2 0x2CEB JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x2E43 DUP5 DUP3 DUP6 ADD PUSH2 0x2CEB JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2E61 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2E6B PUSH1 0x80 PUSH2 0x4D97 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x2E79 DUP5 DUP5 PUSH2 0x2CEB JUMP JUMPDEST DUP3 MSTORE POP PUSH1 0x20 PUSH2 0x2E8A DUP5 DUP5 DUP4 ADD PUSH2 0x2CEB JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x2E9E DUP5 DUP3 DUP6 ADD PUSH2 0x2CEB JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 PUSH2 0x2EB2 DUP5 DUP3 DUP6 ADD PUSH2 0x2CEB JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x1E7B DUP2 PUSH2 0x4F0F JUMP JUMPDEST DUP1 MLOAD PUSH2 0x1E7B DUP2 PUSH2 0x4F18 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2EE6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2EF2 DUP5 DUP5 PUSH2 0x2A4A JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x100 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x2F13 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2F1F DUP9 DUP9 PUSH2 0x2A4A JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 PUSH2 0x2F30 DUP9 DUP3 DUP10 ADD PUSH2 0x2E4F JUMP JUMPDEST SWAP5 POP POP PUSH1 0xA0 DUP7 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2F4C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2F58 DUP9 DUP3 DUP10 ADD PUSH2 0x2BFE JUMP JUMPDEST SWAP4 POP POP PUSH1 0xC0 DUP7 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2F74 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2F80 DUP9 DUP3 DUP10 ADD PUSH2 0x2B31 JUMP JUMPDEST SWAP3 POP POP PUSH1 0xE0 PUSH2 0x2F91 DUP9 DUP3 DUP10 ADD PUSH2 0x2A4A JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xC0 DUP8 DUP10 SUB SLT ISZERO PUSH2 0x2FB7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP7 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2FCD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2FD9 DUP10 DUP3 DUP11 ADD PUSH2 0x2A55 JUMP JUMPDEST SWAP7 POP POP PUSH1 0x20 DUP8 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2FF5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3001 DUP10 DUP3 DUP11 ADD PUSH2 0x2C70 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x40 DUP8 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x301D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3029 DUP10 DUP3 DUP11 ADD PUSH2 0x2BA1 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x60 DUP8 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x3045 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3051 DUP10 DUP3 DUP11 ADD PUSH2 0x2AD4 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x80 DUP8 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x306D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3079 DUP10 DUP3 DUP11 ADD PUSH2 0x2D01 JUMP JUMPDEST SWAP3 POP POP PUSH1 0xA0 PUSH2 0x308A DUP10 DUP3 DUP11 ADD PUSH2 0x2DA1 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 POP SWAP3 SWAP6 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x30A9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x30BF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2EF2 DUP5 DUP3 DUP6 ADD PUSH2 0x2BFE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x30DD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2EF2 DUP5 DUP5 PUSH2 0x2CE0 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x30FB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2EF2 DUP5 DUP5 PUSH2 0x2CF6 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3119 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x312F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2EF2 DUP5 DUP3 DUP6 ADD PUSH2 0x2D50 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x314D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2EF2 DUP5 DUP5 PUSH2 0x2E4F JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x316B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2EF2 DUP5 DUP5 PUSH2 0x2CEB JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x318A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x3196 DUP6 DUP6 PUSH2 0x2CEB JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x31A7 DUP6 DUP3 DUP7 ADD PUSH2 0x2A4A JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x31C4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x31D0 DUP6 DUP6 PUSH2 0x2CEB JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x31A7 DUP6 DUP3 DUP7 ADD PUSH2 0x2EBE JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x60 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x31F7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x3203 DUP8 DUP8 PUSH2 0x2CEB JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 PUSH2 0x3214 DUP8 DUP3 DUP9 ADD PUSH2 0x2EBE JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x3230 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x323C DUP8 DUP3 DUP9 ADD PUSH2 0x2DAC JUMP JUMPDEST SWAP6 SWAP9 SWAP5 SWAP8 POP SWAP6 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x3260 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x326C DUP9 DUP9 PUSH2 0x2CEB JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 PUSH2 0x327D DUP9 DUP3 DUP10 ADD PUSH2 0x2EBE JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 PUSH2 0x328E DUP9 DUP3 DUP10 ADD PUSH2 0x2EBE JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 PUSH2 0x329F DUP9 DUP3 DUP10 ADD PUSH2 0x2CEB JUMP JUMPDEST SWAP3 POP POP PUSH1 0x80 PUSH2 0x2F91 DUP9 DUP3 DUP10 ADD PUSH2 0x2CEB JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x32C2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2EF2 DUP5 DUP5 PUSH2 0x2EC9 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x32DA DUP4 DUP4 PUSH2 0x3309 JUMP JUMPDEST POP POP PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2394 DUP4 DUP4 PUSH2 0x34AB JUMP JUMPDEST PUSH1 0x0 PUSH2 0x32DA DUP4 DUP4 PUSH2 0x3491 JUMP JUMPDEST PUSH2 0x3303 DUP2 PUSH2 0x4E66 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x3303 DUP2 PUSH2 0x4E23 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x331D DUP3 PUSH2 0x4E16 JUMP JUMPDEST PUSH2 0x3327 DUP2 DUP6 PUSH2 0x4E1A JUMP JUMPDEST SWAP4 POP PUSH2 0x3332 DUP4 PUSH2 0x4E04 JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x3360 JUMPI DUP2 MLOAD PUSH2 0x334A DUP9 DUP3 PUSH2 0x32CE JUMP JUMPDEST SWAP8 POP PUSH2 0x3355 DUP4 PUSH2 0x4E04 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 ADD PUSH2 0x3336 JUMP JUMPDEST POP SWAP5 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3376 DUP3 PUSH2 0x4E16 JUMP JUMPDEST PUSH2 0x3380 DUP2 DUP6 PUSH2 0x4E1A JUMP JUMPDEST SWAP4 POP DUP4 PUSH1 0x20 DUP3 MUL DUP6 ADD PUSH2 0x3392 DUP6 PUSH2 0x4E04 JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP6 DUP2 LT ISZERO PUSH2 0x33CC JUMPI DUP5 DUP5 SUB DUP10 MSTORE DUP2 MLOAD PUSH2 0x33AF DUP6 DUP3 PUSH2 0x32E2 JUMP JUMPDEST SWAP5 POP PUSH2 0x33BA DUP4 PUSH2 0x4E04 JUMP JUMPDEST PUSH1 0x20 SWAP11 SWAP1 SWAP11 ADD SWAP10 SWAP3 POP POP PUSH1 0x1 ADD PUSH2 0x3396 JUMP JUMPDEST POP SWAP2 SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x33E4 DUP3 PUSH2 0x4E16 JUMP JUMPDEST PUSH2 0x33EE DUP2 DUP6 PUSH2 0x4E1A JUMP JUMPDEST SWAP4 POP DUP4 PUSH1 0x20 DUP3 MUL DUP6 ADD PUSH2 0x3400 DUP6 PUSH2 0x4E04 JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP6 DUP2 LT ISZERO PUSH2 0x33CC JUMPI DUP5 DUP5 SUB DUP10 MSTORE DUP2 MLOAD PUSH2 0x341D DUP6 DUP3 PUSH2 0x32E2 JUMP JUMPDEST SWAP5 POP PUSH2 0x3428 DUP4 PUSH2 0x4E04 JUMP JUMPDEST PUSH1 0x20 SWAP11 SWAP1 SWAP11 ADD SWAP10 SWAP3 POP POP PUSH1 0x1 ADD PUSH2 0x3404 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3445 DUP3 PUSH2 0x4E16 JUMP JUMPDEST PUSH2 0x344F DUP2 DUP6 PUSH2 0x4E1A JUMP JUMPDEST SWAP4 POP PUSH2 0x345A DUP4 PUSH2 0x4E04 JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x3360 JUMPI DUP2 MLOAD PUSH2 0x3472 DUP9 DUP3 PUSH2 0x32EE JUMP JUMPDEST SWAP8 POP PUSH2 0x347D DUP4 PUSH2 0x4E04 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 ADD PUSH2 0x345E JUMP JUMPDEST PUSH2 0x3303 DUP2 PUSH2 0x4E2E JUMP JUMPDEST PUSH2 0x3303 DUP2 PUSH2 0x239E JUMP JUMPDEST PUSH2 0x3303 PUSH2 0x34A6 DUP3 PUSH2 0x239E JUMP JUMPDEST PUSH2 0x239E JUMP JUMPDEST PUSH1 0x0 PUSH2 0x34B6 DUP3 PUSH2 0x4E16 JUMP JUMPDEST PUSH2 0x34C0 DUP2 DUP6 PUSH2 0x4E1A JUMP JUMPDEST SWAP4 POP PUSH2 0x34D0 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x4E93 JUMP JUMPDEST PUSH2 0x34D9 DUP2 PUSH2 0x4EBF 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 0x3500 JUMPI PUSH1 0x1 DUP2 EQ PUSH2 0x3526 JUMPI PUSH2 0x3565 JUMP JUMPDEST PUSH1 0x7F PUSH1 0x2 DUP4 DIV AND PUSH2 0x3511 DUP2 DUP8 PUSH2 0x4E1A JUMP JUMPDEST PUSH1 0xFF NOT DUP5 AND DUP2 MSTORE SWAP6 POP POP PUSH1 0x20 DUP6 ADD SWAP3 POP PUSH2 0x3565 JUMP JUMPDEST PUSH1 0x2 DUP3 DIV PUSH2 0x3534 DUP2 DUP8 PUSH2 0x4E1A JUMP JUMPDEST SWAP6 POP PUSH2 0x353F DUP6 PUSH2 0x4E0A JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x355E JUMPI DUP2 SLOAD DUP9 DUP3 ADD MSTORE PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x20 ADD PUSH2 0x3542 JUMP JUMPDEST DUP8 ADD SWAP5 POP POP POP JUMPDEST POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x3303 DUP2 PUSH2 0x4E33 JUMP JUMPDEST PUSH2 0x3303 DUP2 PUSH2 0x4E71 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x358B DUP4 DUP6 PUSH2 0x4E1A JUMP JUMPDEST SWAP4 POP PUSH2 0x3598 DUP4 DUP6 DUP5 PUSH2 0x4E87 JUMP JUMPDEST PUSH2 0x34D9 DUP4 PUSH2 0x4EBF JUMP JUMPDEST PUSH1 0x0 PUSH2 0x35AE PUSH1 0x41 DUP4 PUSH2 0x4E1A JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4F22 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP2 MSTORE PUSH32 0x733A20696E76616C69642070726F706F73616C20636F6E666967206C656E6774 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0xFB SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3605 PUSH1 0x41 DUP4 PUSH2 0x4E1A JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4F22 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP2 MSTORE PUSH32 0x733A20696E76616C6964206D61782070726F706F73616C207468726573686F6C PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0xFA SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x365C PUSH1 0x32 DUP4 PUSH2 0x4E1A JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A63617374566F7465496E7465726E616C3A DUP2 MSTORE PUSH18 0x20696E76616C696420766F74652074797065 PUSH1 0x70 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x36B0 PUSH1 0x47 DUP4 PUSH2 0x4E1A JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4F22 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP2 MSTORE PUSH32 0x733A2076616C69646174696F6E20706172616D73206E6F7420636F6E66696775 PUSH1 0x20 DUP3 ADD MSTORE PUSH7 0x1C9959081E595D PUSH1 0xCA SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x370D PUSH1 0x28 DUP4 PUSH2 0x1471 JUMP JUMPDEST PUSH32 0x42616C6C6F742875696E743235362070726F706F73616C49642C75696E743820 DUP2 MSTORE PUSH8 0x737570706F727429 PUSH1 0xC0 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x28 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3757 PUSH1 0x2A DUP4 PUSH2 0x4E1A JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A5F73657450656E64696E6741646D696E3A20 DUP2 MSTORE PUSH10 0x61646D696E206F6E6C79 PUSH1 0xB0 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x37A3 PUSH1 0x55 DUP4 PUSH2 0x4E1A JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A71756575654F72526576657274496E7465 DUP2 MSTORE PUSH32 0x726E616C3A206964656E746963616C2070726F706F73616C20616374696F6E20 PUSH1 0x20 DUP3 ADD MSTORE PUSH21 0x616C72656164792071756575656420617420657461 PUSH1 0x58 SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3820 PUSH1 0x3C DUP4 PUSH2 0x4E1A JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4F22 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP2 MSTORE PUSH32 0x733A20696E76616C6964206D696E20766F74696E6720706572696F6400000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x386D PUSH1 0x56 DUP4 PUSH2 0x4E1A JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A696E697469616C697A653A6E756D626572 DUP2 MSTORE PUSH32 0x206F662074696D656C6F636B732073686F756C64206D61746368206E756D6265 PUSH1 0x20 DUP3 ADD MSTORE PUSH22 0x72206F6620676F7665726E616E636520726F75746573 PUSH1 0x50 SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x38EB PUSH1 0x31 DUP4 PUSH2 0x4E1A JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A70726F706F73653A20476F7665726E6F72 DUP2 MSTORE PUSH17 0x20427261766F206E6F7420616374697665 PUSH1 0x78 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x393E PUSH1 0x2 DUP4 PUSH2 0x1471 JUMP JUMPDEST PUSH2 0x1901 PUSH1 0xF0 SHL DUP2 MSTORE PUSH1 0x2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x395C PUSH1 0x31 DUP4 PUSH2 0x4E1A JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A63617374566F7465496E7465726E616C3A DUP2 MSTORE PUSH17 0x81D9BDD1A5B99C81A5CC818DB1BDCD959 PUSH1 0x7A SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x39AF PUSH1 0x34 DUP4 PUSH2 0x4E1A JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A63617374566F7465496E7465726E616C3A DUP2 MSTORE PUSH20 0x81D9BDD195C88185B1C9958591E481D9BDD1959 PUSH1 0x62 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3A05 PUSH1 0x34 DUP4 PUSH2 0x4E1A JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A696E697469616C697A653A20696E76616C DUP2 MSTORE PUSH20 0x696420787673207661756C742061646472657373 PUSH1 0x60 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3A5B PUSH1 0x45 DUP4 PUSH2 0x4E1A JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A657865637574653A2070726F706F73616C 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 0x3AC8 PUSH1 0x2F DUP4 PUSH2 0x4E1A JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A63617374566F746542795369673A20696E DUP2 MSTORE PUSH15 0x76616C6964207369676E6174757265 PUSH1 0x88 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3B19 PUSH1 0x2D DUP4 PUSH2 0x4E1A JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4F22 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP2 MSTORE PUSH13 0x733A2061646D696E206F6E6C79 PUSH1 0x98 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3B56 PUSH1 0x44 DUP4 PUSH2 0x4E1A JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A70726F706F73653A2070726F706F73616C 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 0x3BC2 PUSH1 0x25 DUP4 PUSH2 0x4E1A JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A696E697469616C697A653A2061646D696E DUP2 MSTORE PUSH5 0x206F6E6C79 PUSH1 0xD8 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3C09 PUSH1 0x32 DUP4 PUSH2 0x4E1A JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A696E697469616C697A653A2063616E6E6F DUP2 MSTORE PUSH18 0x7420696E697469616C697A65207477696365 PUSH1 0x70 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3C5D PUSH1 0x44 DUP4 PUSH2 0x4E1A JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A71756575653A2070726F706F73616C2063 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 0x3CC9 PUSH1 0x11 DUP4 PUSH2 0x4E1A JUMP JUMPDEST PUSH17 0x6164646974696F6E206F766572666C6F77 PUSH1 0x78 SHL DUP2 MSTORE PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3CF6 PUSH1 0x43 DUP4 PUSH2 0x1471 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 0x3D61 PUSH1 0x2E DUP4 PUSH2 0x4E1A JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A73657456616C69646174696F6E50617261 DUP2 MSTORE PUSH14 0x6D733A2061646D696E206F6E6C79 PUSH1 0x90 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3DB1 PUSH1 0x30 DUP4 PUSH2 0x4E1A JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A5F696E6974696174653A2063616E206F6E DUP2 MSTORE PUSH16 0x6C7920696E697469617465206F6E6365 PUSH1 0x80 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3E03 PUSH1 0x2C DUP4 PUSH2 0x4E1A JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A70726F706F73653A206D7573742070726F DUP2 MSTORE PUSH12 0x7669646520616374696F6E73 PUSH1 0xA0 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3E51 PUSH1 0x3B DUP4 PUSH2 0x4E1A JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4F22 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP2 MSTORE PUSH32 0x733A20696E76616C6964206D617820766F74696E672064656C61790000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3E9E PUSH1 0x2E DUP4 PUSH2 0x4E1A JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A5F61636365707441646D696E3A2070656E64 DUP2 MSTORE PUSH14 0x696E672061646D696E206F6E6C79 PUSH1 0x90 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3EEE PUSH1 0x3B DUP4 PUSH2 0x4E1A JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4F22 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP2 MSTORE PUSH32 0x733A20696E76616C6964206D696E20766F74696E672064656C61790000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3F3B PUSH1 0x2F DUP4 PUSH2 0x4E1A JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A63616E63656C3A2070726F706F73657220 DUP2 MSTORE PUSH15 0x18589BDD99481D1A1C995CDA1BDB19 PUSH1 0x8A SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3F8C PUSH1 0x2B DUP4 PUSH2 0x4E1A JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A696E697469616C697A653A20696E76616C DUP2 MSTORE PUSH11 0x34B21033BAB0B93234B0B7 PUSH1 0xA9 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3FD9 PUSH1 0x28 DUP4 PUSH2 0x4E1A JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A70726F706F73653A20746F6F206D616E79 DUP2 MSTORE PUSH8 0x20616374696F6E73 PUSH1 0xC0 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4023 PUSH1 0x59 DUP4 PUSH2 0x4E1A JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A70726F706F73653A206F6E65206C697665 DUP2 MSTORE PUSH32 0x2070726F706F73616C207065722070726F706F7365722C20666F756E6420616E PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x20616C72656164792070656E64696E672070726F706F73616C00000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x40A8 PUSH1 0x34 DUP4 PUSH2 0x4E1A JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A5F73657450726F706F73616C4D61784F70 DUP2 MSTORE PUSH20 0x65726174696F6E733A2061646D696E206F6E6C79 PUSH1 0x60 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x40FE PUSH1 0x32 DUP4 PUSH2 0x4E1A JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A696E697469616C697A653A696E76616C69 DUP2 MSTORE PUSH18 0x642074696D656C6F636B2061646472657373 PUSH1 0x70 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4152 PUSH1 0x58 DUP4 PUSH2 0x4E1A JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A70726F706F73653A206F6E65206C697665 DUP2 MSTORE PUSH32 0x2070726F706F73616C207065722070726F706F7365722C20666F756E6420616E PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x20616C7265616479206163746976652070726F706F73616C0000000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1E7B PUSH1 0x0 DUP4 PUSH2 0x4E1A JUMP JUMPDEST PUSH1 0x0 PUSH2 0x41E4 PUSH1 0x24 DUP4 PUSH2 0x4E1A JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A5F696E6974696174653A2061646D696E20 DUP2 MSTORE PUSH4 0x6F6E6C79 PUSH1 0xE0 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x422A PUSH1 0x3F DUP4 PUSH2 0x4E1A JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A70726F706F73653A2070726F706F736572 DUP2 MSTORE PUSH32 0x20766F7465732062656C6F772070726F706F73616C207468726573686F6C6400 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4289 PUSH1 0x32 DUP4 PUSH2 0x4E1A JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A73657456616C69646174696F6E50617261 DUP2 MSTORE PUSH18 0x6D733A20696E76616C696420706172616D73 PUSH1 0x70 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x42DD PUSH1 0x36 DUP4 PUSH2 0x4E1A JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A63616E63656C3A2063616E6E6F74206361 DUP2 MSTORE PUSH22 0x1B98D95B08195E1958DD5D1959081C1C9BDC1BDCD85B PUSH1 0x52 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4335 PUSH1 0x29 DUP4 PUSH2 0x4E1A JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A73746174653A20696E76616C6964207072 DUP2 MSTORE PUSH9 0x1BDC1BDCD85B081A59 PUSH1 0xBA SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4380 PUSH1 0x41 DUP4 PUSH2 0x4E1A JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4F22 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP2 MSTORE PUSH32 0x733A20696E76616C6964206D696E2070726F706F73616C207468726573686F6C PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0xFA SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x43D7 PUSH1 0x5D DUP4 PUSH2 0x4E1A JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A696E697469616C697A653A6E756D626572 DUP2 MSTORE PUSH32 0x206F662070726F706F73616C20636F6E666967732073686F756C64206D617463 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x68206E756D626572206F6620676F7665726E616E636520726F75746573000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x445C PUSH1 0x3B DUP4 PUSH2 0x4E1A JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A5F736574477561726469616E3A2063616E DUP2 MSTORE PUSH32 0x6E6F74206C69766520776974686F7574206120677561726469616E0000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x44BB PUSH1 0x33 DUP4 PUSH2 0x4E1A JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A5F736574477561726469616E3A2061646D DUP2 MSTORE PUSH19 0x696E206F7220677561726469616E206F6E6C79 PUSH1 0x68 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4510 PUSH1 0x15 DUP4 PUSH2 0x4E1A JUMP JUMPDEST PUSH21 0x7375627472616374696F6E20756E646572666C6F77 PUSH1 0x58 SHL DUP2 MSTORE PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4541 PUSH1 0x3C DUP4 PUSH2 0x4E1A JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4F22 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP2 MSTORE PUSH32 0x733A20696E76616C6964206D617820766F74696E6720706572696F6400000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 MLOAD PUSH1 0x60 DUP4 ADD SWAP1 PUSH2 0x4592 DUP5 DUP3 PUSH2 0x3488 JUMP JUMPDEST POP PUSH1 0x20 DUP3 ADD MLOAD PUSH2 0x45A5 PUSH1 0x20 DUP6 ADD DUP3 PUSH2 0x45BE JUMP JUMPDEST POP PUSH1 0x40 DUP3 ADD MLOAD PUSH2 0x45B8 PUSH1 0x40 DUP6 ADD DUP3 PUSH2 0x45D0 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0x3303 DUP2 PUSH2 0x4E54 JUMP JUMPDEST PUSH2 0x3303 DUP2 PUSH2 0x4E7C JUMP JUMPDEST PUSH2 0x3303 DUP2 PUSH2 0x4E5A JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1E7B DUP3 PUSH2 0x3700 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x45EF DUP3 PUSH2 0x3931 JUMP JUMPDEST SWAP2 POP PUSH2 0x45FB DUP3 DUP6 PUSH2 0x349A JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH2 0x460B DUP3 DUP5 PUSH2 0x349A JUMP JUMPDEST POP PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1E7B DUP3 PUSH2 0x3CE9 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x1E7B DUP3 DUP5 PUSH2 0x3309 JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0x463C DUP3 DUP6 PUSH2 0x32FA JUMP JUMPDEST PUSH2 0x2394 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x3491 JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0x4657 DUP3 DUP6 PUSH2 0x3309 JUMP JUMPDEST PUSH2 0x2394 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x3309 JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0x463C DUP3 DUP6 PUSH2 0x3309 JUMP JUMPDEST PUSH1 0xA0 DUP2 ADD PUSH2 0x4680 DUP3 DUP9 PUSH2 0x3309 JUMP JUMPDEST PUSH2 0x468D PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x3491 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x469F DUP2 DUP7 PUSH2 0x34AB JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x46B3 DUP2 DUP6 PUSH2 0x34AB JUMP JUMPDEST SWAP1 POP PUSH2 0xA7C PUSH1 0x80 DUP4 ADD DUP5 PUSH2 0x3491 JUMP JUMPDEST PUSH1 0xA0 DUP2 ADD PUSH2 0x46D0 DUP3 DUP9 PUSH2 0x3309 JUMP JUMPDEST PUSH2 0x46DD PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x3491 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x46EF DUP2 DUP7 PUSH2 0x34E3 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x46B3 DUP2 DUP6 PUSH2 0x34E3 JUMP JUMPDEST PUSH1 0x80 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x4714 DUP2 DUP8 PUSH2 0x3312 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x4728 DUP2 DUP7 PUSH2 0x343A JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x473C DUP2 DUP6 PUSH2 0x33D9 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0xA7C DUP2 DUP5 PUSH2 0x336B JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x1E7B DUP3 DUP5 PUSH2 0x3491 JUMP JUMPDEST PUSH1 0x80 DUP2 ADD PUSH2 0x476C DUP3 DUP8 PUSH2 0x3491 JUMP JUMPDEST PUSH2 0x4779 PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x3491 JUMP JUMPDEST PUSH2 0x4786 PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x3491 JUMP JUMPDEST PUSH2 0x4793 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x3309 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP2 ADD PUSH2 0x47AA DUP3 DUP7 PUSH2 0x3491 JUMP JUMPDEST PUSH2 0x47B7 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x3491 JUMP JUMPDEST PUSH2 0x2EF2 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x45BE JUMP JUMPDEST PUSH1 0x80 DUP2 ADD PUSH2 0x47D2 DUP3 DUP8 PUSH2 0x3491 JUMP JUMPDEST PUSH2 0x47DF PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x45BE JUMP JUMPDEST PUSH2 0x47EC PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x3491 JUMP JUMPDEST PUSH2 0x4793 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x3491 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x1E7B DUP3 DUP5 PUSH2 0x356D JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x1E7B DUP3 DUP5 PUSH2 0x3576 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x2394 DUP2 DUP5 PUSH2 0x34AB JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1E7B DUP2 PUSH2 0x35A1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1E7B DUP2 PUSH2 0x35F8 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1E7B DUP2 PUSH2 0x364F JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1E7B DUP2 PUSH2 0x36A3 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1E7B DUP2 PUSH2 0x374A JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1E7B DUP2 PUSH2 0x3796 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1E7B DUP2 PUSH2 0x3813 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1E7B DUP2 PUSH2 0x3860 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1E7B DUP2 PUSH2 0x38DE JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1E7B DUP2 PUSH2 0x394F JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1E7B DUP2 PUSH2 0x39A2 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1E7B DUP2 PUSH2 0x39F8 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1E7B DUP2 PUSH2 0x3A4E JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1E7B DUP2 PUSH2 0x3ABB JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1E7B DUP2 PUSH2 0x3B0C JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1E7B DUP2 PUSH2 0x3B49 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1E7B DUP2 PUSH2 0x3BB5 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1E7B DUP2 PUSH2 0x3BFC JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1E7B DUP2 PUSH2 0x3C50 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1E7B DUP2 PUSH2 0x3CBC JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1E7B DUP2 PUSH2 0x3D54 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1E7B DUP2 PUSH2 0x3DA4 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1E7B DUP2 PUSH2 0x3DF6 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1E7B DUP2 PUSH2 0x3E44 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1E7B DUP2 PUSH2 0x3E91 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1E7B DUP2 PUSH2 0x3EE1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1E7B DUP2 PUSH2 0x3F2E JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1E7B DUP2 PUSH2 0x3F7F JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1E7B DUP2 PUSH2 0x3FCC JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1E7B DUP2 PUSH2 0x4016 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1E7B DUP2 PUSH2 0x409B JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1E7B DUP2 PUSH2 0x40F1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1E7B DUP2 PUSH2 0x4145 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1E7B DUP2 PUSH2 0x41D7 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1E7B DUP2 PUSH2 0x421D JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1E7B DUP2 PUSH2 0x427C JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1E7B DUP2 PUSH2 0x42D0 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1E7B DUP2 PUSH2 0x4328 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1E7B DUP2 PUSH2 0x4373 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1E7B DUP2 PUSH2 0x43CA JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1E7B DUP2 PUSH2 0x444F JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1E7B DUP2 PUSH2 0x44AE JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1E7B DUP2 PUSH2 0x4503 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1E7B DUP2 PUSH2 0x4534 JUMP JUMPDEST PUSH1 0x60 DUP2 ADD PUSH2 0x1E7B DUP3 DUP5 PUSH2 0x4581 JUMP JUMPDEST PUSH2 0x140 DUP2 ADD PUSH2 0x4B03 DUP3 DUP14 PUSH2 0x3491 JUMP JUMPDEST PUSH2 0x4B10 PUSH1 0x20 DUP4 ADD DUP13 PUSH2 0x32FA JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x4B22 DUP2 DUP12 PUSH2 0x3312 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x4B36 DUP2 DUP11 PUSH2 0x343A JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x80 DUP4 ADD MSTORE PUSH2 0x4B4A DUP2 DUP10 PUSH2 0x33D9 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0xA0 DUP4 ADD MSTORE PUSH2 0x4B5E DUP2 DUP9 PUSH2 0x336B JUMP JUMPDEST SWAP1 POP PUSH2 0x4B6D PUSH1 0xC0 DUP4 ADD DUP8 PUSH2 0x3491 JUMP JUMPDEST PUSH2 0x4B7A PUSH1 0xE0 DUP4 ADD DUP7 PUSH2 0x3491 JUMP JUMPDEST DUP2 DUP2 SUB PUSH2 0x100 DUP4 ADD MSTORE PUSH2 0x4B8D DUP2 DUP6 PUSH2 0x34AB JUMP JUMPDEST SWAP1 POP PUSH2 0x4B9D PUSH2 0x120 DUP4 ADD DUP5 PUSH2 0x45BE JUMP JUMPDEST SWAP12 SWAP11 POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x160 DUP2 ADD PUSH2 0x4BBB DUP3 DUP15 PUSH2 0x3491 JUMP JUMPDEST PUSH2 0x4BC8 PUSH1 0x20 DUP4 ADD DUP14 PUSH2 0x3309 JUMP JUMPDEST PUSH2 0x4BD5 PUSH1 0x40 DUP4 ADD DUP13 PUSH2 0x3491 JUMP JUMPDEST PUSH2 0x4BE2 PUSH1 0x60 DUP4 ADD DUP12 PUSH2 0x3491 JUMP JUMPDEST PUSH2 0x4BEF PUSH1 0x80 DUP4 ADD DUP11 PUSH2 0x3491 JUMP JUMPDEST PUSH2 0x4BFC PUSH1 0xA0 DUP4 ADD DUP10 PUSH2 0x3491 JUMP JUMPDEST PUSH2 0x4C09 PUSH1 0xC0 DUP4 ADD DUP9 PUSH2 0x3491 JUMP JUMPDEST PUSH2 0x4C16 PUSH1 0xE0 DUP4 ADD DUP8 PUSH2 0x3491 JUMP JUMPDEST PUSH2 0x4C24 PUSH2 0x100 DUP4 ADD DUP7 PUSH2 0x3488 JUMP JUMPDEST PUSH2 0x4C32 PUSH2 0x120 DUP4 ADD DUP6 PUSH2 0x3488 JUMP JUMPDEST PUSH2 0x4C40 PUSH2 0x140 DUP4 ADD DUP5 PUSH2 0x45BE JUMP JUMPDEST SWAP13 SWAP12 POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0x463C DUP3 DUP6 PUSH2 0x3491 JUMP JUMPDEST PUSH1 0x60 DUP2 ADD PUSH2 0x4C6C DUP3 DUP7 PUSH2 0x3491 JUMP JUMPDEST PUSH2 0x4C79 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x3491 JUMP JUMPDEST PUSH2 0x2EF2 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x3491 JUMP JUMPDEST PUSH1 0x80 DUP2 ADD PUSH2 0x4C94 DUP3 DUP8 PUSH2 0x3491 JUMP JUMPDEST PUSH2 0x47DF PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x3491 JUMP JUMPDEST PUSH2 0x100 DUP2 ADD PUSH2 0x4CB0 DUP3 DUP12 PUSH2 0x3491 JUMP JUMPDEST PUSH2 0x4CBD PUSH1 0x20 DUP4 ADD DUP11 PUSH2 0x3491 JUMP JUMPDEST PUSH2 0x4CCA PUSH1 0x40 DUP4 ADD DUP10 PUSH2 0x3491 JUMP JUMPDEST PUSH2 0x4CD7 PUSH1 0x60 DUP4 ADD DUP9 PUSH2 0x3491 JUMP JUMPDEST PUSH2 0x4CE4 PUSH1 0x80 DUP4 ADD DUP8 PUSH2 0x3491 JUMP JUMPDEST PUSH2 0x4CF1 PUSH1 0xA0 DUP4 ADD DUP7 PUSH2 0x3491 JUMP JUMPDEST PUSH2 0x4CFE PUSH1 0xC0 DUP4 ADD DUP6 PUSH2 0x3491 JUMP JUMPDEST PUSH2 0x4D0B PUSH1 0xE0 DUP4 ADD DUP5 PUSH2 0x3491 JUMP JUMPDEST SWAP10 SWAP9 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x80 DUP2 ADD PUSH2 0x4D26 DUP3 DUP9 PUSH2 0x3491 JUMP JUMPDEST PUSH2 0x4D33 PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x45BE JUMP JUMPDEST PUSH2 0x4D40 PUSH1 0x40 DUP4 ADD DUP7 PUSH2 0x45C7 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x4D53 DUP2 DUP5 DUP7 PUSH2 0x357F JUMP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x80 DUP2 ADD PUSH2 0x4D6C DUP3 DUP7 PUSH2 0x3491 JUMP JUMPDEST PUSH2 0x4D79 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x45BE JUMP JUMPDEST PUSH2 0x4D86 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x45C7 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x4793 DUP2 PUSH2 0x41CA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP2 DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x4DB5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH2 0x4DD3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x20 SWAP1 DUP2 MUL ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH2 0x4DF3 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 0x1E7B DUP3 PUSH2 0x4E48 JUMP JUMPDEST ISZERO ISZERO SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1E7B DUP3 PUSH2 0x4E23 JUMP JUMPDEST DUP1 PUSH2 0x1471 DUP2 PUSH2 0x4EC9 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 0x1E7B DUP3 PUSH2 0x4E33 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1E7B DUP3 PUSH2 0x4E3E JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1E7B DUP3 PUSH2 0x4E5A JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x4EAE JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x4E96 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x45B8 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 0x2A47 JUMPI INVALID JUMPDEST PUSH2 0x4EDC DUP2 PUSH2 0x4E23 JUMP JUMPDEST DUP2 EQ PUSH2 0x2A47 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4EDC DUP2 PUSH2 0x4E2E JUMP JUMPDEST PUSH2 0x4EDC DUP2 PUSH2 0x239E JUMP JUMPDEST PUSH2 0x4EDC DUP2 PUSH2 0x4E33 JUMP JUMPDEST PUSH1 0x3 DUP2 LT PUSH2 0x2A47 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4EDC DUP2 PUSH2 0x4E54 JUMP JUMPDEST PUSH2 0x4EDC DUP2 PUSH2 0x4E5A JUMP INVALID SELFBALANCE PUSH16 0x7665726E6F72427261766F3A3A736574 POP PUSH19 0x6F706F73616C436F6E666967A365627A7A7231 PC KECCAK256 PUSH7 0xCE3ABC94EBCD91 PUSH24 0xD96280AC97067F0B34D7B6191F57E0B338117AECACFCA66C PUSH6 0x78706572696D PUSH6 0x6E74616CF564 PUSH20 0x6F6C634300051000400000000000000000000000 ","sourceMap":"4581:23593:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4581:23593:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4650:42:2;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;4057:24;;;:::i;:::-;;;;;;;;4715:52:0;;;:::i;:::-;;;;;;;;12047:2916;;;;;;;;;:::i;4753:49:2:-;;;;;;;;;:::i;4543:33::-;;;:::i;:::-;;;;;;;;8981:2230:0;;;;;;;;;:::i;:::-;;25488:387;;;;;;;;;:::i;5306:130::-;;;:::i;5169:44::-;;;:::i;4961:55::-;;;:::i;3389:27:2:-;;;:::i;:::-;;;;;;;;18684:328:0;;;;;;;;;:::i;:::-;;;;;;;;;;;8962:40:2;;;:::i;:::-;;;;;;;;;;;8150:54;;;;;;;;;:::i;:::-;;;;;;;;;;3952:23;;;:::i;21973:702:0:-;;;;;;;;;:::i;19517:1134::-;;;;;;;;;:::i;:::-;;;;;;;;17505:985;;;;;;;;;:::i;7232:23:2:-;;;:::i;5913:1540:0:-;;;;;;;;;:::i;20856:177::-;;;;;;;;;:::i;3465:29:2:-;;;:::i;4829:55:0:-;;;:::i;21316:215::-;;;;;;;;;:::i;7129:33:2:-;;;:::i;4186:29::-;;;:::i;26189:521:0:-;;;;;;;;;:::i;7658:1032::-;;;;;;;;;:::i;4445:33:2:-;;;:::i;4354:25::-;;;:::i;15094:786:0:-;;;;;;;;;:::i;5523:95::-;;;:::i;19221:152::-;;;;;;;;;:::i;:::-;;;;;;;;24169:410;;;;;;;;;:::i;26890:655::-;;;:::i;8288:59:2:-;;;;;;;;;:::i;3306:20::-;;;:::i;24867:471:0:-;;;;;;;;;:::i;4272:29:2:-;;;:::i;16608:696:0:-;;;;;;;;;:::i;4650:42:2:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4650:42:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;4057:24::-;;;;:::o;4715:52:0:-;;;;;;;;;;;;;;-1:-1:-1;;;4715:52:0;;;;:::o;12047:2916::-;12290:4;12372:17;;12393:1;12372:22;;12364:84;;;;-1:-1:-1;;;12364:84:0;;;;;;;;;;;;;;;;;12558:15;:36;12580:12;12574:19;;;;;;;;12558:36;;;;;;;;;;;;;-1:-1:-1;12558:36:0;:54;;;12479:8;;-1:-1:-1;;;;;12479:8:0;:22;12502:10;12514:23;12521:12;12479:8;12514:6;:23::i;:::-;12479:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12479:59:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12479:59: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;12479:59:0;;;;;;;;;-1:-1:-1;;;;;12479:133:0;;;12458:243;;;;-1:-1:-1;;;12458:243:0;;;;;;;;;12750:6;:13;12732:7;:14;:31;:86;;;;;12801:10;:17;12783:7;:14;:35;12732:86;:140;;;;;12856:9;:16;12838:7;:14;:34;12732:140;12711:255;;;;-1:-1:-1;;;12711:255:0;;;;;;;;;12984:14;;12976:76;;;;-1:-1:-1;;;12976:76:0;;;;;;;;;13088:21;;13070:7;:14;:39;;13062:92;;;;-1:-1:-1;;;13062:92:0;;;;;;;;;13207:10;13165:21;13189:29;;;:17;:29;;;;;;13232:21;;13228:548;;13269:42;13314:23;13320:16;13314:5;:23::i;:::-;13269:68;-1:-1:-1;13408:20:0;13376:28;:52;;;;;;;;;;13351:199;;;;-1:-1:-1;;;13351:199:0;;;;;;;;;13621:21;13589:28;:53;;;;;;;;;;13564:201;;;;-1:-1:-1;;;13564:201:0;;;;;;;;;13228:548;;13786:15;13804:70;13811:12;13825:15;:36;13847:12;13841:19;;;;;;;;13825:36;;;;;;;;;;;;;:48;;;13804:6;:70::i;:::-;13786:88;;13884:13;13900:69;13907:10;13919:15;:36;13941:12;13935:19;;;;;;;;13919:36;;;;;;;;;;;;;:49;;;13900:6;:69::i;:::-;13980:13;:15;;;;;;13884:85;-1:-1:-1;14005:27:0;;:::i;:::-;14035:489;;;;;;;;14062:13;;14035:489;;;;14099:10;-1:-1:-1;;;;;14035:489:0;;;;;14128:1;14035:489;;;;14152:7;14035:489;;;;14181:6;14035:489;;;;14213:10;14035:489;;;;14248:9;14035:489;;;;14283:10;14035:489;;;;14317:8;14035:489;;;;14349:1;14035:489;;;;14378:1;14035:489;;;;14407:1;14035:489;;;;14432:5;14035:489;;;;;;14461:5;14035:489;;;;;;14500:12;14494:19;;;;;;;;14035:489;;;;14545:14;;14535:25;;;;:9;:25;;;;;;;;;:39;;;;;;;;;;;;;-1:-1:-1;;;;;;14535:39:0;-1:-1:-1;;;;;14535:39:0;;;;;;;;;;;;;;;;;;;;;;;14545:14;;-1:-1:-1;14545:14:0;;14535:39;;;;;;;;;:::i;:::-;-1:-1:-1;14535:39:0;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;14535:39:0;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;14535:39:0;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;14535:39:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;14535:39:0;;;;;;;;;;-1:-1:-1;;14535:39:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14626:14;;14602:20;;;;;-1:-1:-1;;;;;14584:39:0;-1:-1:-1;14584:39:0;;;;;;;;;;:56;14685:14;;14656:269;;14713:10;14737:7;14758:6;14778:10;14802:9;14825:10;14849:8;14871:11;14902:12;14896:19;;;;;;;;14656:269;;;;;;;;;;;;;;;;;;;;;;;;14942:14;;-1:-1:-1;;;;12047:2916:0;;;;;;;;;:::o;4753:49:2:-;;;;;;;;;;;;;:::o;4543:33::-;;;-1:-1:-1;;;;;4543:33:2;;:::o;8981:2230:0:-;9090:5;;-1:-1:-1;;;;;9090:5:0;9076:10;:19;9068:77;;;;-1:-1:-1;;;9068:77:0;;;;;;;;;9176:16;:32;:36;;;;:92;;-1:-1:-1;9232:32:0;;:36;;9176:92;:147;;;;-1:-1:-1;9288:31:0;;:35;;9176:147;:202;;;;-1:-1:-1;9343:31:0;;:35;;9176:202;9155:320;;;;-1:-1:-1;;;9155:320:0;;;;;;;;;9505:23;;9572:25;:23;:25::i;:::-;9559:38;;:9;:38;9538:150;;;;-1:-1:-1;;;9538:150:0;;;;;;;;;9703:9;9698:1507;9718:9;9714:1;:13;9698:1507;;;9809:16;:32;;;9773:16;9790:1;9773:19;;;;;;;;;;;;;;:32;;;:68;;9748:187;;;;-1:-1:-1;;;9748:187:0;;;;;;;;;10010:16;:32;;;9974:16;9991:1;9974:19;;;;;;;;;;;;;;:32;;;:68;;9949:187;;;;-1:-1:-1;;;9949:187:0;;;;;;;;;10210:16;:31;;;10175:16;10192:1;10175:19;;;;;;;;;;;;;;:31;;;:66;;10150:184;;;;-1:-1:-1;;;10150:184:0;;;;;;;;;10408:16;:31;;;10373:16;10390:1;10373:19;;;;;;;;;;;;;;:31;;;:66;;10348:184;;;;-1:-1:-1;;;10348:184:0;;;;;;;;;4875:9;10571:16;10588:1;10571:19;;;;;;;;;;;;;;:37;;;:63;;10546:187;;;;-1:-1:-1;;;10546:187:0;;;;;;;;;5007:9;10772:16;10789:1;10772:19;;;;;;;;;;;;;;:37;;;:63;;10747:187;;;;-1:-1:-1;;;10747:187:0;;;;;;;;;10970:16;10987:1;10970:19;;;;;;;;;;;;;;;;;;;10949:18;;;;:15;:18;;;;;;;:40;;;;;;;;;;;;;;;;;;;11044:19;;11008:186;;11044:16;;10965:1;;11044:19;;;;;;;;;;;;:32;;;11094:16;11111:1;11094:19;;;;;;;;;;;;;;:31;;;11143:16;11160:1;11143:19;;;;;;;;;;;;;;:37;;;11008:186;;;;;;;;;;;;;;;;;9729:3;;9698:1507;;;;8981:2230;;:::o;25488:387::-;25593:5;;-1:-1:-1;;;;;25593:5:0;25579:10;:19;25571:84;;;;-1:-1:-1;;;25571:84:0;;;;;;;;;25697:21;;;25728:46;;;;25790:78;;;;;;25697:21;;25752:22;;25790:78;;;;;;;;;;25488:387;;:::o;5306:130::-;5356:80;;;;;;;;;;;;;;5306:130;:::o;5169:44::-;5204:9;5169:44;:::o;4961:55::-;5007:9;4961:55;:::o;3389:27:2:-;;;-1:-1:-1;;;;;3389:27:2;;:::o;18684:328:0:-;18782:24;18808:20;18830:26;18858:24;18898:18;18919:9;:21;18929:10;18919:21;;;;;;;;;;;18898:42;;18958:1;:9;;18969:1;:8;;18979:1;:12;;18993:1;:11;;18950:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;18950:55:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;18950:55:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;18950:55:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18684:328;;;;;:::o;8962:40:2:-;;;;;;;;;;:::o;8150:54::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3952:23::-;;;;:::o;21973:702:0:-;22078:23;5356:80;;;;;;;;;;;;;;;;22171:4;;;;;;;;;-1:-1:-1;;;22171:4:0;;;;;;;;22155:22;22179:20;:18;:20::i;:::-;22209:4;22127:88;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;22127:88:0;;;22104:121;;;;;;22078:147;;22235:18;5565:53;;;;;;;;;;;;;;;22266:48;;22294:10;;22306:7;;22266:48;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;22266:48:0;;;22256:59;;;;;;22235:80;;22325:14;22381:15;22398:10;22352:57;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;22352:57:0;;;22342:68;;;;;;22325:85;;22420:17;22440:26;22450:6;22458:1;22461;22464;22440:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;22440:26:0;;-1:-1:-1;;22440:26:0;;;-1:-1:-1;;;;;;;22484:23:0;;22476:83;;;;-1:-1:-1;;;22476:83:0;;;;;;;;;22583:9;-1:-1:-1;;;;;22574:94:0;;22594:10;22606:7;22615:48;22632:9;22643:10;22655:7;22615:16;:48::i;:::-;22574:94;;;;;;;;;;;;;;;;;21973:702;;;;;;;;;:::o;19517:1134::-;19570:13;19633:10;19616:13;;:27;;:61;;;;;19660:17;;19647:10;:30;19616:61;19595:149;;;;-1:-1:-1;;;19595:149:0;;;;;;;;;19754:25;19782:21;;;:9;:21;;;;;19817:17;;;;;;19813:832;;;19857:22;19850:29;;;;;19813:832;19916:8;:19;;;19900:12;:35;19896:749;;19958:21;19951:28;;;;;19896:749;20016:8;:17;;;20000:12;:33;19996:649;;20056:20;20049:27;;;;;19996:649;20118:8;:21;;;20097:8;:17;;;:42;;:77;;;;5204:9;20143:8;:17;;;:31;20097:77;20093:552;;;20197:22;20190:29;;;;;20093:552;20240:12;;;;20236:409;;20280:23;20273:30;;;;;20236:409;20324:17;;;;;;;;;20320:325;;;20364:22;20357:29;;;;;20320:325;20446:12;;;;20484:21;;;;;;20460:47;;;;:17;:47;;;;;;;;;;:62;;-1:-1:-1;;;20460:62:0;;;;20439:84;;20446:12;-1:-1:-1;;;;;20460:47:0;;;;:60;;:62;;;;;;;;;;;:47;:62;;;5:2:-1;;;;30:1;27;20:12;5:2;20460:62:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;20460: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;20460:62:0;;;;;;;;;20439:6;:84::i;:::-;20420:15;:103;20403:242;;20555:21;20548:28;;;;;20403:242;20614:20;20607:27;;;19517:1134;;;;:::o;17505:985::-;17586:22;17565:17;17571:10;17565:5;:17::i;:::-;:43;;;;;;;;;;17557:110;;;;-1:-1:-1;;;17557:110:0;;;;;;;;;17678:25;17706:21;;;:9;:21;;;;;17772:8;;-1:-1:-1;;;;;17772:8:0;17758:10;:22;;:73;;-1:-1:-1;17814:17:0;;;;-1:-1:-1;;;;;17814:17:0;17800:10;:31;17758:73;:234;;;-1:-1:-1;17936:15:0;17952:21;;;;;;17936:38;;;;;;;;;;;;:56;;;17851:8;;17952:21;17874:17;;;;-1:-1:-1;;;;;17851:8:0;;;;:22;;17874:17;;;17893:23;;17900:12;;17893:6;:23::i;:::-;17851:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17851:66:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17851:66: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;17851:66:0;;;;;;;;;-1:-1:-1;;;;;17851:141:0;;17758:234;17737:328;;;;-1:-1:-1;;;17737:328:0;;;;;;;;;18076:17;;;:24;;-1:-1:-1;;18076:24:0;18096:4;18076:24;;;:17;18110:330;18131:16;;;:23;18127:27;;18110:330;;;18193:21;;;;;;18175:40;;;;:17;:40;;;;;;18251:16;;;:19;;-1:-1:-1;;;;;18175:40:0;;;;:58;;18251:16;18268:1;;18251:19;;;;;;;;;;;;;;;;18288:15;;;:18;;-1:-1:-1;;;;;18251:19:0;;;;18304:1;;18288:18;;;;;;;;;;;;;;18324:8;:19;;18344:1;18324:22;;;;;;;;;;;;;;;18364:8;:18;;18383:1;18364:21;;;;;;;;;;;;;;;18403:8;:12;;;18175:254;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18175:254:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;18156:3:0;;;;;-1:-1:-1;18110:330:0;;-1:-1:-1;18110:330:0;;;18455:28;18472:10;18455:28;;;;;;;7232:23:2;;;-1:-1:-1;;;;;7232:23:2;;:::o;5913:1540:0:-;6206:1;6173:20;;:17;:20;;;;-1:-1:-1;;;;;6173:20:0;6165:43;6157:106;;;;-1:-1:-1;;;6157:106:0;;;;;;;;;6295:5;;-1:-1:-1;;;;;6295:5:0;6281:10;:19;6273:69;;;;-1:-1:-1;;;6273:69:0;;;;;;;;;-1:-1:-1;;;;;6360:23:0;;6352:88;;;;-1:-1:-1;;;6352:88:0;;;;;;;;;-1:-1:-1;;;;;6458:23:0;;6450:79;;;;-1:-1:-1;;;6450:79:0;;;;;;;;;6580:25;:23;:25::i;:::-;6560:45;;:9;:16;:45;6539:178;;;;-1:-1:-1;;;6539:178:0;;;;;;;;;6775:25;:23;:25::i;:::-;6748:52;;:16;:23;:52;6727:192;;;;-1:-1:-1;;;6727:192:0;;;;;;;;;6930:8;:39;;-1:-1:-1;;;;;6930:39:0;;;-1:-1:-1;;;;;;6930:39:0;;;;;;;7003:2;6979:21;:26;7015:8;:20;;;;;;;;;;;;;;;7098:38;7118:17;7098:19;:38::i;:::-;7146:36;7165:16;7146:18;:36::i;:::-;7213:16;;7193:17;7239:208;7259:9;7255:1;:13;7239:208;;;7330:1;-1:-1:-1;;;;;7297:35:0;7305:9;7315:1;7305:12;;;;;;;;;;;;;;-1:-1:-1;;;;;7297:35:0;;;7289:98;;;;-1:-1:-1;;;7289:98:0;;;;;;;;;7424:9;7434:1;7424:12;;;;;;;;;;;;;;;;;;;7401:20;;;;:17;:20;;;;;;;:35;;-1:-1:-1;;;;;;7401:35:0;-1:-1:-1;;;;;7401:35:0;;;;;;;;;-1:-1:-1;7270:3:0;7239:208;;;;5913:1540;;;;;;:::o;20856:177::-;20939:10;20930:96;20951:10;20963:7;20972:49;20939:10;20951;20963:7;20972:16;:49::i;:::-;20930:96;;;;;;;;;;;;;;;;;20856:177;;:::o;3465:29:2:-;;;-1:-1:-1;;;;;3465:29:2;;:::o;4829:55:0:-;4875:9;4829:55;:::o;21316:215::-;21433:10;21424:100;21445:10;21457:7;21466:49;21433:10;21445;21457:7;21466:16;:49::i;:::-;21517:6;;21424:100;;;;;;;;;;;;;;;;;;;21316:215;;;;:::o;7129:33:2:-;;;;:::o;4186:29::-;;;;:::o;26189:521:0:-;26313:5;;-1:-1:-1;;;;;26313:5:0;26299:10;:19;26291:74;;;;-1:-1:-1;;;26291:74:0;;;;;;;;;26462:12;;;-1:-1:-1;;;;;26542:30:0;;;-1:-1:-1;;;;;;26542:30:0;;;;;;26654:49;;26462:12;;;26654:49;;;;26462:12;;26557:15;;26654:49;;7658:1032;7771:5;;-1:-1:-1;;;;;7771:5:0;7757:10;:19;7749:78;;;;-1:-1:-1;;;7749:78:0;;;;;;;;;7858:35;;:39;;;;:97;;;7954:1;7917:19;:34;;;:38;7858:97;:188;;;;;8012:19;:34;;;7975:19;:34;;;:71;7858:188;:281;;;;-1:-1:-1;8104:35:0;;;;8066;;:73;7858:281;7837:378;;;;-1:-1:-1;;;7837:378:0;;;;;;;;;8263:16;:32;8309:35;;8358:32;;8404:35;;;;8453:31;;8498:34;;;;;8546:31;;8591:34;;;;8230:405;;;;;;8263:32;;8309:35;;8358:32;;8404:35;;8453:31;;8498:34;8546:31;8230:405;;;;;;;;;;8645:38;;:16;:38;;;;;;;;;;;;;;;;;;7658:1032::o;4445:33:2:-;;;-1:-1:-1;;;;;4445:33:2;;:::o;4354:25::-;;;;:::o;15094:786:0:-;15187:23;15166:17;15172:10;15166:5;:17::i;:::-;:44;;;;;;;;;15145:159;;;;-1:-1:-1;;;15145:159:0;;;;;;;;;15314:25;15342:21;;;:9;:21;;;;;;;;15432;;;;;;15408:47;;:17;:47;;;;;;:55;;-1:-1:-1;;;15408:55:0;;;;15342:21;;15314:25;15384:80;;15391:15;;-1:-1:-1;;;;;15408:47:0;;;;:53;;:55;;;;;15342:21;;15408:55;;;;;;:47;:55;;;5:2:-1;;;;30:1;27;20:12;15384:80:0;15373:91;;15479:6;15474:326;15491:16;;;:23;15487:27;;15474:326;;;15535:254;15574:8;:16;;15591:1;15574:19;;;;;;;;;;;;;;;;;;15611:15;;;:18;;-1:-1:-1;;;;;15574:19:0;;;;15627:1;;15611:18;;;;;;;;;;;;;;15647:8;:19;;15667:1;15647:22;;;;;;;;;;;;;;;;;;15535:254;;;;;;;-1:-1:-1;;15535:254:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15647:22;15535:254;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15687:8;:18;;15706:1;15687:21;;;;;;;;;;;;;;;;;;15535:254;;;;;;;-1:-1:-1;;15535:254:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15687:21;15535:254;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;15753:21:0;;;;15726:3;;-1:-1:-1;15753:21:0;;15535;:254::i;:::-;15516:3;;15474:326;;;-1:-1:-1;15809:12:0;;;:18;;;15842:31;;;;;;15857:10;;15824:3;;15842:31;;;;;;;;;;15094:786;;;:::o;5523:95::-;5565:53;;;;;;19221:152;19296:14;;:::i;:::-;-1:-1:-1;19329:21:0;;;;:9;:21;;;;;;;;-1:-1:-1;;;;;19329:37:0;;;;:30;;:37;;;;;;19322:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;19322:44:0;;;;;;;;19221:152;;;;;:::o;24169:410::-;24253:8;;-1:-1:-1;;;;;24253:8:0;24239:10;:22;;:45;;-1:-1:-1;24279:5:0;;-1:-1:-1;;;;;24279:5:0;24265:10;:19;24239:45;24231:109;;;;-1:-1:-1;;;24231:109:0;;;;;;;;;-1:-1:-1;;;;;24358:25:0;;24350:97;;;;-1:-1:-1;;;24350:97:0;;;;;;;;;24479:8;;;-1:-1:-1;;;;;24497:22:0;;;-1:-1:-1;;;;;;24497:22:0;;;;;;24535:37;;24479:8;;;24535:37;;;;24479:8;;24508:11;;24535:37;;26890:655;27040:12;;-1:-1:-1;;;;;27040:12:0;27026:10;:26;:54;;;;-1:-1:-1;27056:10:0;:24;;27026:54;27005:147;;;;-1:-1:-1;;;27005:147:0;;;;;;;;;27215:16;27234:5;;;27275:12;;-1:-1:-1;;;;;27275:12:0;;;-1:-1:-1;;;;;;27345:20:0;;;;;;;;;27411:25;;;;;;27452;;27234:5;;;;27275:12;;27452:25;;;;27234:5;;27471;;;27452:25;;;;;;;;;;27525:12;;27492:46;;;;;;27508:15;;-1:-1:-1;;;;;27525:12:0;;27492:46;;8288:59:2;;;;;;;;;;;;-1:-1:-1;;;;;8288:59:2;;:::o;3306:20::-;;;-1:-1:-1;;;;;3306:20:2;;:::o;24867:471:0:-;24950:5;;-1:-1:-1;;;;;24950:5:0;24936:10;:19;24928:68;;;;-1:-1:-1;;;24928:68:0;;;;;;;;;25014:17;;:22;25006:83;;;;-1:-1:-1;;;25006:83:0;;;;;;;;;25138:13;-1:-1:-1;;;;;25115:51:0;;:53;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;25115:53:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;25115:53: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;25115:53:0;;;;;;;;;25099:13;:69;;;25178:17;:33;-1:-1:-1;25221:111:0;25241:25;:23;:25::i;:::-;25237:29;;:1;:29;25221:111;;;25287:20;;;;:17;:20;;;;;;;:34;;-1:-1:-1;;;25287:34:0;;;;-1:-1:-1;;;;;25287:20:0;;;;:32;;:34;;;;;;;;;;;:20;;:34;;;5:2:-1;;;;30:1;27;20:12;5:2;25287:34:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;25287:34:0;;;;25268:3;;;;;25221:111;;;;24867:471;:::o;4272:29:2:-;;;;:::o;16608:696:0:-;16703:20;16682:17;16688:10;16682:5;:17::i;:::-;:41;;;;;;;;;16661:157;;;;-1:-1:-1;;;16661:157:0;;;;;;;;;16828:25;16856:21;;;:9;:21;;;;;16887:17;;;:24;;-1:-1:-1;;16887:24:0;;;;;16856:21;16921:334;16938:16;;;:23;16934:27;;16921:334;;;17006:21;;;;;;16982:47;;;;:17;:47;;;;;;17066:16;;;:19;;-1:-1:-1;;;;;16982:47:0;;;;:66;;17066:16;17083:1;;17066:19;;;;;;;;;;;;;;;;17103:15;;;:18;;-1:-1:-1;;;;;17066:19:0;;;;17119:1;;17103:18;;;;;;;;;;;;;;17139:8;:19;;17159:1;17139:22;;;;;;;;;;;;;;;17179:8;:18;;17198:1;17179:21;;;;;;;;;;;;;;;17218:8;:12;;;16982:262;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16982:262:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16982:262:0;;;;;;39:16:-1;36:1;17:17;2:54;101:4;16982:262:0;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;16982:262:0;;;;;;;;;-1:-1:-1;16963:3:0;;16921:334;;;;17269:28;17286:10;17269:28;;;;;;;27719:146;27780:4;27809:1;27804;:6;;27796:40;;;;-1:-1:-1;;;27796:40:0;;;;;;;;;-1:-1:-1;27853:5:0;;;27719:146::o;27551:162::-;27612:4;27637:5;;;27660:6;;;;27652:36;;;;-1:-1:-1;;;27652:36:0;;;;;;;;;27705:1;27551:162;-1:-1:-1;;;27551:162:0:o;28051:121::-;28133:32;28051:121;;:::o;27871:174::-;27996:9;27871:174;:::o;22997:1044::-;23088:6;23135:20;23114:17;23120:10;23114:5;:17::i;:::-;:41;;;;;;;;;23106:103;;;;-1:-1:-1;;;23106:103:0;;;;;;;;;23238:1;23227:7;:12;;;;23219:75;;;;-1:-1:-1;;;23219:75:0;;;;;;;;;23304:25;23332:21;;;:9;:21;;;;;;;;-1:-1:-1;;;;;23389:24:0;;;;:17;;;:24;;;;;;23431:16;;;;:25;23423:90;;;;-1:-1:-1;;;23423:90:0;;;;;;;;;23538:8;;23568:19;;;;23538:50;;-1:-1:-1;;;23538:50:0;;23523:12;;-1:-1:-1;;;;;23538:8:0;;:22;;:50;;23561:5;;23538:50;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;23538:50:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;23538:50: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;23538:50:0;;;;;;;;;23523:65;-1:-1:-1;23603:12:0;;;23599:313;;23655:36;23662:8;:21;;;23685:5;-1:-1:-1;;;;;23655:36:0;:6;:36::i;:::-;23631:21;;;:60;23599:313;;;23712:7;:12;;23723:1;23712:12;23708:204;;;23760:32;23767:8;:17;;;23786:5;-1:-1:-1;;;;;23760:32:0;:6;:32::i;:::-;23740:17;;;:52;23708:204;;;23813:7;:12;;23824:1;23813:12;23809:103;;;23865:36;23872:8;:21;;;23895:5;-1:-1:-1;;;;;23865:36:0;:6;:36::i;:::-;23841:21;;;:60;23809:103;23922:23;;23941:4;-1:-1:-1;;23922:23:0;;;;-1:-1:-1;;23955:25:0;23922:23;;23955:25;;;;-1:-1:-1;;23990:21:0;;-1:-1:-1;;;;;23990:21:0;;;;;;;;-1:-1:-1;;22997:1044:0;;;;;:::o;15886:581::-;16114:31;;;;;;;:17;:31;;;;;;;;;;16192:47;;-1:-1:-1;;;;;16114:31:0;;;;:50;;16192:47;;16203:6;;16211:5;;16218:9;;16229:4;;16235:3;;16192:47;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;16192:47:0;;;16182:58;;;;;;16114:140;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16114:140:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16114:140: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;16114:140:0;;;;;;;;;16113:141;16092:273;;;;-1:-1:-1;;;16092:273:0;;;;;;;;;16375:31;;;;;;;:17;:31;;;;;;;;:85;;-1:-1:-1;;;16375:85:0;;-1:-1:-1;;;;;16375:31:0;;;;:48;;:85;;16424:6;;16432:5;;16439:9;;16450:4;;16456:3;;16375:85;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16375:85:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16375:85: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;16375:85:0;;;;;;;;4581:23593;;;;;;;;;;;;;;;-1:-1:-1;;;;;4581:23593:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;4581:23593:0;-1:-1:-1;;;;;4581:23593:0;;;;;;;;;;;-1:-1:-1;4581:23593:0;;;;;;;-1:-1:-1;4581:23593:0;;;-1:-1:-1;4581:23593:0;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4581:23593:0;;;-1:-1:-1;4581:23593:0;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;4581:23593:0;;;-1:-1:-1;4581:23593:0;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;4581:23593:0;;;-1:-1:-1;4581:23593:0;:::i;:::-;;;;;;;;;-1:-1:-1;4581:23593:0;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;;4581:23593: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;;1629:785;;1772:3;1765:4;1757:6;1753:17;1749:27;1739:2;;1790:1;1787;1780:12;1739:2;1827:6;1814:20;1849:106;1864:90;1947:6;1864:90;;1849:106;1840:115;;1972:5;1997:6;1990:5;1983:21;2027:4;2019:6;2015:17;2005:27;;2049:4;2044:3;2040:14;2033:21;;2102:6;2149:3;2141:4;2133:6;2129:17;2124:3;2120:27;2117:36;2114:2;;;2166:1;2163;2156:12;2114:2;2191:1;2176:232;2201:6;2198:1;2195:13;2176:232;;;2259:3;2281:63;2340:3;2328:10;2281:63;;;2269:76;;-1:-1;2368:4;2359:14;;;;2387;;;;;2223:1;2216:9;2176:232;;2439:696;;2562:3;2555:4;2547:6;2543:17;2539:27;2529:2;;2580:1;2577;2570:12;2529:2;2617:6;2604:20;2639:86;2654:70;2717:6;2654:70;;2639:86;2753:21;;;2797:4;2785:17;;;;2630:95;;-1:-1;2810:14;;2785:17;2905:1;2890:239;2915:6;2912:1;2909:13;2890:239;;;2998:3;2985:17;2977:6;2973:30;3022:43;3061:3;3049:10;3022:43;;;3010:56;;-1:-1;3089:4;3080:14;;;;3108;;;;;2937:1;2930:9;2890:239;;3206:791;;3351:3;3344:4;3336:6;3332:17;3328:27;3318:2;;3369:1;3366;3359:12;3318:2;3406:6;3393:20;3428:108;3443:92;3528:6;3443:92;;3428:108;3419:117;;3553:5;3578:6;3571:5;3564:21;3608:4;3600:6;3596:17;3586:27;;3630:4;3625:3;3621:14;3614:21;;3683:6;3730:3;3722:4;3714:6;3710:17;3705:3;3701:27;3698:36;3695:2;;;3747:1;3744;3737:12;3695:2;3772:1;3757:234;3782:6;3779:1;3776:13;3757:234;;;3840:3;3862:65;3923:3;3911:10;3862:65;;;3850:78;;-1:-1;3951:4;3942:14;;;;3979:4;3970:14;;;;;3804:1;3797:9;3757:234;;4023:707;;4140:3;4133:4;4125:6;4121:17;4117:27;4107:2;;4158:1;4155;4148:12;4107:2;4195:6;4182:20;4217:80;4232:64;4289:6;4232:64;;4217:80;4208:89;;4314:5;4339:6;4332:5;4325:21;4369:4;4361:6;4357:17;4347:27;;4391:4;4386:3;4382:14;4375:21;;4444:6;4491:3;4483:4;4475:6;4471:17;4466:3;4462:27;4459:36;4456:2;;;4508:1;4505;4498:12;4456:2;4533:1;4518:206;4543:6;4540:1;4537:13;4518:206;;;4601:3;4623:37;4656:3;4644:10;4623:37;;;4611:50;;-1:-1;4684:4;4675:14;;;;4703;;;;;4565:1;4558:9;4518:206;;4738:128;4813:13;;4831:30;4813:13;4831:30;;4873:130;4940:20;;4965:33;4940:20;4965:33;;5010:134;5088:13;;5106:33;5088:13;5106:33;;5152:432;;5249:3;5242:4;5234:6;5230:17;5226:27;5216:2;;5267:1;5264;5257:12;5216:2;5304:6;5291:20;5326:60;5341:44;5378:6;5341:44;;5326:60;5317:69;;5406:6;5399:5;5392:21;5442:4;5434:6;5430:17;5475:4;5468:5;5464:16;5510:3;5501:6;5496:3;5492:16;5489:25;5486:2;;;5527:1;5524;5517:12;5486:2;5537:41;5571:6;5566:3;5561;5537:41;;;5209:375;;;;;;;;5593:442;;5705:3;5698:4;5690:6;5686:17;5682:27;5672:2;;5723:1;5720;5713:12;5672:2;5753:6;5747:13;5775:64;5790:48;5831:6;5790:48;;5775:64;5766:73;;5859:6;5852:5;5845:21;5895:4;5887:6;5883:17;5928:4;5921:5;5917:16;5963:3;5954:6;5949:3;5945:16;5942:25;5939:2;;;5980:1;5977;5970:12;5939:2;5990:39;6022:6;6017:3;6012;5990:39;;6043:182;6136:20;;6161:59;6136:20;6161:59;;6232:164;6316:20;;6341:50;6316:20;6341:50;;6418:337;;;6533:3;6526:4;6518:6;6514:17;6510:27;6500:2;;6551:1;6548;6541:12;6500:2;-1:-1;6571:20;;-1:-1;;;;;6600:30;;6597:2;;;6643:1;6640;6633:12;6597:2;6677:4;6669:6;6665:17;6653:29;;6728:3;6720:4;6712:6;6708:17;6698:8;6694:32;6691:41;6688:2;;;6745:1;6742;6735:12;6688:2;6493:262;;;;;;7716:642;;7833:4;7821:9;7816:3;7812:19;7808:30;7805:2;;;7851:1;7848;7841:12;7805:2;7869:20;7884:4;7869:20;;;7860:29;-1:-1;7946:1;7978:49;8023:3;8003:9;7978:49;;;7953:75;;-1:-1;8097:2;8130:49;8175:3;8151:22;;;8130:49;;;8123:4;8116:5;8112:16;8105:75;8049:142;8254:2;8287:49;8332:3;8323:6;8312:9;8308:22;8287:49;;;8280:4;8273:5;8269:16;8262:75;8201:147;7799:559;;;;;8426:806;;8549:4;8537:9;8532:3;8528:19;8524:30;8521:2;;;8567:1;8564;8557:12;8521:2;8585:20;8600:4;8585:20;;;8576:29;-1:-1;8666:1;8698:49;8743:3;8723:9;8698:49;;;8673:75;;-1:-1;8820:2;8853:49;8898:3;8874:22;;;8853:49;;;8846:4;8839:5;8835:16;8828:75;8769:145;8974:2;9007:49;9052:3;9043:6;9032:9;9028:22;9007:49;;;9000:4;8993:5;8989:16;8982:75;8924:144;9128:2;9161:49;9206:3;9197:6;9186:9;9182:22;9161:49;;;9154:4;9147:5;9143:16;9136:75;9078:144;8515:717;;;;;9517:126;9582:20;;9607:31;9582:20;9607:31;;9650:132;9727:13;;9745:32;9727:13;9745:32;;9789:241;;9893:2;9881:9;9872:7;9868:23;9864:32;9861:2;;;9909:1;9906;9899:12;9861:2;9944:1;9961:53;10006:7;9986:9;9961:53;;;9951:63;9855:175;-1:-1;;;;9855:175;10037:1193;;;;;;10347:3;10335:9;10326:7;10322:23;10318:33;10315:2;;;10364:1;10361;10354:12;10315:2;10399:1;10416:53;10461:7;10441:9;10416:53;;;10406:63;;10378:97;10506:2;10524:87;10603:7;10594:6;10583:9;10579:22;10524:87;;;10514:97;;10485:132;10676:3;10665:9;10661:19;10648:33;-1:-1;;;;;10693:6;10690:30;10687:2;;;10733:1;10730;10723:12;10687:2;10753:106;10851:7;10842:6;10831:9;10827:22;10753:106;;;10743:116;;10627:238;10924:3;10913:9;10909:19;10896:33;-1:-1;;;;;10941:6;10938:30;10935:2;;;10981:1;10978;10971:12;10935:2;11001:104;11097:7;11088:6;11077:9;11073:22;11001:104;;;10991:114;;10875:236;11142:3;11161:53;11206:7;11197:6;11186:9;11182:22;11161:53;;;11151:63;;11121:99;10309:921;;;;;;;;;11237:1575;;;;;;;11564:3;11552:9;11543:7;11539:23;11535:33;11532:2;;;11581:1;11578;11571:12;11532:2;11616:31;;-1:-1;;;;;11656:30;;11653:2;;;11699:1;11696;11689:12;11653:2;11719:78;11789:7;11780:6;11769:9;11765:22;11719:78;;;11709:88;;11595:208;11862:2;11851:9;11847:18;11834:32;-1:-1;;;;;11878:6;11875:30;11872:2;;;11918:1;11915;11908:12;11872:2;11938:78;12008:7;11999:6;11988:9;11984:22;11938:78;;;11928:88;;11813:209;12081:2;12070:9;12066:18;12053:32;-1:-1;;;;;12097:6;12094:30;12091:2;;;12137:1;12134;12127:12;12091:2;12157:84;12233:7;12224:6;12213:9;12209:22;12157:84;;;12147:94;;12032:215;12306:2;12295:9;12291:18;12278:32;-1:-1;;;;;12322:6;12319:30;12316:2;;;12362:1;12359;12352:12;12316:2;12382:83;12457:7;12448:6;12437:9;12433:22;12382:83;;;12372:93;;12257:214;12530:3;12519:9;12515:19;12502:33;-1:-1;;;;;12547:6;12544:30;12541:2;;;12587:1;12584;12577:12;12541:2;12607:63;12662:7;12653:6;12642:9;12638:22;12607:63;;;12597:73;;12481:195;12707:3;12726:70;12788:7;12779:6;12768:9;12764:22;12726:70;;;12716:80;;12686:116;11526:1286;;;;;;;;;12819:433;;12976:2;12964:9;12955:7;12951:23;12947:32;12944:2;;;12992:1;12989;12982:12;12944:2;13027:31;;-1:-1;;;;;13067:30;;13064:2;;;13110:1;13107;13100:12;13064:2;13130:106;13228:7;13219:6;13208:9;13204:22;13130:106;;13259:257;;13371:2;13359:9;13350:7;13346:23;13342:32;13339:2;;;13387:1;13384;13377:12;13339:2;13422:1;13439:61;13492:7;13472:9;13439:61;;13523:263;;13638:2;13626:9;13617:7;13613:23;13609:32;13606:2;;;13654:1;13651;13644:12;13606:2;13689:1;13706:64;13762:7;13742:9;13706:64;;13793:360;;13917:2;13905:9;13896:7;13892:23;13888:32;13885:2;;;13933:1;13930;13923:12;13885:2;13968:24;;-1:-1;;;;;14001:30;;13998:2;;;14044:1;14041;14034:12;13998:2;14064:73;14129:7;14120:6;14109:9;14105:22;14064:73;;14160:310;;14298:3;14286:9;14277:7;14273:23;14269:33;14266:2;;;14315:1;14312;14305:12;14266:2;14350:1;14367:87;14446:7;14426:9;14367:87;;14477:241;;14581:2;14569:9;14560:7;14556:23;14552:32;14549:2;;;14597:1;14594;14587:12;14549:2;14632:1;14649:53;14694:7;14674:9;14649:53;;14995:366;;;15116:2;15104:9;15095:7;15091:23;15087:32;15084:2;;;15132:1;15129;15122:12;15084:2;15167:1;15184:53;15229:7;15209:9;15184:53;;;15174:63;;15146:97;15274:2;15292:53;15337:7;15328:6;15317:9;15313:22;15292:53;;;15282:63;;15253:98;15078:283;;;;;;15368:362;;;15487:2;15475:9;15466:7;15462:23;15458:32;15455:2;;;15503:1;15500;15493:12;15455:2;15538:1;15555:53;15600:7;15580:9;15555:53;;;15545:63;;15517:97;15645:2;15663:51;15706:7;15697:6;15686:9;15682:22;15663:51;;15737:613;;;;;15893:2;15881:9;15872:7;15868:23;15864:32;15861:2;;;15909:1;15906;15899:12;15861:2;15944:1;15961:53;16006:7;15986:9;15961:53;;;15951:63;;15923:97;16051:2;16069:51;16112:7;16103:6;16092:9;16088:22;16069:51;;;16059:61;;16030:96;16185:2;16174:9;16170:18;16157:32;-1:-1;;;;;16201:6;16198:30;16195:2;;;16241:1;16238;16231:12;16195:2;16269:65;16326:7;16317:6;16306:9;16302:22;16269:65;;;15855:495;;;;-1:-1;16259:75;-1:-1;;;;15855:495;16357:735;;;;;;16525:3;16513:9;16504:7;16500:23;16496:33;16493:2;;;16542:1;16539;16532:12;16493:2;16577:1;16594:53;16639:7;16619:9;16594:53;;;16584:63;;16556:97;16684:2;16702:51;16745:7;16736:6;16725:9;16721:22;16702:51;;;16692:61;;16663:96;16790:2;16808:51;16851:7;16842:6;16831:9;16827:22;16808:51;;;16798:61;;16769:96;16896:2;16914:53;16959:7;16950:6;16939:9;16935:22;16914:53;;;16904:63;;16875:98;17004:3;17023:53;17068:7;17059:6;17048:9;17044:22;17023:53;;17099:261;;17213:2;17201:9;17192:7;17188:23;17184:32;17181:2;;;17229:1;17226;17219:12;17181:2;17264:1;17281:63;17336:7;17316:9;17281:63;;17368:173;;17455:46;17497:3;17489:6;17455:46;;;-1:-1;;17530:4;17521:14;;17448:93;17550:177;;17661:60;17717:3;17709:6;17661:60;;17926:173;;18013:46;18055:3;18047:6;18013:46;;18107:142;18198:45;18237:5;18198:45;;;18193:3;18186:58;18180:69;;;18256:103;18329:24;18347:5;18329:24;;18517:690;;18662:54;18710:5;18662:54;;;18729:86;18808:6;18803:3;18729:86;;;18722:93;;18836:56;18886:5;18836:56;;;18912:7;18940:1;18925:260;18950:6;18947:1;18944:13;18925:260;;;19017:6;19011:13;19038:63;19097:3;19082:13;19038:63;;;19031:70;;19118:60;19171:6;19118:60;;;19108:70;-1:-1;;18972:1;18965:9;18925:260;;;-1:-1;19198:3;;18641:566;-1:-1;;;;;18641:566;19242:888;;19397:59;19450:5;19397:59;;;19469:91;19553:6;19548:3;19469:91;;;19462:98;;19583:3;19625:4;19617:6;19613:17;19608:3;19604:27;19652:61;19707:5;19652:61;;;19733:7;19761:1;19746:345;19771:6;19768:1;19765:13;19746:345;;;19833:9;19827:4;19823:20;19818:3;19811:33;19878:6;19872:13;19900:74;19969:4;19954:13;19900:74;;;19892:82;;19991:65;20049:6;19991:65;;;20079:4;20070:14;;;;;19981:75;-1:-1;;19793:1;19786:9;19746:345;;;-1:-1;20104:4;;19376:754;-1:-1;;;;;;;19376:754;20167:896;;20324:60;20378:5;20324:60;;;20397:92;20482:6;20477:3;20397:92;;;20390:99;;20512:3;20554:4;20546:6;20542:17;20537:3;20533:27;20581:62;20637:5;20581:62;;;20663:7;20691:1;20676:348;20701:6;20698:1;20695:13;20676:348;;;20763:9;20757:4;20753:20;20748:3;20741:33;20808:6;20802:13;20830:76;20901:4;20886:13;20830:76;;;20822:84;;20923:66;20982:6;20923:66;;;21012:4;21003:14;;;;;20913:76;-1:-1;;20723:1;20716:9;20676:348;;21102:690;;21247:54;21295:5;21247:54;;;21314:86;21393:6;21388:3;21314:86;;;21307:93;;21421:56;21471:5;21421:56;;;21497:7;21525:1;21510:260;21535:6;21532:1;21529:13;21510:260;;;21602:6;21596:13;21623:63;21682:3;21667:13;21623:63;;;21616:70;;21703:60;21756:6;21703:60;;;21693:70;-1:-1;;21557:1;21550:9;21510:260;;21800:94;21867:21;21882:5;21867:21;;22012:113;22095:24;22113:5;22095:24;;22132:152;22233:45;22253:24;22271:5;22253:24;;;22233:45;;22291:343;;22401:38;22433:5;22401:38;;;22451:70;22514:6;22509:3;22451:70;;;22444:77;;22526:52;22571:6;22566:3;22559:4;22552:5;22548:16;22526:52;;;22599:29;22621:6;22599:29;;;22590:39;;;;22381:253;-1:-1;;;22381:253;22986:818;;23103:5;23097:12;23137:1;23126:9;23122:17;23150:1;23145:247;;;;23403:1;23398:400;;;;23115:683;;23145:247;23223:4;23219:1;23208:9;23204:17;23200:28;23242:70;23305:6;23300:3;23242:70;;;-1:-1;;23331:25;;23319:38;;23235:77;-1:-1;;23380:4;23371:14;;;-1:-1;23145:247;;23398:400;23467:1;23456:9;23452:17;23483:70;23546:6;23541:3;23483:70;;;23476:77;;23575:37;23606:5;23575:37;;;23628:1;23636:130;23650:6;23647:1;23644:13;23636:130;;;23709:14;;23696:11;;;23689:35;23756:1;23743:15;;;;23672:4;23665:12;23636:130;;;23780:11;;;-1:-1;;;23115:683;;23073:731;;;;;;23812:178;23921:63;23978:5;23921:63;;24182:158;24281:53;24328:5;24281:53;;24372:300;;24488:71;24552:6;24547:3;24488:71;;;24481:78;;24571:43;24607:6;24602:3;24595:5;24571:43;;;24636:29;24658:6;24636:29;;26563:439;;26723:67;26787:2;26782:3;26723:67;;;-1:-1;;;;;;;;;;;26803:55;;26892:34;26887:2;26878:12;;26871:56;-1:-1;;;26956:2;26947:12;;26940:25;26993:2;26984:12;;26709:293;-1:-1;;26709:293;27011:439;;27171:67;27235:2;27230:3;27171:67;;;-1:-1;;;;;;;;;;;27251:55;;27340:34;27335:2;27326:12;;27319:56;-1:-1;;;27404:2;27395:12;;27388:25;27441:2;27432:12;;27157:293;-1:-1;;27157:293;27459:387;;27619:67;27683:2;27678:3;27619:67;;;27719:34;27699:55;;-1:-1;;;27783:2;27774:12;;27767:42;27837:2;27828:12;;27605:241;-1:-1;;27605:241;27855:445;;28015:67;28079:2;28074:3;28015:67;;;-1:-1;;;;;;;;;;;28095:55;;28184:34;28179:2;28170:12;;28163:56;-1:-1;;;28248:2;28239:12;;28232:31;28291:2;28282:12;;28001:299;-1:-1;;28001:299;28309:413;;28487:85;28569:2;28564:3;28487:85;;;28605:34;28585:55;;-1:-1;;;28669:2;28660:12;;28653:32;28713:2;28704:12;;28473:249;-1:-1;;28473:249;28731:379;;28891:67;28955:2;28950:3;28891:67;;;28991:34;28971:55;;-1:-1;;;29055:2;29046:12;;29039:34;29101:2;29092:12;;28877:233;-1:-1;;28877:233;29119:459;;29279:67;29343:2;29338:3;29279:67;;;29379:34;29359:55;;29448:34;29443:2;29434:12;;29427:56;-1:-1;;;29512:2;29503:12;;29496:45;29569:2;29560:12;;29265:313;-1:-1;;29265:313;29587:397;;29747:67;29811:2;29806:3;29747:67;;;-1:-1;;;;;;;;;;;29827:55;;29916:30;29911:2;29902:12;;29895:52;29975:2;29966:12;;29733:251;-1:-1;;29733:251;29993:460;;30153:67;30217:2;30212:3;30153:67;;;30253:34;30233:55;;30322:34;30317:2;30308:12;;30301:56;-1:-1;;;30386:2;30377:12;;30370:46;30444:2;30435:12;;30139:314;-1:-1;;30139:314;30462:386;;30622:67;30686:2;30681:3;30622:67;;;30722:34;30702:55;;-1:-1;;;30786:2;30777:12;;30770:41;30839:2;30830:12;;30608:240;-1:-1;;30608:240;30857:398;;31035:84;31117:1;31112:3;31035:84;;;-1:-1;;;31132:87;;31247:1;31238:11;;31021:234;-1:-1;;31021:234;31264:386;;31424:67;31488:2;31483:3;31424:67;;;31524:34;31504:55;;-1:-1;;;31588:2;31579:12;;31572:41;31641:2;31632:12;;31410:240;-1:-1;;31410:240;31659:389;;31819:67;31883:2;31878:3;31819:67;;;31919:34;31899:55;;-1:-1;;;31983:2;31974:12;;31967:44;32039:2;32030:12;;31805:243;-1:-1;;31805:243;32057:389;;32217:67;32281:2;32276:3;32217:67;;;32317:34;32297:55;;-1:-1;;;32381:2;32372:12;;32365:44;32437:2;32428:12;;32203:243;-1:-1;;32203:243;32455:443;;32615:67;32679:2;32674:3;32615:67;;;32715:34;32695:55;;32784:34;32779:2;32770:12;;32763:56;-1:-1;;;32848:2;32839:12;;32832:29;32889:2;32880:12;;32601:297;-1:-1;;32601:297;32907:384;;33067:67;33131:2;33126:3;33067:67;;;33167:34;33147:55;;-1:-1;;;33231:2;33222:12;;33215:39;33282:2;33273:12;;33053:238;-1:-1;;33053:238;33300:382;;33460:67;33524:2;33519:3;33460:67;;;-1:-1;;;;;;;;;;;33540:55;;-1:-1;;;33624:2;33615:12;;33608:37;33673:2;33664:12;;33446:236;-1:-1;;33446:236;33691:442;;33851:67;33915:2;33910:3;33851:67;;;33951:34;33931:55;;34020:34;34015:2;34006:12;;33999:56;-1:-1;;;34084:2;34075:12;;34068:28;34124:2;34115:12;;33837:296;-1:-1;;33837:296;34142:374;;34302:67;34366:2;34361:3;34302:67;;;34402:34;34382:55;;-1:-1;;;34466:2;34457:12;;34450:29;34507:2;34498:12;;34288:228;-1:-1;;34288:228;34525:387;;34685:67;34749:2;34744:3;34685:67;;;34785:34;34765:55;;-1:-1;;;34849:2;34840:12;;34833:42;34903:2;34894:12;;34671:241;-1:-1;;34671:241;34921:442;;35081:67;35145:2;35140:3;35081:67;;;35181:34;35161:55;;35250:34;35245:2;35236:12;;35229:56;-1:-1;;;35314:2;35305:12;;35298:28;35354:2;35345:12;;35067:296;-1:-1;;35067:296;35372:317;;35532:67;35596:2;35591:3;35532:67;;;-1:-1;;;35612:40;;35680:2;35671:12;;35518:171;-1:-1;;35518:171;35698:477;;35876:85;35958:2;35953:3;35876:85;;;35994:34;35974:55;;36063:34;36058:2;36049:12;;36042:56;-1:-1;;;36127:2;36118:12;;36111:27;36166:2;36157:12;;35862:313;-1:-1;;35862:313;36184:383;;36344:67;36408:2;36403:3;36344:67;;;36444:34;36424:55;;-1:-1;;;36508:2;36499:12;;36492:38;36558:2;36549:12;;36330:237;-1:-1;;36330:237;36576:385;;36736:67;36800:2;36795:3;36736:67;;;36836:34;36816:55;;-1:-1;;;36900:2;36891:12;;36884:40;36952:2;36943:12;;36722:239;-1:-1;;36722:239;36970:381;;37130:67;37194:2;37189:3;37130:67;;;37230:34;37210:55;;-1:-1;;;37294:2;37285:12;;37278:36;37342:2;37333:12;;37116:235;-1:-1;;37116:235;37360:396;;37520:67;37584:2;37579:3;37520:67;;;-1:-1;;;;;;;;;;;37600:55;;37689:29;37684:2;37675:12;;37668:51;37747:2;37738:12;;37506:250;-1:-1;;37506:250;37765:383;;37925:67;37989:2;37984:3;37925:67;;;38025:34;38005:55;;-1:-1;;;38089:2;38080:12;;38073:38;38139:2;38130:12;;37911:237;-1:-1;;37911:237;38157:396;;38317:67;38381:2;38376:3;38317:67;;;-1:-1;;;;;;;;;;;38397:55;;38486:29;38481:2;38472:12;;38465:51;38544:2;38535:12;;38303:250;-1:-1;;38303:250;38562:384;;38722:67;38786:2;38781:3;38722:67;;;38822:34;38802:55;;-1:-1;;;38886:2;38877:12;;38870:39;38937:2;38928:12;;38708:238;-1:-1;;38708:238;38955:380;;39115:67;39179:2;39174:3;39115:67;;;39215:34;39195:55;;-1:-1;;;39279:2;39270:12;;39263:35;39326:2;39317:12;;39101:234;-1:-1;;39101:234;39344:377;;39504:67;39568:2;39563:3;39504:67;;;39604:34;39584:55;;-1:-1;;;39668:2;39659:12;;39652:32;39712:2;39703:12;;39490:231;-1:-1;;39490:231;39730:463;;39890:67;39954:2;39949:3;39890:67;;;39990:34;39970:55;;40059:34;40054:2;40045:12;;40038:56;40128:27;40123:2;40114:12;;40107:49;40184:2;40175:12;;39876:317;-1:-1;;39876:317;40202:389;;40362:67;40426:2;40421:3;40362:67;;;40462:34;40442:55;;-1:-1;;;40526:2;40517:12;;40510:44;40582:2;40573:12;;40348:243;-1:-1;;40348:243;40600:387;;40760:67;40824:2;40819:3;40760:67;;;40860:34;40840:55;;-1:-1;;;40924:2;40915:12;;40908:42;40978:2;40969:12;;40746:241;-1:-1;;40746:241;40996:462;;41156:67;41220:2;41215:3;41156:67;;;41256:34;41236:55;;41325:34;41320:2;41311:12;;41304:56;41394:26;41389:2;41380:12;;41373:48;41449:2;41440:12;;41142:316;-1:-1;;41142:316;41467:262;;41627:66;41691:1;41686:3;41627:66;;41738:373;;41898:67;41962:2;41957:3;41898:67;;;41998:34;41978:55;;-1:-1;;;42062:2;42053:12;;42046:28;42102:2;42093:12;;41884:227;-1:-1;;41884:227;42120:400;;42280:67;42344:2;42339:3;42280:67;;;42380:34;42360:55;;42449:33;42444:2;42435:12;;42428:55;42511:2;42502:12;;42266:254;-1:-1;;42266:254;42529:387;;42689:67;42753:2;42748:3;42689:67;;;42789:34;42769:55;;-1:-1;;;42853:2;42844:12;;42837:42;42907:2;42898:12;;42675:241;-1:-1;;42675:241;42925:391;;43085:67;43149:2;43144:3;43085:67;;;43185:34;43165:55;;-1:-1;;;43249:2;43240:12;;43233:46;43307:2;43298:12;;43071:245;-1:-1;;43071:245;43325:378;;43485:67;43549:2;43544:3;43485:67;;;43585:34;43565:55;;-1:-1;;;43649:2;43640:12;;43633:33;43694:2;43685:12;;43471:232;-1:-1;;43471:232;43712:439;;43872:67;43936:2;43931:3;43872:67;;;-1:-1;;;;;;;;;;;43952:55;;44041:34;44036:2;44027:12;;44020:56;-1:-1;;;44105:2;44096:12;;44089:25;44142:2;44133:12;;43858:293;-1:-1;;43858:293;44160:467;;44320:67;44384:2;44379:3;44320:67;;;44420:34;44400:55;;44489:34;44484:2;44475:12;;44468:56;44558:31;44553:2;44544:12;;44537:53;44618:2;44609:12;;44306:321;-1:-1;;44306:321;44636:396;;44796:67;44860:2;44855:3;44796:67;;;44896:34;44876:55;;44965:29;44960:2;44951:12;;44944:51;45023:2;45014:12;;44782:250;-1:-1;;44782:250;45041:388;;45201:67;45265:2;45260:3;45201:67;;;45301:34;45281:55;;-1:-1;;;45365:2;45356:12;;45349:43;45420:2;45411:12;;45187:242;-1:-1;;45187:242;45438:321;;45598:67;45662:2;45657:3;45598:67;;;-1:-1;;;45678:44;;45750:2;45741:12;;45584:175;-1:-1;;45584:175;45768:397;;45928:67;45992:2;45987:3;45928:67;;;-1:-1;;;;;;;;;;;46008:55;;46097:30;46092:2;46083:12;;46076:52;46156:2;46147:12;;45914:251;-1:-1;;45914:251;46274:626;46487:23;;46417:4;46408:14;;;46516:57;46412:3;46487:23;46516:57;;;46437:142;46655:4;46648:5;46644:16;46638:23;46667:59;46720:4;46715:3;46711:14;46697:12;46667:59;;;46589:143;46806:4;46799:5;46795:16;46789:23;46818:61;46873:4;46868:3;46864:14;46850:12;46818:61;;;46742:143;46390:510;;;;47137:97;47206:22;47222:5;47206:22;;47355:124;47437:36;47467:5;47437:36;;47486:100;47557:23;47574:5;47557:23;;47593:372;;47792:148;47936:3;47792:148;;47972:650;;48227:148;48371:3;48227:148;;;48220:155;;48386:75;48457:3;48448:6;48386:75;;;48483:2;48478:3;48474:12;48467:19;;48497:75;48568:3;48559:6;48497:75;;;-1:-1;48594:2;48585:12;;48208:414;-1:-1;;48208:414;48629:372;;48828:148;48972:3;48828:148;;49008:213;49126:2;49111:18;;49140:71;49115:9;49184:6;49140:71;;49228:340;49382:2;49367:18;;49396:79;49371:9;49448:6;49396:79;;;49486:72;49554:2;49543:9;49539:18;49530:6;49486:72;;49575:324;49721:2;49706:18;;49735:71;49710:9;49779:6;49735:71;;;49817:72;49885:2;49874:9;49870:18;49861:6;49817:72;;49906:324;50052:2;50037:18;;50066:71;50041:9;50110:6;50066:71;;50237:831;50505:3;50490:19;;50520:71;50494:9;50564:6;50520:71;;;50602:72;50670:2;50659:9;50655:18;50646:6;50602:72;;;50722:9;50716:4;50712:20;50707:2;50696:9;50692:18;50685:48;50747:78;50820:4;50811:6;50747:78;;;50739:86;;50873:9;50867:4;50863:20;50858:2;50847:9;50843:18;50836:48;50898:76;50969:4;50960:6;50898:76;;;50890:84;;50985:73;51053:3;51042:9;51038:19;51029:6;50985:73;;51075:819;51337:3;51322:19;;51352:71;51326:9;51396:6;51352:71;;;51434:72;51502:2;51491:9;51487:18;51478:6;51434:72;;;51554:9;51548:4;51544:20;51539:2;51528:9;51524:18;51517:48;51579:75;51649:4;51640:6;51579:75;;;51571:83;;51702:9;51696:4;51692:20;51687:2;51676:9;51672:18;51665:48;51727:73;51795:4;51786:6;51727:73;;51901:1183;52325:3;52340:47;;;52310:19;;52401:108;52310:19;52495:6;52401:108;;;52393:116;;52557:9;52551:4;52547:20;52542:2;52531:9;52527:18;52520:48;52582:108;52685:4;52676:6;52582:108;;;52574:116;;52738:9;52732:4;52728:20;52723:2;52712:9;52708:18;52701:48;52763:120;52878:4;52869:6;52763:120;;;52755:128;;52931:9;52925:4;52921:20;52916:2;52905:9;52901:18;52894:48;52956:118;53069:4;53060:6;52956:118;;53091:213;53209:2;53194:18;;53223:71;53198:9;53267:6;53223:71;;53311:547;53513:3;53498:19;;53528:71;53502:9;53572:6;53528:71;;;53610:72;53678:2;53667:9;53663:18;53654:6;53610:72;;;53693;53761:2;53750:9;53746:18;53737:6;53693:72;;;53776;53844:2;53833:9;53829:18;53820:6;53776:72;;;53484:374;;;;;;;;53865:427;54035:2;54020:18;;54049:71;54024:9;54093:6;54049:71;;;54131:72;54199:2;54188:9;54184:18;54175:6;54131:72;;;54214:68;54278:2;54267:9;54263:18;54254:6;54214:68;;54299:539;54497:3;54482:19;;54512:71;54486:9;54556:6;54512:71;;;54594:68;54658:2;54647:9;54643:18;54634:6;54594:68;;;54673:72;54741:2;54730:9;54726:18;54717:6;54673:72;;;54756;54824:2;54813:9;54809:18;54800:6;54756:72;;54845:265;54989:2;54974:18;;55003:97;54978:9;55073:6;55003:97;;55389:245;55523:2;55508:18;;55537:87;55512:9;55597:6;55537:87;;55641:293;55775:2;55789:47;;;55760:18;;55850:74;55760:18;55910:6;55850:74;;55941:407;56132:2;56146:47;;;56117:18;;56207:131;56117:18;56207:131;;56355:407;56546:2;56560:47;;;56531:18;;56621:131;56531:18;56621:131;;56769:407;56960:2;56974:47;;;56945:18;;57035:131;56945:18;57035:131;;57183:407;57374:2;57388:47;;;57359:18;;57449:131;57359:18;57449:131;;57597:407;57788:2;57802:47;;;57773:18;;57863:131;57773:18;57863:131;;58011:407;58202:2;58216:47;;;58187:18;;58277:131;58187:18;58277:131;;58425:407;58616:2;58630:47;;;58601:18;;58691:131;58601:18;58691:131;;58839:407;59030:2;59044:47;;;59015:18;;59105:131;59015:18;59105:131;;59253:407;59444:2;59458:47;;;59429:18;;59519:131;59429:18;59519:131;;59667:407;59858:2;59872:47;;;59843:18;;59933:131;59843:18;59933:131;;60081:407;60272:2;60286:47;;;60257:18;;60347:131;60257:18;60347:131;;60495:407;60686:2;60700:47;;;60671:18;;60761:131;60671:18;60761:131;;60909:407;61100:2;61114:47;;;61085:18;;61175:131;61085:18;61175:131;;61323:407;61514:2;61528:47;;;61499:18;;61589:131;61499:18;61589:131;;61737:407;61928:2;61942:47;;;61913:18;;62003:131;61913:18;62003:131;;62151:407;62342:2;62356:47;;;62327:18;;62417:131;62327:18;62417:131;;62565:407;62756:2;62770:47;;;62741:18;;62831:131;62741:18;62831:131;;62979:407;63170:2;63184:47;;;63155:18;;63245:131;63155:18;63245:131;;63393:407;63584:2;63598:47;;;63569:18;;63659:131;63569:18;63659:131;;63807:407;63998:2;64012:47;;;63983:18;;64073:131;63983:18;64073:131;;64221:407;64412:2;64426:47;;;64397:18;;64487:131;64397:18;64487:131;;64635:407;64826:2;64840:47;;;64811:18;;64901:131;64811:18;64901:131;;65049:407;65240:2;65254:47;;;65225:18;;65315:131;65225:18;65315:131;;65463:407;65654:2;65668:47;;;65639:18;;65729:131;65639:18;65729:131;;65877:407;66068:2;66082:47;;;66053:18;;66143:131;66053:18;66143:131;;66291:407;66482:2;66496:47;;;66467:18;;66557:131;66467:18;66557:131;;66705:407;66896:2;66910:47;;;66881:18;;66971:131;66881:18;66971:131;;67119:407;67310:2;67324:47;;;67295:18;;67385:131;67295:18;67385:131;;67533:407;67724:2;67738:47;;;67709:18;;67799:131;67709:18;67799:131;;67947:407;68138:2;68152:47;;;68123:18;;68213:131;68123:18;68213:131;;68361:407;68552:2;68566:47;;;68537:18;;68627:131;68537:18;68627:131;;68775:407;68966:2;68980:47;;;68951:18;;69041:131;68951:18;69041:131;;69189:407;69380:2;69394:47;;;69365:18;;69455:131;69365:18;69455:131;;69603:407;69794:2;69808:47;;;69779:18;;69869:131;69779:18;69869:131;;70017:407;70208:2;70222:47;;;70193:18;;70283:131;70193:18;70283:131;;70431:407;70622:2;70636:47;;;70607:18;;70697:131;70607:18;70697:131;;70845:407;71036:2;71050:47;;;71021:18;;71111:131;71021:18;71111:131;;71259:407;71450:2;71464:47;;;71435:18;;71525:131;71435:18;71525:131;;71673:407;71864:2;71878:47;;;71849:18;;71939:131;71849:18;71939:131;;72087:407;72278:2;72292:47;;;72263:18;;72353:131;72263:18;72353:131;;72501:407;72692:2;72706:47;;;72677:18;;72767:131;72677:18;72767:131;;72915:407;73106:2;73120:47;;;73091:18;;73181:131;73091:18;73181:131;;73329:407;73520:2;73534:47;;;73505:18;;73595:131;73505:18;73595:131;;73743:407;73934:2;73948:47;;;73919:18;;74009:131;73919:18;74009:131;;74157:313;74325:2;74310:18;;74339:121;74314:9;74433:6;74339:121;;74697:1951;75313:3;75298:19;;75328:71;75302:9;75372:6;75328:71;;;75410:80;75486:2;75475:9;75471:18;75462:6;75410:80;;;75538:9;75532:4;75528:20;75523:2;75512:9;75508:18;75501:48;75563:108;75666:4;75657:6;75563:108;;;75555:116;;75719:9;75713:4;75709:20;75704:2;75693:9;75689:18;75682:48;75744:108;75847:4;75838:6;75744:108;;;75736:116;;75901:9;75895:4;75891:20;75885:3;75874:9;75870:19;75863:49;75926:120;76041:4;76032:6;75926:120;;;75918:128;;76095:9;76089:4;76085:20;76079:3;76068:9;76064:19;76057:49;76120:118;76233:4;76224:6;76120:118;;;76112:126;;76249:73;76317:3;76306:9;76302:19;76293:6;76249:73;;;76333;76401:3;76390:9;76386:19;76377:6;76333:73;;;76455:9;76449:4;76445:20;76439:3;76428:9;76424:19;76417:49;76480:78;76553:4;76544:6;76480:78;;;76472:86;;76569:69;76633:3;76622:9;76618:19;76609:6;76569:69;;;75284:1364;;;;;;;;;;;;;;76655:1301;77038:3;77023:19;;77053:71;77027:9;77097:6;77053:71;;;77135:72;77203:2;77192:9;77188:18;77179:6;77135:72;;;77218;77286:2;77275:9;77271:18;77262:6;77218:72;;;77301;77369:2;77358:9;77354:18;77345:6;77301:72;;;77384:73;77452:3;77441:9;77437:19;77428:6;77384:73;;;77468;77536:3;77525:9;77521:19;77512:6;77468:73;;;77552;77620:3;77609:9;77605:19;77596:6;77552:73;;;77636;77704:3;77693:9;77689:19;77680:6;77636:73;;;77720:67;77782:3;77771:9;77767:19;77758:6;77720:67;;;77798;77860:3;77849:9;77845:19;77836:6;77798:67;;;77876:70;77941:3;77930:9;77926:19;77916:7;77876:70;;;77009:947;;;;;;;;;;;;;;;77963:324;78109:2;78094:18;;78123:71;78098:9;78167:6;78123:71;;78294:435;78468:2;78453:18;;78482:71;78457:9;78526:6;78482:71;;;78564:72;78632:2;78621:9;78617:18;78608:6;78564:72;;;78647;78715:2;78704:9;78700:18;78691:6;78647:72;;78736:547;78938:3;78923:19;;78953:71;78927:9;78997:6;78953:71;;;79035:72;79103:2;79092:9;79088:18;79079:6;79035:72;;79290:995;79604:3;79589:19;;79619:71;79593:9;79663:6;79619:71;;;79701:72;79769:2;79758:9;79754:18;79745:6;79701:72;;;79784;79852:2;79841:9;79837:18;79828:6;79784:72;;;79867;79935:2;79924:9;79920:18;79911:6;79867:72;;;79950:73;80018:3;80007:9;80003:19;79994:6;79950:73;;;80034;80102:3;80091:9;80087:19;80078:6;80034:73;;;80118;80186:3;80175:9;80171:19;80162:6;80118:73;;;80202;80270:3;80259:9;80255:19;80246:6;80202:73;;;79575:710;;;;;;;;;;;;80292:645;80519:3;80504:19;;80534:71;80508:9;80578:6;80534:71;;;80616:68;80680:2;80669:9;80665:18;80656:6;80616:68;;;80695:71;80762:2;80751:9;80747:18;80738:6;80695:71;;;80814:9;80808:4;80804:20;80799:2;80788:9;80784:18;80777:48;80839:88;80922:4;80913:6;80905;80839:88;;;80831:96;80490:447;-1:-1;;;;;;;80490:447;80944:731;81214:3;81199:19;;81229:71;81203:9;81273:6;81229:71;;;81311:68;81375:2;81364:9;81360:18;81351:6;81311:68;;;81390:71;81457:2;81446:9;81442:18;81433:6;81390:71;;;81509:9;81503:4;81499:20;81494:2;81483:9;81479:18;81472:48;81534:131;81660:4;81534:131;;81682:256;81744:2;81738:9;81770:17;;;-1:-1;;;;;81830:34;;81866:22;;;81827:62;81824:2;;;81902:1;81899;81892:12;81824:2;81918;81911:22;81722:216;;-1:-1;81722:216;81945:304;;-1:-1;;;;;82096:6;82093:30;82090:2;;;82136:1;82133;82126:12;82090:2;-1:-1;82171:4;82159:17;;;82224:15;;82027:222;83876:317;;-1:-1;;;;;84007:6;84004:30;84001:2;;;84047:1;84044;84037:12;84001:2;-1:-1;84178:4;84114;84091:17;;;;-1:-1;;84087:33;84168:15;;83938:255;85182:151;85306:4;85297:14;;85254:79;85825:157;;85919:14;;;85961:4;85948:18;;;85878:104;86154:137;86257:12;;86228:63;87719:178;87837:19;;;87886:4;87877:14;;87830:67;89297:91;;89359:24;89377:5;89359:24;;89395:85;89461:13;89454:21;;89437:43;89566:117;;89654:24;89672:5;89654:24;;89690:142;89770:5;89776:51;89770:5;89776:51;;89839:121;-1:-1;;;;;89901:54;;89884:76;90046:81;90117:4;90106:16;;90089:38;90134:104;-1:-1;;;;;90195:38;;90178:60;90245:129;;90332:37;90363:5;90332:37;;91023:142;;91118:42;91154:5;91118:42;;91415:106;;91493:23;91510:5;91493:23;;91529:145;91610:6;91605:3;91600;91587:30;-1:-1;91666:1;91648:16;;91641:27;91580:94;91683:268;91748:1;91755:101;91769:6;91766:1;91763:13;91755:101;;;91836:11;;;91830:18;91817:11;;;91810:39;91791:2;91784:10;91755:101;;;91871:6;91868:1;91865:13;91862:2;;;-1:-1;;91936:1;91918:16;;91911:27;91732:219;92040:97;92128:2;92108:14;-1:-1;;92104:28;;92088:49;92145:109;92232:1;92225:5;92222:12;92212:2;;92238:9;92261:117;92330:24;92348:5;92330:24;;;92323:5;92320:35;92310:2;;92369:1;92366;92359:12;92385:111;92451:21;92466:5;92451:21;;92503:117;92572:24;92590:5;92572:24;;92627:169;92722:50;92766:5;92722:50;;92803:111;92889:1;92882:5;92879:12;92869:2;;92905:1;92902;92895:12;93045:113;93112:22;93128:5;93112:22;;93165:115;93233:23;93250:5;93233:23;"},"gasEstimates":{"creation":{"codeDepositCost":"4071200","executionCost":"4665","totalCost":"4075865"},"external":{"BALLOT_TYPEHASH()":"infinite","DOMAIN_TYPEHASH()":"infinite","MAX_PROPOSAL_THRESHOLD()":"345","MIN_PROPOSAL_THRESHOLD()":"411","_acceptAdmin()":"infinite","_initiate(address)":"infinite","_setGuardian(address)":"infinite","_setPendingAdmin(address)":"infinite","_setProposalMaxOperations(uint256)":"infinite","admin()":"infinite","cancel(uint256)":"infinite","castVote(uint256,uint8)":"infinite","castVoteBySig(uint256,uint8,uint8,bytes32,bytes32)":"infinite","castVoteWithReason(uint256,uint8,string)":"infinite","execute(uint256)":"infinite","getActions(uint256)":"infinite","getReceipt(uint256,address)":"infinite","guardian()":"infinite","implementation()":"infinite","initialProposalId()":"1231","initialize(address,(uint256,uint256,uint256,uint256),(uint256,uint256,uint256)[],address[],address)":"infinite","latestProposalIds(address)":"infinite","name()":"infinite","pendingAdmin()":"infinite","proposalConfigs(uint256)":"infinite","proposalCount()":"1144","proposalMaxOperations()":"1144","proposalThreshold()":"1166","proposalTimelocks(uint256)":"infinite","proposals(uint256)":"infinite","propose(address[],uint256[],string[],bytes[],string,uint8)":"infinite","queue(uint256)":"infinite","quorumVotes()":"433","setProposalConfigs((uint256,uint256,uint256)[])":"infinite","setValidationParams((uint256,uint256,uint256,uint256))":"infinite","state(uint256)":"infinite","timelock()":"infinite","validationParams()":"infinite","votingDelay()":"1144","votingPeriod()":"1168","xvsVault()":"infinite"},"internal":{"add256(uint256,uint256)":"infinite","castVoteInternal(address,uint256,uint8)":"infinite","getChainIdInternal()":"14","getGovernanceRouteCount()":"16","queueOrRevertInternal(address,uint256,string memory,bytes memory,uint256,uint8)":"infinite","sub256(uint256,uint256)":"infinite"}},"methodIdentifiers":{"BALLOT_TYPEHASH()":"deaaa7cc","DOMAIN_TYPEHASH()":"20606b70","MAX_PROPOSAL_THRESHOLD()":"25fd935a","MIN_PROPOSAL_THRESHOLD()":"791f5d23","_acceptAdmin()":"e9c714f2","_initiate(address)":"f9d28b80","_setGuardian(address)":"e38e8c0f","_setPendingAdmin(address)":"b71d1a0c","_setProposalMaxOperations(uint256)":"1ebcfefd","admin()":"f851a440","cancel(uint256)":"40e58ee5","castVote(uint256,uint8)":"56781388","castVoteBySig(uint256,uint8,uint8,bytes32,bytes32)":"3bccf4fd","castVoteWithReason(uint256,uint8,string)":"7b3c71d3","execute(uint256)":"fe0d94c1","getActions(uint256)":"328dd982","getReceipt(uint256,address)":"e23a9a52","guardian()":"452a9320","implementation()":"5c60da1b","initialProposalId()":"fc4eee42","initialize(address,(uint256,uint256,uint256,uint256),(uint256,uint256,uint256)[],address[],address)":"46416f92","latestProposalIds(address)":"17977c61","name()":"06fdde03","pendingAdmin()":"26782247","proposalConfigs(uint256)":"35a87de2","proposalCount()":"da35c664","proposalMaxOperations()":"7bdbe4d0","proposalThreshold()":"b58131b0","proposalTimelocks(uint256)":"ee9799ee","proposals(uint256)":"013cf08b","propose(address[],uint256[],string[],bytes[],string,uint8)":"164a1ab1","queue(uint256)":"ddf0b009","quorumVotes()":"24bc1a64","setProposalConfigs((uint256,uint256,uint256)[])":"1e75adf2","setValidationParams((uint256,uint256,uint256,uint256))":"bb08c321","state(uint256)":"3e4f49e6","timelock()":"d33219b4","validationParams()":"34cf3909","votingDelay()":"3932abb1","votingPeriod()":"02a251a3","xvsVault()":"1b9ce575"}},"metadata":"{\"compiler\":{\"version\":\"0.5.16+commit.9c3226ce\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"oldAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"NewAdmin\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"oldGuardian\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newGuardian\",\"type\":\"address\"}],\"name\":\"NewGuardian\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"oldImplementation\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"}],\"name\":\"NewImplementation\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"oldPendingAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newPendingAdmin\",\"type\":\"address\"}],\"name\":\"NewPendingAdmin\",\"type\":\"event\"},{\"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\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"proposalType\",\"type\":\"uint8\"}],\"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\":\"oldMaxOperations\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newMaxOperations\",\"type\":\"uint256\"}],\"name\":\"ProposalMaxOperationsUpdated\",\"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\":\"uint256\",\"name\":\"oldProposalThreshold\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newProposalThreshold\",\"type\":\"uint256\"}],\"name\":\"ProposalThresholdSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"votingPeriod\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"votingDelay\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalThreshold\",\"type\":\"uint256\"}],\"name\":\"SetProposalConfigs\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldMinVotingPeriod\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newMinVotingPeriod\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldmaxVotingPeriod\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newmaxVotingPeriod\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldminVotingDelay\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newminVotingDelay\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldmaxVotingDelay\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newmaxVotingDelay\",\"type\":\"uint256\"}],\"name\":\"SetValidationParams\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"voter\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"votes\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"VoteCast\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldVotingDelay\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newVotingDelay\",\"type\":\"uint256\"}],\"name\":\"VotingDelaySet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldVotingPeriod\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newVotingPeriod\",\"type\":\"uint256\"}],\"name\":\"VotingPeriodSet\",\"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\":true,\"inputs\":[],\"name\":\"MAX_PROPOSAL_THRESHOLD\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"MIN_PROPOSAL_THRESHOLD\",\"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\":\"governorAlpha\",\"type\":\"address\"}],\"name\":\"_initiate\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"newGuardian\",\"type\":\"address\"}],\"name\":\"_setGuardian\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"newPendingAdmin\",\"type\":\"address\"}],\"name\":\"_setPendingAdmin\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalMaxOperations_\",\"type\":\"uint256\"}],\"name\":\"_setProposalMaxOperations\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"admin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"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\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"}],\"name\":\"castVote\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"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\"},{\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"castVoteWithReason\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"execute\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"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\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"internalType\":\"uint96\",\"name\":\"votes\",\"type\":\"uint96\"}],\"internalType\":\"struct GovernorBravoDelegateStorageV1.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\":[],\"name\":\"implementation\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"initialProposalId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"xvsVault_\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"minVotingPeriod\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxVotingPeriod\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minVotingDelay\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxVotingDelay\",\"type\":\"uint256\"}],\"internalType\":\"struct GovernorBravoDelegateStorageV3.ValidationParams\",\"name\":\"validationParams_\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"votingDelay\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"votingPeriod\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"proposalThreshold\",\"type\":\"uint256\"}],\"internalType\":\"struct GovernorBravoDelegateStorageV2.ProposalConfig[]\",\"name\":\"proposalConfigs_\",\"type\":\"tuple[]\"},{\"internalType\":\"contract TimelockInterface[]\",\"name\":\"timelocks\",\"type\":\"address[]\"},{\"internalType\":\"address\",\"name\":\"guardian_\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"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\":\"pendingAdmin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"proposalConfigs\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"votingDelay\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"votingPeriod\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"proposalThreshold\",\"type\":\"uint256\"}],\"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\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"proposalThreshold\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"proposalTimelocks\",\"outputs\":[{\"internalType\":\"contract TimelockInterface\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"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\":\"uint256\",\"name\":\"abstainVotes\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"canceled\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"executed\",\"type\":\"bool\"},{\"internalType\":\"uint8\",\"name\":\"proposalType\",\"type\":\"uint8\"}],\"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\"},{\"internalType\":\"enum GovernorBravoDelegateStorageV2.ProposalType\",\"name\":\"proposalType\",\"type\":\"uint8\"}],\"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\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"votingDelay\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"votingPeriod\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"proposalThreshold\",\"type\":\"uint256\"}],\"internalType\":\"struct GovernorBravoDelegateStorageV2.ProposalConfig[]\",\"name\":\"proposalConfigs_\",\"type\":\"tuple[]\"}],\"name\":\"setProposalConfigs\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"minVotingPeriod\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxVotingPeriod\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minVotingDelay\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxVotingDelay\",\"type\":\"uint256\"}],\"internalType\":\"struct GovernorBravoDelegateStorageV3.ValidationParams\",\"name\":\"newValidationParams\",\"type\":\"tuple\"}],\"name\":\"setValidationParams\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"state\",\"outputs\":[{\"internalType\":\"enum GovernorBravoDelegateStorageV1.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\":\"validationParams\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"minVotingPeriod\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxVotingPeriod\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minVotingDelay\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxVotingDelay\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"votingDelay\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"votingPeriod\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"xvsVault\",\"outputs\":[{\"internalType\":\"contract XvsVaultInterface\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{\"_acceptAdmin()\":{\"details\":\"Admin function for pending admin to accept role and update admin\"},\"_initiate(address)\":{\"details\":\"Admin only. Sets initial proposal id which initiates the contract, ensuring a continuous proposal id count\",\"params\":{\"governorAlpha\":\"The address for the Governor to continue the proposal id count from\"}},\"_setGuardian(address)\":{\"params\":{\"newGuardian\":\"the address of the new guardian\"}},\"_setPendingAdmin(address)\":{\"details\":\"Admin function to begin change of admin. The newPendingAdmin must call `_acceptAdmin` to finalize the transfer.\",\"params\":{\"newPendingAdmin\":\"New pending admin.\"}},\"_setProposalMaxOperations(uint256)\":{\"details\":\"Admin only.\",\"params\":{\"proposalMaxOperations_\":\"Max proposal operations\"}},\"cancel(uint256)\":{\"params\":{\"proposalId\":\"The id of the proposal to cancel\"}},\"castVote(uint256,uint8)\":{\"params\":{\"proposalId\":\"The id of the proposal to vote on\",\"support\":\"The support value for the vote. 0=against, 1=for, 2=abstain\"}},\"castVoteBySig(uint256,uint8,uint8,bytes32,bytes32)\":{\"details\":\"External function that accepts EIP-712 signatures for voting on proposals.\",\"params\":{\"proposalId\":\"The id of the proposal to vote on\",\"r\":\"part of the ECDSA sig output\",\"s\":\"part of the ECDSA sig output\",\"support\":\"The support value for the vote. 0=against, 1=for, 2=abstain\",\"v\":\"recovery id of ECDSA signature\"}},\"castVoteWithReason(uint256,uint8,string)\":{\"params\":{\"proposalId\":\"The id of the proposal to vote on\",\"reason\":\"The reason given for the vote by the voter\",\"support\":\"The support value for the vote. 0=against, 1=for, 2=abstain\"}},\"execute(uint256)\":{\"params\":{\"proposalId\":\"The id of the proposal to execute\"}},\"getActions(uint256)\":{\"params\":{\"proposalId\":\"the id of the proposal\"},\"return\":\"targets, values, signatures, and calldatas of the proposal actions\"},\"getReceipt(uint256,address)\":{\"params\":{\"proposalId\":\"the id of proposal\",\"voter\":\"The address of the voter\"},\"return\":\"The voting receipt\"},\"initialize(address,(uint256,uint256,uint256,uint256),(uint256,uint256,uint256)[],address[],address)\":{\"params\":{\"proposalConfigs_\":\"Governance configs for each governance route\",\"timelocks\":\"Timelock addresses for each governance route\",\"xvsVault_\":\"The address of the XvsVault\"}},\"propose(address[],uint256[],string[],bytes[],string,uint8)\":{\"details\":\"NOTE: Proposals with duplicate set of actions can not be queued for execution. If the proposals consists of duplicate actions, it's recommended to split those actions into separate proposals\",\"params\":{\"calldatas\":\"Calldatas for proposal calls\",\"description\":\"String description of the proposal\",\"proposalType\":\"the type of the proposal (e.g NORMAL, FASTTRACK, CRITICAL)\",\"signatures\":\"Function signatures for proposal calls\",\"targets\":\"Target addresses for proposal calls\",\"values\":\"BNB values for proposal calls\"},\"return\":\"Proposal id of new proposal\"},\"queue(uint256)\":{\"params\":{\"proposalId\":\"The id of the proposal to queue\"}},\"state(uint256)\":{\"params\":{\"proposalId\":\"The id of the proposal\"},\"return\":\"Proposal state\"}},\"title\":\"GovernorBravoDelegate\"},\"userdoc\":{\"methods\":{\"_acceptAdmin()\":{\"notice\":\"Accepts transfer of admin rights. msg.sender must be pendingAdmin\"},\"_initiate(address)\":{\"notice\":\"Initiate the GovernorBravo contract\"},\"_setGuardian(address)\":{\"notice\":\"Sets the new governance guardian\"},\"_setPendingAdmin(address)\":{\"notice\":\"Begins transfer of admin rights. The newPendingAdmin must call `_acceptAdmin` to finalize the transfer.\"},\"_setProposalMaxOperations(uint256)\":{\"notice\":\"Set max proposal operations\"},\"cancel(uint256)\":{\"notice\":\"Cancels a proposal only if sender is the proposer, or proposer delegates dropped below proposal threshold\"},\"castVote(uint256,uint8)\":{\"notice\":\"Cast a vote for a proposal\"},\"castVoteBySig(uint256,uint8,uint8,bytes32,bytes32)\":{\"notice\":\"Cast a vote for a proposal by signature\"},\"castVoteWithReason(uint256,uint8,string)\":{\"notice\":\"Cast a vote for a proposal with a reason\"},\"execute(uint256)\":{\"notice\":\"Executes a queued proposal if eta has passed\"},\"getActions(uint256)\":{\"notice\":\"Gets actions of a proposal\"},\"getReceipt(uint256,address)\":{\"notice\":\"Gets the receipt for a voter on a given proposal\"},\"initialize(address,(uint256,uint256,uint256,uint256),(uint256,uint256,uint256)[],address[],address)\":{\"notice\":\"Used to initialize the contract during delegator contructor\"},\"propose(address[],uint256[],string[],bytes[],string,uint8)\":{\"notice\":\"Function used to propose a new proposal. Sender must have delegates above the proposal threshold. targets, values, signatures, and calldatas must be of equal length\"},\"queue(uint256)\":{\"notice\":\"Queues a proposal of state succeeded\"},\"setProposalConfigs((uint256,uint256,uint256)[])\":{\"notice\":\"Sets the configuration for different proposal types** @dev Requires validationParams to be configured before also it will set proposal config for all proposal types** @param proposalConfigs_ Array of proposal configuration structs to update\"},\"setValidationParams((uint256,uint256,uint256,uint256))\":{\"notice\":\"Sets the validation parameters for voting delay and voting period** @param newValidationParams Struct containing new minimum and maximum voting period and delay\"},\"state(uint256)\":{\"notice\":\"Gets the state of a proposal\"}},\"notice\":\"Venus Governance latest on chain governance includes several new features including variable proposal routes and fine grained pause control. Variable routes for proposals allows for governance paramaters such as voting threshold and timelocks to be customized based on the risk level and impact of the proposal. Added granularity to the pause control mechanism allows governance to pause individual actions on specific markets, which reduces impact on the protocol as a whole. This is particularly useful when applied to isolated pools. * The goal of **Governance** is to increase governance efficiency, while mitigating and eliminating malicious or erroneous proposals. * ## Details * Governance has **3 main contracts**: **GovernanceBravoDelegate, XVSVault, XVS** token. * - XVS token is the protocol token used for protocol users to cast their vote on submitted proposals. - XVSVault is the main staking contract for XVS. Users first stake their XVS in the vault and receive voting power proportional to their staked tokens that they can use to vote on proposals. Users also can choose to delegate their voting power to other users. * # Governor Bravo * `GovernanceBravoDelegate` is main Venus Governance contract. Users interact with it to: - Submit new proposal - Vote on a proposal - Cancel a proposal - Queue a proposal for execution with a timelock executor contract. `GovernanceBravoDelegate` uses the XVSVault to get restrict certain actions based on a user's voting power. The governance rules it inforces are: - A user's voting power must be greater than the `proposalThreshold` to submit a proposal - If a user's voting power drops below certain amount, anyone can cancel the the proposal. The governance guardian and proposal creator can also cancel a proposal at anytime before it is queued for execution. * ## Venus Improvement Proposal * Venus Governance allows for Venus Improvement Proposals (VIPs) to be categorized based on their impact and risk levels. This allows for optimizing proposals execution to allow for things such as expediting interest rate changes and quickly updating risk parameters, while moving slower on other types of proposals that can prevent a larger risk to the protocol and are not urgent. There are three different types of VIPs with different proposal paramters: * - `NORMAL` - `FASTTRACK` - `CRITICAL` * When initializing the `GovernorBravo` contract, the parameters for the three routes are set. The parameters are: * - `votingDelay`: The delay in blocks between submitting a proposal and when voting begins - `votingPeriod`: The number of blocks where voting will be open - `proposalThreshold`: The number of votes required in order submit a proposal * There is also a separate timelock executor contract for each route, which is used to dispatch the VIP for execution, giving even more control over the flow of each type of VIP. * ## Voting * After a VIP is proposed, voting is opened after the `votingDelay` has passed. For example, if `votingDelay = 0`, then voting will begin in the next block after the proposal has been submitted. After the delay, the proposal state is `ACTIVE` and users can cast their vote `for`, `against`, or `abstain`, weighted by their total voting power (tokens + delegated voting power). Abstaining from a voting allows for a vote to be cast and optionally include a comment, without the incrementing for or against vote count. The total voting power for the user is obtained by calling XVSVault's `getPriorVotes`. * `GovernorBravoDelegate` also accepts [EIP-712](https://eips.ethereum.org/EIPS/eip-712) signatures for voting on proposals via the external function `castVoteBySig`. * ## Delegating * A users voting power includes the amount of staked XVS the have staked as well as the votes delegate to them. Delegating is the process of a user loaning their voting power to another, so that the latter has the combined voting power of both users. This is an important feature because it allows for a user to let another user who they trust propose or vote in their place. * The delegation of votes happens through the `XVSVault` contract by calling the `delegate` or `delegateBySig` functions. These same functions can revert vote delegation by calling the same function with a value of `0`.\"}},\"settings\":{\"compilationTarget\":{\"contracts/Governance/GovernorBravoDelegate.sol\":\"GovernorBravoDelegate\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/Governance/GovernorBravoDelegate.sol\":{\"content\":\"pragma solidity ^0.5.16;\\npragma experimental ABIEncoderV2;\\n\\nimport \\\"./GovernorBravoInterfaces.sol\\\";\\n\\n/**\\n * @title GovernorBravoDelegate\\n * @notice Venus Governance latest on chain governance includes several new features including variable proposal routes and fine grained pause control.\\n * Variable routes for proposals allows for governance paramaters such as voting threshold and timelocks to be customized based on the risk level and\\n * impact of the proposal. Added granularity to the pause control mechanism allows governance to pause individual actions on specific markets,\\n * which reduces impact on the protocol as a whole. This is particularly useful when applied to isolated pools.\\n *\\n * The goal of **Governance** is to increase governance efficiency, while mitigating and eliminating malicious or erroneous proposals.\\n *\\n * ## Details\\n *\\n * Governance has **3 main contracts**: **GovernanceBravoDelegate, XVSVault, XVS** token.\\n *\\n * - XVS token is the protocol token used for protocol users to cast their vote on submitted proposals.\\n * - XVSVault is the main staking contract for XVS. Users first stake their XVS in the vault and receive voting power proportional to their staked\\n * tokens that they can use to vote on proposals. Users also can choose to delegate their voting power to other users.\\n *\\n * # Governor Bravo\\n *\\n * `GovernanceBravoDelegate` is main Venus Governance contract. Users interact with it to:\\n * - Submit new proposal\\n * - Vote on a proposal\\n * - Cancel a proposal\\n * - Queue a proposal for execution with a timelock executor contract.\\n * `GovernanceBravoDelegate` uses the XVSVault to get restrict certain actions based on a user's voting power. The governance rules it inforces are:\\n * - A user's voting power must be greater than the `proposalThreshold` to submit a proposal\\n * - If a user's voting power drops below certain amount, anyone can cancel the the proposal. The governance guardian and proposal creator can also\\n * cancel a proposal at anytime before it is queued for execution.\\n *\\n * ## Venus Improvement Proposal\\n *\\n * Venus Governance allows for Venus Improvement Proposals (VIPs) to be categorized based on their impact and risk levels. This allows for optimizing proposals\\n * execution to allow for things such as expediting interest rate changes and quickly updating risk parameters, while moving slower on other types of proposals\\n * that can prevent a larger risk to the protocol and are not urgent. There are three different types of VIPs with different proposal paramters:\\n *\\n * - `NORMAL`\\n * - `FASTTRACK`\\n * - `CRITICAL`\\n *\\n * When initializing the `GovernorBravo` contract, the parameters for the three routes are set. The parameters are:\\n *\\n * - `votingDelay`: The delay in blocks between submitting a proposal and when voting begins\\n * - `votingPeriod`: The number of blocks where voting will be open\\n * - `proposalThreshold`: The number of votes required in order submit a proposal\\n *\\n * There is also a separate timelock executor contract for each route, which is used to dispatch the VIP for execution, giving even more control over the\\n * flow of each type of VIP.\\n *\\n * ## Voting\\n *\\n * After a VIP is proposed, voting is opened after the `votingDelay` has passed. For example, if `votingDelay = 0`, then voting will begin in the next block\\n * after the proposal has been submitted. After the delay, the proposal state is `ACTIVE` and users can cast their vote `for`, `against`, or `abstain`,\\n * weighted by their total voting power (tokens + delegated voting power). Abstaining from a voting allows for a vote to be cast and optionally include a\\n * comment, without the incrementing for or against vote count. The total voting power for the user is obtained by calling XVSVault's `getPriorVotes`.\\n *\\n * `GovernorBravoDelegate` also accepts [EIP-712](https://eips.ethereum.org/EIPS/eip-712) signatures for voting on proposals via the external function\\n * `castVoteBySig`.\\n *\\n * ## Delegating\\n *\\n * A users voting power includes the amount of staked XVS the have staked as well as the votes delegate to them. Delegating is the process of a user loaning\\n * their voting power to another, so that the latter has the combined voting power of both users. This is an important feature because it allows for a user\\n * to let another user who they trust propose or vote in their place.\\n *\\n * The delegation of votes happens through the `XVSVault` contract by calling the `delegate` or `delegateBySig` functions. These same functions can revert\\n * vote delegation by calling the same function with a value of `0`.\\n */\\ncontract GovernorBravoDelegate is GovernorBravoDelegateStorageV3, GovernorBravoEvents {\\n    /// @notice The name of this contract\\n    string public constant name = \\\"Venus Governor Bravo\\\";\\n\\n    /// @notice The minimum setable proposal threshold\\n    uint public constant MIN_PROPOSAL_THRESHOLD = 150000e18; // 150,000 Xvs\\n\\n    /// @notice The maximum setable proposal threshold\\n    uint public constant MAX_PROPOSAL_THRESHOLD = 300000e18; //300,000 Xvs\\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    uint public constant quorumVotes = 600000e18; // 600,000 = 2% of Xvs\\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,uint8 support)\\\");\\n\\n    /**\\n     * @notice Used to initialize the contract during delegator contructor\\n     * @param xvsVault_ The address of the XvsVault\\n     * @param proposalConfigs_ Governance configs for each governance route\\n     * @param timelocks Timelock addresses for each governance route\\n     */\\n    function initialize(\\n        address xvsVault_,\\n        ValidationParams memory validationParams_,\\n        ProposalConfig[] memory proposalConfigs_,\\n        TimelockInterface[] memory timelocks,\\n        address guardian_\\n    ) public {\\n        require(address(proposalTimelocks[0]) == address(0), \\\"GovernorBravo::initialize: cannot initialize twice\\\");\\n        require(msg.sender == admin, \\\"GovernorBravo::initialize: admin only\\\");\\n        require(xvsVault_ != address(0), \\\"GovernorBravo::initialize: invalid xvs vault address\\\");\\n        require(guardian_ != address(0), \\\"GovernorBravo::initialize: invalid guardian\\\");\\n        require(\\n            timelocks.length == getGovernanceRouteCount(),\\n            \\\"GovernorBravo::initialize:number of timelocks should match number of governance routes\\\"\\n        );\\n        require(\\n            proposalConfigs_.length == getGovernanceRouteCount(),\\n            \\\"GovernorBravo::initialize:number of proposal configs should match number of governance routes\\\"\\n        );\\n\\n        xvsVault = XvsVaultInterface(xvsVault_);\\n        proposalMaxOperations = 10;\\n        guardian = guardian_;\\n\\n        // Set parameters for each Governance Route\\n        setValidationParams(validationParams_);\\n        setProposalConfigs(proposalConfigs_);\\n\\n        uint256 arrLength = timelocks.length;\\n        for (uint256 i; i < arrLength; ++i) {\\n            require(address(timelocks[i]) != address(0), \\\"GovernorBravo::initialize:invalid timelock address\\\");\\n            proposalTimelocks[i] = timelocks[i];\\n        }\\n    }\\n\\n    /**\\n     ** @notice Sets the validation parameters for voting delay and voting period\\n     ** @param newValidationParams Struct containing new minimum and maximum voting period and delay\\n     */\\n    function setValidationParams(ValidationParams memory newValidationParams) public {\\n        require(msg.sender == admin, \\\"GovernorBravo::setValidationParams: admin only\\\");\\n        require(\\n            newValidationParams.minVotingPeriod > 0 &&\\n                newValidationParams.minVotingDelay > 0 &&\\n                newValidationParams.minVotingDelay < newValidationParams.maxVotingDelay &&\\n                newValidationParams.minVotingPeriod < newValidationParams.maxVotingPeriod,\\n            \\\"GovernorBravo::setValidationParams: invalid params\\\"\\n        );\\n        emit SetValidationParams(\\n            validationParams.minVotingPeriod,\\n            newValidationParams.minVotingPeriod,\\n            validationParams.maxVotingPeriod,\\n            newValidationParams.maxVotingPeriod,\\n            validationParams.minVotingDelay,\\n            newValidationParams.minVotingDelay,\\n            validationParams.maxVotingDelay,\\n            newValidationParams.maxVotingDelay\\n        );\\n        validationParams = newValidationParams;\\n    }\\n\\n    /**\\n     ** @notice Sets the configuration for different proposal types\\n     ** @dev Requires validationParams to be configured before also it will set proposal config for all proposal types\\n     ** @param proposalConfigs_ Array of proposal configuration structs to update\\n     */\\n    function setProposalConfigs(ProposalConfig[] memory proposalConfigs_) public {\\n        require(msg.sender == admin, \\\"GovernorBravo::setProposalConfigs: admin only\\\");\\n        require(\\n            validationParams.minVotingPeriod > 0 &&\\n                validationParams.maxVotingPeriod > 0 &&\\n                validationParams.minVotingDelay > 0 &&\\n                validationParams.maxVotingDelay > 0,\\n            \\\"GovernorBravo::setProposalConfigs: validation params not configured yet\\\"\\n        );\\n        uint256 arrLength = proposalConfigs_.length;\\n        require(\\n            arrLength == getGovernanceRouteCount(),\\n            \\\"GovernorBravo::setProposalConfigs: invalid proposal config length\\\"\\n        );\\n        for (uint256 i; i < arrLength; ++i) {\\n            require(\\n                proposalConfigs_[i].votingPeriod >= validationParams.minVotingPeriod,\\n                \\\"GovernorBravo::setProposalConfigs: invalid min voting period\\\"\\n            );\\n            require(\\n                proposalConfigs_[i].votingPeriod <= validationParams.maxVotingPeriod,\\n                \\\"GovernorBravo::setProposalConfigs: invalid max voting period\\\"\\n            );\\n            require(\\n                proposalConfigs_[i].votingDelay >= validationParams.minVotingDelay,\\n                \\\"GovernorBravo::setProposalConfigs: invalid min voting delay\\\"\\n            );\\n            require(\\n                proposalConfigs_[i].votingDelay <= validationParams.maxVotingDelay,\\n                \\\"GovernorBravo::setProposalConfigs: invalid max voting delay\\\"\\n            );\\n            require(\\n                proposalConfigs_[i].proposalThreshold >= MIN_PROPOSAL_THRESHOLD,\\n                \\\"GovernorBravo::setProposalConfigs: invalid min proposal threshold\\\"\\n            );\\n            require(\\n                proposalConfigs_[i].proposalThreshold <= MAX_PROPOSAL_THRESHOLD,\\n                \\\"GovernorBravo::setProposalConfigs: invalid max proposal threshold\\\"\\n            );\\n\\n            proposalConfigs[i] = proposalConfigs_[i];\\n            emit SetProposalConfigs(\\n                proposalConfigs_[i].votingPeriod,\\n                proposalConfigs_[i].votingDelay,\\n                proposalConfigs_[i].proposalThreshold\\n            );\\n        }\\n    }\\n\\n    /**\\n     * @notice Function used to propose a new proposal. Sender must have delegates above the proposal threshold.\\n     * targets, values, signatures, and calldatas must be of equal length\\n     * @dev NOTE: Proposals with duplicate set of actions can not be queued for execution. If the proposals consists\\n     *  of duplicate actions, it's recommended to split those actions into separate proposals\\n     * @param targets Target addresses for proposal calls\\n     * @param values BNB values for proposal calls\\n     * @param signatures Function signatures for proposal calls\\n     * @param calldatas Calldatas for proposal calls\\n     * @param description String description of the proposal\\n     * @param proposalType the type of the proposal (e.g NORMAL, FASTTRACK, CRITICAL)\\n     * @return Proposal id of new proposal\\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        ProposalType proposalType\\n    ) public returns (uint) {\\n        // Reject proposals before initiating as Governor\\n        require(initialProposalId != 0, \\\"GovernorBravo::propose: Governor Bravo not active\\\");\\n        require(\\n            xvsVault.getPriorVotes(msg.sender, sub256(block.number, 1)) >=\\n                proposalConfigs[uint8(proposalType)].proposalThreshold,\\n            \\\"GovernorBravo::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            \\\"GovernorBravo::propose: proposal function information arity mismatch\\\"\\n        );\\n        require(targets.length != 0, \\\"GovernorBravo::propose: must provide actions\\\");\\n        require(targets.length <= proposalMaxOperations, \\\"GovernorBravo::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                \\\"GovernorBravo::propose: one live proposal per proposer, found an already active proposal\\\"\\n            );\\n            require(\\n                proposersLatestProposalState != ProposalState.Pending,\\n                \\\"GovernorBravo::propose: one live proposal per proposer, found an already pending proposal\\\"\\n            );\\n        }\\n\\n        uint startBlock = add256(block.number, proposalConfigs[uint8(proposalType)].votingDelay);\\n        uint endBlock = add256(startBlock, proposalConfigs[uint8(proposalType)].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            abstainVotes: 0,\\n            canceled: false,\\n            executed: false,\\n            proposalType: uint8(proposalType)\\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            uint8(proposalType)\\n        );\\n        return newProposal.id;\\n    }\\n\\n    /**\\n     * @notice Queues a proposal of state succeeded\\n     * @param proposalId The id of the proposal to queue\\n     */\\n    function queue(uint proposalId) external {\\n        require(\\n            state(proposalId) == ProposalState.Succeeded,\\n            \\\"GovernorBravo::queue: proposal can only be queued if it is succeeded\\\"\\n        );\\n        Proposal storage proposal = proposals[proposalId];\\n        uint eta = add256(block.timestamp, proposalTimelocks[uint8(proposal.proposalType)].delay());\\n        for (uint i; i < proposal.targets.length; ++i) {\\n            queueOrRevertInternal(\\n                proposal.targets[i],\\n                proposal.values[i],\\n                proposal.signatures[i],\\n                proposal.calldatas[i],\\n                eta,\\n                uint8(proposal.proposalType)\\n            );\\n        }\\n        proposal.eta = eta;\\n        emit ProposalQueued(proposalId, eta);\\n    }\\n\\n    function queueOrRevertInternal(\\n        address target,\\n        uint value,\\n        string memory signature,\\n        bytes memory data,\\n        uint eta,\\n        uint8 proposalType\\n    ) internal {\\n        require(\\n            !proposalTimelocks[proposalType].queuedTransactions(\\n                keccak256(abi.encode(target, value, signature, data, eta))\\n            ),\\n            \\\"GovernorBravo::queueOrRevertInternal: identical proposal action already queued at eta\\\"\\n        );\\n        proposalTimelocks[proposalType].queueTransaction(target, value, signature, data, eta);\\n    }\\n\\n    /**\\n     * @notice Executes a queued proposal if eta has passed\\n     * @param proposalId The id of the proposal to execute\\n     */\\n    function execute(uint proposalId) external {\\n        require(\\n            state(proposalId) == ProposalState.Queued,\\n            \\\"GovernorBravo::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; i < proposal.targets.length; ++i) {\\n            proposalTimelocks[uint8(proposal.proposalType)].executeTransaction(\\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    /**\\n     * @notice Cancels a proposal only if sender is the proposer, or proposer delegates dropped below proposal threshold\\n     * @param proposalId The id of the proposal to cancel\\n     */\\n    function cancel(uint proposalId) external {\\n        require(state(proposalId) != ProposalState.Executed, \\\"GovernorBravo::cancel: cannot cancel executed proposal\\\");\\n\\n        Proposal storage proposal = proposals[proposalId];\\n        require(\\n            msg.sender == guardian ||\\n                msg.sender == proposal.proposer ||\\n                xvsVault.getPriorVotes(proposal.proposer, sub256(block.number, 1)) <\\n                proposalConfigs[proposal.proposalType].proposalThreshold,\\n            \\\"GovernorBravo::cancel: proposer above threshold\\\"\\n        );\\n\\n        proposal.canceled = true;\\n        for (uint i = 0; i < proposal.targets.length; i++) {\\n            proposalTimelocks[proposal.proposalType].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    /**\\n     * @notice Gets actions of a proposal\\n     * @param proposalId the id of the proposal\\n     * @return targets, values, signatures, and calldatas of the proposal actions\\n     */\\n    function getActions(\\n        uint proposalId\\n    )\\n        external\\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    /**\\n     * @notice Gets the receipt for a voter on a given proposal\\n     * @param proposalId the id of proposal\\n     * @param voter The address of the voter\\n     * @return The voting receipt\\n     */\\n    function getReceipt(uint proposalId, address voter) external view returns (Receipt memory) {\\n        return proposals[proposalId].receipts[voter];\\n    }\\n\\n    /**\\n     * @notice Gets the state of a proposal\\n     * @param proposalId The id of the proposal\\n     * @return Proposal state\\n     */\\n    function state(uint proposalId) public view returns (ProposalState) {\\n        require(\\n            proposalCount >= proposalId && proposalId > initialProposalId,\\n            \\\"GovernorBravo::state: invalid proposal id\\\"\\n        );\\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 (\\n            block.timestamp >= add256(proposal.eta, proposalTimelocks[uint8(proposal.proposalType)].GRACE_PERIOD())\\n        ) {\\n            return ProposalState.Expired;\\n        } else {\\n            return ProposalState.Queued;\\n        }\\n    }\\n\\n    /**\\n     * @notice Cast a vote for a proposal\\n     * @param proposalId The id of the proposal to vote on\\n     * @param support The support value for the vote. 0=against, 1=for, 2=abstain\\n     */\\n    function castVote(uint proposalId, uint8 support) external {\\n        emit VoteCast(msg.sender, proposalId, support, castVoteInternal(msg.sender, proposalId, support), \\\"\\\");\\n    }\\n\\n    /**\\n     * @notice Cast a vote for a proposal with a reason\\n     * @param proposalId The id of the proposal to vote on\\n     * @param support The support value for the vote. 0=against, 1=for, 2=abstain\\n     * @param reason The reason given for the vote by the voter\\n     */\\n    function castVoteWithReason(uint proposalId, uint8 support, string calldata reason) external {\\n        emit VoteCast(msg.sender, proposalId, support, castVoteInternal(msg.sender, proposalId, support), reason);\\n    }\\n\\n    /**\\n     * @notice Cast a vote for a proposal by signature\\n     * @dev External function that accepts EIP-712 signatures for voting on proposals.\\n     * @param proposalId The id of the proposal to vote on\\n     * @param support The support value for the vote. 0=against, 1=for, 2=abstain\\n     * @param v recovery id of ECDSA signature\\n     * @param r part of the ECDSA sig output\\n     * @param s part of the ECDSA sig output\\n     */\\n    function castVoteBySig(uint proposalId, uint8 support, uint8 v, bytes32 r, bytes32 s) external {\\n        bytes32 domainSeparator = keccak256(\\n            abi.encode(DOMAIN_TYPEHASH, keccak256(bytes(name)), getChainIdInternal(), 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), \\\"GovernorBravo::castVoteBySig: invalid signature\\\");\\n        emit VoteCast(signatory, proposalId, support, castVoteInternal(signatory, proposalId, support), \\\"\\\");\\n    }\\n\\n    /**\\n     * @notice Internal function that caries out voting logic\\n     * @param voter The voter that is casting their vote\\n     * @param proposalId The id of the proposal to vote on\\n     * @param support The support value for the vote. 0=against, 1=for, 2=abstain\\n     * @return The number of votes cast\\n     */\\n    function castVoteInternal(address voter, uint proposalId, uint8 support) internal returns (uint96) {\\n        require(state(proposalId) == ProposalState.Active, \\\"GovernorBravo::castVoteInternal: voting is closed\\\");\\n        require(support <= 2, \\\"GovernorBravo::castVoteInternal: invalid vote type\\\");\\n        Proposal storage proposal = proposals[proposalId];\\n        Receipt storage receipt = proposal.receipts[voter];\\n        require(receipt.hasVoted == false, \\\"GovernorBravo::castVoteInternal: voter already voted\\\");\\n        uint96 votes = xvsVault.getPriorVotes(voter, proposal.startBlock);\\n\\n        if (support == 0) {\\n            proposal.againstVotes = add256(proposal.againstVotes, votes);\\n        } else if (support == 1) {\\n            proposal.forVotes = add256(proposal.forVotes, votes);\\n        } else if (support == 2) {\\n            proposal.abstainVotes = add256(proposal.abstainVotes, votes);\\n        }\\n\\n        receipt.hasVoted = true;\\n        receipt.support = support;\\n        receipt.votes = votes;\\n\\n        return votes;\\n    }\\n\\n    /**\\n     * @notice Sets the new governance guardian\\n     * @param newGuardian the address of the new guardian\\n     */\\n    function _setGuardian(address newGuardian) external {\\n        require(msg.sender == guardian || msg.sender == admin, \\\"GovernorBravo::_setGuardian: admin or guardian only\\\");\\n        require(newGuardian != address(0), \\\"GovernorBravo::_setGuardian: cannot live without a guardian\\\");\\n        address oldGuardian = guardian;\\n        guardian = newGuardian;\\n\\n        emit NewGuardian(oldGuardian, newGuardian);\\n    }\\n\\n    /**\\n     * @notice Initiate the GovernorBravo contract\\n     * @dev Admin only. Sets initial proposal id which initiates the contract, ensuring a continuous proposal id count\\n     * @param governorAlpha The address for the Governor to continue the proposal id count from\\n     */\\n    function _initiate(address governorAlpha) external {\\n        require(msg.sender == admin, \\\"GovernorBravo::_initiate: admin only\\\");\\n        require(initialProposalId == 0, \\\"GovernorBravo::_initiate: can only initiate once\\\");\\n        proposalCount = GovernorAlphaInterface(governorAlpha).proposalCount();\\n        initialProposalId = proposalCount;\\n        for (uint256 i; i < getGovernanceRouteCount(); ++i) {\\n            proposalTimelocks[i].acceptAdmin();\\n        }\\n    }\\n\\n    /**\\n     * @notice Set max proposal operations\\n     * @dev Admin only.\\n     * @param proposalMaxOperations_ Max proposal operations\\n     */\\n    function _setProposalMaxOperations(uint proposalMaxOperations_) external {\\n        require(msg.sender == admin, \\\"GovernorBravo::_setProposalMaxOperations: admin only\\\");\\n        uint oldProposalMaxOperations = proposalMaxOperations;\\n        proposalMaxOperations = proposalMaxOperations_;\\n\\n        emit ProposalMaxOperationsUpdated(oldProposalMaxOperations, proposalMaxOperations_);\\n    }\\n\\n    /**\\n     * @notice Begins transfer of admin rights. The newPendingAdmin must call `_acceptAdmin` to finalize the transfer.\\n     * @dev Admin function to begin change of admin. The newPendingAdmin must call `_acceptAdmin` to finalize the transfer.\\n     * @param newPendingAdmin New pending admin.\\n     */\\n    function _setPendingAdmin(address newPendingAdmin) external {\\n        // Check caller = admin\\n        require(msg.sender == admin, \\\"GovernorBravo:_setPendingAdmin: admin only\\\");\\n\\n        // Save current value, if any, for inclusion in log\\n        address oldPendingAdmin = pendingAdmin;\\n\\n        // Store pendingAdmin with value newPendingAdmin\\n        pendingAdmin = newPendingAdmin;\\n\\n        // Emit NewPendingAdmin(oldPendingAdmin, newPendingAdmin)\\n        emit NewPendingAdmin(oldPendingAdmin, newPendingAdmin);\\n    }\\n\\n    /**\\n     * @notice Accepts transfer of admin rights. msg.sender must be pendingAdmin\\n     * @dev Admin function for pending admin to accept role and update admin\\n     */\\n    function _acceptAdmin() external {\\n        // Check caller is pendingAdmin and pendingAdmin \\u2260 address(0)\\n        require(\\n            msg.sender == pendingAdmin && msg.sender != address(0),\\n            \\\"GovernorBravo:_acceptAdmin: pending admin only\\\"\\n        );\\n\\n        // Save current values for inclusion in log\\n        address oldAdmin = admin;\\n        address oldPendingAdmin = pendingAdmin;\\n\\n        // Store admin with value pendingAdmin\\n        admin = pendingAdmin;\\n\\n        // Clear the pending value\\n        pendingAdmin = address(0);\\n\\n        emit NewAdmin(oldAdmin, admin);\\n        emit NewPendingAdmin(oldPendingAdmin, pendingAdmin);\\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 getChainIdInternal() internal pure returns (uint) {\\n        uint chainId;\\n        assembly {\\n            chainId := chainid()\\n        }\\n        return chainId;\\n    }\\n\\n    function getGovernanceRouteCount() internal pure returns (uint8) {\\n        return uint8(ProposalType.CRITICAL) + 1;\\n    }\\n}\\n\",\"keccak256\":\"0xebfa7fbbd689a648d1771a76508090d09ac2290a0d0ee4d95a0729413058ebc4\"},\"contracts/Governance/GovernorBravoInterfaces.sol\":{\"content\":\"pragma solidity ^0.5.16;\\npragma experimental ABIEncoderV2;\\n\\n/**\\n * @title GovernorBravoEvents\\n * @author Venus\\n * @notice Set of events emitted by the GovernorBravo contracts.\\n */\\ncontract GovernorBravoEvents {\\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        uint8 proposalType\\n    );\\n\\n    /// @notice An event emitted when a vote has been cast on a proposal\\n    /// @param voter The address which casted a vote\\n    /// @param proposalId The proposal id which was voted on\\n    /// @param support Support value for the vote. 0=against, 1=for, 2=abstain\\n    /// @param votes Number of votes which were cast by the voter\\n    /// @param reason The reason given for the vote by the voter\\n    event VoteCast(address indexed voter, uint proposalId, uint8 support, uint votes, string reason);\\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    /// @notice An event emitted when the voting delay is set\\n    event VotingDelaySet(uint oldVotingDelay, uint newVotingDelay);\\n\\n    /// @notice An event emitted when the voting period is set\\n    event VotingPeriodSet(uint oldVotingPeriod, uint newVotingPeriod);\\n\\n    /// @notice Emitted when implementation is changed\\n    event NewImplementation(address oldImplementation, address newImplementation);\\n\\n    /// @notice Emitted when proposal threshold is set\\n    event ProposalThresholdSet(uint oldProposalThreshold, uint newProposalThreshold);\\n\\n    /// @notice Emitted when pendingAdmin is changed\\n    event NewPendingAdmin(address oldPendingAdmin, address newPendingAdmin);\\n\\n    /// @notice Emitted when pendingAdmin is accepted, which means admin is updated\\n    event NewAdmin(address oldAdmin, address newAdmin);\\n\\n    /// @notice Emitted when the new guardian address is set\\n    event NewGuardian(address oldGuardian, address newGuardian);\\n\\n    /// @notice Emitted when the maximum number of operations in one proposal is updated\\n    event ProposalMaxOperationsUpdated(uint oldMaxOperations, uint newMaxOperations);\\n\\n    /// @notice Emitted when the new validation params are set\\n    event SetValidationParams(\\n        uint256 oldMinVotingPeriod,\\n        uint256 newMinVotingPeriod,\\n        uint256 oldmaxVotingPeriod,\\n        uint256 newmaxVotingPeriod,\\n        uint256 oldminVotingDelay,\\n        uint256 newminVotingDelay,\\n        uint256 oldmaxVotingDelay,\\n        uint256 newmaxVotingDelay\\n    );\\n\\n    /// @notice Emitted when new Proposal configs added\\n    event SetProposalConfigs(uint256 votingPeriod, uint256 votingDelay, uint256 proposalThreshold);\\n}\\n\\n/**\\n * @title GovernorBravoDelegatorStorage\\n * @author Venus\\n * @notice Storage layout of the `GovernorBravoDelegator` contract\\n */\\ncontract GovernorBravoDelegatorStorage {\\n    /// @notice Administrator for this contract\\n    address public admin;\\n\\n    /// @notice Pending administrator for this contract\\n    address public pendingAdmin;\\n\\n    /// @notice Active brains of Governor\\n    address public implementation;\\n}\\n\\n/**\\n * @title GovernorBravoDelegateStorageV1\\n * @dev For future upgrades, do not change GovernorBravoDelegateStorageV1. Create a new\\n * contract which implements GovernorBravoDelegateStorageV1 and following the naming convention\\n * GovernorBravoDelegateStorageVX.\\n */\\ncontract GovernorBravoDelegateStorageV1 is GovernorBravoDelegatorStorage {\\n    /// @notice DEPRECATED The delay before voting on a proposal may take place, once proposed, in blocks\\n    uint public votingDelay;\\n\\n    /// @notice DEPRECATED The duration of voting on a proposal, in blocks\\n    uint public votingPeriod;\\n\\n    /// @notice DEPRECATED The number of votes required in order for a voter to become a proposer\\n    uint public proposalThreshold;\\n\\n    /// @notice Initial proposal id set at become\\n    uint public initialProposalId;\\n\\n    /// @notice The total number of proposals\\n    uint public proposalCount;\\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    XvsVaultInterface public xvsVault;\\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    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 Current number of votes for abstaining for this proposal\\n        uint abstainVotes;\\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        /// @notice The type of the proposal\\n        uint8 proposalType;\\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 or abstains\\n        uint8 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 maximum number of actions that can be included in a proposal\\n    uint public proposalMaxOperations;\\n\\n    /// @notice A privileged role that can cancel any proposal\\n    address public guardian;\\n}\\n\\n/**\\n * @title GovernorBravoDelegateStorageV2\\n * @dev For future upgrades, do not change GovernorBravoDelegateStorageV2. Create a new\\n * contract which implements GovernorBravoDelegateStorageV2 and following the naming convention\\n * GovernorBravoDelegateStorageVX.\\n */\\ncontract GovernorBravoDelegateStorageV2 is GovernorBravoDelegateStorageV1 {\\n    enum ProposalType {\\n        NORMAL,\\n        FASTTRACK,\\n        CRITICAL\\n    }\\n\\n    struct ProposalConfig {\\n        /// @notice The delay before voting on a proposal may take place, once proposed, in blocks\\n        uint256 votingDelay;\\n        /// @notice The duration of voting on a proposal, in blocks\\n        uint256 votingPeriod;\\n        /// @notice The number of votes required in order for a voter to become a proposer\\n        uint256 proposalThreshold;\\n    }\\n\\n    /// @notice mapping containing configuration for each proposal type\\n    mapping(uint => ProposalConfig) public proposalConfigs;\\n\\n    /// @notice mapping containing Timelock addresses for each proposal type\\n    mapping(uint => TimelockInterface) public proposalTimelocks;\\n}\\n\\n/**\\n * @title GovernorBravoDelegateStorageV3\\n * @dev For future upgrades, do not change GovernorBravoDelegateStorageV3. Create a new\\n * contract which implements GovernorBravoDelegateStorageV3 and following the naming convention\\n * GovernorBravoDelegateStorageVX.\\n */\\ncontract GovernorBravoDelegateStorageV3 is GovernorBravoDelegateStorageV2 {\\n    struct ValidationParams {\\n        uint256 minVotingPeriod;\\n        uint256 maxVotingPeriod;\\n        uint256 minVotingDelay;\\n        uint256 maxVotingDelay;\\n    }\\n    /// @notice Stores the current minimum and maximum values of voting delay and voting period\\n    ValidationParams public validationParams;\\n}\\n\\n/**\\n * @title TimelockInterface\\n * @author Venus\\n * @notice Interface implemented by the Timelock contract.\\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 XvsVaultInterface {\\n    function getPriorVotes(address account, uint blockNumber) external view returns (uint96);\\n}\\n\\ninterface GovernorAlphaInterface {\\n    /// @notice The total number of proposals\\n    function proposalCount() external returns (uint);\\n}\\n\",\"keccak256\":\"0x62c89309d4351dbeb5516465211fab0b566d83d60dc0148377deaad1f1929b85\"}},\"version\":1}","storageLayout":{"storage":[{"astId":1818,"contract":"contracts/Governance/GovernorBravoDelegate.sol:GovernorBravoDelegate","label":"admin","offset":0,"slot":"0","type":"t_address"},{"astId":1820,"contract":"contracts/Governance/GovernorBravoDelegate.sol:GovernorBravoDelegate","label":"pendingAdmin","offset":0,"slot":"1","type":"t_address"},{"astId":1822,"contract":"contracts/Governance/GovernorBravoDelegate.sol:GovernorBravoDelegate","label":"implementation","offset":0,"slot":"2","type":"t_address"},{"astId":1827,"contract":"contracts/Governance/GovernorBravoDelegate.sol:GovernorBravoDelegate","label":"votingDelay","offset":0,"slot":"3","type":"t_uint256"},{"astId":1829,"contract":"contracts/Governance/GovernorBravoDelegate.sol:GovernorBravoDelegate","label":"votingPeriod","offset":0,"slot":"4","type":"t_uint256"},{"astId":1831,"contract":"contracts/Governance/GovernorBravoDelegate.sol:GovernorBravoDelegate","label":"proposalThreshold","offset":0,"slot":"5","type":"t_uint256"},{"astId":1833,"contract":"contracts/Governance/GovernorBravoDelegate.sol:GovernorBravoDelegate","label":"initialProposalId","offset":0,"slot":"6","type":"t_uint256"},{"astId":1835,"contract":"contracts/Governance/GovernorBravoDelegate.sol:GovernorBravoDelegate","label":"proposalCount","offset":0,"slot":"7","type":"t_uint256"},{"astId":1837,"contract":"contracts/Governance/GovernorBravoDelegate.sol:GovernorBravoDelegate","label":"timelock","offset":0,"slot":"8","type":"t_contract(TimelockInterface)2007"},{"astId":1839,"contract":"contracts/Governance/GovernorBravoDelegate.sol:GovernorBravoDelegate","label":"xvsVault","offset":0,"slot":"9","type":"t_contract(XvsVaultInterface)2017"},{"astId":1843,"contract":"contracts/Governance/GovernorBravoDelegate.sol:GovernorBravoDelegate","label":"proposals","offset":0,"slot":"10","type":"t_mapping(t_uint256,t_struct(Proposal)1886_storage)"},{"astId":1847,"contract":"contracts/Governance/GovernorBravoDelegate.sol:GovernorBravoDelegate","label":"latestProposalIds","offset":0,"slot":"11","type":"t_mapping(t_address,t_uint256)"},{"astId":1904,"contract":"contracts/Governance/GovernorBravoDelegate.sol:GovernorBravoDelegate","label":"proposalMaxOperations","offset":0,"slot":"12","type":"t_uint256"},{"astId":1906,"contract":"contracts/Governance/GovernorBravoDelegate.sol:GovernorBravoDelegate","label":"guardian","offset":0,"slot":"13","type":"t_address"},{"astId":1924,"contract":"contracts/Governance/GovernorBravoDelegate.sol:GovernorBravoDelegate","label":"proposalConfigs","offset":0,"slot":"14","type":"t_mapping(t_uint256,t_struct(ProposalConfig)1920_storage)"},{"astId":1928,"contract":"contracts/Governance/GovernorBravoDelegate.sol:GovernorBravoDelegate","label":"proposalTimelocks","offset":0,"slot":"15","type":"t_mapping(t_uint256,t_contract(TimelockInterface)2007)"},{"astId":1942,"contract":"contracts/Governance/GovernorBravoDelegate.sol:GovernorBravoDelegate","label":"validationParams","offset":0,"slot":"16","type":"t_struct(ValidationParams)1940_storage"}],"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)2007":{"encoding":"inplace","label":"contract TimelockInterface","numberOfBytes":"20"},"t_contract(XvsVaultInterface)2017":{"encoding":"inplace","label":"contract XvsVaultInterface","numberOfBytes":"20"},"t_mapping(t_address,t_struct(Receipt)1893_storage)":{"encoding":"mapping","key":"t_address","label":"mapping(address => struct GovernorBravoDelegateStorageV1.Receipt)","numberOfBytes":"32","value":"t_struct(Receipt)1893_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_contract(TimelockInterface)2007)":{"encoding":"mapping","key":"t_uint256","label":"mapping(uint256 => contract TimelockInterface)","numberOfBytes":"32","value":"t_contract(TimelockInterface)2007"},"t_mapping(t_uint256,t_struct(Proposal)1886_storage)":{"encoding":"mapping","key":"t_uint256","label":"mapping(uint256 => struct GovernorBravoDelegateStorageV1.Proposal)","numberOfBytes":"32","value":"t_struct(Proposal)1886_storage"},"t_mapping(t_uint256,t_struct(ProposalConfig)1920_storage)":{"encoding":"mapping","key":"t_uint256","label":"mapping(uint256 => struct GovernorBravoDelegateStorageV2.ProposalConfig)","numberOfBytes":"32","value":"t_struct(ProposalConfig)1920_storage"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_struct(Proposal)1886_storage":{"encoding":"inplace","label":"struct GovernorBravoDelegateStorageV1.Proposal","members":[{"astId":1849,"contract":"contracts/Governance/GovernorBravoDelegate.sol:GovernorBravoDelegate","label":"id","offset":0,"slot":"0","type":"t_uint256"},{"astId":1851,"contract":"contracts/Governance/GovernorBravoDelegate.sol:GovernorBravoDelegate","label":"proposer","offset":0,"slot":"1","type":"t_address"},{"astId":1853,"contract":"contracts/Governance/GovernorBravoDelegate.sol:GovernorBravoDelegate","label":"eta","offset":0,"slot":"2","type":"t_uint256"},{"astId":1856,"contract":"contracts/Governance/GovernorBravoDelegate.sol:GovernorBravoDelegate","label":"targets","offset":0,"slot":"3","type":"t_array(t_address)dyn_storage"},{"astId":1859,"contract":"contracts/Governance/GovernorBravoDelegate.sol:GovernorBravoDelegate","label":"values","offset":0,"slot":"4","type":"t_array(t_uint256)dyn_storage"},{"astId":1862,"contract":"contracts/Governance/GovernorBravoDelegate.sol:GovernorBravoDelegate","label":"signatures","offset":0,"slot":"5","type":"t_array(t_string_storage)dyn_storage"},{"astId":1865,"contract":"contracts/Governance/GovernorBravoDelegate.sol:GovernorBravoDelegate","label":"calldatas","offset":0,"slot":"6","type":"t_array(t_bytes_storage)dyn_storage"},{"astId":1867,"contract":"contracts/Governance/GovernorBravoDelegate.sol:GovernorBravoDelegate","label":"startBlock","offset":0,"slot":"7","type":"t_uint256"},{"astId":1869,"contract":"contracts/Governance/GovernorBravoDelegate.sol:GovernorBravoDelegate","label":"endBlock","offset":0,"slot":"8","type":"t_uint256"},{"astId":1871,"contract":"contracts/Governance/GovernorBravoDelegate.sol:GovernorBravoDelegate","label":"forVotes","offset":0,"slot":"9","type":"t_uint256"},{"astId":1873,"contract":"contracts/Governance/GovernorBravoDelegate.sol:GovernorBravoDelegate","label":"againstVotes","offset":0,"slot":"10","type":"t_uint256"},{"astId":1875,"contract":"contracts/Governance/GovernorBravoDelegate.sol:GovernorBravoDelegate","label":"abstainVotes","offset":0,"slot":"11","type":"t_uint256"},{"astId":1877,"contract":"contracts/Governance/GovernorBravoDelegate.sol:GovernorBravoDelegate","label":"canceled","offset":0,"slot":"12","type":"t_bool"},{"astId":1879,"contract":"contracts/Governance/GovernorBravoDelegate.sol:GovernorBravoDelegate","label":"executed","offset":1,"slot":"12","type":"t_bool"},{"astId":1883,"contract":"contracts/Governance/GovernorBravoDelegate.sol:GovernorBravoDelegate","label":"receipts","offset":0,"slot":"13","type":"t_mapping(t_address,t_struct(Receipt)1893_storage)"},{"astId":1885,"contract":"contracts/Governance/GovernorBravoDelegate.sol:GovernorBravoDelegate","label":"proposalType","offset":0,"slot":"14","type":"t_uint8"}],"numberOfBytes":"480"},"t_struct(ProposalConfig)1920_storage":{"encoding":"inplace","label":"struct GovernorBravoDelegateStorageV2.ProposalConfig","members":[{"astId":1915,"contract":"contracts/Governance/GovernorBravoDelegate.sol:GovernorBravoDelegate","label":"votingDelay","offset":0,"slot":"0","type":"t_uint256"},{"astId":1917,"contract":"contracts/Governance/GovernorBravoDelegate.sol:GovernorBravoDelegate","label":"votingPeriod","offset":0,"slot":"1","type":"t_uint256"},{"astId":1919,"contract":"contracts/Governance/GovernorBravoDelegate.sol:GovernorBravoDelegate","label":"proposalThreshold","offset":0,"slot":"2","type":"t_uint256"}],"numberOfBytes":"96"},"t_struct(Receipt)1893_storage":{"encoding":"inplace","label":"struct GovernorBravoDelegateStorageV1.Receipt","members":[{"astId":1888,"contract":"contracts/Governance/GovernorBravoDelegate.sol:GovernorBravoDelegate","label":"hasVoted","offset":0,"slot":"0","type":"t_bool"},{"astId":1890,"contract":"contracts/Governance/GovernorBravoDelegate.sol:GovernorBravoDelegate","label":"support","offset":1,"slot":"0","type":"t_uint8"},{"astId":1892,"contract":"contracts/Governance/GovernorBravoDelegate.sol:GovernorBravoDelegate","label":"votes","offset":2,"slot":"0","type":"t_uint96"}],"numberOfBytes":"32"},"t_struct(ValidationParams)1940_storage":{"encoding":"inplace","label":"struct GovernorBravoDelegateStorageV3.ValidationParams","members":[{"astId":1933,"contract":"contracts/Governance/GovernorBravoDelegate.sol:GovernorBravoDelegate","label":"minVotingPeriod","offset":0,"slot":"0","type":"t_uint256"},{"astId":1935,"contract":"contracts/Governance/GovernorBravoDelegate.sol:GovernorBravoDelegate","label":"maxVotingPeriod","offset":0,"slot":"1","type":"t_uint256"},{"astId":1937,"contract":"contracts/Governance/GovernorBravoDelegate.sol:GovernorBravoDelegate","label":"minVotingDelay","offset":0,"slot":"2","type":"t_uint256"},{"astId":1939,"contract":"contracts/Governance/GovernorBravoDelegate.sol:GovernorBravoDelegate","label":"maxVotingDelay","offset":0,"slot":"3","type":"t_uint256"}],"numberOfBytes":"128"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"},"t_uint96":{"encoding":"inplace","label":"uint96","numberOfBytes":"12"}}},"userdoc":{"methods":{"_acceptAdmin()":{"notice":"Accepts transfer of admin rights. msg.sender must be pendingAdmin"},"_initiate(address)":{"notice":"Initiate the GovernorBravo contract"},"_setGuardian(address)":{"notice":"Sets the new governance guardian"},"_setPendingAdmin(address)":{"notice":"Begins transfer of admin rights. The newPendingAdmin must call `_acceptAdmin` to finalize the transfer."},"_setProposalMaxOperations(uint256)":{"notice":"Set max proposal operations"},"cancel(uint256)":{"notice":"Cancels a proposal only if sender is the proposer, or proposer delegates dropped below proposal threshold"},"castVote(uint256,uint8)":{"notice":"Cast a vote for a proposal"},"castVoteBySig(uint256,uint8,uint8,bytes32,bytes32)":{"notice":"Cast a vote for a proposal by signature"},"castVoteWithReason(uint256,uint8,string)":{"notice":"Cast a vote for a proposal with a reason"},"execute(uint256)":{"notice":"Executes a queued proposal if eta has passed"},"getActions(uint256)":{"notice":"Gets actions of a proposal"},"getReceipt(uint256,address)":{"notice":"Gets the receipt for a voter on a given proposal"},"initialize(address,(uint256,uint256,uint256,uint256),(uint256,uint256,uint256)[],address[],address)":{"notice":"Used to initialize the contract during delegator contructor"},"propose(address[],uint256[],string[],bytes[],string,uint8)":{"notice":"Function used to propose a new proposal. Sender must have delegates above the proposal threshold. targets, values, signatures, and calldatas must be of equal length"},"queue(uint256)":{"notice":"Queues a proposal of state succeeded"},"setProposalConfigs((uint256,uint256,uint256)[])":{"notice":"Sets the configuration for different proposal types** @dev Requires validationParams to be configured before also it will set proposal config for all proposal types** @param proposalConfigs_ Array of proposal configuration structs to update"},"setValidationParams((uint256,uint256,uint256,uint256))":{"notice":"Sets the validation parameters for voting delay and voting period** @param newValidationParams Struct containing new minimum and maximum voting period and delay"},"state(uint256)":{"notice":"Gets the state of a proposal"}},"notice":"Venus Governance latest on chain governance includes several new features including variable proposal routes and fine grained pause control. Variable routes for proposals allows for governance paramaters such as voting threshold and timelocks to be customized based on the risk level and impact of the proposal. Added granularity to the pause control mechanism allows governance to pause individual actions on specific markets, which reduces impact on the protocol as a whole. This is particularly useful when applied to isolated pools. * The goal of **Governance** is to increase governance efficiency, while mitigating and eliminating malicious or erroneous proposals. * ## Details * Governance has **3 main contracts**: **GovernanceBravoDelegate, XVSVault, XVS** token. * - XVS token is the protocol token used for protocol users to cast their vote on submitted proposals. - XVSVault is the main staking contract for XVS. Users first stake their XVS in the vault and receive voting power proportional to their staked tokens that they can use to vote on proposals. Users also can choose to delegate their voting power to other users. * # Governor Bravo * `GovernanceBravoDelegate` is main Venus Governance contract. Users interact with it to: - Submit new proposal - Vote on a proposal - Cancel a proposal - Queue a proposal for execution with a timelock executor contract. `GovernanceBravoDelegate` uses the XVSVault to get restrict certain actions based on a user's voting power. The governance rules it inforces are: - A user's voting power must be greater than the `proposalThreshold` to submit a proposal - If a user's voting power drops below certain amount, anyone can cancel the the proposal. The governance guardian and proposal creator can also cancel a proposal at anytime before it is queued for execution. * ## Venus Improvement Proposal * Venus Governance allows for Venus Improvement Proposals (VIPs) to be categorized based on their impact and risk levels. This allows for optimizing proposals execution to allow for things such as expediting interest rate changes and quickly updating risk parameters, while moving slower on other types of proposals that can prevent a larger risk to the protocol and are not urgent. There are three different types of VIPs with different proposal paramters: * - `NORMAL` - `FASTTRACK` - `CRITICAL` * When initializing the `GovernorBravo` contract, the parameters for the three routes are set. The parameters are: * - `votingDelay`: The delay in blocks between submitting a proposal and when voting begins - `votingPeriod`: The number of blocks where voting will be open - `proposalThreshold`: The number of votes required in order submit a proposal * There is also a separate timelock executor contract for each route, which is used to dispatch the VIP for execution, giving even more control over the flow of each type of VIP. * ## Voting * After a VIP is proposed, voting is opened after the `votingDelay` has passed. For example, if `votingDelay = 0`, then voting will begin in the next block after the proposal has been submitted. After the delay, the proposal state is `ACTIVE` and users can cast their vote `for`, `against`, or `abstain`, weighted by their total voting power (tokens + delegated voting power). Abstaining from a voting allows for a vote to be cast and optionally include a comment, without the incrementing for or against vote count. The total voting power for the user is obtained by calling XVSVault's `getPriorVotes`. * `GovernorBravoDelegate` also accepts [EIP-712](https://eips.ethereum.org/EIPS/eip-712) signatures for voting on proposals via the external function `castVoteBySig`. * ## Delegating * A users voting power includes the amount of staked XVS the have staked as well as the votes delegate to them. Delegating is the process of a user loaning their voting power to another, so that the latter has the combined voting power of both users. This is an important feature because it allows for a user to let another user who they trust propose or vote in their place. * The delegation of votes happens through the `XVSVault` contract by calling the `delegate` or `delegateBySig` functions. These same functions can revert vote delegation by calling the same function with a value of `0`."}}},"contracts/Governance/GovernorBravoDelegator.sol":{"GovernorBravoDelegator":{"abi":[{"inputs":[{"internalType":"address","name":"timelock_","type":"address"},{"internalType":"address","name":"xvsVault_","type":"address"},{"internalType":"address","name":"admin_","type":"address"},{"internalType":"address","name":"implementation_","type":"address"},{"internalType":"uint256","name":"votingPeriod_","type":"uint256"},{"internalType":"uint256","name":"votingDelay_","type":"uint256"},{"internalType":"uint256","name":"proposalThreshold_","type":"uint256"},{"internalType":"address","name":"guardian_","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldAdmin","type":"address"},{"indexed":false,"internalType":"address","name":"newAdmin","type":"address"}],"name":"NewAdmin","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldGuardian","type":"address"},{"indexed":false,"internalType":"address","name":"newGuardian","type":"address"}],"name":"NewGuardian","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldImplementation","type":"address"},{"indexed":false,"internalType":"address","name":"newImplementation","type":"address"}],"name":"NewImplementation","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldPendingAdmin","type":"address"},{"indexed":false,"internalType":"address","name":"newPendingAdmin","type":"address"}],"name":"NewPendingAdmin","type":"event"},{"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"},{"indexed":false,"internalType":"uint8","name":"proposalType","type":"uint8"}],"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":"oldMaxOperations","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newMaxOperations","type":"uint256"}],"name":"ProposalMaxOperationsUpdated","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":"uint256","name":"oldProposalThreshold","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newProposalThreshold","type":"uint256"}],"name":"ProposalThresholdSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"votingPeriod","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"votingDelay","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"proposalThreshold","type":"uint256"}],"name":"SetProposalConfigs","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"oldMinVotingPeriod","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newMinVotingPeriod","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"oldmaxVotingPeriod","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newmaxVotingPeriod","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"oldminVotingDelay","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newminVotingDelay","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"oldmaxVotingDelay","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newmaxVotingDelay","type":"uint256"}],"name":"SetValidationParams","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"voter","type":"address"},{"indexed":false,"internalType":"uint256","name":"proposalId","type":"uint256"},{"indexed":false,"internalType":"uint8","name":"support","type":"uint8"},{"indexed":false,"internalType":"uint256","name":"votes","type":"uint256"},{"indexed":false,"internalType":"string","name":"reason","type":"string"}],"name":"VoteCast","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"oldVotingDelay","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newVotingDelay","type":"uint256"}],"name":"VotingDelaySet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"oldVotingPeriod","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newVotingPeriod","type":"uint256"}],"name":"VotingPeriodSet","type":"event"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"constant":false,"inputs":[{"internalType":"address","name":"implementation_","type":"address"}],"name":"_setImplementation","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"admin","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"implementation","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"pendingAdmin","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}],"devdoc":{"author":"Venus","methods":{"_setImplementation(address)":{"params":{"implementation_":"The address of the new implementation for delegation"}}},"title":"GovernorBravoDelegator"},"evm":{"bytecode":{"linkReferences":{},"object":"60806040523480156200001157600080fd5b50604051620009963803806200099683398101604081905262000034916200023f565b600080546001600160a01b031916331790556040516200009e9086906200006a908b908b90899089908990899060240162000438565b60408051601f198184030181529190526020810180516001600160e01b0390811663b1a5d12d60e01b17909152620000e116565b620000b2856001600160e01b036200015d16565b5050600080546001600160a01b0319166001600160a01b039590951694909417909355506200053d9350505050565b60006060836001600160a01b031683604051620000ff919062000404565b600060405180830381855af49150503d80600081146200013c576040519150601f19603f3d011682016040523d82523d6000602084013e62000141565b606091505b5091509150600082141562000157573d60208201fd5b50505050565b6000546001600160a01b03163314620001935760405162461bcd60e51b81526004016200018a90620004b0565b60405180910390fd5b6001600160a01b038116620001bc5760405162461bcd60e51b81526004016200018a906200049e565b600280546001600160a01b038381166001600160a01b031983161792839055604051918116927fd604de94d45953f9138079ec1b82d533cb2160c906d1076d1f7ed54befbca97a9262000213928592169062000419565b60405180910390a15050565b80516200022c8162000518565b92915050565b80516200022c8162000532565b600080600080600080600080610100898b0312156200025d57600080fd5b60006200026b8b8b6200021f565b98505060206200027e8b828c016200021f565b9750506040620002918b828c016200021f565b9650506060620002a48b828c016200021f565b9550506080620002b78b828c0162000232565b94505060a0620002ca8b828c0162000232565b93505060c0620002dd8b828c0162000232565b92505060e0620002f08b828c016200021f565b9150509295985092959890939650565b6200030b81620004d4565b82525050565b60006200031e82620004c2565b6200032a8185620004c6565b93506200033c818560208601620004e9565b9290920192915050565b600062000355604a83620004cb565b6000805160206200097683398151915281527f656d656e746174696f6e3a20696e76616c696420696d706c656d656e746174696020820152696f6e206164647265737360b01b604082015260600192915050565b6000620003b8603683620004cb565b6000805160206200097683398151915281527f656d656e746174696f6e3a2061646d696e206f6e6c7900000000000000000000602082015260400192915050565b6200030b81620004e6565b600062000412828462000311565b9392505050565b6040810162000429828562000300565b62000412602083018462000300565b60c0810162000448828962000300565b62000457602083018862000300565b620004666040830187620003f9565b620004756060830186620003f9565b620004846080830185620003f9565b6200049360a083018462000300565b979650505050505050565b602080825281016200022c8162000346565b602080825281016200022c81620003a9565b5190565b919050565b90815260200190565b60006001600160a01b0382166200022c565b90565b60005b8381101562000506578181015183820152602001620004ec565b83811115620001575750506000910152565b6200052381620004d4565b81146200052f57600080fd5b50565b6200052381620004e6565b610429806200054d6000396000f3fe60806040526004361061003f5760003560e01c806326782247146100ba5780635c60da1b146100e5578063bb913f41146100fa578063f851a4401461011c575b6002546040516000916001600160a01b03169061005f9083903690610347565b600060405180830381855af49150503d806000811461009a576040519150601f19603f3d011682016040523d82523d6000602084013e61009f565b606091505b505090506040513d6000823e8180156100b6573d82f35b3d82fd5b3480156100c657600080fd5b506100cf610131565b6040516100dc9190610354565b60405180910390f35b3480156100f157600080fd5b506100cf610140565b34801561010657600080fd5b5061011a610115366004610229565b61014f565b005b34801561012857600080fd5b506100cf610209565b6001546001600160a01b031681565b6002546001600160a01b031681565b6000546001600160a01b031633146101825760405162461bcd60e51b815260040161017990610394565b60405180910390fd5b6001600160a01b0381166101a85760405162461bcd60e51b815260040161017990610384565b600280546001600160a01b038381166001600160a01b031983161792839055604051918116927fd604de94d45953f9138079ec1b82d533cb2160c906d1076d1f7ed54befbca97a926101fd9285921690610362565b60405180910390a15050565b6000546001600160a01b031681565b8035610223816103cf565b92915050565b60006020828403121561023b57600080fd5b60006102478484610218565b949350505050565b610258816103b2565b82525050565b600061026a83856103a4565b93506102778385846103c3565b50500190565b600061028a604a836103a9565b7f476f7665726e6f72427261766f44656c656761746f723a3a5f736574496d706c81527f656d656e746174696f6e3a20696e76616c696420696d706c656d656e746174696020820152696f6e206164647265737360b01b604082015260600192915050565b60006102fc6036836103a9565b7f476f7665726e6f72427261766f44656c656761746f723a3a5f736574496d706c815275656d656e746174696f6e3a2061646d696e206f6e6c7960501b602082015260400192915050565b600061024782848661025e565b60208101610223828461024f565b60408101610370828561024f565b61037d602083018461024f565b9392505050565b602080825281016102238161027d565b60208082528101610223816102ef565b919050565b90815260200190565b60006001600160a01b038216610223565b82818337506000910152565b6103d8816103b2565b81146103e357600080fd5b5056fea365627a7a72315820f91abc6ed9b674fc1e82aba44e9f3e0194824c51c4e439fd3a085f96ef62e4dd6c6578706572696d656e74616cf564736f6c63430005100040476f7665726e6f72427261766f44656c656761746f723a3a5f736574496d706c","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x996 CODESIZE SUB DUP1 PUSH3 0x996 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH3 0x34 SWAP2 PUSH3 0x23F JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND CALLER OR SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH3 0x9E SWAP1 DUP7 SWAP1 PUSH3 0x6A SWAP1 DUP12 SWAP1 DUP12 SWAP1 DUP10 SWAP1 DUP10 SWAP1 DUP10 SWAP1 DUP10 SWAP1 PUSH1 0x24 ADD PUSH3 0x438 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 SWAP1 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB SWAP1 DUP2 AND PUSH4 0xB1A5D12D PUSH1 0xE0 SHL OR SWAP1 SWAP2 MSTORE PUSH3 0xE1 AND JUMP JUMPDEST PUSH3 0xB2 DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB PUSH3 0x15D AND JUMP JUMPDEST POP POP PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP6 SWAP1 SWAP6 AND SWAP5 SWAP1 SWAP5 OR SWAP1 SWAP4 SSTORE POP PUSH3 0x53D SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH1 0x40 MLOAD PUSH3 0xFF SWAP2 SWAP1 PUSH3 0x404 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH3 0x13C JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH3 0x141 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH1 0x0 DUP3 EQ ISZERO PUSH3 0x157 JUMPI RETURNDATASIZE PUSH1 0x20 DUP3 ADD REVERT JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH3 0x193 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH3 0x18A SWAP1 PUSH3 0x4B0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH3 0x1BC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH3 0x18A SWAP1 PUSH3 0x49E JUMP JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND OR SWAP3 DUP4 SWAP1 SSTORE PUSH1 0x40 MLOAD SWAP2 DUP2 AND SWAP3 PUSH32 0xD604DE94D45953F9138079EC1B82D533CB2160C906D1076D1F7ED54BEFBCA97A SWAP3 PUSH3 0x213 SWAP3 DUP6 SWAP3 AND SWAP1 PUSH3 0x419 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST DUP1 MLOAD PUSH3 0x22C DUP2 PUSH3 0x518 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 MLOAD PUSH3 0x22C DUP2 PUSH3 0x532 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x100 DUP10 DUP12 SUB SLT ISZERO PUSH3 0x25D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH3 0x26B DUP12 DUP12 PUSH3 0x21F JUMP JUMPDEST SWAP9 POP POP PUSH1 0x20 PUSH3 0x27E DUP12 DUP3 DUP13 ADD PUSH3 0x21F JUMP JUMPDEST SWAP8 POP POP PUSH1 0x40 PUSH3 0x291 DUP12 DUP3 DUP13 ADD PUSH3 0x21F JUMP JUMPDEST SWAP7 POP POP PUSH1 0x60 PUSH3 0x2A4 DUP12 DUP3 DUP13 ADD PUSH3 0x21F JUMP JUMPDEST SWAP6 POP POP PUSH1 0x80 PUSH3 0x2B7 DUP12 DUP3 DUP13 ADD PUSH3 0x232 JUMP JUMPDEST SWAP5 POP POP PUSH1 0xA0 PUSH3 0x2CA DUP12 DUP3 DUP13 ADD PUSH3 0x232 JUMP JUMPDEST SWAP4 POP POP PUSH1 0xC0 PUSH3 0x2DD DUP12 DUP3 DUP13 ADD PUSH3 0x232 JUMP JUMPDEST SWAP3 POP POP PUSH1 0xE0 PUSH3 0x2F0 DUP12 DUP3 DUP13 ADD PUSH3 0x21F JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP9 POP SWAP3 SWAP6 SWAP9 SWAP1 SWAP4 SWAP7 POP JUMP JUMPDEST PUSH3 0x30B DUP2 PUSH3 0x4D4 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x31E DUP3 PUSH3 0x4C2 JUMP JUMPDEST PUSH3 0x32A DUP2 DUP6 PUSH3 0x4C6 JUMP JUMPDEST SWAP4 POP PUSH3 0x33C DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH3 0x4E9 JUMP JUMPDEST SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x355 PUSH1 0x4A DUP4 PUSH3 0x4CB JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH3 0x976 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP2 MSTORE PUSH32 0x656D656E746174696F6E3A20696E76616C696420696D706C656D656E74617469 PUSH1 0x20 DUP3 ADD MSTORE PUSH10 0x6F6E2061646472657373 PUSH1 0xB0 SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x3B8 PUSH1 0x36 DUP4 PUSH3 0x4CB JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH3 0x976 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP2 MSTORE PUSH32 0x656D656E746174696F6E3A2061646D696E206F6E6C7900000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH3 0x30B DUP2 PUSH3 0x4E6 JUMP JUMPDEST PUSH1 0x0 PUSH3 0x412 DUP3 DUP5 PUSH3 0x311 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH3 0x429 DUP3 DUP6 PUSH3 0x300 JUMP JUMPDEST PUSH3 0x412 PUSH1 0x20 DUP4 ADD DUP5 PUSH3 0x300 JUMP JUMPDEST PUSH1 0xC0 DUP2 ADD PUSH3 0x448 DUP3 DUP10 PUSH3 0x300 JUMP JUMPDEST PUSH3 0x457 PUSH1 0x20 DUP4 ADD DUP9 PUSH3 0x300 JUMP JUMPDEST PUSH3 0x466 PUSH1 0x40 DUP4 ADD DUP8 PUSH3 0x3F9 JUMP JUMPDEST PUSH3 0x475 PUSH1 0x60 DUP4 ADD DUP7 PUSH3 0x3F9 JUMP JUMPDEST PUSH3 0x484 PUSH1 0x80 DUP4 ADD DUP6 PUSH3 0x3F9 JUMP JUMPDEST PUSH3 0x493 PUSH1 0xA0 DUP4 ADD DUP5 PUSH3 0x300 JUMP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH3 0x22C DUP2 PUSH3 0x346 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH3 0x22C DUP2 PUSH3 0x3A9 JUMP JUMPDEST MLOAD SWAP1 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH3 0x22C JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH3 0x506 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH3 0x4EC JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH3 0x157 JUMPI POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH3 0x523 DUP2 PUSH3 0x4D4 JUMP JUMPDEST DUP2 EQ PUSH3 0x52F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH3 0x523 DUP2 PUSH3 0x4E6 JUMP JUMPDEST PUSH2 0x429 DUP1 PUSH3 0x54D PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x3F JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x26782247 EQ PUSH2 0xBA JUMPI DUP1 PUSH4 0x5C60DA1B EQ PUSH2 0xE5 JUMPI DUP1 PUSH4 0xBB913F41 EQ PUSH2 0xFA JUMPI DUP1 PUSH4 0xF851A440 EQ PUSH2 0x11C JUMPI JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH2 0x5F SWAP1 DUP4 SWAP1 CALLDATASIZE SWAP1 PUSH2 0x347 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x9A JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x9F JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY DUP2 DUP1 ISZERO PUSH2 0xB6 JUMPI RETURNDATASIZE DUP3 RETURN JUMPDEST RETURNDATASIZE DUP3 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xC6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xCF PUSH2 0x131 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xDC SWAP2 SWAP1 PUSH2 0x354 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xF1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xCF PUSH2 0x140 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x106 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x11A PUSH2 0x115 CALLDATASIZE PUSH1 0x4 PUSH2 0x229 JUMP JUMPDEST PUSH2 0x14F JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x128 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xCF PUSH2 0x209 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 DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x182 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x179 SWAP1 PUSH2 0x394 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x1A8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x179 SWAP1 PUSH2 0x384 JUMP JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND OR SWAP3 DUP4 SWAP1 SSTORE PUSH1 0x40 MLOAD SWAP2 DUP2 AND SWAP3 PUSH32 0xD604DE94D45953F9138079EC1B82D533CB2160C906D1076D1F7ED54BEFBCA97A SWAP3 PUSH2 0x1FD SWAP3 DUP6 SWAP3 AND SWAP1 PUSH2 0x362 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x223 DUP2 PUSH2 0x3CF JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x23B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x247 DUP5 DUP5 PUSH2 0x218 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0x258 DUP2 PUSH2 0x3B2 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x26A DUP4 DUP6 PUSH2 0x3A4 JUMP JUMPDEST SWAP4 POP PUSH2 0x277 DUP4 DUP6 DUP5 PUSH2 0x3C3 JUMP JUMPDEST POP POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x28A PUSH1 0x4A DUP4 PUSH2 0x3A9 JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F44656C656761746F723A3A5F736574496D706C DUP2 MSTORE PUSH32 0x656D656E746174696F6E3A20696E76616C696420696D706C656D656E74617469 PUSH1 0x20 DUP3 ADD MSTORE PUSH10 0x6F6E2061646472657373 PUSH1 0xB0 SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2FC PUSH1 0x36 DUP4 PUSH2 0x3A9 JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F44656C656761746F723A3A5F736574496D706C DUP2 MSTORE PUSH22 0x656D656E746174696F6E3A2061646D696E206F6E6C79 PUSH1 0x50 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x247 DUP3 DUP5 DUP7 PUSH2 0x25E JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x223 DUP3 DUP5 PUSH2 0x24F JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0x370 DUP3 DUP6 PUSH2 0x24F JUMP JUMPDEST PUSH2 0x37D PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x24F JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x223 DUP2 PUSH2 0x27D JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x223 DUP2 PUSH2 0x2EF JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x223 JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH2 0x3D8 DUP2 PUSH2 0x3B2 JUMP JUMPDEST DUP2 EQ PUSH2 0x3E3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG3 PUSH6 0x627A7A723158 KECCAK256 0xF9 BYTE 0xBC PUSH15 0xD9B674FC1E82ABA44E9F3E0194824C MLOAD 0xC4 0xE4 CODECOPY REVERT GASPRICE ADDMOD 0x5F SWAP7 0xEF PUSH3 0xE4DD6C PUSH6 0x78706572696D PUSH6 0x6E74616CF564 PUSH20 0x6F6C63430005100040476F7665726E6F72427261 PUSH23 0x6F44656C656761746F723A3A5F736574496D706C000000 ","sourceMap":"209:2821:1:-;;;301:779;8:9:-1;5:2;;;30:1;27;20:12;5:2;301:779:1;;;;;;;;;;;;;;;;;;;;;616:5;:18;;-1:-1:-1;;;;;;616:18:1;624:10;616:18;;;698:294;;645:357;;669:15;;698:294;;818:9;;845;;872:13;;903:12;;933:18;;969:9;;698:294;;;;;;;;-1:-1:-1;;26:21;;;22:32;6:49;;698:294:1;;;49:4:-1;25:18;;61:17;;-1:-1;;;;;182:15;;;-1:-1;;;179:29;160:49;;;645:10:1;:357;:::i;:::-;1013:35;1032:15;-1:-1:-1;;;;;1013:18:1;:35;:::i;:::-;-1:-1:-1;;1059:5:1;:14;;-1:-1:-1;;;;;;1059:14:1;-1:-1:-1;;;;;1059:14:1;;;;;;;;;;;-1:-1:-1;209:2821:1;;-1:-1:-1;;;;209:2821:1;2047:285;2122:12;2136:23;2163:6;-1:-1:-1;;;;;2163:19:1;2183:4;2163:25;;;;;;;;;;;;;;;;;;;;;;14:1:-1;21;16:31;;;;75:4;69:11;64:16;;144:4;140:9;133:4;115:16;111:27;107:43;104:1;100:51;94:4;87:65;169:16;166:1;159:27;225:16;222:1;215:4;212:1;208:12;193:49;7:242;;16:31;36:4;31:9;;7:242;;2121:67:1;;;;2236:1;2227:7;2224:14;2221:2;;;2287:14;2280:4;2268:10;2264:21;2257:45;2221:2;2207:119;;;;:::o;1266:486::-;1358:5;;-1:-1:-1;;;;;1358:5:1;1344:10;:19;1336:86;;;;-1:-1:-1;;;1336:86:1;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1453:29:1;;1432:150;;;;-1:-1:-1;;;1432:150:1;;;;;;;;;1621:14;;;-1:-1:-1;;;;;1645:32:1;;;-1:-1:-1;;;;;;1645:32:1;;;;;;;1693:52;;1621:14;;;;1693:52;;;;1621:14;;1730;;1693:52;;;;;;;;;;1266:486;;:::o;5:134:-1:-;83:13;;101:33;83:13;101:33;;;68:71;;;;;146:134;224:13;;242:33;224:13;242:33;;287:1220;;;;;;;;;521:3;509:9;500:7;496:23;492:33;489:2;;;538:1;535;528:12;489:2;573:1;590:64;646:7;626:9;590:64;;;580:74;;552:108;691:2;709:64;765:7;756:6;745:9;741:22;709:64;;;699:74;;670:109;810:2;828:64;884:7;875:6;864:9;860:22;828:64;;;818:74;;789:109;929:2;947:64;1003:7;994:6;983:9;979:22;947:64;;;937:74;;908:109;1048:3;1067:64;1123:7;1114:6;1103:9;1099:22;1067:64;;;1057:74;;1027:110;1168:3;1187:64;1243:7;1234:6;1223:9;1219:22;1187:64;;;1177:74;;1147:110;1288:3;1307:64;1363:7;1354:6;1343:9;1339:22;1307:64;;;1297:74;;1267:110;1408:3;1427:64;1483:7;1474:6;1463:9;1459:22;1427:64;;;1417:74;;1387:110;483:1024;;;;;;;;;;;;1514:113;1597:24;1615:5;1597:24;;;1592:3;1585:37;1579:48;;;1634:356;;1762:38;1794:5;1762:38;;;1812:88;1893:6;1888:3;1812:88;;;1805:95;;1905:52;1950:6;1945:3;1938:4;1931:5;1927:16;1905:52;;;1969:16;;;;;1742:248;-1:-1;;1742:248;1998:448;;2158:67;2222:2;2217:3;2158:67;;;-1:-1;;;;;;;;;;;2238:55;;2327:34;2322:2;2313:12;;2306:56;-1:-1;;;2391:2;2382:12;;2375:34;2437:2;2428:12;;2144:302;-1:-1;;2144:302;2455:391;;2615:67;2679:2;2674:3;2615:67;;;-1:-1;;;;;;;;;;;2695:55;;2784:24;2779:2;2770:12;;2763:46;2837:2;2828:12;;2601:245;-1:-1;;2601:245;2854:113;2937:24;2955:5;2937:24;;2974:262;;3118:93;3207:3;3198:6;3118:93;;;3111:100;3099:137;-1:-1;;;3099:137;3243:324;3389:2;3374:18;;3403:71;3378:9;3447:6;3403:71;;;3485:72;3553:2;3542:9;3538:18;3529:6;3485:72;;3574:771;3832:3;3817:19;;3847:71;3821:9;3891:6;3847:71;;;3929:72;3997:2;3986:9;3982:18;3973:6;3929:72;;;4012;4080:2;4069:9;4065:18;4056:6;4012:72;;;4095;4163:2;4152:9;4148:18;4139:6;4095:72;;;4178:73;4246:3;4235:9;4231:19;4222:6;4178:73;;;4262;4330:3;4319:9;4315:19;4306:6;4262:73;;;3803:542;;;;;;;;;;4352:407;4543:2;4557:47;;;4528:18;;4618:131;4528:18;4618:131;;4766:407;4957:2;4971:47;;;4942:18;;5032:131;4942:18;5032:131;;5180:121;5267:12;;5238:63;5309:144;5444:3;5422:31;-1:-1;5422:31;5462:163;5565:19;;;5614:4;5605:14;;5558:67;5633:91;;-1:-1;;;;;5793:54;;5695:24;5776:76;5859:72;5921:5;5904:27;5939:268;6004:1;6011:101;6025:6;6022:1;6019:13;6011:101;;;6092:11;;;6086:18;6073:11;;;6066:39;6047:2;6040:10;6011:101;;;6127:6;6124:1;6121:13;6118:2;;;-1:-1;;6192:1;6174:16;;6167:27;5988:219;6215:117;6284:24;6302:5;6284:24;;;6277:5;6274:35;6264:2;;6323:1;6320;6313:12;6264:2;6258:74;;6339:117;6408:24;6426:5;6408:24;;6382:74;209:2821:1;;;;;;"},"deployedBytecode":{"linkReferences":{},"object":"60806040526004361061003f5760003560e01c806326782247146100ba5780635c60da1b146100e5578063bb913f41146100fa578063f851a4401461011c575b6002546040516000916001600160a01b03169061005f9083903690610347565b600060405180830381855af49150503d806000811461009a576040519150601f19603f3d011682016040523d82523d6000602084013e61009f565b606091505b505090506040513d6000823e8180156100b6573d82f35b3d82fd5b3480156100c657600080fd5b506100cf610131565b6040516100dc9190610354565b60405180910390f35b3480156100f157600080fd5b506100cf610140565b34801561010657600080fd5b5061011a610115366004610229565b61014f565b005b34801561012857600080fd5b506100cf610209565b6001546001600160a01b031681565b6002546001600160a01b031681565b6000546001600160a01b031633146101825760405162461bcd60e51b815260040161017990610394565b60405180910390fd5b6001600160a01b0381166101a85760405162461bcd60e51b815260040161017990610384565b600280546001600160a01b038381166001600160a01b031983161792839055604051918116927fd604de94d45953f9138079ec1b82d533cb2160c906d1076d1f7ed54befbca97a926101fd9285921690610362565b60405180910390a15050565b6000546001600160a01b031681565b8035610223816103cf565b92915050565b60006020828403121561023b57600080fd5b60006102478484610218565b949350505050565b610258816103b2565b82525050565b600061026a83856103a4565b93506102778385846103c3565b50500190565b600061028a604a836103a9565b7f476f7665726e6f72427261766f44656c656761746f723a3a5f736574496d706c81527f656d656e746174696f6e3a20696e76616c696420696d706c656d656e746174696020820152696f6e206164647265737360b01b604082015260600192915050565b60006102fc6036836103a9565b7f476f7665726e6f72427261766f44656c656761746f723a3a5f736574496d706c815275656d656e746174696f6e3a2061646d696e206f6e6c7960501b602082015260400192915050565b600061024782848661025e565b60208101610223828461024f565b60408101610370828561024f565b61037d602083018461024f565b9392505050565b602080825281016102238161027d565b60208082528101610223816102ef565b919050565b90815260200190565b60006001600160a01b038216610223565b82818337506000910152565b6103d8816103b2565b81146103e357600080fd5b5056fea365627a7a72315820f91abc6ed9b674fc1e82aba44e9f3e0194824c51c4e439fd3a085f96ef62e4dd6c6578706572696d656e74616cf564736f6c63430005100040","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x3F JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x26782247 EQ PUSH2 0xBA JUMPI DUP1 PUSH4 0x5C60DA1B EQ PUSH2 0xE5 JUMPI DUP1 PUSH4 0xBB913F41 EQ PUSH2 0xFA JUMPI DUP1 PUSH4 0xF851A440 EQ PUSH2 0x11C JUMPI JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH2 0x5F SWAP1 DUP4 SWAP1 CALLDATASIZE SWAP1 PUSH2 0x347 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x9A JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x9F JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY DUP2 DUP1 ISZERO PUSH2 0xB6 JUMPI RETURNDATASIZE DUP3 RETURN JUMPDEST RETURNDATASIZE DUP3 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xC6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xCF PUSH2 0x131 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xDC SWAP2 SWAP1 PUSH2 0x354 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xF1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xCF PUSH2 0x140 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x106 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x11A PUSH2 0x115 CALLDATASIZE PUSH1 0x4 PUSH2 0x229 JUMP JUMPDEST PUSH2 0x14F JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x128 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xCF PUSH2 0x209 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 DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x182 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x179 SWAP1 PUSH2 0x394 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x1A8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x179 SWAP1 PUSH2 0x384 JUMP JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND OR SWAP3 DUP4 SWAP1 SSTORE PUSH1 0x40 MLOAD SWAP2 DUP2 AND SWAP3 PUSH32 0xD604DE94D45953F9138079EC1B82D533CB2160C906D1076D1F7ED54BEFBCA97A SWAP3 PUSH2 0x1FD SWAP3 DUP6 SWAP3 AND SWAP1 PUSH2 0x362 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x223 DUP2 PUSH2 0x3CF JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x23B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x247 DUP5 DUP5 PUSH2 0x218 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0x258 DUP2 PUSH2 0x3B2 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x26A DUP4 DUP6 PUSH2 0x3A4 JUMP JUMPDEST SWAP4 POP PUSH2 0x277 DUP4 DUP6 DUP5 PUSH2 0x3C3 JUMP JUMPDEST POP POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x28A PUSH1 0x4A DUP4 PUSH2 0x3A9 JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F44656C656761746F723A3A5F736574496D706C DUP2 MSTORE PUSH32 0x656D656E746174696F6E3A20696E76616C696420696D706C656D656E74617469 PUSH1 0x20 DUP3 ADD MSTORE PUSH10 0x6F6E2061646472657373 PUSH1 0xB0 SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2FC PUSH1 0x36 DUP4 PUSH2 0x3A9 JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F44656C656761746F723A3A5F736574496D706C DUP2 MSTORE PUSH22 0x656D656E746174696F6E3A2061646D696E206F6E6C79 PUSH1 0x50 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x247 DUP3 DUP5 DUP7 PUSH2 0x25E JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x223 DUP3 DUP5 PUSH2 0x24F JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0x370 DUP3 DUP6 PUSH2 0x24F JUMP JUMPDEST PUSH2 0x37D PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x24F JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x223 DUP2 PUSH2 0x27D JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x223 DUP2 PUSH2 0x2EF JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x223 JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH2 0x3D8 DUP2 PUSH2 0x3B2 JUMP JUMPDEST DUP2 EQ PUSH2 0x3E3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG3 PUSH6 0x627A7A723158 KECCAK256 0xF9 BYTE 0xBC PUSH15 0xD9B674FC1E82ABA44E9F3E0194824C MLOAD 0xC4 0xE4 CODECOPY REVERT GASPRICE ADDMOD 0x5F SWAP7 0xEF PUSH3 0xE4DD6C PUSH6 0x78706572696D PUSH6 0x6E74616CF564 PUSH20 0x6F6C634300051000400000000000000000000000 ","sourceMap":"209:2821:1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2645:14;;:37;;2627:12;;-1:-1:-1;;;;;2645:14:1;;:37;;2627:12;;2673:8;;2645:37;;;;;;;;;;;;;;;;;14:1:-1;21;16:31;;;;75:4;69:11;64:16;;144:4;140:9;133:4;115:16;111:27;107:43;104:1;100:51;94:4;87:65;169:16;166:1;159:27;225:16;222:1;215:4;212:1;208:12;193:49;7:242;;16:31;36:4;31:9;;7:242;;2626:56:1;;;2742:4;2736:11;2792:14;2789:1;2775:12;2760:47;2828:7;2848:75;;;;2983:14;2969:12;2962:36;2848:75;2894:14;2880:12;2873:36;3389:27:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3389:27:2;;;:::i;:::-;;;;;;;;;;;;;;;;3465:29;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3465:29:2;;;:::i;1266:486:1:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1266:486:1;;;;;;;;:::i;:::-;;3306:20:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3306:20:2;;;:::i;3389:27::-;;;-1:-1:-1;;;;;3389:27:2;;:::o;3465:29::-;;;-1:-1:-1;;;;;3465:29:2;;:::o;1266:486:1:-;1358:5;;-1:-1:-1;;;;;1358:5:1;1344:10;:19;1336:86;;;;-1:-1:-1;;;1336:86:1;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1453:29:1;;1432:150;;;;-1:-1:-1;;;1432:150:1;;;;;;;;;1621:14;;;-1:-1:-1;;;;;1645:32:1;;;-1:-1:-1;;;;;;1645:32:1;;;;;;;1693:52;;1621:14;;;;1693:52;;;;1621:14;;1730;;1693:52;;;;;;;;;;1266:486;;:::o;3306:20:2:-;;;-1:-1:-1;;;;;3306:20:2;;:::o;5:130:-1:-;72:20;;97:33;72:20;97:33;;;57:78;;;;;142:241;;246:2;234:9;225:7;221:23;217:32;214:2;;;262:1;259;252:12;214:2;297:1;314:53;359:7;339:9;314:53;;;304:63;208:175;-1:-1;;;;208:175;390:113;473:24;491:5;473:24;;;468:3;461:37;455:48;;;533:310;;665:88;746:6;741:3;665:88;;;658:95;;765:43;801:6;796:3;789:5;765:43;;;-1:-1;;821:16;;651:192;852:448;;1012:67;1076:2;1071:3;1012:67;;;1112:34;1092:55;;1181:34;1176:2;1167:12;;1160:56;-1:-1;;;1245:2;1236:12;;1229:34;1291:2;1282:12;;998:302;-1:-1;;998:302;1309:391;;1469:67;1533:2;1528:3;1469:67;;;1569:34;1549:55;;-1:-1;;;1633:2;1624:12;;1617:46;1691:2;1682:12;;1455:245;-1:-1;;1455:245;1708:282;;1862:103;1961:3;1952:6;1944;1862:103;;1997:213;2115:2;2100:18;;2129:71;2104:9;2173:6;2129:71;;2217:324;2363:2;2348:18;;2377:71;2352:9;2421:6;2377:71;;;2459:72;2527:2;2516:9;2512:18;2503:6;2459:72;;;2334:207;;;;;;2548:407;2739:2;2753:47;;;2724:18;;2814:131;2724:18;2814:131;;2962:407;3153:2;3167:47;;;3138:18;;3228:131;3138:18;3228:131;;3377:144;3512:3;3490:31;-1:-1;3490:31;3530:163;3633:19;;;3682:4;3673:14;;3626:67;3701:91;;-1:-1;;;;;3861:54;;3763:24;3844:76;3928:145;4009:6;4004:3;3999;3986:30;-1:-1;4065:1;4047:16;;4040:27;3979:94;4081:117;4150:24;4168:5;4150:24;;;4143:5;4140:35;4130:2;;4189:1;4186;4179:12;4130:2;4124:74;"},"gasEstimates":{"creation":{"codeDepositCost":"213000","executionCost":"infinite","totalCost":"infinite"},"external":{"":"infinite","_setImplementation(address)":"infinite","admin()":"infinite","implementation()":"infinite","pendingAdmin()":"infinite"},"internal":{"delegateTo(address,bytes memory)":"infinite"}},"methodIdentifiers":{"_setImplementation(address)":"bb913f41","admin()":"f851a440","implementation()":"5c60da1b","pendingAdmin()":"26782247"}},"metadata":"{\"compiler\":{\"version\":\"0.5.16+commit.9c3226ce\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"timelock_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"xvsVault_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"admin_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"implementation_\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"votingPeriod_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"votingDelay_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"proposalThreshold_\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"guardian_\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"oldAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"NewAdmin\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"oldGuardian\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newGuardian\",\"type\":\"address\"}],\"name\":\"NewGuardian\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"oldImplementation\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"}],\"name\":\"NewImplementation\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"oldPendingAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newPendingAdmin\",\"type\":\"address\"}],\"name\":\"NewPendingAdmin\",\"type\":\"event\"},{\"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\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"proposalType\",\"type\":\"uint8\"}],\"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\":\"oldMaxOperations\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newMaxOperations\",\"type\":\"uint256\"}],\"name\":\"ProposalMaxOperationsUpdated\",\"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\":\"uint256\",\"name\":\"oldProposalThreshold\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newProposalThreshold\",\"type\":\"uint256\"}],\"name\":\"ProposalThresholdSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"votingPeriod\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"votingDelay\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalThreshold\",\"type\":\"uint256\"}],\"name\":\"SetProposalConfigs\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldMinVotingPeriod\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newMinVotingPeriod\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldmaxVotingPeriod\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newmaxVotingPeriod\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldminVotingDelay\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newminVotingDelay\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldmaxVotingDelay\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newmaxVotingDelay\",\"type\":\"uint256\"}],\"name\":\"SetValidationParams\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"voter\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"votes\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"VoteCast\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldVotingDelay\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newVotingDelay\",\"type\":\"uint256\"}],\"name\":\"VotingDelaySet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldVotingPeriod\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newVotingPeriod\",\"type\":\"uint256\"}],\"name\":\"VotingPeriodSet\",\"type\":\"event\"},{\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation_\",\"type\":\"address\"}],\"name\":\"_setImplementation\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"admin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"implementation\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"pendingAdmin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Venus\",\"methods\":{\"_setImplementation(address)\":{\"params\":{\"implementation_\":\"The address of the new implementation for delegation\"}}},\"title\":\"GovernorBravoDelegator\"},\"userdoc\":{\"methods\":{\"_setImplementation(address)\":{\"notice\":\"Called by the admin to update the implementation of the delegator\"}},\"notice\":\"The `GovernorBravoDelegator` contract.\"}},\"settings\":{\"compilationTarget\":{\"contracts/Governance/GovernorBravoDelegator.sol\":\"GovernorBravoDelegator\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/Governance/GovernorBravoDelegator.sol\":{\"content\":\"pragma solidity ^0.5.16;\\npragma experimental ABIEncoderV2;\\n\\nimport \\\"./GovernorBravoInterfaces.sol\\\";\\n\\n/**\\n * @title GovernorBravoDelegator\\n * @author Venus\\n * @notice The `GovernorBravoDelegator` contract.\\n */\\ncontract GovernorBravoDelegator is GovernorBravoDelegatorStorage, GovernorBravoEvents {\\n    constructor(\\n        address timelock_,\\n        address xvsVault_,\\n        address admin_,\\n        address implementation_,\\n        uint votingPeriod_,\\n        uint votingDelay_,\\n        uint proposalThreshold_,\\n        address guardian_\\n    ) public {\\n        // Admin set to msg.sender for initialization\\n        admin = msg.sender;\\n\\n        delegateTo(\\n            implementation_,\\n            abi.encodeWithSignature(\\n                \\\"initialize(address,address,uint256,uint256,uint256,address)\\\",\\n                timelock_,\\n                xvsVault_,\\n                votingPeriod_,\\n                votingDelay_,\\n                proposalThreshold_,\\n                guardian_\\n            )\\n        );\\n\\n        _setImplementation(implementation_);\\n\\n        admin = admin_;\\n    }\\n\\n    /**\\n     * @notice Called by the admin to update the implementation of the delegator\\n     * @param implementation_ The address of the new implementation for delegation\\n     */\\n    function _setImplementation(address implementation_) public {\\n        require(msg.sender == admin, \\\"GovernorBravoDelegator::_setImplementation: admin only\\\");\\n        require(\\n            implementation_ != address(0),\\n            \\\"GovernorBravoDelegator::_setImplementation: invalid implementation address\\\"\\n        );\\n\\n        address oldImplementation = implementation;\\n        implementation = implementation_;\\n\\n        emit NewImplementation(oldImplementation, implementation);\\n    }\\n\\n    /**\\n     * @notice Internal method to delegate execution to another contract\\n     * @dev It returns to the external caller whatever the implementation returns or forwards reverts\\n     * @param callee The contract to delegatecall\\n     * @param data The raw data to delegatecall\\n     */\\n    function delegateTo(address callee, bytes memory data) internal {\\n        (bool success, bytes memory returnData) = callee.delegatecall(data);\\n        assembly {\\n            if eq(success, 0) {\\n                revert(add(returnData, 0x20), returndatasize)\\n            }\\n        }\\n    }\\n\\n    /**\\n     * @dev Delegates execution to an implementation contract.\\n     * It returns to the external caller whatever the implementation returns\\n     * or forwards reverts.\\n     */\\n    function() external payable {\\n        // delegate all other functions to current implementation\\n        (bool success, ) = implementation.delegatecall(msg.data);\\n\\n        assembly {\\n            let free_mem_ptr := mload(0x40)\\n            returndatacopy(free_mem_ptr, 0, returndatasize)\\n\\n            switch success\\n            case 0 {\\n                revert(free_mem_ptr, returndatasize)\\n            }\\n            default {\\n                return(free_mem_ptr, returndatasize)\\n            }\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0x25d29b071c68c5dcf13b9f3d8a416138e9d61244f84b69e20f72d696e567c303\"},\"contracts/Governance/GovernorBravoInterfaces.sol\":{\"content\":\"pragma solidity ^0.5.16;\\npragma experimental ABIEncoderV2;\\n\\n/**\\n * @title GovernorBravoEvents\\n * @author Venus\\n * @notice Set of events emitted by the GovernorBravo contracts.\\n */\\ncontract GovernorBravoEvents {\\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        uint8 proposalType\\n    );\\n\\n    /// @notice An event emitted when a vote has been cast on a proposal\\n    /// @param voter The address which casted a vote\\n    /// @param proposalId The proposal id which was voted on\\n    /// @param support Support value for the vote. 0=against, 1=for, 2=abstain\\n    /// @param votes Number of votes which were cast by the voter\\n    /// @param reason The reason given for the vote by the voter\\n    event VoteCast(address indexed voter, uint proposalId, uint8 support, uint votes, string reason);\\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    /// @notice An event emitted when the voting delay is set\\n    event VotingDelaySet(uint oldVotingDelay, uint newVotingDelay);\\n\\n    /// @notice An event emitted when the voting period is set\\n    event VotingPeriodSet(uint oldVotingPeriod, uint newVotingPeriod);\\n\\n    /// @notice Emitted when implementation is changed\\n    event NewImplementation(address oldImplementation, address newImplementation);\\n\\n    /// @notice Emitted when proposal threshold is set\\n    event ProposalThresholdSet(uint oldProposalThreshold, uint newProposalThreshold);\\n\\n    /// @notice Emitted when pendingAdmin is changed\\n    event NewPendingAdmin(address oldPendingAdmin, address newPendingAdmin);\\n\\n    /// @notice Emitted when pendingAdmin is accepted, which means admin is updated\\n    event NewAdmin(address oldAdmin, address newAdmin);\\n\\n    /// @notice Emitted when the new guardian address is set\\n    event NewGuardian(address oldGuardian, address newGuardian);\\n\\n    /// @notice Emitted when the maximum number of operations in one proposal is updated\\n    event ProposalMaxOperationsUpdated(uint oldMaxOperations, uint newMaxOperations);\\n\\n    /// @notice Emitted when the new validation params are set\\n    event SetValidationParams(\\n        uint256 oldMinVotingPeriod,\\n        uint256 newMinVotingPeriod,\\n        uint256 oldmaxVotingPeriod,\\n        uint256 newmaxVotingPeriod,\\n        uint256 oldminVotingDelay,\\n        uint256 newminVotingDelay,\\n        uint256 oldmaxVotingDelay,\\n        uint256 newmaxVotingDelay\\n    );\\n\\n    /// @notice Emitted when new Proposal configs added\\n    event SetProposalConfigs(uint256 votingPeriod, uint256 votingDelay, uint256 proposalThreshold);\\n}\\n\\n/**\\n * @title GovernorBravoDelegatorStorage\\n * @author Venus\\n * @notice Storage layout of the `GovernorBravoDelegator` contract\\n */\\ncontract GovernorBravoDelegatorStorage {\\n    /// @notice Administrator for this contract\\n    address public admin;\\n\\n    /// @notice Pending administrator for this contract\\n    address public pendingAdmin;\\n\\n    /// @notice Active brains of Governor\\n    address public implementation;\\n}\\n\\n/**\\n * @title GovernorBravoDelegateStorageV1\\n * @dev For future upgrades, do not change GovernorBravoDelegateStorageV1. Create a new\\n * contract which implements GovernorBravoDelegateStorageV1 and following the naming convention\\n * GovernorBravoDelegateStorageVX.\\n */\\ncontract GovernorBravoDelegateStorageV1 is GovernorBravoDelegatorStorage {\\n    /// @notice DEPRECATED The delay before voting on a proposal may take place, once proposed, in blocks\\n    uint public votingDelay;\\n\\n    /// @notice DEPRECATED The duration of voting on a proposal, in blocks\\n    uint public votingPeriod;\\n\\n    /// @notice DEPRECATED The number of votes required in order for a voter to become a proposer\\n    uint public proposalThreshold;\\n\\n    /// @notice Initial proposal id set at become\\n    uint public initialProposalId;\\n\\n    /// @notice The total number of proposals\\n    uint public proposalCount;\\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    XvsVaultInterface public xvsVault;\\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    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 Current number of votes for abstaining for this proposal\\n        uint abstainVotes;\\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        /// @notice The type of the proposal\\n        uint8 proposalType;\\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 or abstains\\n        uint8 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 maximum number of actions that can be included in a proposal\\n    uint public proposalMaxOperations;\\n\\n    /// @notice A privileged role that can cancel any proposal\\n    address public guardian;\\n}\\n\\n/**\\n * @title GovernorBravoDelegateStorageV2\\n * @dev For future upgrades, do not change GovernorBravoDelegateStorageV2. Create a new\\n * contract which implements GovernorBravoDelegateStorageV2 and following the naming convention\\n * GovernorBravoDelegateStorageVX.\\n */\\ncontract GovernorBravoDelegateStorageV2 is GovernorBravoDelegateStorageV1 {\\n    enum ProposalType {\\n        NORMAL,\\n        FASTTRACK,\\n        CRITICAL\\n    }\\n\\n    struct ProposalConfig {\\n        /// @notice The delay before voting on a proposal may take place, once proposed, in blocks\\n        uint256 votingDelay;\\n        /// @notice The duration of voting on a proposal, in blocks\\n        uint256 votingPeriod;\\n        /// @notice The number of votes required in order for a voter to become a proposer\\n        uint256 proposalThreshold;\\n    }\\n\\n    /// @notice mapping containing configuration for each proposal type\\n    mapping(uint => ProposalConfig) public proposalConfigs;\\n\\n    /// @notice mapping containing Timelock addresses for each proposal type\\n    mapping(uint => TimelockInterface) public proposalTimelocks;\\n}\\n\\n/**\\n * @title GovernorBravoDelegateStorageV3\\n * @dev For future upgrades, do not change GovernorBravoDelegateStorageV3. Create a new\\n * contract which implements GovernorBravoDelegateStorageV3 and following the naming convention\\n * GovernorBravoDelegateStorageVX.\\n */\\ncontract GovernorBravoDelegateStorageV3 is GovernorBravoDelegateStorageV2 {\\n    struct ValidationParams {\\n        uint256 minVotingPeriod;\\n        uint256 maxVotingPeriod;\\n        uint256 minVotingDelay;\\n        uint256 maxVotingDelay;\\n    }\\n    /// @notice Stores the current minimum and maximum values of voting delay and voting period\\n    ValidationParams public validationParams;\\n}\\n\\n/**\\n * @title TimelockInterface\\n * @author Venus\\n * @notice Interface implemented by the Timelock contract.\\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 XvsVaultInterface {\\n    function getPriorVotes(address account, uint blockNumber) external view returns (uint96);\\n}\\n\\ninterface GovernorAlphaInterface {\\n    /// @notice The total number of proposals\\n    function proposalCount() external returns (uint);\\n}\\n\",\"keccak256\":\"0x62c89309d4351dbeb5516465211fab0b566d83d60dc0148377deaad1f1929b85\"}},\"version\":1}","storageLayout":{"storage":[{"astId":1818,"contract":"contracts/Governance/GovernorBravoDelegator.sol:GovernorBravoDelegator","label":"admin","offset":0,"slot":"0","type":"t_address"},{"astId":1820,"contract":"contracts/Governance/GovernorBravoDelegator.sol:GovernorBravoDelegator","label":"pendingAdmin","offset":0,"slot":"1","type":"t_address"},{"astId":1822,"contract":"contracts/Governance/GovernorBravoDelegator.sol:GovernorBravoDelegator","label":"implementation","offset":0,"slot":"2","type":"t_address"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"}}},"userdoc":{"methods":{"_setImplementation(address)":{"notice":"Called by the admin to update the implementation of the delegator"}},"notice":"The `GovernorBravoDelegator` contract."}}},"contracts/Governance/GovernorBravoInterfaces.sol":{"GovernorAlphaInterface":{"abi":[{"constant":false,"inputs":[],"name":"proposalCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"}],"devdoc":{"methods":{}},"evm":{"bytecode":{"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"proposalCount()":"da35c664"}},"metadata":"{\"compiler\":{\"version\":\"0.5.16+commit.9c3226ce\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":false,\"inputs\":[],\"name\":\"proposalCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{\"proposalCount()\":{\"notice\":\"The total number of proposals\"}}}},\"settings\":{\"compilationTarget\":{\"contracts/Governance/GovernorBravoInterfaces.sol\":\"GovernorAlphaInterface\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/Governance/GovernorBravoInterfaces.sol\":{\"content\":\"pragma solidity ^0.5.16;\\npragma experimental ABIEncoderV2;\\n\\n/**\\n * @title GovernorBravoEvents\\n * @author Venus\\n * @notice Set of events emitted by the GovernorBravo contracts.\\n */\\ncontract GovernorBravoEvents {\\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        uint8 proposalType\\n    );\\n\\n    /// @notice An event emitted when a vote has been cast on a proposal\\n    /// @param voter The address which casted a vote\\n    /// @param proposalId The proposal id which was voted on\\n    /// @param support Support value for the vote. 0=against, 1=for, 2=abstain\\n    /// @param votes Number of votes which were cast by the voter\\n    /// @param reason The reason given for the vote by the voter\\n    event VoteCast(address indexed voter, uint proposalId, uint8 support, uint votes, string reason);\\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    /// @notice An event emitted when the voting delay is set\\n    event VotingDelaySet(uint oldVotingDelay, uint newVotingDelay);\\n\\n    /// @notice An event emitted when the voting period is set\\n    event VotingPeriodSet(uint oldVotingPeriod, uint newVotingPeriod);\\n\\n    /// @notice Emitted when implementation is changed\\n    event NewImplementation(address oldImplementation, address newImplementation);\\n\\n    /// @notice Emitted when proposal threshold is set\\n    event ProposalThresholdSet(uint oldProposalThreshold, uint newProposalThreshold);\\n\\n    /// @notice Emitted when pendingAdmin is changed\\n    event NewPendingAdmin(address oldPendingAdmin, address newPendingAdmin);\\n\\n    /// @notice Emitted when pendingAdmin is accepted, which means admin is updated\\n    event NewAdmin(address oldAdmin, address newAdmin);\\n\\n    /// @notice Emitted when the new guardian address is set\\n    event NewGuardian(address oldGuardian, address newGuardian);\\n\\n    /// @notice Emitted when the maximum number of operations in one proposal is updated\\n    event ProposalMaxOperationsUpdated(uint oldMaxOperations, uint newMaxOperations);\\n\\n    /// @notice Emitted when the new validation params are set\\n    event SetValidationParams(\\n        uint256 oldMinVotingPeriod,\\n        uint256 newMinVotingPeriod,\\n        uint256 oldmaxVotingPeriod,\\n        uint256 newmaxVotingPeriod,\\n        uint256 oldminVotingDelay,\\n        uint256 newminVotingDelay,\\n        uint256 oldmaxVotingDelay,\\n        uint256 newmaxVotingDelay\\n    );\\n\\n    /// @notice Emitted when new Proposal configs added\\n    event SetProposalConfigs(uint256 votingPeriod, uint256 votingDelay, uint256 proposalThreshold);\\n}\\n\\n/**\\n * @title GovernorBravoDelegatorStorage\\n * @author Venus\\n * @notice Storage layout of the `GovernorBravoDelegator` contract\\n */\\ncontract GovernorBravoDelegatorStorage {\\n    /// @notice Administrator for this contract\\n    address public admin;\\n\\n    /// @notice Pending administrator for this contract\\n    address public pendingAdmin;\\n\\n    /// @notice Active brains of Governor\\n    address public implementation;\\n}\\n\\n/**\\n * @title GovernorBravoDelegateStorageV1\\n * @dev For future upgrades, do not change GovernorBravoDelegateStorageV1. Create a new\\n * contract which implements GovernorBravoDelegateStorageV1 and following the naming convention\\n * GovernorBravoDelegateStorageVX.\\n */\\ncontract GovernorBravoDelegateStorageV1 is GovernorBravoDelegatorStorage {\\n    /// @notice DEPRECATED The delay before voting on a proposal may take place, once proposed, in blocks\\n    uint public votingDelay;\\n\\n    /// @notice DEPRECATED The duration of voting on a proposal, in blocks\\n    uint public votingPeriod;\\n\\n    /// @notice DEPRECATED The number of votes required in order for a voter to become a proposer\\n    uint public proposalThreshold;\\n\\n    /// @notice Initial proposal id set at become\\n    uint public initialProposalId;\\n\\n    /// @notice The total number of proposals\\n    uint public proposalCount;\\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    XvsVaultInterface public xvsVault;\\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    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 Current number of votes for abstaining for this proposal\\n        uint abstainVotes;\\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        /// @notice The type of the proposal\\n        uint8 proposalType;\\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 or abstains\\n        uint8 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 maximum number of actions that can be included in a proposal\\n    uint public proposalMaxOperations;\\n\\n    /// @notice A privileged role that can cancel any proposal\\n    address public guardian;\\n}\\n\\n/**\\n * @title GovernorBravoDelegateStorageV2\\n * @dev For future upgrades, do not change GovernorBravoDelegateStorageV2. Create a new\\n * contract which implements GovernorBravoDelegateStorageV2 and following the naming convention\\n * GovernorBravoDelegateStorageVX.\\n */\\ncontract GovernorBravoDelegateStorageV2 is GovernorBravoDelegateStorageV1 {\\n    enum ProposalType {\\n        NORMAL,\\n        FASTTRACK,\\n        CRITICAL\\n    }\\n\\n    struct ProposalConfig {\\n        /// @notice The delay before voting on a proposal may take place, once proposed, in blocks\\n        uint256 votingDelay;\\n        /// @notice The duration of voting on a proposal, in blocks\\n        uint256 votingPeriod;\\n        /// @notice The number of votes required in order for a voter to become a proposer\\n        uint256 proposalThreshold;\\n    }\\n\\n    /// @notice mapping containing configuration for each proposal type\\n    mapping(uint => ProposalConfig) public proposalConfigs;\\n\\n    /// @notice mapping containing Timelock addresses for each proposal type\\n    mapping(uint => TimelockInterface) public proposalTimelocks;\\n}\\n\\n/**\\n * @title GovernorBravoDelegateStorageV3\\n * @dev For future upgrades, do not change GovernorBravoDelegateStorageV3. Create a new\\n * contract which implements GovernorBravoDelegateStorageV3 and following the naming convention\\n * GovernorBravoDelegateStorageVX.\\n */\\ncontract GovernorBravoDelegateStorageV3 is GovernorBravoDelegateStorageV2 {\\n    struct ValidationParams {\\n        uint256 minVotingPeriod;\\n        uint256 maxVotingPeriod;\\n        uint256 minVotingDelay;\\n        uint256 maxVotingDelay;\\n    }\\n    /// @notice Stores the current minimum and maximum values of voting delay and voting period\\n    ValidationParams public validationParams;\\n}\\n\\n/**\\n * @title TimelockInterface\\n * @author Venus\\n * @notice Interface implemented by the Timelock contract.\\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 XvsVaultInterface {\\n    function getPriorVotes(address account, uint blockNumber) external view returns (uint96);\\n}\\n\\ninterface GovernorAlphaInterface {\\n    /// @notice The total number of proposals\\n    function proposalCount() external returns (uint);\\n}\\n\",\"keccak256\":\"0x62c89309d4351dbeb5516465211fab0b566d83d60dc0148377deaad1f1929b85\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"methods":{"proposalCount()":{"notice":"The total number of proposals"}}}},"GovernorBravoDelegateStorageV1":{"abi":[{"constant":true,"inputs":[],"name":"admin","outputs":[{"internalType":"address","name":"","type":"address"}],"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":[],"name":"implementation","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"initialProposalId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"pendingAdmin","outputs":[{"internalType":"address","name":"","type":"address"}],"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":"view","type":"function"},{"constant":true,"inputs":[],"name":"proposalThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","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":"uint256","name":"abstainVotes","type":"uint256"},{"internalType":"bool","name":"canceled","type":"bool"},{"internalType":"bool","name":"executed","type":"bool"},{"internalType":"uint8","name":"proposalType","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":"view","type":"function"},{"constant":true,"inputs":[],"name":"votingPeriod","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"xvsVault","outputs":[{"internalType":"contract XvsVaultInterface","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}],"devdoc":{"details":"For future upgrades, do not change GovernorBravoDelegateStorageV1. Create a new contract which implements GovernorBravoDelegateStorageV1 and following the naming convention GovernorBravoDelegateStorageVX.","methods":{},"title":"GovernorBravoDelegateStorageV1"},"evm":{"bytecode":{"linkReferences":{},"object":"608060405234801561001057600080fd5b506104ac806100206000396000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c80635c60da1b1161008c578063d33219b411610066578063d33219b41461019c578063da35c664146101a4578063f851a440146101ac578063fc4eee42146101b4576100ea565b80635c60da1b146101845780637bdbe4d01461018c578063b58131b014610194576100ea565b80631b9ce575116100c85780631b9ce5751461014a578063267822471461015f5780633932abb114610174578063452a93201461017c576100ea565b8063013cf08b146100ef57806302a251a31461012257806317977c6114610137575b600080fd5b6101026100fd3660046102fa565b6101bc565b6040516101199b9a99989796959493929190610375565b60405180910390f35b61012a610228565b6040516101199190610367565b61012a6101453660046102d4565b61022e565b610152610240565b6040516101199190610359565b61016761024f565b604051610119919061034b565b61012a61025e565b610167610264565b610167610273565b61012a610282565b61012a610288565b61015261028e565b61012a61029d565b6101676102a3565b61012a6102b2565b600a60208190526000918252604090912080546001820154600283015460078401546008850154600986015496860154600b870154600c880154600e9098015496986001600160a01b039096169794969395929492939192909160ff808316926101009004811691168b565b60045481565b600b6020526000908152604090205481565b6009546001600160a01b031681565b6001546001600160a01b031681565b60035481565b600d546001600160a01b031681565b6002546001600160a01b031681565b600c5481565b60055481565b6008546001600160a01b031681565b60075481565b6000546001600160a01b031681565b60065481565b80356102c381610449565b92915050565b80356102c381610460565b6000602082840312156102e657600080fd5b60006102f284846102b8565b949350505050565b60006020828403121561030c57600080fd5b60006102f284846102c9565b61032181610419565b82525050565b61032181610424565b6103218161043e565b61032181610435565b61032181610438565b602081016102c38284610318565b602081016102c38284610330565b602081016102c38284610339565b6101608101610384828e610339565b610391602083018d610318565b61039e604083018c610339565b6103ab606083018b610339565b6103b8608083018a610339565b6103c560a0830189610339565b6103d260c0830188610339565b6103df60e0830187610339565b6103ed610100830186610327565b6103fb610120830185610327565b610409610140830184610342565b9c9b505050505050505050505050565b60006102c382610429565b151590565b6001600160a01b031690565b90565b60ff1690565b60006102c382610419565b61045281610419565b811461045d57600080fd5b50565b6104528161043556fea365627a7a72315820906e863c7615360c1a0205a649b638b2be8583e3fa9bef5cef24b25eb74f1b8b6c6578706572696d656e74616cf564736f6c63430005100040","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4AC DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xEA JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x5C60DA1B GT PUSH2 0x8C JUMPI DUP1 PUSH4 0xD33219B4 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0xD33219B4 EQ PUSH2 0x19C JUMPI DUP1 PUSH4 0xDA35C664 EQ PUSH2 0x1A4 JUMPI DUP1 PUSH4 0xF851A440 EQ PUSH2 0x1AC JUMPI DUP1 PUSH4 0xFC4EEE42 EQ PUSH2 0x1B4 JUMPI PUSH2 0xEA JUMP JUMPDEST DUP1 PUSH4 0x5C60DA1B EQ PUSH2 0x184 JUMPI DUP1 PUSH4 0x7BDBE4D0 EQ PUSH2 0x18C JUMPI DUP1 PUSH4 0xB58131B0 EQ PUSH2 0x194 JUMPI PUSH2 0xEA JUMP JUMPDEST DUP1 PUSH4 0x1B9CE575 GT PUSH2 0xC8 JUMPI DUP1 PUSH4 0x1B9CE575 EQ PUSH2 0x14A JUMPI DUP1 PUSH4 0x26782247 EQ PUSH2 0x15F JUMPI DUP1 PUSH4 0x3932ABB1 EQ PUSH2 0x174 JUMPI DUP1 PUSH4 0x452A9320 EQ PUSH2 0x17C JUMPI PUSH2 0xEA JUMP JUMPDEST DUP1 PUSH4 0x13CF08B EQ PUSH2 0xEF JUMPI DUP1 PUSH4 0x2A251A3 EQ PUSH2 0x122 JUMPI DUP1 PUSH4 0x17977C61 EQ PUSH2 0x137 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x102 PUSH2 0xFD CALLDATASIZE PUSH1 0x4 PUSH2 0x2FA JUMP JUMPDEST PUSH2 0x1BC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x119 SWAP12 SWAP11 SWAP10 SWAP9 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x375 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x12A PUSH2 0x228 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x119 SWAP2 SWAP1 PUSH2 0x367 JUMP JUMPDEST PUSH2 0x12A PUSH2 0x145 CALLDATASIZE PUSH1 0x4 PUSH2 0x2D4 JUMP JUMPDEST PUSH2 0x22E JUMP JUMPDEST PUSH2 0x152 PUSH2 0x240 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x119 SWAP2 SWAP1 PUSH2 0x359 JUMP JUMPDEST PUSH2 0x167 PUSH2 0x24F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x119 SWAP2 SWAP1 PUSH2 0x34B JUMP JUMPDEST PUSH2 0x12A PUSH2 0x25E JUMP JUMPDEST PUSH2 0x167 PUSH2 0x264 JUMP JUMPDEST PUSH2 0x167 PUSH2 0x273 JUMP JUMPDEST PUSH2 0x12A PUSH2 0x282 JUMP JUMPDEST PUSH2 0x12A PUSH2 0x288 JUMP JUMPDEST PUSH2 0x152 PUSH2 0x28E JUMP JUMPDEST PUSH2 0x12A PUSH2 0x29D JUMP JUMPDEST PUSH2 0x167 PUSH2 0x2A3 JUMP JUMPDEST PUSH2 0x12A PUSH2 0x2B2 JUMP JUMPDEST PUSH1 0xA PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x40 SWAP1 SWAP2 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 SWAP7 DUP7 ADD SLOAD PUSH1 0xB DUP8 ADD SLOAD PUSH1 0xC DUP9 ADD SLOAD PUSH1 0xE SWAP1 SWAP9 ADD SLOAD SWAP7 SWAP9 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP7 AND SWAP8 SWAP5 SWAP7 SWAP4 SWAP6 SWAP3 SWAP5 SWAP3 SWAP4 SWAP2 SWAP3 SWAP1 SWAP2 PUSH1 0xFF DUP1 DUP4 AND SWAP3 PUSH2 0x100 SWAP1 DIV DUP2 AND SWAP2 AND DUP12 JUMP JUMPDEST PUSH1 0x4 SLOAD DUP2 JUMP JUMPDEST PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH1 0xD 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 DUP2 JUMP JUMPDEST PUSH1 0xC SLOAD DUP2 JUMP JUMPDEST PUSH1 0x5 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x7 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x6 SLOAD DUP2 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x2C3 DUP2 PUSH2 0x449 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x2C3 DUP2 PUSH2 0x460 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2E6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2F2 DUP5 DUP5 PUSH2 0x2B8 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x30C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2F2 DUP5 DUP5 PUSH2 0x2C9 JUMP JUMPDEST PUSH2 0x321 DUP2 PUSH2 0x419 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x321 DUP2 PUSH2 0x424 JUMP JUMPDEST PUSH2 0x321 DUP2 PUSH2 0x43E JUMP JUMPDEST PUSH2 0x321 DUP2 PUSH2 0x435 JUMP JUMPDEST PUSH2 0x321 DUP2 PUSH2 0x438 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x2C3 DUP3 DUP5 PUSH2 0x318 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x2C3 DUP3 DUP5 PUSH2 0x330 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x2C3 DUP3 DUP5 PUSH2 0x339 JUMP JUMPDEST PUSH2 0x160 DUP2 ADD PUSH2 0x384 DUP3 DUP15 PUSH2 0x339 JUMP JUMPDEST PUSH2 0x391 PUSH1 0x20 DUP4 ADD DUP14 PUSH2 0x318 JUMP JUMPDEST PUSH2 0x39E PUSH1 0x40 DUP4 ADD DUP13 PUSH2 0x339 JUMP JUMPDEST PUSH2 0x3AB PUSH1 0x60 DUP4 ADD DUP12 PUSH2 0x339 JUMP JUMPDEST PUSH2 0x3B8 PUSH1 0x80 DUP4 ADD DUP11 PUSH2 0x339 JUMP JUMPDEST PUSH2 0x3C5 PUSH1 0xA0 DUP4 ADD DUP10 PUSH2 0x339 JUMP JUMPDEST PUSH2 0x3D2 PUSH1 0xC0 DUP4 ADD DUP9 PUSH2 0x339 JUMP JUMPDEST PUSH2 0x3DF PUSH1 0xE0 DUP4 ADD DUP8 PUSH2 0x339 JUMP JUMPDEST PUSH2 0x3ED PUSH2 0x100 DUP4 ADD DUP7 PUSH2 0x327 JUMP JUMPDEST PUSH2 0x3FB PUSH2 0x120 DUP4 ADD DUP6 PUSH2 0x327 JUMP JUMPDEST PUSH2 0x409 PUSH2 0x140 DUP4 ADD DUP5 PUSH2 0x342 JUMP JUMPDEST SWAP13 SWAP12 POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2C3 DUP3 PUSH2 0x429 JUMP JUMPDEST ISZERO ISZERO SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2C3 DUP3 PUSH2 0x419 JUMP JUMPDEST PUSH2 0x452 DUP2 PUSH2 0x419 JUMP JUMPDEST DUP2 EQ PUSH2 0x45D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x452 DUP2 PUSH2 0x435 JUMP INVALID LOG3 PUSH6 0x627A7A723158 KECCAK256 SWAP1 PUSH15 0x863C7615360C1A0205A649B638B2BE DUP6 DUP4 0xE3 STATICCALL SWAP12 0xEF 0x5C 0xEF 0x24 0xB2 0x5E 0xB7 0x4F SHL DUP12 PUSH13 0x6578706572696D656E74616CF5 PUSH5 0x736F6C6343 STOP SDIV LT STOP BLOCKHASH ","sourceMap":"3767:3491:2:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3767:3491:2;;;;;;;"},"deployedBytecode":{"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106100ea5760003560e01c80635c60da1b1161008c578063d33219b411610066578063d33219b41461019c578063da35c664146101a4578063f851a440146101ac578063fc4eee42146101b4576100ea565b80635c60da1b146101845780637bdbe4d01461018c578063b58131b014610194576100ea565b80631b9ce575116100c85780631b9ce5751461014a578063267822471461015f5780633932abb114610174578063452a93201461017c576100ea565b8063013cf08b146100ef57806302a251a31461012257806317977c6114610137575b600080fd5b6101026100fd3660046102fa565b6101bc565b6040516101199b9a99989796959493929190610375565b60405180910390f35b61012a610228565b6040516101199190610367565b61012a6101453660046102d4565b61022e565b610152610240565b6040516101199190610359565b61016761024f565b604051610119919061034b565b61012a61025e565b610167610264565b610167610273565b61012a610282565b61012a610288565b61015261028e565b61012a61029d565b6101676102a3565b61012a6102b2565b600a60208190526000918252604090912080546001820154600283015460078401546008850154600986015496860154600b870154600c880154600e9098015496986001600160a01b039096169794969395929492939192909160ff808316926101009004811691168b565b60045481565b600b6020526000908152604090205481565b6009546001600160a01b031681565b6001546001600160a01b031681565b60035481565b600d546001600160a01b031681565b6002546001600160a01b031681565b600c5481565b60055481565b6008546001600160a01b031681565b60075481565b6000546001600160a01b031681565b60065481565b80356102c381610449565b92915050565b80356102c381610460565b6000602082840312156102e657600080fd5b60006102f284846102b8565b949350505050565b60006020828403121561030c57600080fd5b60006102f284846102c9565b61032181610419565b82525050565b61032181610424565b6103218161043e565b61032181610435565b61032181610438565b602081016102c38284610318565b602081016102c38284610330565b602081016102c38284610339565b6101608101610384828e610339565b610391602083018d610318565b61039e604083018c610339565b6103ab606083018b610339565b6103b8608083018a610339565b6103c560a0830189610339565b6103d260c0830188610339565b6103df60e0830187610339565b6103ed610100830186610327565b6103fb610120830185610327565b610409610140830184610342565b9c9b505050505050505050505050565b60006102c382610429565b151590565b6001600160a01b031690565b90565b60ff1690565b60006102c382610419565b61045281610419565b811461045d57600080fd5b50565b6104528161043556fea365627a7a72315820906e863c7615360c1a0205a649b638b2be8583e3fa9bef5cef24b25eb74f1b8b6c6578706572696d656e74616cf564736f6c63430005100040","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xEA JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x5C60DA1B GT PUSH2 0x8C JUMPI DUP1 PUSH4 0xD33219B4 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0xD33219B4 EQ PUSH2 0x19C JUMPI DUP1 PUSH4 0xDA35C664 EQ PUSH2 0x1A4 JUMPI DUP1 PUSH4 0xF851A440 EQ PUSH2 0x1AC JUMPI DUP1 PUSH4 0xFC4EEE42 EQ PUSH2 0x1B4 JUMPI PUSH2 0xEA JUMP JUMPDEST DUP1 PUSH4 0x5C60DA1B EQ PUSH2 0x184 JUMPI DUP1 PUSH4 0x7BDBE4D0 EQ PUSH2 0x18C JUMPI DUP1 PUSH4 0xB58131B0 EQ PUSH2 0x194 JUMPI PUSH2 0xEA JUMP JUMPDEST DUP1 PUSH4 0x1B9CE575 GT PUSH2 0xC8 JUMPI DUP1 PUSH4 0x1B9CE575 EQ PUSH2 0x14A JUMPI DUP1 PUSH4 0x26782247 EQ PUSH2 0x15F JUMPI DUP1 PUSH4 0x3932ABB1 EQ PUSH2 0x174 JUMPI DUP1 PUSH4 0x452A9320 EQ PUSH2 0x17C JUMPI PUSH2 0xEA JUMP JUMPDEST DUP1 PUSH4 0x13CF08B EQ PUSH2 0xEF JUMPI DUP1 PUSH4 0x2A251A3 EQ PUSH2 0x122 JUMPI DUP1 PUSH4 0x17977C61 EQ PUSH2 0x137 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x102 PUSH2 0xFD CALLDATASIZE PUSH1 0x4 PUSH2 0x2FA JUMP JUMPDEST PUSH2 0x1BC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x119 SWAP12 SWAP11 SWAP10 SWAP9 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x375 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x12A PUSH2 0x228 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x119 SWAP2 SWAP1 PUSH2 0x367 JUMP JUMPDEST PUSH2 0x12A PUSH2 0x145 CALLDATASIZE PUSH1 0x4 PUSH2 0x2D4 JUMP JUMPDEST PUSH2 0x22E JUMP JUMPDEST PUSH2 0x152 PUSH2 0x240 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x119 SWAP2 SWAP1 PUSH2 0x359 JUMP JUMPDEST PUSH2 0x167 PUSH2 0x24F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x119 SWAP2 SWAP1 PUSH2 0x34B JUMP JUMPDEST PUSH2 0x12A PUSH2 0x25E JUMP JUMPDEST PUSH2 0x167 PUSH2 0x264 JUMP JUMPDEST PUSH2 0x167 PUSH2 0x273 JUMP JUMPDEST PUSH2 0x12A PUSH2 0x282 JUMP JUMPDEST PUSH2 0x12A PUSH2 0x288 JUMP JUMPDEST PUSH2 0x152 PUSH2 0x28E JUMP JUMPDEST PUSH2 0x12A PUSH2 0x29D JUMP JUMPDEST PUSH2 0x167 PUSH2 0x2A3 JUMP JUMPDEST PUSH2 0x12A PUSH2 0x2B2 JUMP JUMPDEST PUSH1 0xA PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x40 SWAP1 SWAP2 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 SWAP7 DUP7 ADD SLOAD PUSH1 0xB DUP8 ADD SLOAD PUSH1 0xC DUP9 ADD SLOAD PUSH1 0xE SWAP1 SWAP9 ADD SLOAD SWAP7 SWAP9 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP7 AND SWAP8 SWAP5 SWAP7 SWAP4 SWAP6 SWAP3 SWAP5 SWAP3 SWAP4 SWAP2 SWAP3 SWAP1 SWAP2 PUSH1 0xFF DUP1 DUP4 AND SWAP3 PUSH2 0x100 SWAP1 DIV DUP2 AND SWAP2 AND DUP12 JUMP JUMPDEST PUSH1 0x4 SLOAD DUP2 JUMP JUMPDEST PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH1 0xD 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 DUP2 JUMP JUMPDEST PUSH1 0xC SLOAD DUP2 JUMP JUMPDEST PUSH1 0x5 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x7 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x6 SLOAD DUP2 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x2C3 DUP2 PUSH2 0x449 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x2C3 DUP2 PUSH2 0x460 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2E6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2F2 DUP5 DUP5 PUSH2 0x2B8 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x30C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2F2 DUP5 DUP5 PUSH2 0x2C9 JUMP JUMPDEST PUSH2 0x321 DUP2 PUSH2 0x419 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x321 DUP2 PUSH2 0x424 JUMP JUMPDEST PUSH2 0x321 DUP2 PUSH2 0x43E JUMP JUMPDEST PUSH2 0x321 DUP2 PUSH2 0x435 JUMP JUMPDEST PUSH2 0x321 DUP2 PUSH2 0x438 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x2C3 DUP3 DUP5 PUSH2 0x318 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x2C3 DUP3 DUP5 PUSH2 0x330 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x2C3 DUP3 DUP5 PUSH2 0x339 JUMP JUMPDEST PUSH2 0x160 DUP2 ADD PUSH2 0x384 DUP3 DUP15 PUSH2 0x339 JUMP JUMPDEST PUSH2 0x391 PUSH1 0x20 DUP4 ADD DUP14 PUSH2 0x318 JUMP JUMPDEST PUSH2 0x39E PUSH1 0x40 DUP4 ADD DUP13 PUSH2 0x339 JUMP JUMPDEST PUSH2 0x3AB PUSH1 0x60 DUP4 ADD DUP12 PUSH2 0x339 JUMP JUMPDEST PUSH2 0x3B8 PUSH1 0x80 DUP4 ADD DUP11 PUSH2 0x339 JUMP JUMPDEST PUSH2 0x3C5 PUSH1 0xA0 DUP4 ADD DUP10 PUSH2 0x339 JUMP JUMPDEST PUSH2 0x3D2 PUSH1 0xC0 DUP4 ADD DUP9 PUSH2 0x339 JUMP JUMPDEST PUSH2 0x3DF PUSH1 0xE0 DUP4 ADD DUP8 PUSH2 0x339 JUMP JUMPDEST PUSH2 0x3ED PUSH2 0x100 DUP4 ADD DUP7 PUSH2 0x327 JUMP JUMPDEST PUSH2 0x3FB PUSH2 0x120 DUP4 ADD DUP6 PUSH2 0x327 JUMP JUMPDEST PUSH2 0x409 PUSH2 0x140 DUP4 ADD DUP5 PUSH2 0x342 JUMP JUMPDEST SWAP13 SWAP12 POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2C3 DUP3 PUSH2 0x429 JUMP JUMPDEST ISZERO ISZERO SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2C3 DUP3 PUSH2 0x419 JUMP JUMPDEST PUSH2 0x452 DUP2 PUSH2 0x419 JUMP JUMPDEST DUP2 EQ PUSH2 0x45D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x452 DUP2 PUSH2 0x435 JUMP INVALID LOG3 PUSH6 0x627A7A723158 KECCAK256 SWAP1 PUSH15 0x863C7615360C1A0205A649B638B2BE DUP6 DUP4 0xE3 STATICCALL SWAP12 0xEF 0x5C 0xEF 0x24 0xB2 0x5E 0xB7 0x4F SHL DUP12 PUSH13 0x6578706572696D656E74616CF5 PUSH5 0x736F6C6343 STOP SDIV LT STOP BLOCKHASH ","sourceMap":"3767:3491:2:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3767:3491:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4650:42;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;4057:24;;;:::i;:::-;;;;;;;;4753:49;;;;;;;;;:::i;4543:33::-;;;:::i;:::-;;;;;;;;3389:27;;;:::i;:::-;;;;;;;;3952:23;;;:::i;7232:::-;;;:::i;3465:29::-;;;:::i;7129:33::-;;;:::i;4186:29::-;;;:::i;4445:33::-;;;:::i;4354:25::-;;;:::i;3306:20::-;;;:::i;4272:29::-;;;:::i;4650:42::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4650:42:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;4057:24::-;;;;:::o;4753:49::-;;;;;;;;;;;;;:::o;4543:33::-;;;-1:-1:-1;;;;;4543:33:2;;:::o;3389:27::-;;;-1:-1:-1;;;;;3389:27:2;;:::o;3952:23::-;;;;:::o;7232:::-;;;-1:-1:-1;;;;;7232:23:2;;:::o;3465:29::-;;;-1:-1:-1;;;;;3465:29:2;;:::o;7129:33::-;;;;:::o;4186:29::-;;;;:::o;4445:33::-;;;-1:-1:-1;;;;;4445:33:2;;:::o;4354:25::-;;;;:::o;3306:20::-;;;-1:-1:-1;;;;;3306:20:2;;:::o;4272:29::-;;;;:::o;5:130:-1:-;72:20;;97:33;72:20;97:33;;;57:78;;;;;142:130;209:20;;234:33;209:20;234:33;;279:241;;383:2;371:9;362:7;358:23;354:32;351:2;;;399:1;396;389:12;351:2;434:1;451:53;496:7;476:9;451:53;;;441:63;345:175;-1:-1;;;;345:175;527:241;;631:2;619:9;610:7;606:23;602:32;599:2;;;647:1;644;637:12;599:2;682:1;699:53;744:7;724:9;699:53;;775:113;858:24;876:5;858:24;;;853:3;846:37;840:48;;;895:104;972:21;987:5;972:21;;1006:178;1115:63;1172:5;1115:63;;1376:113;1459:24;1477:5;1459:24;;1496:107;1575:22;1591:5;1575:22;;1610:213;1728:2;1713:18;;1742:71;1717:9;1786:6;1742:71;;1830:265;1974:2;1959:18;;1988:97;1963:9;2058:6;1988:97;;2374:213;2492:2;2477:18;;2506:71;2481:9;2550:6;2506:71;;2594:1301;2977:3;2962:19;;2992:71;2966:9;3036:6;2992:71;;;3074:72;3142:2;3131:9;3127:18;3118:6;3074:72;;;3157;3225:2;3214:9;3210:18;3201:6;3157:72;;;3240;3308:2;3297:9;3293:18;3284:6;3240:72;;;3323:73;3391:3;3380:9;3376:19;3367:6;3323:73;;;3407;3475:3;3464:9;3460:19;3451:6;3407:73;;;3491;3559:3;3548:9;3544:19;3535:6;3491:73;;;3575;3643:3;3632:9;3628:19;3619:6;3575:73;;;3659:67;3721:3;3710:9;3706:19;3697:6;3659:67;;;3737;3799:3;3788:9;3784:19;3775:6;3737:67;;;3815:70;3880:3;3869:9;3865:19;3855:7;3815:70;;;2948:947;;;;;;;;;;;;;;;3902:91;;3964:24;3982:5;3964:24;;4000:85;4066:13;4059:21;;4042:43;4092:121;-1:-1;;;;;4154:54;;4137:76;4220:72;4282:5;4265:27;4299:81;4370:4;4359:16;;4342:38;4387:173;;4492:63;4549:5;4492:63;;5029:117;5098:24;5116:5;5098:24;;;5091:5;5088:35;5078:2;;5137:1;5134;5127:12;5078:2;5072:74;;5153:117;5222:24;5240:5;5222:24;"},"gasEstimates":{"creation":{"codeDepositCost":"239200","executionCost":"281","totalCost":"239481"},"external":{"admin()":"infinite","guardian()":"infinite","implementation()":"infinite","initialProposalId()":"1187","latestProposalIds(address)":"infinite","pendingAdmin()":"infinite","proposalCount()":"1143","proposalMaxOperations()":"1144","proposalThreshold()":"1166","proposals(uint256)":"infinite","timelock()":"infinite","votingDelay()":"1166","votingPeriod()":"1145","xvsVault()":"infinite"}},"methodIdentifiers":{"admin()":"f851a440","guardian()":"452a9320","implementation()":"5c60da1b","initialProposalId()":"fc4eee42","latestProposalIds(address)":"17977c61","pendingAdmin()":"26782247","proposalCount()":"da35c664","proposalMaxOperations()":"7bdbe4d0","proposalThreshold()":"b58131b0","proposals(uint256)":"013cf08b","timelock()":"d33219b4","votingDelay()":"3932abb1","votingPeriod()":"02a251a3","xvsVault()":"1b9ce575"}},"metadata":"{\"compiler\":{\"version\":\"0.5.16+commit.9c3226ce\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[],\"name\":\"admin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"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\":[],\"name\":\"implementation\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"initialProposalId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"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\":\"pendingAdmin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"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\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"proposalThreshold\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"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\":\"uint256\",\"name\":\"abstainVotes\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"canceled\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"executed\",\"type\":\"bool\"},{\"internalType\":\"uint8\",\"name\":\"proposalType\",\"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\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"votingPeriod\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"xvsVault\",\"outputs\":[{\"internalType\":\"contract XvsVaultInterface\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"For future upgrades, do not change GovernorBravoDelegateStorageV1. Create a new contract which implements GovernorBravoDelegateStorageV1 and following the naming convention GovernorBravoDelegateStorageVX.\",\"methods\":{},\"title\":\"GovernorBravoDelegateStorageV1\"},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"contracts/Governance/GovernorBravoInterfaces.sol\":\"GovernorBravoDelegateStorageV1\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/Governance/GovernorBravoInterfaces.sol\":{\"content\":\"pragma solidity ^0.5.16;\\npragma experimental ABIEncoderV2;\\n\\n/**\\n * @title GovernorBravoEvents\\n * @author Venus\\n * @notice Set of events emitted by the GovernorBravo contracts.\\n */\\ncontract GovernorBravoEvents {\\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        uint8 proposalType\\n    );\\n\\n    /// @notice An event emitted when a vote has been cast on a proposal\\n    /// @param voter The address which casted a vote\\n    /// @param proposalId The proposal id which was voted on\\n    /// @param support Support value for the vote. 0=against, 1=for, 2=abstain\\n    /// @param votes Number of votes which were cast by the voter\\n    /// @param reason The reason given for the vote by the voter\\n    event VoteCast(address indexed voter, uint proposalId, uint8 support, uint votes, string reason);\\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    /// @notice An event emitted when the voting delay is set\\n    event VotingDelaySet(uint oldVotingDelay, uint newVotingDelay);\\n\\n    /// @notice An event emitted when the voting period is set\\n    event VotingPeriodSet(uint oldVotingPeriod, uint newVotingPeriod);\\n\\n    /// @notice Emitted when implementation is changed\\n    event NewImplementation(address oldImplementation, address newImplementation);\\n\\n    /// @notice Emitted when proposal threshold is set\\n    event ProposalThresholdSet(uint oldProposalThreshold, uint newProposalThreshold);\\n\\n    /// @notice Emitted when pendingAdmin is changed\\n    event NewPendingAdmin(address oldPendingAdmin, address newPendingAdmin);\\n\\n    /// @notice Emitted when pendingAdmin is accepted, which means admin is updated\\n    event NewAdmin(address oldAdmin, address newAdmin);\\n\\n    /// @notice Emitted when the new guardian address is set\\n    event NewGuardian(address oldGuardian, address newGuardian);\\n\\n    /// @notice Emitted when the maximum number of operations in one proposal is updated\\n    event ProposalMaxOperationsUpdated(uint oldMaxOperations, uint newMaxOperations);\\n\\n    /// @notice Emitted when the new validation params are set\\n    event SetValidationParams(\\n        uint256 oldMinVotingPeriod,\\n        uint256 newMinVotingPeriod,\\n        uint256 oldmaxVotingPeriod,\\n        uint256 newmaxVotingPeriod,\\n        uint256 oldminVotingDelay,\\n        uint256 newminVotingDelay,\\n        uint256 oldmaxVotingDelay,\\n        uint256 newmaxVotingDelay\\n    );\\n\\n    /// @notice Emitted when new Proposal configs added\\n    event SetProposalConfigs(uint256 votingPeriod, uint256 votingDelay, uint256 proposalThreshold);\\n}\\n\\n/**\\n * @title GovernorBravoDelegatorStorage\\n * @author Venus\\n * @notice Storage layout of the `GovernorBravoDelegator` contract\\n */\\ncontract GovernorBravoDelegatorStorage {\\n    /// @notice Administrator for this contract\\n    address public admin;\\n\\n    /// @notice Pending administrator for this contract\\n    address public pendingAdmin;\\n\\n    /// @notice Active brains of Governor\\n    address public implementation;\\n}\\n\\n/**\\n * @title GovernorBravoDelegateStorageV1\\n * @dev For future upgrades, do not change GovernorBravoDelegateStorageV1. Create a new\\n * contract which implements GovernorBravoDelegateStorageV1 and following the naming convention\\n * GovernorBravoDelegateStorageVX.\\n */\\ncontract GovernorBravoDelegateStorageV1 is GovernorBravoDelegatorStorage {\\n    /// @notice DEPRECATED The delay before voting on a proposal may take place, once proposed, in blocks\\n    uint public votingDelay;\\n\\n    /// @notice DEPRECATED The duration of voting on a proposal, in blocks\\n    uint public votingPeriod;\\n\\n    /// @notice DEPRECATED The number of votes required in order for a voter to become a proposer\\n    uint public proposalThreshold;\\n\\n    /// @notice Initial proposal id set at become\\n    uint public initialProposalId;\\n\\n    /// @notice The total number of proposals\\n    uint public proposalCount;\\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    XvsVaultInterface public xvsVault;\\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    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 Current number of votes for abstaining for this proposal\\n        uint abstainVotes;\\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        /// @notice The type of the proposal\\n        uint8 proposalType;\\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 or abstains\\n        uint8 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 maximum number of actions that can be included in a proposal\\n    uint public proposalMaxOperations;\\n\\n    /// @notice A privileged role that can cancel any proposal\\n    address public guardian;\\n}\\n\\n/**\\n * @title GovernorBravoDelegateStorageV2\\n * @dev For future upgrades, do not change GovernorBravoDelegateStorageV2. Create a new\\n * contract which implements GovernorBravoDelegateStorageV2 and following the naming convention\\n * GovernorBravoDelegateStorageVX.\\n */\\ncontract GovernorBravoDelegateStorageV2 is GovernorBravoDelegateStorageV1 {\\n    enum ProposalType {\\n        NORMAL,\\n        FASTTRACK,\\n        CRITICAL\\n    }\\n\\n    struct ProposalConfig {\\n        /// @notice The delay before voting on a proposal may take place, once proposed, in blocks\\n        uint256 votingDelay;\\n        /// @notice The duration of voting on a proposal, in blocks\\n        uint256 votingPeriod;\\n        /// @notice The number of votes required in order for a voter to become a proposer\\n        uint256 proposalThreshold;\\n    }\\n\\n    /// @notice mapping containing configuration for each proposal type\\n    mapping(uint => ProposalConfig) public proposalConfigs;\\n\\n    /// @notice mapping containing Timelock addresses for each proposal type\\n    mapping(uint => TimelockInterface) public proposalTimelocks;\\n}\\n\\n/**\\n * @title GovernorBravoDelegateStorageV3\\n * @dev For future upgrades, do not change GovernorBravoDelegateStorageV3. Create a new\\n * contract which implements GovernorBravoDelegateStorageV3 and following the naming convention\\n * GovernorBravoDelegateStorageVX.\\n */\\ncontract GovernorBravoDelegateStorageV3 is GovernorBravoDelegateStorageV2 {\\n    struct ValidationParams {\\n        uint256 minVotingPeriod;\\n        uint256 maxVotingPeriod;\\n        uint256 minVotingDelay;\\n        uint256 maxVotingDelay;\\n    }\\n    /// @notice Stores the current minimum and maximum values of voting delay and voting period\\n    ValidationParams public validationParams;\\n}\\n\\n/**\\n * @title TimelockInterface\\n * @author Venus\\n * @notice Interface implemented by the Timelock contract.\\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 XvsVaultInterface {\\n    function getPriorVotes(address account, uint blockNumber) external view returns (uint96);\\n}\\n\\ninterface GovernorAlphaInterface {\\n    /// @notice The total number of proposals\\n    function proposalCount() external returns (uint);\\n}\\n\",\"keccak256\":\"0x62c89309d4351dbeb5516465211fab0b566d83d60dc0148377deaad1f1929b85\"}},\"version\":1}","storageLayout":{"storage":[{"astId":1818,"contract":"contracts/Governance/GovernorBravoInterfaces.sol:GovernorBravoDelegateStorageV1","label":"admin","offset":0,"slot":"0","type":"t_address"},{"astId":1820,"contract":"contracts/Governance/GovernorBravoInterfaces.sol:GovernorBravoDelegateStorageV1","label":"pendingAdmin","offset":0,"slot":"1","type":"t_address"},{"astId":1822,"contract":"contracts/Governance/GovernorBravoInterfaces.sol:GovernorBravoDelegateStorageV1","label":"implementation","offset":0,"slot":"2","type":"t_address"},{"astId":1827,"contract":"contracts/Governance/GovernorBravoInterfaces.sol:GovernorBravoDelegateStorageV1","label":"votingDelay","offset":0,"slot":"3","type":"t_uint256"},{"astId":1829,"contract":"contracts/Governance/GovernorBravoInterfaces.sol:GovernorBravoDelegateStorageV1","label":"votingPeriod","offset":0,"slot":"4","type":"t_uint256"},{"astId":1831,"contract":"contracts/Governance/GovernorBravoInterfaces.sol:GovernorBravoDelegateStorageV1","label":"proposalThreshold","offset":0,"slot":"5","type":"t_uint256"},{"astId":1833,"contract":"contracts/Governance/GovernorBravoInterfaces.sol:GovernorBravoDelegateStorageV1","label":"initialProposalId","offset":0,"slot":"6","type":"t_uint256"},{"astId":1835,"contract":"contracts/Governance/GovernorBravoInterfaces.sol:GovernorBravoDelegateStorageV1","label":"proposalCount","offset":0,"slot":"7","type":"t_uint256"},{"astId":1837,"contract":"contracts/Governance/GovernorBravoInterfaces.sol:GovernorBravoDelegateStorageV1","label":"timelock","offset":0,"slot":"8","type":"t_contract(TimelockInterface)2007"},{"astId":1839,"contract":"contracts/Governance/GovernorBravoInterfaces.sol:GovernorBravoDelegateStorageV1","label":"xvsVault","offset":0,"slot":"9","type":"t_contract(XvsVaultInterface)2017"},{"astId":1843,"contract":"contracts/Governance/GovernorBravoInterfaces.sol:GovernorBravoDelegateStorageV1","label":"proposals","offset":0,"slot":"10","type":"t_mapping(t_uint256,t_struct(Proposal)1886_storage)"},{"astId":1847,"contract":"contracts/Governance/GovernorBravoInterfaces.sol:GovernorBravoDelegateStorageV1","label":"latestProposalIds","offset":0,"slot":"11","type":"t_mapping(t_address,t_uint256)"},{"astId":1904,"contract":"contracts/Governance/GovernorBravoInterfaces.sol:GovernorBravoDelegateStorageV1","label":"proposalMaxOperations","offset":0,"slot":"12","type":"t_uint256"},{"astId":1906,"contract":"contracts/Governance/GovernorBravoInterfaces.sol:GovernorBravoDelegateStorageV1","label":"guardian","offset":0,"slot":"13","type":"t_address"}],"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)2007":{"encoding":"inplace","label":"contract TimelockInterface","numberOfBytes":"20"},"t_contract(XvsVaultInterface)2017":{"encoding":"inplace","label":"contract XvsVaultInterface","numberOfBytes":"20"},"t_mapping(t_address,t_struct(Receipt)1893_storage)":{"encoding":"mapping","key":"t_address","label":"mapping(address => struct GovernorBravoDelegateStorageV1.Receipt)","numberOfBytes":"32","value":"t_struct(Receipt)1893_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)1886_storage)":{"encoding":"mapping","key":"t_uint256","label":"mapping(uint256 => struct GovernorBravoDelegateStorageV1.Proposal)","numberOfBytes":"32","value":"t_struct(Proposal)1886_storage"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_struct(Proposal)1886_storage":{"encoding":"inplace","label":"struct GovernorBravoDelegateStorageV1.Proposal","members":[{"astId":1849,"contract":"contracts/Governance/GovernorBravoInterfaces.sol:GovernorBravoDelegateStorageV1","label":"id","offset":0,"slot":"0","type":"t_uint256"},{"astId":1851,"contract":"contracts/Governance/GovernorBravoInterfaces.sol:GovernorBravoDelegateStorageV1","label":"proposer","offset":0,"slot":"1","type":"t_address"},{"astId":1853,"contract":"contracts/Governance/GovernorBravoInterfaces.sol:GovernorBravoDelegateStorageV1","label":"eta","offset":0,"slot":"2","type":"t_uint256"},{"astId":1856,"contract":"contracts/Governance/GovernorBravoInterfaces.sol:GovernorBravoDelegateStorageV1","label":"targets","offset":0,"slot":"3","type":"t_array(t_address)dyn_storage"},{"astId":1859,"contract":"contracts/Governance/GovernorBravoInterfaces.sol:GovernorBravoDelegateStorageV1","label":"values","offset":0,"slot":"4","type":"t_array(t_uint256)dyn_storage"},{"astId":1862,"contract":"contracts/Governance/GovernorBravoInterfaces.sol:GovernorBravoDelegateStorageV1","label":"signatures","offset":0,"slot":"5","type":"t_array(t_string_storage)dyn_storage"},{"astId":1865,"contract":"contracts/Governance/GovernorBravoInterfaces.sol:GovernorBravoDelegateStorageV1","label":"calldatas","offset":0,"slot":"6","type":"t_array(t_bytes_storage)dyn_storage"},{"astId":1867,"contract":"contracts/Governance/GovernorBravoInterfaces.sol:GovernorBravoDelegateStorageV1","label":"startBlock","offset":0,"slot":"7","type":"t_uint256"},{"astId":1869,"contract":"contracts/Governance/GovernorBravoInterfaces.sol:GovernorBravoDelegateStorageV1","label":"endBlock","offset":0,"slot":"8","type":"t_uint256"},{"astId":1871,"contract":"contracts/Governance/GovernorBravoInterfaces.sol:GovernorBravoDelegateStorageV1","label":"forVotes","offset":0,"slot":"9","type":"t_uint256"},{"astId":1873,"contract":"contracts/Governance/GovernorBravoInterfaces.sol:GovernorBravoDelegateStorageV1","label":"againstVotes","offset":0,"slot":"10","type":"t_uint256"},{"astId":1875,"contract":"contracts/Governance/GovernorBravoInterfaces.sol:GovernorBravoDelegateStorageV1","label":"abstainVotes","offset":0,"slot":"11","type":"t_uint256"},{"astId":1877,"contract":"contracts/Governance/GovernorBravoInterfaces.sol:GovernorBravoDelegateStorageV1","label":"canceled","offset":0,"slot":"12","type":"t_bool"},{"astId":1879,"contract":"contracts/Governance/GovernorBravoInterfaces.sol:GovernorBravoDelegateStorageV1","label":"executed","offset":1,"slot":"12","type":"t_bool"},{"astId":1883,"contract":"contracts/Governance/GovernorBravoInterfaces.sol:GovernorBravoDelegateStorageV1","label":"receipts","offset":0,"slot":"13","type":"t_mapping(t_address,t_struct(Receipt)1893_storage)"},{"astId":1885,"contract":"contracts/Governance/GovernorBravoInterfaces.sol:GovernorBravoDelegateStorageV1","label":"proposalType","offset":0,"slot":"14","type":"t_uint8"}],"numberOfBytes":"480"},"t_struct(Receipt)1893_storage":{"encoding":"inplace","label":"struct GovernorBravoDelegateStorageV1.Receipt","members":[{"astId":1888,"contract":"contracts/Governance/GovernorBravoInterfaces.sol:GovernorBravoDelegateStorageV1","label":"hasVoted","offset":0,"slot":"0","type":"t_bool"},{"astId":1890,"contract":"contracts/Governance/GovernorBravoInterfaces.sol:GovernorBravoDelegateStorageV1","label":"support","offset":1,"slot":"0","type":"t_uint8"},{"astId":1892,"contract":"contracts/Governance/GovernorBravoInterfaces.sol:GovernorBravoDelegateStorageV1","label":"votes","offset":2,"slot":"0","type":"t_uint96"}],"numberOfBytes":"32"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"},"t_uint96":{"encoding":"inplace","label":"uint96","numberOfBytes":"12"}}},"userdoc":{"methods":{}}},"GovernorBravoDelegateStorageV2":{"abi":[{"constant":true,"inputs":[],"name":"admin","outputs":[{"internalType":"address","name":"","type":"address"}],"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":[],"name":"implementation","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"initialProposalId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"pendingAdmin","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"proposalConfigs","outputs":[{"internalType":"uint256","name":"votingDelay","type":"uint256"},{"internalType":"uint256","name":"votingPeriod","type":"uint256"},{"internalType":"uint256","name":"proposalThreshold","type":"uint256"}],"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":"view","type":"function"},{"constant":true,"inputs":[],"name":"proposalThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"proposalTimelocks","outputs":[{"internalType":"contract TimelockInterface","name":"","type":"address"}],"payable":false,"stateMutability":"view","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":"uint256","name":"abstainVotes","type":"uint256"},{"internalType":"bool","name":"canceled","type":"bool"},{"internalType":"bool","name":"executed","type":"bool"},{"internalType":"uint8","name":"proposalType","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":"view","type":"function"},{"constant":true,"inputs":[],"name":"votingPeriod","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"xvsVault","outputs":[{"internalType":"contract XvsVaultInterface","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}],"devdoc":{"details":"For future upgrades, do not change GovernorBravoDelegateStorageV2. Create a new contract which implements GovernorBravoDelegateStorageV2 and following the naming convention GovernorBravoDelegateStorageVX.","methods":{},"title":"GovernorBravoDelegateStorageV2"},"evm":{"bytecode":{"linkReferences":{},"object":"608060405234801561001057600080fd5b5061055b806100206000396000f3fe608060405234801561001057600080fd5b50600436106101005760003560e01c80635c60da1b11610097578063da35c66411610066578063da35c664146101dc578063ee9799ee146101e4578063f851a440146101f7578063fc4eee42146101ff57610100565b80635c60da1b146101bc5780637bdbe4d0146101c4578063b58131b0146101cc578063d33219b4146101d457610100565b806326782247116100d3578063267822471461017557806335a87de21461018a5780633932abb1146101ac578063452a9320146101b457610100565b8063013cf08b1461010557806302a251a31461013857806317977c611461014d5780631b9ce57514610160575b600080fd5b610118610113366004610381565b610207565b60405161012f9b9a999897969594939291906103fc565b60405180910390f35b610140610273565b60405161012f91906103ee565b61014061015b36600461035b565b610279565b61016861028b565b60405161012f91906103e0565b61017d61029a565b60405161012f91906103d2565b61019d610198366004610381565b6102a9565b60405161012f939291906104a0565b6101406102ca565b61017d6102d0565b61017d6102df565b6101406102ee565b6101406102f4565b6101686102fa565b610140610309565b6101686101f2366004610381565b61030f565b61017d61032a565b610140610339565b600a60208190526000918252604090912080546001820154600283015460078401546008850154600986015496860154600b870154600c880154600e9098015496986001600160a01b039096169794969395929492939192909160ff808316926101009004811691168b565b60045481565b600b6020526000908152604090205481565b6009546001600160a01b031681565b6001546001600160a01b031681565b600e6020526000908152604090208054600182015460029092015490919083565b60035481565b600d546001600160a01b031681565b6002546001600160a01b031681565b600c5481565b60055481565b6008546001600160a01b031681565b60075481565b600f602052600090815260409020546001600160a01b031681565b6000546001600160a01b031681565b60065481565b803561034a816104f8565b92915050565b803561034a8161050f565b60006020828403121561036d57600080fd5b6000610379848461033f565b949350505050565b60006020828403121561039357600080fd5b60006103798484610350565b6103a8816104c8565b82525050565b6103a8816104d3565b6103a8816104ed565b6103a8816104e4565b6103a8816104e7565b6020810161034a828461039f565b6020810161034a82846103b7565b6020810161034a82846103c0565b610160810161040b828e6103c0565b610418602083018d61039f565b610425604083018c6103c0565b610432606083018b6103c0565b61043f608083018a6103c0565b61044c60a08301896103c0565b61045960c08301886103c0565b61046660e08301876103c0565b6104746101008301866103ae565b6104826101208301856103ae565b6104906101408301846103c9565b9c9b505050505050505050505050565b606081016104ae82866103c0565b6104bb60208301856103c0565b61037960408301846103c0565b600061034a826104d8565b151590565b6001600160a01b031690565b90565b60ff1690565b600061034a826104c8565b610501816104c8565b811461050c57600080fd5b50565b610501816104e456fea365627a7a72315820e9231351e5e50c0cc7a8184a20d9c77a04b65df574d8d6c097fae13618a68c546c6578706572696d656e74616cf564736f6c63430005100040","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x55B DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x100 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x5C60DA1B GT PUSH2 0x97 JUMPI DUP1 PUSH4 0xDA35C664 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0xDA35C664 EQ PUSH2 0x1DC JUMPI DUP1 PUSH4 0xEE9799EE EQ PUSH2 0x1E4 JUMPI DUP1 PUSH4 0xF851A440 EQ PUSH2 0x1F7 JUMPI DUP1 PUSH4 0xFC4EEE42 EQ PUSH2 0x1FF JUMPI PUSH2 0x100 JUMP JUMPDEST DUP1 PUSH4 0x5C60DA1B EQ PUSH2 0x1BC JUMPI DUP1 PUSH4 0x7BDBE4D0 EQ PUSH2 0x1C4 JUMPI DUP1 PUSH4 0xB58131B0 EQ PUSH2 0x1CC JUMPI DUP1 PUSH4 0xD33219B4 EQ PUSH2 0x1D4 JUMPI PUSH2 0x100 JUMP JUMPDEST DUP1 PUSH4 0x26782247 GT PUSH2 0xD3 JUMPI DUP1 PUSH4 0x26782247 EQ PUSH2 0x175 JUMPI DUP1 PUSH4 0x35A87DE2 EQ PUSH2 0x18A JUMPI DUP1 PUSH4 0x3932ABB1 EQ PUSH2 0x1AC JUMPI DUP1 PUSH4 0x452A9320 EQ PUSH2 0x1B4 JUMPI PUSH2 0x100 JUMP JUMPDEST DUP1 PUSH4 0x13CF08B EQ PUSH2 0x105 JUMPI DUP1 PUSH4 0x2A251A3 EQ PUSH2 0x138 JUMPI DUP1 PUSH4 0x17977C61 EQ PUSH2 0x14D JUMPI DUP1 PUSH4 0x1B9CE575 EQ PUSH2 0x160 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x118 PUSH2 0x113 CALLDATASIZE PUSH1 0x4 PUSH2 0x381 JUMP JUMPDEST PUSH2 0x207 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x12F SWAP12 SWAP11 SWAP10 SWAP9 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3FC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x140 PUSH2 0x273 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x12F SWAP2 SWAP1 PUSH2 0x3EE JUMP JUMPDEST PUSH2 0x140 PUSH2 0x15B CALLDATASIZE PUSH1 0x4 PUSH2 0x35B JUMP JUMPDEST PUSH2 0x279 JUMP JUMPDEST PUSH2 0x168 PUSH2 0x28B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x12F SWAP2 SWAP1 PUSH2 0x3E0 JUMP JUMPDEST PUSH2 0x17D PUSH2 0x29A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x12F SWAP2 SWAP1 PUSH2 0x3D2 JUMP JUMPDEST PUSH2 0x19D PUSH2 0x198 CALLDATASIZE PUSH1 0x4 PUSH2 0x381 JUMP JUMPDEST PUSH2 0x2A9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x12F SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4A0 JUMP JUMPDEST PUSH2 0x140 PUSH2 0x2CA JUMP JUMPDEST PUSH2 0x17D PUSH2 0x2D0 JUMP JUMPDEST PUSH2 0x17D PUSH2 0x2DF JUMP JUMPDEST PUSH2 0x140 PUSH2 0x2EE JUMP JUMPDEST PUSH2 0x140 PUSH2 0x2F4 JUMP JUMPDEST PUSH2 0x168 PUSH2 0x2FA JUMP JUMPDEST PUSH2 0x140 PUSH2 0x309 JUMP JUMPDEST PUSH2 0x168 PUSH2 0x1F2 CALLDATASIZE PUSH1 0x4 PUSH2 0x381 JUMP JUMPDEST PUSH2 0x30F JUMP JUMPDEST PUSH2 0x17D PUSH2 0x32A JUMP JUMPDEST PUSH2 0x140 PUSH2 0x339 JUMP JUMPDEST PUSH1 0xA PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x40 SWAP1 SWAP2 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 SWAP7 DUP7 ADD SLOAD PUSH1 0xB DUP8 ADD SLOAD PUSH1 0xC DUP9 ADD SLOAD PUSH1 0xE SWAP1 SWAP9 ADD SLOAD SWAP7 SWAP9 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP7 AND SWAP8 SWAP5 SWAP7 SWAP4 SWAP6 SWAP3 SWAP5 SWAP3 SWAP4 SWAP2 SWAP3 SWAP1 SWAP2 PUSH1 0xFF DUP1 DUP4 AND SWAP3 PUSH2 0x100 SWAP1 DIV DUP2 AND SWAP2 AND DUP12 JUMP JUMPDEST PUSH1 0x4 SLOAD DUP2 JUMP JUMPDEST PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0xE PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0x2 SWAP1 SWAP3 ADD SLOAD SWAP1 SWAP2 SWAP1 DUP4 JUMP JUMPDEST PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH1 0xD 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 DUP2 JUMP JUMPDEST PUSH1 0xC SLOAD DUP2 JUMP JUMPDEST PUSH1 0x5 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x7 SLOAD DUP2 JUMP JUMPDEST PUSH1 0xF PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x6 SLOAD DUP2 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x34A DUP2 PUSH2 0x4F8 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x34A DUP2 PUSH2 0x50F JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x36D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x379 DUP5 DUP5 PUSH2 0x33F JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x393 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x379 DUP5 DUP5 PUSH2 0x350 JUMP JUMPDEST PUSH2 0x3A8 DUP2 PUSH2 0x4C8 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x3A8 DUP2 PUSH2 0x4D3 JUMP JUMPDEST PUSH2 0x3A8 DUP2 PUSH2 0x4ED JUMP JUMPDEST PUSH2 0x3A8 DUP2 PUSH2 0x4E4 JUMP JUMPDEST PUSH2 0x3A8 DUP2 PUSH2 0x4E7 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x34A DUP3 DUP5 PUSH2 0x39F JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x34A DUP3 DUP5 PUSH2 0x3B7 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x34A DUP3 DUP5 PUSH2 0x3C0 JUMP JUMPDEST PUSH2 0x160 DUP2 ADD PUSH2 0x40B DUP3 DUP15 PUSH2 0x3C0 JUMP JUMPDEST PUSH2 0x418 PUSH1 0x20 DUP4 ADD DUP14 PUSH2 0x39F JUMP JUMPDEST PUSH2 0x425 PUSH1 0x40 DUP4 ADD DUP13 PUSH2 0x3C0 JUMP JUMPDEST PUSH2 0x432 PUSH1 0x60 DUP4 ADD DUP12 PUSH2 0x3C0 JUMP JUMPDEST PUSH2 0x43F PUSH1 0x80 DUP4 ADD DUP11 PUSH2 0x3C0 JUMP JUMPDEST PUSH2 0x44C PUSH1 0xA0 DUP4 ADD DUP10 PUSH2 0x3C0 JUMP JUMPDEST PUSH2 0x459 PUSH1 0xC0 DUP4 ADD DUP9 PUSH2 0x3C0 JUMP JUMPDEST PUSH2 0x466 PUSH1 0xE0 DUP4 ADD DUP8 PUSH2 0x3C0 JUMP JUMPDEST PUSH2 0x474 PUSH2 0x100 DUP4 ADD DUP7 PUSH2 0x3AE JUMP JUMPDEST PUSH2 0x482 PUSH2 0x120 DUP4 ADD DUP6 PUSH2 0x3AE JUMP JUMPDEST PUSH2 0x490 PUSH2 0x140 DUP4 ADD DUP5 PUSH2 0x3C9 JUMP JUMPDEST SWAP13 SWAP12 POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP2 ADD PUSH2 0x4AE DUP3 DUP7 PUSH2 0x3C0 JUMP JUMPDEST PUSH2 0x4BB PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x3C0 JUMP JUMPDEST PUSH2 0x379 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x3C0 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x34A DUP3 PUSH2 0x4D8 JUMP JUMPDEST ISZERO ISZERO SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x34A DUP3 PUSH2 0x4C8 JUMP JUMPDEST PUSH2 0x501 DUP2 PUSH2 0x4C8 JUMP JUMPDEST DUP2 EQ PUSH2 0x50C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x501 DUP2 PUSH2 0x4E4 JUMP INVALID LOG3 PUSH6 0x627A7A723158 KECCAK256 0xE9 0x23 SGT MLOAD 0xE5 0xE5 0xC 0xC 0xC7 0xA8 XOR 0x4A KECCAK256 0xD9 0xC7 PUSH27 0x4B65DF574D8D6C097FAE13618A68C546C6578706572696D656E74 PUSH2 0x6CF5 PUSH5 0x736F6C6343 STOP SDIV LT STOP BLOCKHASH ","sourceMap":"7528:822:2:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7528:822:2;;;;;;;"},"deployedBytecode":{"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106101005760003560e01c80635c60da1b11610097578063da35c66411610066578063da35c664146101dc578063ee9799ee146101e4578063f851a440146101f7578063fc4eee42146101ff57610100565b80635c60da1b146101bc5780637bdbe4d0146101c4578063b58131b0146101cc578063d33219b4146101d457610100565b806326782247116100d3578063267822471461017557806335a87de21461018a5780633932abb1146101ac578063452a9320146101b457610100565b8063013cf08b1461010557806302a251a31461013857806317977c611461014d5780631b9ce57514610160575b600080fd5b610118610113366004610381565b610207565b60405161012f9b9a999897969594939291906103fc565b60405180910390f35b610140610273565b60405161012f91906103ee565b61014061015b36600461035b565b610279565b61016861028b565b60405161012f91906103e0565b61017d61029a565b60405161012f91906103d2565b61019d610198366004610381565b6102a9565b60405161012f939291906104a0565b6101406102ca565b61017d6102d0565b61017d6102df565b6101406102ee565b6101406102f4565b6101686102fa565b610140610309565b6101686101f2366004610381565b61030f565b61017d61032a565b610140610339565b600a60208190526000918252604090912080546001820154600283015460078401546008850154600986015496860154600b870154600c880154600e9098015496986001600160a01b039096169794969395929492939192909160ff808316926101009004811691168b565b60045481565b600b6020526000908152604090205481565b6009546001600160a01b031681565b6001546001600160a01b031681565b600e6020526000908152604090208054600182015460029092015490919083565b60035481565b600d546001600160a01b031681565b6002546001600160a01b031681565b600c5481565b60055481565b6008546001600160a01b031681565b60075481565b600f602052600090815260409020546001600160a01b031681565b6000546001600160a01b031681565b60065481565b803561034a816104f8565b92915050565b803561034a8161050f565b60006020828403121561036d57600080fd5b6000610379848461033f565b949350505050565b60006020828403121561039357600080fd5b60006103798484610350565b6103a8816104c8565b82525050565b6103a8816104d3565b6103a8816104ed565b6103a8816104e4565b6103a8816104e7565b6020810161034a828461039f565b6020810161034a82846103b7565b6020810161034a82846103c0565b610160810161040b828e6103c0565b610418602083018d61039f565b610425604083018c6103c0565b610432606083018b6103c0565b61043f608083018a6103c0565b61044c60a08301896103c0565b61045960c08301886103c0565b61046660e08301876103c0565b6104746101008301866103ae565b6104826101208301856103ae565b6104906101408301846103c9565b9c9b505050505050505050505050565b606081016104ae82866103c0565b6104bb60208301856103c0565b61037960408301846103c0565b600061034a826104d8565b151590565b6001600160a01b031690565b90565b60ff1690565b600061034a826104c8565b610501816104c8565b811461050c57600080fd5b50565b610501816104e456fea365627a7a72315820e9231351e5e50c0cc7a8184a20d9c77a04b65df574d8d6c097fae13618a68c546c6578706572696d656e74616cf564736f6c63430005100040","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x100 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x5C60DA1B GT PUSH2 0x97 JUMPI DUP1 PUSH4 0xDA35C664 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0xDA35C664 EQ PUSH2 0x1DC JUMPI DUP1 PUSH4 0xEE9799EE EQ PUSH2 0x1E4 JUMPI DUP1 PUSH4 0xF851A440 EQ PUSH2 0x1F7 JUMPI DUP1 PUSH4 0xFC4EEE42 EQ PUSH2 0x1FF JUMPI PUSH2 0x100 JUMP JUMPDEST DUP1 PUSH4 0x5C60DA1B EQ PUSH2 0x1BC JUMPI DUP1 PUSH4 0x7BDBE4D0 EQ PUSH2 0x1C4 JUMPI DUP1 PUSH4 0xB58131B0 EQ PUSH2 0x1CC JUMPI DUP1 PUSH4 0xD33219B4 EQ PUSH2 0x1D4 JUMPI PUSH2 0x100 JUMP JUMPDEST DUP1 PUSH4 0x26782247 GT PUSH2 0xD3 JUMPI DUP1 PUSH4 0x26782247 EQ PUSH2 0x175 JUMPI DUP1 PUSH4 0x35A87DE2 EQ PUSH2 0x18A JUMPI DUP1 PUSH4 0x3932ABB1 EQ PUSH2 0x1AC JUMPI DUP1 PUSH4 0x452A9320 EQ PUSH2 0x1B4 JUMPI PUSH2 0x100 JUMP JUMPDEST DUP1 PUSH4 0x13CF08B EQ PUSH2 0x105 JUMPI DUP1 PUSH4 0x2A251A3 EQ PUSH2 0x138 JUMPI DUP1 PUSH4 0x17977C61 EQ PUSH2 0x14D JUMPI DUP1 PUSH4 0x1B9CE575 EQ PUSH2 0x160 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x118 PUSH2 0x113 CALLDATASIZE PUSH1 0x4 PUSH2 0x381 JUMP JUMPDEST PUSH2 0x207 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x12F SWAP12 SWAP11 SWAP10 SWAP9 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3FC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x140 PUSH2 0x273 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x12F SWAP2 SWAP1 PUSH2 0x3EE JUMP JUMPDEST PUSH2 0x140 PUSH2 0x15B CALLDATASIZE PUSH1 0x4 PUSH2 0x35B JUMP JUMPDEST PUSH2 0x279 JUMP JUMPDEST PUSH2 0x168 PUSH2 0x28B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x12F SWAP2 SWAP1 PUSH2 0x3E0 JUMP JUMPDEST PUSH2 0x17D PUSH2 0x29A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x12F SWAP2 SWAP1 PUSH2 0x3D2 JUMP JUMPDEST PUSH2 0x19D PUSH2 0x198 CALLDATASIZE PUSH1 0x4 PUSH2 0x381 JUMP JUMPDEST PUSH2 0x2A9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x12F SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4A0 JUMP JUMPDEST PUSH2 0x140 PUSH2 0x2CA JUMP JUMPDEST PUSH2 0x17D PUSH2 0x2D0 JUMP JUMPDEST PUSH2 0x17D PUSH2 0x2DF JUMP JUMPDEST PUSH2 0x140 PUSH2 0x2EE JUMP JUMPDEST PUSH2 0x140 PUSH2 0x2F4 JUMP JUMPDEST PUSH2 0x168 PUSH2 0x2FA JUMP JUMPDEST PUSH2 0x140 PUSH2 0x309 JUMP JUMPDEST PUSH2 0x168 PUSH2 0x1F2 CALLDATASIZE PUSH1 0x4 PUSH2 0x381 JUMP JUMPDEST PUSH2 0x30F JUMP JUMPDEST PUSH2 0x17D PUSH2 0x32A JUMP JUMPDEST PUSH2 0x140 PUSH2 0x339 JUMP JUMPDEST PUSH1 0xA PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x40 SWAP1 SWAP2 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 SWAP7 DUP7 ADD SLOAD PUSH1 0xB DUP8 ADD SLOAD PUSH1 0xC DUP9 ADD SLOAD PUSH1 0xE SWAP1 SWAP9 ADD SLOAD SWAP7 SWAP9 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP7 AND SWAP8 SWAP5 SWAP7 SWAP4 SWAP6 SWAP3 SWAP5 SWAP3 SWAP4 SWAP2 SWAP3 SWAP1 SWAP2 PUSH1 0xFF DUP1 DUP4 AND SWAP3 PUSH2 0x100 SWAP1 DIV DUP2 AND SWAP2 AND DUP12 JUMP JUMPDEST PUSH1 0x4 SLOAD DUP2 JUMP JUMPDEST PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0xE PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0x2 SWAP1 SWAP3 ADD SLOAD SWAP1 SWAP2 SWAP1 DUP4 JUMP JUMPDEST PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH1 0xD 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 DUP2 JUMP JUMPDEST PUSH1 0xC SLOAD DUP2 JUMP JUMPDEST PUSH1 0x5 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x7 SLOAD DUP2 JUMP JUMPDEST PUSH1 0xF PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x6 SLOAD DUP2 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x34A DUP2 PUSH2 0x4F8 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x34A DUP2 PUSH2 0x50F JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x36D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x379 DUP5 DUP5 PUSH2 0x33F JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x393 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x379 DUP5 DUP5 PUSH2 0x350 JUMP JUMPDEST PUSH2 0x3A8 DUP2 PUSH2 0x4C8 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x3A8 DUP2 PUSH2 0x4D3 JUMP JUMPDEST PUSH2 0x3A8 DUP2 PUSH2 0x4ED JUMP JUMPDEST PUSH2 0x3A8 DUP2 PUSH2 0x4E4 JUMP JUMPDEST PUSH2 0x3A8 DUP2 PUSH2 0x4E7 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x34A DUP3 DUP5 PUSH2 0x39F JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x34A DUP3 DUP5 PUSH2 0x3B7 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x34A DUP3 DUP5 PUSH2 0x3C0 JUMP JUMPDEST PUSH2 0x160 DUP2 ADD PUSH2 0x40B DUP3 DUP15 PUSH2 0x3C0 JUMP JUMPDEST PUSH2 0x418 PUSH1 0x20 DUP4 ADD DUP14 PUSH2 0x39F JUMP JUMPDEST PUSH2 0x425 PUSH1 0x40 DUP4 ADD DUP13 PUSH2 0x3C0 JUMP JUMPDEST PUSH2 0x432 PUSH1 0x60 DUP4 ADD DUP12 PUSH2 0x3C0 JUMP JUMPDEST PUSH2 0x43F PUSH1 0x80 DUP4 ADD DUP11 PUSH2 0x3C0 JUMP JUMPDEST PUSH2 0x44C PUSH1 0xA0 DUP4 ADD DUP10 PUSH2 0x3C0 JUMP JUMPDEST PUSH2 0x459 PUSH1 0xC0 DUP4 ADD DUP9 PUSH2 0x3C0 JUMP JUMPDEST PUSH2 0x466 PUSH1 0xE0 DUP4 ADD DUP8 PUSH2 0x3C0 JUMP JUMPDEST PUSH2 0x474 PUSH2 0x100 DUP4 ADD DUP7 PUSH2 0x3AE JUMP JUMPDEST PUSH2 0x482 PUSH2 0x120 DUP4 ADD DUP6 PUSH2 0x3AE JUMP JUMPDEST PUSH2 0x490 PUSH2 0x140 DUP4 ADD DUP5 PUSH2 0x3C9 JUMP JUMPDEST SWAP13 SWAP12 POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP2 ADD PUSH2 0x4AE DUP3 DUP7 PUSH2 0x3C0 JUMP JUMPDEST PUSH2 0x4BB PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x3C0 JUMP JUMPDEST PUSH2 0x379 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x3C0 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x34A DUP3 PUSH2 0x4D8 JUMP JUMPDEST ISZERO ISZERO SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x34A DUP3 PUSH2 0x4C8 JUMP JUMPDEST PUSH2 0x501 DUP2 PUSH2 0x4C8 JUMP JUMPDEST DUP2 EQ PUSH2 0x50C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x501 DUP2 PUSH2 0x4E4 JUMP INVALID LOG3 PUSH6 0x627A7A723158 KECCAK256 0xE9 0x23 SGT MLOAD 0xE5 0xE5 0xC 0xC 0xC7 0xA8 XOR 0x4A KECCAK256 0xD9 0xC7 PUSH27 0x4B65DF574D8D6C097FAE13618A68C546C6578706572696D656E74 PUSH2 0x6CF5 PUSH5 0x736F6C6343 STOP SDIV LT STOP BLOCKHASH ","sourceMap":"7528:822:2:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7528:822:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4650:42;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;4057:24;;;:::i;:::-;;;;;;;;4753:49;;;;;;;;;:::i;4543:33::-;;;:::i;:::-;;;;;;;;3389:27;;;:::i;:::-;;;;;;;;8150:54;;;;;;;;;:::i;:::-;;;;;;;;;;3952:23;;;:::i;7232:::-;;;:::i;3465:29::-;;;:::i;7129:33::-;;;:::i;4186:29::-;;;:::i;4445:33::-;;;:::i;4354:25::-;;;:::i;8288:59::-;;;;;;;;;:::i;3306:20::-;;;:::i;4272:29::-;;;:::i;4650:42::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4650:42:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;4057:24::-;;;;:::o;4753:49::-;;;;;;;;;;;;;:::o;4543:33::-;;;-1:-1:-1;;;;;4543:33:2;;:::o;3389:27::-;;;-1:-1:-1;;;;;3389:27:2;;:::o;8150:54::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3952:23::-;;;;:::o;7232:::-;;;-1:-1:-1;;;;;7232:23:2;;:::o;3465:29::-;;;-1:-1:-1;;;;;3465:29:2;;:::o;7129:33::-;;;;:::o;4186:29::-;;;;:::o;4445:33::-;;;-1:-1:-1;;;;;4445:33:2;;:::o;4354:25::-;;;;:::o;8288:59::-;;;;;;;;;;;;-1:-1:-1;;;;;8288:59:2;;:::o;3306:20::-;;;-1:-1:-1;;;;;3306:20:2;;:::o;4272:29::-;;;;:::o;5:130:-1:-;72:20;;97:33;72:20;97:33;;;57:78;;;;;142:130;209:20;;234:33;209:20;234:33;;279:241;;383:2;371:9;362:7;358:23;354:32;351:2;;;399:1;396;389:12;351:2;434:1;451:53;496:7;476:9;451:53;;;441:63;345:175;-1:-1;;;;345:175;527:241;;631:2;619:9;610:7;606:23;602:32;599:2;;;647:1;644;637:12;599:2;682:1;699:53;744:7;724:9;699:53;;775:113;858:24;876:5;858:24;;;853:3;846:37;840:48;;;895:104;972:21;987:5;972:21;;1006:178;1115:63;1172:5;1115:63;;1376:113;1459:24;1477:5;1459:24;;1496:107;1575:22;1591:5;1575:22;;1610:213;1728:2;1713:18;;1742:71;1717:9;1786:6;1742:71;;1830:265;1974:2;1959:18;;1988:97;1963:9;2058:6;1988:97;;2374:213;2492:2;2477:18;;2506:71;2481:9;2550:6;2506:71;;2594:1301;2977:3;2962:19;;2992:71;2966:9;3036:6;2992:71;;;3074:72;3142:2;3131:9;3127:18;3118:6;3074:72;;;3157;3225:2;3214:9;3210:18;3201:6;3157:72;;;3240;3308:2;3297:9;3293:18;3284:6;3240:72;;;3323:73;3391:3;3380:9;3376:19;3367:6;3323:73;;;3407;3475:3;3464:9;3460:19;3451:6;3407:73;;;3491;3559:3;3548:9;3544:19;3535:6;3491:73;;;3575;3643:3;3632:9;3628:19;3619:6;3575:73;;;3659:67;3721:3;3710:9;3706:19;3697:6;3659:67;;;3737;3799:3;3788:9;3784:19;3775:6;3737:67;;;3815:70;3880:3;3869:9;3865:19;3855:7;3815:70;;;2948:947;;;;;;;;;;;;;;;3902:435;4076:2;4061:18;;4090:71;4065:9;4134:6;4090:71;;;4172:72;4240:2;4229:9;4225:18;4216:6;4172:72;;;4255;4323:2;4312:9;4308:18;4299:6;4255:72;;4344:91;;4406:24;4424:5;4406:24;;4442:85;4508:13;4501:21;;4484:43;4534:121;-1:-1;;;;;4596:54;;4579:76;4662:72;4724:5;4707:27;4741:81;4812:4;4801:16;;4784:38;4829:173;;4934:63;4991:5;4934:63;;5471:117;5540:24;5558:5;5540:24;;;5533:5;5530:35;5520:2;;5579:1;5576;5569:12;5520:2;5514:74;;5595:117;5664:24;5682:5;5664:24;"},"gasEstimates":{"creation":{"codeDepositCost":"274200","executionCost":"312","totalCost":"274512"},"external":{"admin()":"infinite","guardian()":"infinite","implementation()":"infinite","initialProposalId()":"1187","latestProposalIds(address)":"infinite","pendingAdmin()":"infinite","proposalConfigs(uint256)":"infinite","proposalCount()":"1121","proposalMaxOperations()":"1144","proposalThreshold()":"1166","proposalTimelocks(uint256)":"infinite","proposals(uint256)":"infinite","timelock()":"infinite","votingDelay()":"1166","votingPeriod()":"1145","xvsVault()":"infinite"}},"methodIdentifiers":{"admin()":"f851a440","guardian()":"452a9320","implementation()":"5c60da1b","initialProposalId()":"fc4eee42","latestProposalIds(address)":"17977c61","pendingAdmin()":"26782247","proposalConfigs(uint256)":"35a87de2","proposalCount()":"da35c664","proposalMaxOperations()":"7bdbe4d0","proposalThreshold()":"b58131b0","proposalTimelocks(uint256)":"ee9799ee","proposals(uint256)":"013cf08b","timelock()":"d33219b4","votingDelay()":"3932abb1","votingPeriod()":"02a251a3","xvsVault()":"1b9ce575"}},"metadata":"{\"compiler\":{\"version\":\"0.5.16+commit.9c3226ce\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[],\"name\":\"admin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"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\":[],\"name\":\"implementation\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"initialProposalId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"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\":\"pendingAdmin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"proposalConfigs\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"votingDelay\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"votingPeriod\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"proposalThreshold\",\"type\":\"uint256\"}],\"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\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"proposalThreshold\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"proposalTimelocks\",\"outputs\":[{\"internalType\":\"contract TimelockInterface\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"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\":\"uint256\",\"name\":\"abstainVotes\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"canceled\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"executed\",\"type\":\"bool\"},{\"internalType\":\"uint8\",\"name\":\"proposalType\",\"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\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"votingPeriod\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"xvsVault\",\"outputs\":[{\"internalType\":\"contract XvsVaultInterface\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"For future upgrades, do not change GovernorBravoDelegateStorageV2. Create a new contract which implements GovernorBravoDelegateStorageV2 and following the naming convention GovernorBravoDelegateStorageVX.\",\"methods\":{},\"title\":\"GovernorBravoDelegateStorageV2\"},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"contracts/Governance/GovernorBravoInterfaces.sol\":\"GovernorBravoDelegateStorageV2\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/Governance/GovernorBravoInterfaces.sol\":{\"content\":\"pragma solidity ^0.5.16;\\npragma experimental ABIEncoderV2;\\n\\n/**\\n * @title GovernorBravoEvents\\n * @author Venus\\n * @notice Set of events emitted by the GovernorBravo contracts.\\n */\\ncontract GovernorBravoEvents {\\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        uint8 proposalType\\n    );\\n\\n    /// @notice An event emitted when a vote has been cast on a proposal\\n    /// @param voter The address which casted a vote\\n    /// @param proposalId The proposal id which was voted on\\n    /// @param support Support value for the vote. 0=against, 1=for, 2=abstain\\n    /// @param votes Number of votes which were cast by the voter\\n    /// @param reason The reason given for the vote by the voter\\n    event VoteCast(address indexed voter, uint proposalId, uint8 support, uint votes, string reason);\\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    /// @notice An event emitted when the voting delay is set\\n    event VotingDelaySet(uint oldVotingDelay, uint newVotingDelay);\\n\\n    /// @notice An event emitted when the voting period is set\\n    event VotingPeriodSet(uint oldVotingPeriod, uint newVotingPeriod);\\n\\n    /// @notice Emitted when implementation is changed\\n    event NewImplementation(address oldImplementation, address newImplementation);\\n\\n    /// @notice Emitted when proposal threshold is set\\n    event ProposalThresholdSet(uint oldProposalThreshold, uint newProposalThreshold);\\n\\n    /// @notice Emitted when pendingAdmin is changed\\n    event NewPendingAdmin(address oldPendingAdmin, address newPendingAdmin);\\n\\n    /// @notice Emitted when pendingAdmin is accepted, which means admin is updated\\n    event NewAdmin(address oldAdmin, address newAdmin);\\n\\n    /// @notice Emitted when the new guardian address is set\\n    event NewGuardian(address oldGuardian, address newGuardian);\\n\\n    /// @notice Emitted when the maximum number of operations in one proposal is updated\\n    event ProposalMaxOperationsUpdated(uint oldMaxOperations, uint newMaxOperations);\\n\\n    /// @notice Emitted when the new validation params are set\\n    event SetValidationParams(\\n        uint256 oldMinVotingPeriod,\\n        uint256 newMinVotingPeriod,\\n        uint256 oldmaxVotingPeriod,\\n        uint256 newmaxVotingPeriod,\\n        uint256 oldminVotingDelay,\\n        uint256 newminVotingDelay,\\n        uint256 oldmaxVotingDelay,\\n        uint256 newmaxVotingDelay\\n    );\\n\\n    /// @notice Emitted when new Proposal configs added\\n    event SetProposalConfigs(uint256 votingPeriod, uint256 votingDelay, uint256 proposalThreshold);\\n}\\n\\n/**\\n * @title GovernorBravoDelegatorStorage\\n * @author Venus\\n * @notice Storage layout of the `GovernorBravoDelegator` contract\\n */\\ncontract GovernorBravoDelegatorStorage {\\n    /// @notice Administrator for this contract\\n    address public admin;\\n\\n    /// @notice Pending administrator for this contract\\n    address public pendingAdmin;\\n\\n    /// @notice Active brains of Governor\\n    address public implementation;\\n}\\n\\n/**\\n * @title GovernorBravoDelegateStorageV1\\n * @dev For future upgrades, do not change GovernorBravoDelegateStorageV1. Create a new\\n * contract which implements GovernorBravoDelegateStorageV1 and following the naming convention\\n * GovernorBravoDelegateStorageVX.\\n */\\ncontract GovernorBravoDelegateStorageV1 is GovernorBravoDelegatorStorage {\\n    /// @notice DEPRECATED The delay before voting on a proposal may take place, once proposed, in blocks\\n    uint public votingDelay;\\n\\n    /// @notice DEPRECATED The duration of voting on a proposal, in blocks\\n    uint public votingPeriod;\\n\\n    /// @notice DEPRECATED The number of votes required in order for a voter to become a proposer\\n    uint public proposalThreshold;\\n\\n    /// @notice Initial proposal id set at become\\n    uint public initialProposalId;\\n\\n    /// @notice The total number of proposals\\n    uint public proposalCount;\\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    XvsVaultInterface public xvsVault;\\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    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 Current number of votes for abstaining for this proposal\\n        uint abstainVotes;\\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        /// @notice The type of the proposal\\n        uint8 proposalType;\\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 or abstains\\n        uint8 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 maximum number of actions that can be included in a proposal\\n    uint public proposalMaxOperations;\\n\\n    /// @notice A privileged role that can cancel any proposal\\n    address public guardian;\\n}\\n\\n/**\\n * @title GovernorBravoDelegateStorageV2\\n * @dev For future upgrades, do not change GovernorBravoDelegateStorageV2. Create a new\\n * contract which implements GovernorBravoDelegateStorageV2 and following the naming convention\\n * GovernorBravoDelegateStorageVX.\\n */\\ncontract GovernorBravoDelegateStorageV2 is GovernorBravoDelegateStorageV1 {\\n    enum ProposalType {\\n        NORMAL,\\n        FASTTRACK,\\n        CRITICAL\\n    }\\n\\n    struct ProposalConfig {\\n        /// @notice The delay before voting on a proposal may take place, once proposed, in blocks\\n        uint256 votingDelay;\\n        /// @notice The duration of voting on a proposal, in blocks\\n        uint256 votingPeriod;\\n        /// @notice The number of votes required in order for a voter to become a proposer\\n        uint256 proposalThreshold;\\n    }\\n\\n    /// @notice mapping containing configuration for each proposal type\\n    mapping(uint => ProposalConfig) public proposalConfigs;\\n\\n    /// @notice mapping containing Timelock addresses for each proposal type\\n    mapping(uint => TimelockInterface) public proposalTimelocks;\\n}\\n\\n/**\\n * @title GovernorBravoDelegateStorageV3\\n * @dev For future upgrades, do not change GovernorBravoDelegateStorageV3. Create a new\\n * contract which implements GovernorBravoDelegateStorageV3 and following the naming convention\\n * GovernorBravoDelegateStorageVX.\\n */\\ncontract GovernorBravoDelegateStorageV3 is GovernorBravoDelegateStorageV2 {\\n    struct ValidationParams {\\n        uint256 minVotingPeriod;\\n        uint256 maxVotingPeriod;\\n        uint256 minVotingDelay;\\n        uint256 maxVotingDelay;\\n    }\\n    /// @notice Stores the current minimum and maximum values of voting delay and voting period\\n    ValidationParams public validationParams;\\n}\\n\\n/**\\n * @title TimelockInterface\\n * @author Venus\\n * @notice Interface implemented by the Timelock contract.\\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 XvsVaultInterface {\\n    function getPriorVotes(address account, uint blockNumber) external view returns (uint96);\\n}\\n\\ninterface GovernorAlphaInterface {\\n    /// @notice The total number of proposals\\n    function proposalCount() external returns (uint);\\n}\\n\",\"keccak256\":\"0x62c89309d4351dbeb5516465211fab0b566d83d60dc0148377deaad1f1929b85\"}},\"version\":1}","storageLayout":{"storage":[{"astId":1818,"contract":"contracts/Governance/GovernorBravoInterfaces.sol:GovernorBravoDelegateStorageV2","label":"admin","offset":0,"slot":"0","type":"t_address"},{"astId":1820,"contract":"contracts/Governance/GovernorBravoInterfaces.sol:GovernorBravoDelegateStorageV2","label":"pendingAdmin","offset":0,"slot":"1","type":"t_address"},{"astId":1822,"contract":"contracts/Governance/GovernorBravoInterfaces.sol:GovernorBravoDelegateStorageV2","label":"implementation","offset":0,"slot":"2","type":"t_address"},{"astId":1827,"contract":"contracts/Governance/GovernorBravoInterfaces.sol:GovernorBravoDelegateStorageV2","label":"votingDelay","offset":0,"slot":"3","type":"t_uint256"},{"astId":1829,"contract":"contracts/Governance/GovernorBravoInterfaces.sol:GovernorBravoDelegateStorageV2","label":"votingPeriod","offset":0,"slot":"4","type":"t_uint256"},{"astId":1831,"contract":"contracts/Governance/GovernorBravoInterfaces.sol:GovernorBravoDelegateStorageV2","label":"proposalThreshold","offset":0,"slot":"5","type":"t_uint256"},{"astId":1833,"contract":"contracts/Governance/GovernorBravoInterfaces.sol:GovernorBravoDelegateStorageV2","label":"initialProposalId","offset":0,"slot":"6","type":"t_uint256"},{"astId":1835,"contract":"contracts/Governance/GovernorBravoInterfaces.sol:GovernorBravoDelegateStorageV2","label":"proposalCount","offset":0,"slot":"7","type":"t_uint256"},{"astId":1837,"contract":"contracts/Governance/GovernorBravoInterfaces.sol:GovernorBravoDelegateStorageV2","label":"timelock","offset":0,"slot":"8","type":"t_contract(TimelockInterface)2007"},{"astId":1839,"contract":"contracts/Governance/GovernorBravoInterfaces.sol:GovernorBravoDelegateStorageV2","label":"xvsVault","offset":0,"slot":"9","type":"t_contract(XvsVaultInterface)2017"},{"astId":1843,"contract":"contracts/Governance/GovernorBravoInterfaces.sol:GovernorBravoDelegateStorageV2","label":"proposals","offset":0,"slot":"10","type":"t_mapping(t_uint256,t_struct(Proposal)1886_storage)"},{"astId":1847,"contract":"contracts/Governance/GovernorBravoInterfaces.sol:GovernorBravoDelegateStorageV2","label":"latestProposalIds","offset":0,"slot":"11","type":"t_mapping(t_address,t_uint256)"},{"astId":1904,"contract":"contracts/Governance/GovernorBravoInterfaces.sol:GovernorBravoDelegateStorageV2","label":"proposalMaxOperations","offset":0,"slot":"12","type":"t_uint256"},{"astId":1906,"contract":"contracts/Governance/GovernorBravoInterfaces.sol:GovernorBravoDelegateStorageV2","label":"guardian","offset":0,"slot":"13","type":"t_address"},{"astId":1924,"contract":"contracts/Governance/GovernorBravoInterfaces.sol:GovernorBravoDelegateStorageV2","label":"proposalConfigs","offset":0,"slot":"14","type":"t_mapping(t_uint256,t_struct(ProposalConfig)1920_storage)"},{"astId":1928,"contract":"contracts/Governance/GovernorBravoInterfaces.sol:GovernorBravoDelegateStorageV2","label":"proposalTimelocks","offset":0,"slot":"15","type":"t_mapping(t_uint256,t_contract(TimelockInterface)2007)"}],"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)2007":{"encoding":"inplace","label":"contract TimelockInterface","numberOfBytes":"20"},"t_contract(XvsVaultInterface)2017":{"encoding":"inplace","label":"contract XvsVaultInterface","numberOfBytes":"20"},"t_mapping(t_address,t_struct(Receipt)1893_storage)":{"encoding":"mapping","key":"t_address","label":"mapping(address => struct GovernorBravoDelegateStorageV1.Receipt)","numberOfBytes":"32","value":"t_struct(Receipt)1893_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_contract(TimelockInterface)2007)":{"encoding":"mapping","key":"t_uint256","label":"mapping(uint256 => contract TimelockInterface)","numberOfBytes":"32","value":"t_contract(TimelockInterface)2007"},"t_mapping(t_uint256,t_struct(Proposal)1886_storage)":{"encoding":"mapping","key":"t_uint256","label":"mapping(uint256 => struct GovernorBravoDelegateStorageV1.Proposal)","numberOfBytes":"32","value":"t_struct(Proposal)1886_storage"},"t_mapping(t_uint256,t_struct(ProposalConfig)1920_storage)":{"encoding":"mapping","key":"t_uint256","label":"mapping(uint256 => struct GovernorBravoDelegateStorageV2.ProposalConfig)","numberOfBytes":"32","value":"t_struct(ProposalConfig)1920_storage"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_struct(Proposal)1886_storage":{"encoding":"inplace","label":"struct GovernorBravoDelegateStorageV1.Proposal","members":[{"astId":1849,"contract":"contracts/Governance/GovernorBravoInterfaces.sol:GovernorBravoDelegateStorageV2","label":"id","offset":0,"slot":"0","type":"t_uint256"},{"astId":1851,"contract":"contracts/Governance/GovernorBravoInterfaces.sol:GovernorBravoDelegateStorageV2","label":"proposer","offset":0,"slot":"1","type":"t_address"},{"astId":1853,"contract":"contracts/Governance/GovernorBravoInterfaces.sol:GovernorBravoDelegateStorageV2","label":"eta","offset":0,"slot":"2","type":"t_uint256"},{"astId":1856,"contract":"contracts/Governance/GovernorBravoInterfaces.sol:GovernorBravoDelegateStorageV2","label":"targets","offset":0,"slot":"3","type":"t_array(t_address)dyn_storage"},{"astId":1859,"contract":"contracts/Governance/GovernorBravoInterfaces.sol:GovernorBravoDelegateStorageV2","label":"values","offset":0,"slot":"4","type":"t_array(t_uint256)dyn_storage"},{"astId":1862,"contract":"contracts/Governance/GovernorBravoInterfaces.sol:GovernorBravoDelegateStorageV2","label":"signatures","offset":0,"slot":"5","type":"t_array(t_string_storage)dyn_storage"},{"astId":1865,"contract":"contracts/Governance/GovernorBravoInterfaces.sol:GovernorBravoDelegateStorageV2","label":"calldatas","offset":0,"slot":"6","type":"t_array(t_bytes_storage)dyn_storage"},{"astId":1867,"contract":"contracts/Governance/GovernorBravoInterfaces.sol:GovernorBravoDelegateStorageV2","label":"startBlock","offset":0,"slot":"7","type":"t_uint256"},{"astId":1869,"contract":"contracts/Governance/GovernorBravoInterfaces.sol:GovernorBravoDelegateStorageV2","label":"endBlock","offset":0,"slot":"8","type":"t_uint256"},{"astId":1871,"contract":"contracts/Governance/GovernorBravoInterfaces.sol:GovernorBravoDelegateStorageV2","label":"forVotes","offset":0,"slot":"9","type":"t_uint256"},{"astId":1873,"contract":"contracts/Governance/GovernorBravoInterfaces.sol:GovernorBravoDelegateStorageV2","label":"againstVotes","offset":0,"slot":"10","type":"t_uint256"},{"astId":1875,"contract":"contracts/Governance/GovernorBravoInterfaces.sol:GovernorBravoDelegateStorageV2","label":"abstainVotes","offset":0,"slot":"11","type":"t_uint256"},{"astId":1877,"contract":"contracts/Governance/GovernorBravoInterfaces.sol:GovernorBravoDelegateStorageV2","label":"canceled","offset":0,"slot":"12","type":"t_bool"},{"astId":1879,"contract":"contracts/Governance/GovernorBravoInterfaces.sol:GovernorBravoDelegateStorageV2","label":"executed","offset":1,"slot":"12","type":"t_bool"},{"astId":1883,"contract":"contracts/Governance/GovernorBravoInterfaces.sol:GovernorBravoDelegateStorageV2","label":"receipts","offset":0,"slot":"13","type":"t_mapping(t_address,t_struct(Receipt)1893_storage)"},{"astId":1885,"contract":"contracts/Governance/GovernorBravoInterfaces.sol:GovernorBravoDelegateStorageV2","label":"proposalType","offset":0,"slot":"14","type":"t_uint8"}],"numberOfBytes":"480"},"t_struct(ProposalConfig)1920_storage":{"encoding":"inplace","label":"struct GovernorBravoDelegateStorageV2.ProposalConfig","members":[{"astId":1915,"contract":"contracts/Governance/GovernorBravoInterfaces.sol:GovernorBravoDelegateStorageV2","label":"votingDelay","offset":0,"slot":"0","type":"t_uint256"},{"astId":1917,"contract":"contracts/Governance/GovernorBravoInterfaces.sol:GovernorBravoDelegateStorageV2","label":"votingPeriod","offset":0,"slot":"1","type":"t_uint256"},{"astId":1919,"contract":"contracts/Governance/GovernorBravoInterfaces.sol:GovernorBravoDelegateStorageV2","label":"proposalThreshold","offset":0,"slot":"2","type":"t_uint256"}],"numberOfBytes":"96"},"t_struct(Receipt)1893_storage":{"encoding":"inplace","label":"struct GovernorBravoDelegateStorageV1.Receipt","members":[{"astId":1888,"contract":"contracts/Governance/GovernorBravoInterfaces.sol:GovernorBravoDelegateStorageV2","label":"hasVoted","offset":0,"slot":"0","type":"t_bool"},{"astId":1890,"contract":"contracts/Governance/GovernorBravoInterfaces.sol:GovernorBravoDelegateStorageV2","label":"support","offset":1,"slot":"0","type":"t_uint8"},{"astId":1892,"contract":"contracts/Governance/GovernorBravoInterfaces.sol:GovernorBravoDelegateStorageV2","label":"votes","offset":2,"slot":"0","type":"t_uint96"}],"numberOfBytes":"32"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"},"t_uint96":{"encoding":"inplace","label":"uint96","numberOfBytes":"12"}}},"userdoc":{"methods":{}}},"GovernorBravoDelegateStorageV3":{"abi":[{"constant":true,"inputs":[],"name":"admin","outputs":[{"internalType":"address","name":"","type":"address"}],"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":[],"name":"implementation","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"initialProposalId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"pendingAdmin","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"proposalConfigs","outputs":[{"internalType":"uint256","name":"votingDelay","type":"uint256"},{"internalType":"uint256","name":"votingPeriod","type":"uint256"},{"internalType":"uint256","name":"proposalThreshold","type":"uint256"}],"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":"view","type":"function"},{"constant":true,"inputs":[],"name":"proposalThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"proposalTimelocks","outputs":[{"internalType":"contract TimelockInterface","name":"","type":"address"}],"payable":false,"stateMutability":"view","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":"uint256","name":"abstainVotes","type":"uint256"},{"internalType":"bool","name":"canceled","type":"bool"},{"internalType":"bool","name":"executed","type":"bool"},{"internalType":"uint8","name":"proposalType","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":"validationParams","outputs":[{"internalType":"uint256","name":"minVotingPeriod","type":"uint256"},{"internalType":"uint256","name":"maxVotingPeriod","type":"uint256"},{"internalType":"uint256","name":"minVotingDelay","type":"uint256"},{"internalType":"uint256","name":"maxVotingDelay","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"votingDelay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"votingPeriod","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"xvsVault","outputs":[{"internalType":"contract XvsVaultInterface","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}],"devdoc":{"details":"For future upgrades, do not change GovernorBravoDelegateStorageV3. Create a new contract which implements GovernorBravoDelegateStorageV3 and following the naming convention GovernorBravoDelegateStorageVX.","methods":{},"title":"GovernorBravoDelegateStorageV3"},"evm":{"bytecode":{"linkReferences":{},"object":"608060405234801561001057600080fd5b506105cb806100206000396000f3fe608060405234801561001057600080fd5b506004361061010b5760003560e01c8063452a9320116100a2578063d33219b411610071578063d33219b4146101f7578063da35c664146101ff578063ee9799ee14610207578063f851a4401461021a578063fc4eee42146102225761010b565b8063452a9320146101d75780635c60da1b146101df5780637bdbe4d0146101e7578063b58131b0146101ef5761010b565b806326782247116100de578063267822471461018057806334cf39091461019557806335a87de2146101ad5780633932abb1146101cf5761010b565b8063013cf08b1461011057806302a251a31461014357806317977c61146101585780631b9ce5751461016b575b600080fd5b61012361011e3660046103b3565b61022a565b60405161013a9b9a9998979695949392919061042e565b60405180910390f35b61014b610296565b60405161013a9190610420565b61014b61016636600461038d565b61029c565b6101736102ae565b60405161013a9190610412565b6101886102bd565b60405161013a9190610404565b61019d6102cc565b60405161013a94939291906104fa565b6101c06101bb3660046103b3565b6102db565b60405161013a939291906104d2565b61014b6102fc565b610188610302565b610188610311565b61014b610320565b61014b610326565b61017361032c565b61014b61033b565b6101736102153660046103b3565b610341565b61018861035c565b61014b61036b565b600a60208190526000918252604090912080546001820154600283015460078401546008850154600986015496860154600b870154600c880154600e9098015496986001600160a01b039096169794969395929492939192909160ff808316926101009004811691168b565b60045481565b600b6020526000908152604090205481565b6009546001600160a01b031681565b6001546001600160a01b031681565b60105460115460125460135484565b600e6020526000908152604090208054600182015460029092015490919083565b60035481565b600d546001600160a01b031681565b6002546001600160a01b031681565b600c5481565b60055481565b6008546001600160a01b031681565b60075481565b600f602052600090815260409020546001600160a01b031681565b6000546001600160a01b031681565b60065481565b803561037c81610568565b92915050565b803561037c8161057f565b60006020828403121561039f57600080fd5b60006103ab8484610371565b949350505050565b6000602082840312156103c557600080fd5b60006103ab8484610382565b6103da81610538565b82525050565b6103da81610543565b6103da8161055d565b6103da81610554565b6103da81610557565b6020810161037c82846103d1565b6020810161037c82846103e9565b6020810161037c82846103f2565b610160810161043d828e6103f2565b61044a602083018d6103d1565b610457604083018c6103f2565b610464606083018b6103f2565b610471608083018a6103f2565b61047e60a08301896103f2565b61048b60c08301886103f2565b61049860e08301876103f2565b6104a66101008301866103e0565b6104b46101208301856103e0565b6104c26101408301846103fb565b9c9b505050505050505050505050565b606081016104e082866103f2565b6104ed60208301856103f2565b6103ab60408301846103f2565b6080810161050882876103f2565b61051560208301866103f2565b61052260408301856103f2565b61052f60608301846103f2565b95945050505050565b600061037c82610548565b151590565b6001600160a01b031690565b90565b60ff1690565b600061037c82610538565b61057181610538565b811461057c57600080fd5b50565b6105718161055456fea365627a7a723158206b092dddbea658743225e44c571ce3d297356e797c50771b1a5bfb41f62905066c6578706572696d656e74616cf564736f6c63430005100040","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x5CB DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x10B JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x452A9320 GT PUSH2 0xA2 JUMPI DUP1 PUSH4 0xD33219B4 GT PUSH2 0x71 JUMPI DUP1 PUSH4 0xD33219B4 EQ PUSH2 0x1F7 JUMPI DUP1 PUSH4 0xDA35C664 EQ PUSH2 0x1FF JUMPI DUP1 PUSH4 0xEE9799EE EQ PUSH2 0x207 JUMPI DUP1 PUSH4 0xF851A440 EQ PUSH2 0x21A JUMPI DUP1 PUSH4 0xFC4EEE42 EQ PUSH2 0x222 JUMPI PUSH2 0x10B JUMP JUMPDEST DUP1 PUSH4 0x452A9320 EQ PUSH2 0x1D7 JUMPI DUP1 PUSH4 0x5C60DA1B EQ PUSH2 0x1DF JUMPI DUP1 PUSH4 0x7BDBE4D0 EQ PUSH2 0x1E7 JUMPI DUP1 PUSH4 0xB58131B0 EQ PUSH2 0x1EF JUMPI PUSH2 0x10B JUMP JUMPDEST DUP1 PUSH4 0x26782247 GT PUSH2 0xDE JUMPI DUP1 PUSH4 0x26782247 EQ PUSH2 0x180 JUMPI DUP1 PUSH4 0x34CF3909 EQ PUSH2 0x195 JUMPI DUP1 PUSH4 0x35A87DE2 EQ PUSH2 0x1AD JUMPI DUP1 PUSH4 0x3932ABB1 EQ PUSH2 0x1CF JUMPI PUSH2 0x10B JUMP JUMPDEST DUP1 PUSH4 0x13CF08B EQ PUSH2 0x110 JUMPI DUP1 PUSH4 0x2A251A3 EQ PUSH2 0x143 JUMPI DUP1 PUSH4 0x17977C61 EQ PUSH2 0x158 JUMPI DUP1 PUSH4 0x1B9CE575 EQ PUSH2 0x16B JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x123 PUSH2 0x11E CALLDATASIZE PUSH1 0x4 PUSH2 0x3B3 JUMP JUMPDEST PUSH2 0x22A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x13A SWAP12 SWAP11 SWAP10 SWAP9 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x42E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x14B PUSH2 0x296 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x13A SWAP2 SWAP1 PUSH2 0x420 JUMP JUMPDEST PUSH2 0x14B PUSH2 0x166 CALLDATASIZE PUSH1 0x4 PUSH2 0x38D JUMP JUMPDEST PUSH2 0x29C JUMP JUMPDEST PUSH2 0x173 PUSH2 0x2AE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x13A SWAP2 SWAP1 PUSH2 0x412 JUMP JUMPDEST PUSH2 0x188 PUSH2 0x2BD JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x13A SWAP2 SWAP1 PUSH2 0x404 JUMP JUMPDEST PUSH2 0x19D PUSH2 0x2CC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x13A SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4FA JUMP JUMPDEST PUSH2 0x1C0 PUSH2 0x1BB CALLDATASIZE PUSH1 0x4 PUSH2 0x3B3 JUMP JUMPDEST PUSH2 0x2DB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x13A SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4D2 JUMP JUMPDEST PUSH2 0x14B PUSH2 0x2FC JUMP JUMPDEST PUSH2 0x188 PUSH2 0x302 JUMP JUMPDEST PUSH2 0x188 PUSH2 0x311 JUMP JUMPDEST PUSH2 0x14B PUSH2 0x320 JUMP JUMPDEST PUSH2 0x14B PUSH2 0x326 JUMP JUMPDEST PUSH2 0x173 PUSH2 0x32C JUMP JUMPDEST PUSH2 0x14B PUSH2 0x33B JUMP JUMPDEST PUSH2 0x173 PUSH2 0x215 CALLDATASIZE PUSH1 0x4 PUSH2 0x3B3 JUMP JUMPDEST PUSH2 0x341 JUMP JUMPDEST PUSH2 0x188 PUSH2 0x35C JUMP JUMPDEST PUSH2 0x14B PUSH2 0x36B JUMP JUMPDEST PUSH1 0xA PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x40 SWAP1 SWAP2 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 SWAP7 DUP7 ADD SLOAD PUSH1 0xB DUP8 ADD SLOAD PUSH1 0xC DUP9 ADD SLOAD PUSH1 0xE SWAP1 SWAP9 ADD SLOAD SWAP7 SWAP9 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP7 AND SWAP8 SWAP5 SWAP7 SWAP4 SWAP6 SWAP3 SWAP5 SWAP3 SWAP4 SWAP2 SWAP3 SWAP1 SWAP2 PUSH1 0xFF DUP1 DUP4 AND SWAP3 PUSH2 0x100 SWAP1 DIV DUP2 AND SWAP2 AND DUP12 JUMP JUMPDEST PUSH1 0x4 SLOAD DUP2 JUMP JUMPDEST PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x10 SLOAD PUSH1 0x11 SLOAD PUSH1 0x12 SLOAD PUSH1 0x13 SLOAD DUP5 JUMP JUMPDEST PUSH1 0xE PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0x2 SWAP1 SWAP3 ADD SLOAD SWAP1 SWAP2 SWAP1 DUP4 JUMP JUMPDEST PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH1 0xD 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 DUP2 JUMP JUMPDEST PUSH1 0xC SLOAD DUP2 JUMP JUMPDEST PUSH1 0x5 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x7 SLOAD DUP2 JUMP JUMPDEST PUSH1 0xF PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x6 SLOAD DUP2 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x37C DUP2 PUSH2 0x568 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x37C DUP2 PUSH2 0x57F JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x39F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x3AB DUP5 DUP5 PUSH2 0x371 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3C5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x3AB DUP5 DUP5 PUSH2 0x382 JUMP JUMPDEST PUSH2 0x3DA DUP2 PUSH2 0x538 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x3DA DUP2 PUSH2 0x543 JUMP JUMPDEST PUSH2 0x3DA DUP2 PUSH2 0x55D JUMP JUMPDEST PUSH2 0x3DA DUP2 PUSH2 0x554 JUMP JUMPDEST PUSH2 0x3DA DUP2 PUSH2 0x557 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x37C DUP3 DUP5 PUSH2 0x3D1 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x37C DUP3 DUP5 PUSH2 0x3E9 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x37C DUP3 DUP5 PUSH2 0x3F2 JUMP JUMPDEST PUSH2 0x160 DUP2 ADD PUSH2 0x43D DUP3 DUP15 PUSH2 0x3F2 JUMP JUMPDEST PUSH2 0x44A PUSH1 0x20 DUP4 ADD DUP14 PUSH2 0x3D1 JUMP JUMPDEST PUSH2 0x457 PUSH1 0x40 DUP4 ADD DUP13 PUSH2 0x3F2 JUMP JUMPDEST PUSH2 0x464 PUSH1 0x60 DUP4 ADD DUP12 PUSH2 0x3F2 JUMP JUMPDEST PUSH2 0x471 PUSH1 0x80 DUP4 ADD DUP11 PUSH2 0x3F2 JUMP JUMPDEST PUSH2 0x47E PUSH1 0xA0 DUP4 ADD DUP10 PUSH2 0x3F2 JUMP JUMPDEST PUSH2 0x48B PUSH1 0xC0 DUP4 ADD DUP9 PUSH2 0x3F2 JUMP JUMPDEST PUSH2 0x498 PUSH1 0xE0 DUP4 ADD DUP8 PUSH2 0x3F2 JUMP JUMPDEST PUSH2 0x4A6 PUSH2 0x100 DUP4 ADD DUP7 PUSH2 0x3E0 JUMP JUMPDEST PUSH2 0x4B4 PUSH2 0x120 DUP4 ADD DUP6 PUSH2 0x3E0 JUMP JUMPDEST PUSH2 0x4C2 PUSH2 0x140 DUP4 ADD DUP5 PUSH2 0x3FB JUMP JUMPDEST SWAP13 SWAP12 POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP2 ADD PUSH2 0x4E0 DUP3 DUP7 PUSH2 0x3F2 JUMP JUMPDEST PUSH2 0x4ED PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x3F2 JUMP JUMPDEST PUSH2 0x3AB PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x3F2 JUMP JUMPDEST PUSH1 0x80 DUP2 ADD PUSH2 0x508 DUP3 DUP8 PUSH2 0x3F2 JUMP JUMPDEST PUSH2 0x515 PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x3F2 JUMP JUMPDEST PUSH2 0x522 PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x3F2 JUMP JUMPDEST PUSH2 0x52F PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x3F2 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x37C DUP3 PUSH2 0x548 JUMP JUMPDEST ISZERO ISZERO SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x37C DUP3 PUSH2 0x538 JUMP JUMPDEST PUSH2 0x571 DUP2 PUSH2 0x538 JUMP JUMPDEST DUP2 EQ PUSH2 0x57C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x571 DUP2 PUSH2 0x554 JUMP INVALID LOG3 PUSH6 0x627A7A723158 KECCAK256 PUSH12 0x92DDDBEA658743225E44C57 SHR 0xE3 0xD2 SWAP8 CALLDATALOAD PUSH15 0x797C50771B1A5BFB41F62905066C65 PUSH25 0x706572696D656E74616CF564736F6C63430005100040000000 ","sourceMap":"8620:385:2:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8620:385:2;;;;;;;"},"deployedBytecode":{"linkReferences":{},"object":"608060405234801561001057600080fd5b506004361061010b5760003560e01c8063452a9320116100a2578063d33219b411610071578063d33219b4146101f7578063da35c664146101ff578063ee9799ee14610207578063f851a4401461021a578063fc4eee42146102225761010b565b8063452a9320146101d75780635c60da1b146101df5780637bdbe4d0146101e7578063b58131b0146101ef5761010b565b806326782247116100de578063267822471461018057806334cf39091461019557806335a87de2146101ad5780633932abb1146101cf5761010b565b8063013cf08b1461011057806302a251a31461014357806317977c61146101585780631b9ce5751461016b575b600080fd5b61012361011e3660046103b3565b61022a565b60405161013a9b9a9998979695949392919061042e565b60405180910390f35b61014b610296565b60405161013a9190610420565b61014b61016636600461038d565b61029c565b6101736102ae565b60405161013a9190610412565b6101886102bd565b60405161013a9190610404565b61019d6102cc565b60405161013a94939291906104fa565b6101c06101bb3660046103b3565b6102db565b60405161013a939291906104d2565b61014b6102fc565b610188610302565b610188610311565b61014b610320565b61014b610326565b61017361032c565b61014b61033b565b6101736102153660046103b3565b610341565b61018861035c565b61014b61036b565b600a60208190526000918252604090912080546001820154600283015460078401546008850154600986015496860154600b870154600c880154600e9098015496986001600160a01b039096169794969395929492939192909160ff808316926101009004811691168b565b60045481565b600b6020526000908152604090205481565b6009546001600160a01b031681565b6001546001600160a01b031681565b60105460115460125460135484565b600e6020526000908152604090208054600182015460029092015490919083565b60035481565b600d546001600160a01b031681565b6002546001600160a01b031681565b600c5481565b60055481565b6008546001600160a01b031681565b60075481565b600f602052600090815260409020546001600160a01b031681565b6000546001600160a01b031681565b60065481565b803561037c81610568565b92915050565b803561037c8161057f565b60006020828403121561039f57600080fd5b60006103ab8484610371565b949350505050565b6000602082840312156103c557600080fd5b60006103ab8484610382565b6103da81610538565b82525050565b6103da81610543565b6103da8161055d565b6103da81610554565b6103da81610557565b6020810161037c82846103d1565b6020810161037c82846103e9565b6020810161037c82846103f2565b610160810161043d828e6103f2565b61044a602083018d6103d1565b610457604083018c6103f2565b610464606083018b6103f2565b610471608083018a6103f2565b61047e60a08301896103f2565b61048b60c08301886103f2565b61049860e08301876103f2565b6104a66101008301866103e0565b6104b46101208301856103e0565b6104c26101408301846103fb565b9c9b505050505050505050505050565b606081016104e082866103f2565b6104ed60208301856103f2565b6103ab60408301846103f2565b6080810161050882876103f2565b61051560208301866103f2565b61052260408301856103f2565b61052f60608301846103f2565b95945050505050565b600061037c82610548565b151590565b6001600160a01b031690565b90565b60ff1690565b600061037c82610538565b61057181610538565b811461057c57600080fd5b50565b6105718161055456fea365627a7a723158206b092dddbea658743225e44c571ce3d297356e797c50771b1a5bfb41f62905066c6578706572696d656e74616cf564736f6c63430005100040","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x10B JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x452A9320 GT PUSH2 0xA2 JUMPI DUP1 PUSH4 0xD33219B4 GT PUSH2 0x71 JUMPI DUP1 PUSH4 0xD33219B4 EQ PUSH2 0x1F7 JUMPI DUP1 PUSH4 0xDA35C664 EQ PUSH2 0x1FF JUMPI DUP1 PUSH4 0xEE9799EE EQ PUSH2 0x207 JUMPI DUP1 PUSH4 0xF851A440 EQ PUSH2 0x21A JUMPI DUP1 PUSH4 0xFC4EEE42 EQ PUSH2 0x222 JUMPI PUSH2 0x10B JUMP JUMPDEST DUP1 PUSH4 0x452A9320 EQ PUSH2 0x1D7 JUMPI DUP1 PUSH4 0x5C60DA1B EQ PUSH2 0x1DF JUMPI DUP1 PUSH4 0x7BDBE4D0 EQ PUSH2 0x1E7 JUMPI DUP1 PUSH4 0xB58131B0 EQ PUSH2 0x1EF JUMPI PUSH2 0x10B JUMP JUMPDEST DUP1 PUSH4 0x26782247 GT PUSH2 0xDE JUMPI DUP1 PUSH4 0x26782247 EQ PUSH2 0x180 JUMPI DUP1 PUSH4 0x34CF3909 EQ PUSH2 0x195 JUMPI DUP1 PUSH4 0x35A87DE2 EQ PUSH2 0x1AD JUMPI DUP1 PUSH4 0x3932ABB1 EQ PUSH2 0x1CF JUMPI PUSH2 0x10B JUMP JUMPDEST DUP1 PUSH4 0x13CF08B EQ PUSH2 0x110 JUMPI DUP1 PUSH4 0x2A251A3 EQ PUSH2 0x143 JUMPI DUP1 PUSH4 0x17977C61 EQ PUSH2 0x158 JUMPI DUP1 PUSH4 0x1B9CE575 EQ PUSH2 0x16B JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x123 PUSH2 0x11E CALLDATASIZE PUSH1 0x4 PUSH2 0x3B3 JUMP JUMPDEST PUSH2 0x22A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x13A SWAP12 SWAP11 SWAP10 SWAP9 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x42E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x14B PUSH2 0x296 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x13A SWAP2 SWAP1 PUSH2 0x420 JUMP JUMPDEST PUSH2 0x14B PUSH2 0x166 CALLDATASIZE PUSH1 0x4 PUSH2 0x38D JUMP JUMPDEST PUSH2 0x29C JUMP JUMPDEST PUSH2 0x173 PUSH2 0x2AE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x13A SWAP2 SWAP1 PUSH2 0x412 JUMP JUMPDEST PUSH2 0x188 PUSH2 0x2BD JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x13A SWAP2 SWAP1 PUSH2 0x404 JUMP JUMPDEST PUSH2 0x19D PUSH2 0x2CC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x13A SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4FA JUMP JUMPDEST PUSH2 0x1C0 PUSH2 0x1BB CALLDATASIZE PUSH1 0x4 PUSH2 0x3B3 JUMP JUMPDEST PUSH2 0x2DB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x13A SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4D2 JUMP JUMPDEST PUSH2 0x14B PUSH2 0x2FC JUMP JUMPDEST PUSH2 0x188 PUSH2 0x302 JUMP JUMPDEST PUSH2 0x188 PUSH2 0x311 JUMP JUMPDEST PUSH2 0x14B PUSH2 0x320 JUMP JUMPDEST PUSH2 0x14B PUSH2 0x326 JUMP JUMPDEST PUSH2 0x173 PUSH2 0x32C JUMP JUMPDEST PUSH2 0x14B PUSH2 0x33B JUMP JUMPDEST PUSH2 0x173 PUSH2 0x215 CALLDATASIZE PUSH1 0x4 PUSH2 0x3B3 JUMP JUMPDEST PUSH2 0x341 JUMP JUMPDEST PUSH2 0x188 PUSH2 0x35C JUMP JUMPDEST PUSH2 0x14B PUSH2 0x36B JUMP JUMPDEST PUSH1 0xA PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x40 SWAP1 SWAP2 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 SWAP7 DUP7 ADD SLOAD PUSH1 0xB DUP8 ADD SLOAD PUSH1 0xC DUP9 ADD SLOAD PUSH1 0xE SWAP1 SWAP9 ADD SLOAD SWAP7 SWAP9 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP7 AND SWAP8 SWAP5 SWAP7 SWAP4 SWAP6 SWAP3 SWAP5 SWAP3 SWAP4 SWAP2 SWAP3 SWAP1 SWAP2 PUSH1 0xFF DUP1 DUP4 AND SWAP3 PUSH2 0x100 SWAP1 DIV DUP2 AND SWAP2 AND DUP12 JUMP JUMPDEST PUSH1 0x4 SLOAD DUP2 JUMP JUMPDEST PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x10 SLOAD PUSH1 0x11 SLOAD PUSH1 0x12 SLOAD PUSH1 0x13 SLOAD DUP5 JUMP JUMPDEST PUSH1 0xE PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0x2 SWAP1 SWAP3 ADD SLOAD SWAP1 SWAP2 SWAP1 DUP4 JUMP JUMPDEST PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH1 0xD 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 DUP2 JUMP JUMPDEST PUSH1 0xC SLOAD DUP2 JUMP JUMPDEST PUSH1 0x5 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x7 SLOAD DUP2 JUMP JUMPDEST PUSH1 0xF PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x6 SLOAD DUP2 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x37C DUP2 PUSH2 0x568 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x37C DUP2 PUSH2 0x57F JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x39F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x3AB DUP5 DUP5 PUSH2 0x371 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3C5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x3AB DUP5 DUP5 PUSH2 0x382 JUMP JUMPDEST PUSH2 0x3DA DUP2 PUSH2 0x538 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x3DA DUP2 PUSH2 0x543 JUMP JUMPDEST PUSH2 0x3DA DUP2 PUSH2 0x55D JUMP JUMPDEST PUSH2 0x3DA DUP2 PUSH2 0x554 JUMP JUMPDEST PUSH2 0x3DA DUP2 PUSH2 0x557 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x37C DUP3 DUP5 PUSH2 0x3D1 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x37C DUP3 DUP5 PUSH2 0x3E9 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x37C DUP3 DUP5 PUSH2 0x3F2 JUMP JUMPDEST PUSH2 0x160 DUP2 ADD PUSH2 0x43D DUP3 DUP15 PUSH2 0x3F2 JUMP JUMPDEST PUSH2 0x44A PUSH1 0x20 DUP4 ADD DUP14 PUSH2 0x3D1 JUMP JUMPDEST PUSH2 0x457 PUSH1 0x40 DUP4 ADD DUP13 PUSH2 0x3F2 JUMP JUMPDEST PUSH2 0x464 PUSH1 0x60 DUP4 ADD DUP12 PUSH2 0x3F2 JUMP JUMPDEST PUSH2 0x471 PUSH1 0x80 DUP4 ADD DUP11 PUSH2 0x3F2 JUMP JUMPDEST PUSH2 0x47E PUSH1 0xA0 DUP4 ADD DUP10 PUSH2 0x3F2 JUMP JUMPDEST PUSH2 0x48B PUSH1 0xC0 DUP4 ADD DUP9 PUSH2 0x3F2 JUMP JUMPDEST PUSH2 0x498 PUSH1 0xE0 DUP4 ADD DUP8 PUSH2 0x3F2 JUMP JUMPDEST PUSH2 0x4A6 PUSH2 0x100 DUP4 ADD DUP7 PUSH2 0x3E0 JUMP JUMPDEST PUSH2 0x4B4 PUSH2 0x120 DUP4 ADD DUP6 PUSH2 0x3E0 JUMP JUMPDEST PUSH2 0x4C2 PUSH2 0x140 DUP4 ADD DUP5 PUSH2 0x3FB JUMP JUMPDEST SWAP13 SWAP12 POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP2 ADD PUSH2 0x4E0 DUP3 DUP7 PUSH2 0x3F2 JUMP JUMPDEST PUSH2 0x4ED PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x3F2 JUMP JUMPDEST PUSH2 0x3AB PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x3F2 JUMP JUMPDEST PUSH1 0x80 DUP2 ADD PUSH2 0x508 DUP3 DUP8 PUSH2 0x3F2 JUMP JUMPDEST PUSH2 0x515 PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x3F2 JUMP JUMPDEST PUSH2 0x522 PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x3F2 JUMP JUMPDEST PUSH2 0x52F PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x3F2 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x37C DUP3 PUSH2 0x548 JUMP JUMPDEST ISZERO ISZERO SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x37C DUP3 PUSH2 0x538 JUMP JUMPDEST PUSH2 0x571 DUP2 PUSH2 0x538 JUMP JUMPDEST DUP2 EQ PUSH2 0x57C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x571 DUP2 PUSH2 0x554 JUMP INVALID LOG3 PUSH6 0x627A7A723158 KECCAK256 PUSH12 0x92DDDBEA658743225E44C57 SHR 0xE3 0xD2 SWAP8 CALLDATALOAD PUSH15 0x797C50771B1A5BFB41F62905066C65 PUSH25 0x706572696D656E74616CF564736F6C63430005100040000000 ","sourceMap":"8620:385:2:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8620:385:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4650:42;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;4057:24;;;:::i;:::-;;;;;;;;4753:49;;;;;;;;;:::i;4543:33::-;;;:::i;:::-;;;;;;;;3389:27;;;:::i;:::-;;;;;;;;8962:40;;;:::i;:::-;;;;;;;;;;;8150:54;;;;;;;;;:::i;:::-;;;;;;;;;;3952:23;;;:::i;7232:::-;;;:::i;3465:29::-;;;:::i;7129:33::-;;;:::i;4186:29::-;;;:::i;4445:33::-;;;:::i;4354:25::-;;;:::i;8288:59::-;;;;;;;;;:::i;3306:20::-;;;:::i;4272:29::-;;;:::i;4650:42::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4650:42:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;4057:24::-;;;;:::o;4753:49::-;;;;;;;;;;;;;:::o;4543:33::-;;;-1:-1:-1;;;;;4543:33:2;;:::o;3389:27::-;;;-1:-1:-1;;;;;3389:27:2;;:::o;8962:40::-;;;;;;;;;;:::o;8150:54::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3952:23::-;;;;:::o;7232:::-;;;-1:-1:-1;;;;;7232:23:2;;:::o;3465:29::-;;;-1:-1:-1;;;;;3465:29:2;;:::o;7129:33::-;;;;:::o;4186:29::-;;;;:::o;4445:33::-;;;-1:-1:-1;;;;;4445:33:2;;:::o;4354:25::-;;;;:::o;8288:59::-;;;;;;;;;;;;-1:-1:-1;;;;;8288:59:2;;:::o;3306:20::-;;;-1:-1:-1;;;;;3306:20:2;;:::o;4272:29::-;;;;:::o;5:130:-1:-;72:20;;97:33;72:20;97:33;;;57:78;;;;;142:130;209:20;;234:33;209:20;234:33;;279:241;;383:2;371:9;362:7;358:23;354:32;351:2;;;399:1;396;389:12;351:2;434:1;451:53;496:7;476:9;451:53;;;441:63;345:175;-1:-1;;;;345:175;527:241;;631:2;619:9;610:7;606:23;602:32;599:2;;;647:1;644;637:12;599:2;682:1;699:53;744:7;724:9;699:53;;775:113;858:24;876:5;858:24;;;853:3;846:37;840:48;;;895:104;972:21;987:5;972:21;;1006:178;1115:63;1172:5;1115:63;;1376:113;1459:24;1477:5;1459:24;;1496:107;1575:22;1591:5;1575:22;;1610:213;1728:2;1713:18;;1742:71;1717:9;1786:6;1742:71;;1830:265;1974:2;1959:18;;1988:97;1963:9;2058:6;1988:97;;2374:213;2492:2;2477:18;;2506:71;2481:9;2550:6;2506:71;;2594:1301;2977:3;2962:19;;2992:71;2966:9;3036:6;2992:71;;;3074:72;3142:2;3131:9;3127:18;3118:6;3074:72;;;3157;3225:2;3214:9;3210:18;3201:6;3157:72;;;3240;3308:2;3297:9;3293:18;3284:6;3240:72;;;3323:73;3391:3;3380:9;3376:19;3367:6;3323:73;;;3407;3475:3;3464:9;3460:19;3451:6;3407:73;;;3491;3559:3;3548:9;3544:19;3535:6;3491:73;;;3575;3643:3;3632:9;3628:19;3619:6;3575:73;;;3659:67;3721:3;3710:9;3706:19;3697:6;3659:67;;;3737;3799:3;3788:9;3784:19;3775:6;3737:67;;;3815:70;3880:3;3869:9;3865:19;3855:7;3815:70;;;2948:947;;;;;;;;;;;;;;;3902:435;4076:2;4061:18;;4090:71;4065:9;4134:6;4090:71;;;4172:72;4240:2;4229:9;4225:18;4216:6;4172:72;;;4255;4323:2;4312:9;4308:18;4299:6;4255:72;;4344:547;4546:3;4531:19;;4561:71;4535:9;4605:6;4561:71;;;4643:72;4711:2;4700:9;4696:18;4687:6;4643:72;;;4726;4794:2;4783:9;4779:18;4770:6;4726:72;;;4809;4877:2;4866:9;4862:18;4853:6;4809:72;;;4517:374;;;;;;;;4898:91;;4960:24;4978:5;4960:24;;4996:85;5062:13;5055:21;;5038:43;5088:121;-1:-1;;;;;5150:54;;5133:76;5216:72;5278:5;5261:27;5295:81;5366:4;5355:16;;5338:38;5383:173;;5488:63;5545:5;5488:63;;6025:117;6094:24;6112:5;6094:24;;;6087:5;6084:35;6074:2;;6133:1;6130;6123:12;6074:2;6068:74;;6149:117;6218:24;6236:5;6218:24;"},"gasEstimates":{"creation":{"codeDepositCost":"296600","executionCost":"337","totalCost":"296937"},"external":{"admin()":"infinite","guardian()":"infinite","implementation()":"infinite","initialProposalId()":"1209","latestProposalIds(address)":"infinite","pendingAdmin()":"infinite","proposalConfigs(uint256)":"infinite","proposalCount()":"1143","proposalMaxOperations()":"1166","proposalThreshold()":"1188","proposalTimelocks(uint256)":"infinite","proposals(uint256)":"infinite","timelock()":"infinite","validationParams()":"infinite","votingDelay()":"1188","votingPeriod()":"1145","xvsVault()":"infinite"}},"methodIdentifiers":{"admin()":"f851a440","guardian()":"452a9320","implementation()":"5c60da1b","initialProposalId()":"fc4eee42","latestProposalIds(address)":"17977c61","pendingAdmin()":"26782247","proposalConfigs(uint256)":"35a87de2","proposalCount()":"da35c664","proposalMaxOperations()":"7bdbe4d0","proposalThreshold()":"b58131b0","proposalTimelocks(uint256)":"ee9799ee","proposals(uint256)":"013cf08b","timelock()":"d33219b4","validationParams()":"34cf3909","votingDelay()":"3932abb1","votingPeriod()":"02a251a3","xvsVault()":"1b9ce575"}},"metadata":"{\"compiler\":{\"version\":\"0.5.16+commit.9c3226ce\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[],\"name\":\"admin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"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\":[],\"name\":\"implementation\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"initialProposalId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"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\":\"pendingAdmin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"proposalConfigs\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"votingDelay\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"votingPeriod\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"proposalThreshold\",\"type\":\"uint256\"}],\"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\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"proposalThreshold\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"proposalTimelocks\",\"outputs\":[{\"internalType\":\"contract TimelockInterface\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"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\":\"uint256\",\"name\":\"abstainVotes\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"canceled\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"executed\",\"type\":\"bool\"},{\"internalType\":\"uint8\",\"name\":\"proposalType\",\"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\":\"validationParams\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"minVotingPeriod\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxVotingPeriod\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minVotingDelay\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxVotingDelay\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"votingDelay\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"votingPeriod\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"xvsVault\",\"outputs\":[{\"internalType\":\"contract XvsVaultInterface\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"For future upgrades, do not change GovernorBravoDelegateStorageV3. Create a new contract which implements GovernorBravoDelegateStorageV3 and following the naming convention GovernorBravoDelegateStorageVX.\",\"methods\":{},\"title\":\"GovernorBravoDelegateStorageV3\"},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"contracts/Governance/GovernorBravoInterfaces.sol\":\"GovernorBravoDelegateStorageV3\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/Governance/GovernorBravoInterfaces.sol\":{\"content\":\"pragma solidity ^0.5.16;\\npragma experimental ABIEncoderV2;\\n\\n/**\\n * @title GovernorBravoEvents\\n * @author Venus\\n * @notice Set of events emitted by the GovernorBravo contracts.\\n */\\ncontract GovernorBravoEvents {\\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        uint8 proposalType\\n    );\\n\\n    /// @notice An event emitted when a vote has been cast on a proposal\\n    /// @param voter The address which casted a vote\\n    /// @param proposalId The proposal id which was voted on\\n    /// @param support Support value for the vote. 0=against, 1=for, 2=abstain\\n    /// @param votes Number of votes which were cast by the voter\\n    /// @param reason The reason given for the vote by the voter\\n    event VoteCast(address indexed voter, uint proposalId, uint8 support, uint votes, string reason);\\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    /// @notice An event emitted when the voting delay is set\\n    event VotingDelaySet(uint oldVotingDelay, uint newVotingDelay);\\n\\n    /// @notice An event emitted when the voting period is set\\n    event VotingPeriodSet(uint oldVotingPeriod, uint newVotingPeriod);\\n\\n    /// @notice Emitted when implementation is changed\\n    event NewImplementation(address oldImplementation, address newImplementation);\\n\\n    /// @notice Emitted when proposal threshold is set\\n    event ProposalThresholdSet(uint oldProposalThreshold, uint newProposalThreshold);\\n\\n    /// @notice Emitted when pendingAdmin is changed\\n    event NewPendingAdmin(address oldPendingAdmin, address newPendingAdmin);\\n\\n    /// @notice Emitted when pendingAdmin is accepted, which means admin is updated\\n    event NewAdmin(address oldAdmin, address newAdmin);\\n\\n    /// @notice Emitted when the new guardian address is set\\n    event NewGuardian(address oldGuardian, address newGuardian);\\n\\n    /// @notice Emitted when the maximum number of operations in one proposal is updated\\n    event ProposalMaxOperationsUpdated(uint oldMaxOperations, uint newMaxOperations);\\n\\n    /// @notice Emitted when the new validation params are set\\n    event SetValidationParams(\\n        uint256 oldMinVotingPeriod,\\n        uint256 newMinVotingPeriod,\\n        uint256 oldmaxVotingPeriod,\\n        uint256 newmaxVotingPeriod,\\n        uint256 oldminVotingDelay,\\n        uint256 newminVotingDelay,\\n        uint256 oldmaxVotingDelay,\\n        uint256 newmaxVotingDelay\\n    );\\n\\n    /// @notice Emitted when new Proposal configs added\\n    event SetProposalConfigs(uint256 votingPeriod, uint256 votingDelay, uint256 proposalThreshold);\\n}\\n\\n/**\\n * @title GovernorBravoDelegatorStorage\\n * @author Venus\\n * @notice Storage layout of the `GovernorBravoDelegator` contract\\n */\\ncontract GovernorBravoDelegatorStorage {\\n    /// @notice Administrator for this contract\\n    address public admin;\\n\\n    /// @notice Pending administrator for this contract\\n    address public pendingAdmin;\\n\\n    /// @notice Active brains of Governor\\n    address public implementation;\\n}\\n\\n/**\\n * @title GovernorBravoDelegateStorageV1\\n * @dev For future upgrades, do not change GovernorBravoDelegateStorageV1. Create a new\\n * contract which implements GovernorBravoDelegateStorageV1 and following the naming convention\\n * GovernorBravoDelegateStorageVX.\\n */\\ncontract GovernorBravoDelegateStorageV1 is GovernorBravoDelegatorStorage {\\n    /// @notice DEPRECATED The delay before voting on a proposal may take place, once proposed, in blocks\\n    uint public votingDelay;\\n\\n    /// @notice DEPRECATED The duration of voting on a proposal, in blocks\\n    uint public votingPeriod;\\n\\n    /// @notice DEPRECATED The number of votes required in order for a voter to become a proposer\\n    uint public proposalThreshold;\\n\\n    /// @notice Initial proposal id set at become\\n    uint public initialProposalId;\\n\\n    /// @notice The total number of proposals\\n    uint public proposalCount;\\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    XvsVaultInterface public xvsVault;\\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    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 Current number of votes for abstaining for this proposal\\n        uint abstainVotes;\\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        /// @notice The type of the proposal\\n        uint8 proposalType;\\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 or abstains\\n        uint8 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 maximum number of actions that can be included in a proposal\\n    uint public proposalMaxOperations;\\n\\n    /// @notice A privileged role that can cancel any proposal\\n    address public guardian;\\n}\\n\\n/**\\n * @title GovernorBravoDelegateStorageV2\\n * @dev For future upgrades, do not change GovernorBravoDelegateStorageV2. Create a new\\n * contract which implements GovernorBravoDelegateStorageV2 and following the naming convention\\n * GovernorBravoDelegateStorageVX.\\n */\\ncontract GovernorBravoDelegateStorageV2 is GovernorBravoDelegateStorageV1 {\\n    enum ProposalType {\\n        NORMAL,\\n        FASTTRACK,\\n        CRITICAL\\n    }\\n\\n    struct ProposalConfig {\\n        /// @notice The delay before voting on a proposal may take place, once proposed, in blocks\\n        uint256 votingDelay;\\n        /// @notice The duration of voting on a proposal, in blocks\\n        uint256 votingPeriod;\\n        /// @notice The number of votes required in order for a voter to become a proposer\\n        uint256 proposalThreshold;\\n    }\\n\\n    /// @notice mapping containing configuration for each proposal type\\n    mapping(uint => ProposalConfig) public proposalConfigs;\\n\\n    /// @notice mapping containing Timelock addresses for each proposal type\\n    mapping(uint => TimelockInterface) public proposalTimelocks;\\n}\\n\\n/**\\n * @title GovernorBravoDelegateStorageV3\\n * @dev For future upgrades, do not change GovernorBravoDelegateStorageV3. Create a new\\n * contract which implements GovernorBravoDelegateStorageV3 and following the naming convention\\n * GovernorBravoDelegateStorageVX.\\n */\\ncontract GovernorBravoDelegateStorageV3 is GovernorBravoDelegateStorageV2 {\\n    struct ValidationParams {\\n        uint256 minVotingPeriod;\\n        uint256 maxVotingPeriod;\\n        uint256 minVotingDelay;\\n        uint256 maxVotingDelay;\\n    }\\n    /// @notice Stores the current minimum and maximum values of voting delay and voting period\\n    ValidationParams public validationParams;\\n}\\n\\n/**\\n * @title TimelockInterface\\n * @author Venus\\n * @notice Interface implemented by the Timelock contract.\\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 XvsVaultInterface {\\n    function getPriorVotes(address account, uint blockNumber) external view returns (uint96);\\n}\\n\\ninterface GovernorAlphaInterface {\\n    /// @notice The total number of proposals\\n    function proposalCount() external returns (uint);\\n}\\n\",\"keccak256\":\"0x62c89309d4351dbeb5516465211fab0b566d83d60dc0148377deaad1f1929b85\"}},\"version\":1}","storageLayout":{"storage":[{"astId":1818,"contract":"contracts/Governance/GovernorBravoInterfaces.sol:GovernorBravoDelegateStorageV3","label":"admin","offset":0,"slot":"0","type":"t_address"},{"astId":1820,"contract":"contracts/Governance/GovernorBravoInterfaces.sol:GovernorBravoDelegateStorageV3","label":"pendingAdmin","offset":0,"slot":"1","type":"t_address"},{"astId":1822,"contract":"contracts/Governance/GovernorBravoInterfaces.sol:GovernorBravoDelegateStorageV3","label":"implementation","offset":0,"slot":"2","type":"t_address"},{"astId":1827,"contract":"contracts/Governance/GovernorBravoInterfaces.sol:GovernorBravoDelegateStorageV3","label":"votingDelay","offset":0,"slot":"3","type":"t_uint256"},{"astId":1829,"contract":"contracts/Governance/GovernorBravoInterfaces.sol:GovernorBravoDelegateStorageV3","label":"votingPeriod","offset":0,"slot":"4","type":"t_uint256"},{"astId":1831,"contract":"contracts/Governance/GovernorBravoInterfaces.sol:GovernorBravoDelegateStorageV3","label":"proposalThreshold","offset":0,"slot":"5","type":"t_uint256"},{"astId":1833,"contract":"contracts/Governance/GovernorBravoInterfaces.sol:GovernorBravoDelegateStorageV3","label":"initialProposalId","offset":0,"slot":"6","type":"t_uint256"},{"astId":1835,"contract":"contracts/Governance/GovernorBravoInterfaces.sol:GovernorBravoDelegateStorageV3","label":"proposalCount","offset":0,"slot":"7","type":"t_uint256"},{"astId":1837,"contract":"contracts/Governance/GovernorBravoInterfaces.sol:GovernorBravoDelegateStorageV3","label":"timelock","offset":0,"slot":"8","type":"t_contract(TimelockInterface)2007"},{"astId":1839,"contract":"contracts/Governance/GovernorBravoInterfaces.sol:GovernorBravoDelegateStorageV3","label":"xvsVault","offset":0,"slot":"9","type":"t_contract(XvsVaultInterface)2017"},{"astId":1843,"contract":"contracts/Governance/GovernorBravoInterfaces.sol:GovernorBravoDelegateStorageV3","label":"proposals","offset":0,"slot":"10","type":"t_mapping(t_uint256,t_struct(Proposal)1886_storage)"},{"astId":1847,"contract":"contracts/Governance/GovernorBravoInterfaces.sol:GovernorBravoDelegateStorageV3","label":"latestProposalIds","offset":0,"slot":"11","type":"t_mapping(t_address,t_uint256)"},{"astId":1904,"contract":"contracts/Governance/GovernorBravoInterfaces.sol:GovernorBravoDelegateStorageV3","label":"proposalMaxOperations","offset":0,"slot":"12","type":"t_uint256"},{"astId":1906,"contract":"contracts/Governance/GovernorBravoInterfaces.sol:GovernorBravoDelegateStorageV3","label":"guardian","offset":0,"slot":"13","type":"t_address"},{"astId":1924,"contract":"contracts/Governance/GovernorBravoInterfaces.sol:GovernorBravoDelegateStorageV3","label":"proposalConfigs","offset":0,"slot":"14","type":"t_mapping(t_uint256,t_struct(ProposalConfig)1920_storage)"},{"astId":1928,"contract":"contracts/Governance/GovernorBravoInterfaces.sol:GovernorBravoDelegateStorageV3","label":"proposalTimelocks","offset":0,"slot":"15","type":"t_mapping(t_uint256,t_contract(TimelockInterface)2007)"},{"astId":1942,"contract":"contracts/Governance/GovernorBravoInterfaces.sol:GovernorBravoDelegateStorageV3","label":"validationParams","offset":0,"slot":"16","type":"t_struct(ValidationParams)1940_storage"}],"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)2007":{"encoding":"inplace","label":"contract TimelockInterface","numberOfBytes":"20"},"t_contract(XvsVaultInterface)2017":{"encoding":"inplace","label":"contract XvsVaultInterface","numberOfBytes":"20"},"t_mapping(t_address,t_struct(Receipt)1893_storage)":{"encoding":"mapping","key":"t_address","label":"mapping(address => struct GovernorBravoDelegateStorageV1.Receipt)","numberOfBytes":"32","value":"t_struct(Receipt)1893_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_contract(TimelockInterface)2007)":{"encoding":"mapping","key":"t_uint256","label":"mapping(uint256 => contract TimelockInterface)","numberOfBytes":"32","value":"t_contract(TimelockInterface)2007"},"t_mapping(t_uint256,t_struct(Proposal)1886_storage)":{"encoding":"mapping","key":"t_uint256","label":"mapping(uint256 => struct GovernorBravoDelegateStorageV1.Proposal)","numberOfBytes":"32","value":"t_struct(Proposal)1886_storage"},"t_mapping(t_uint256,t_struct(ProposalConfig)1920_storage)":{"encoding":"mapping","key":"t_uint256","label":"mapping(uint256 => struct GovernorBravoDelegateStorageV2.ProposalConfig)","numberOfBytes":"32","value":"t_struct(ProposalConfig)1920_storage"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_struct(Proposal)1886_storage":{"encoding":"inplace","label":"struct GovernorBravoDelegateStorageV1.Proposal","members":[{"astId":1849,"contract":"contracts/Governance/GovernorBravoInterfaces.sol:GovernorBravoDelegateStorageV3","label":"id","offset":0,"slot":"0","type":"t_uint256"},{"astId":1851,"contract":"contracts/Governance/GovernorBravoInterfaces.sol:GovernorBravoDelegateStorageV3","label":"proposer","offset":0,"slot":"1","type":"t_address"},{"astId":1853,"contract":"contracts/Governance/GovernorBravoInterfaces.sol:GovernorBravoDelegateStorageV3","label":"eta","offset":0,"slot":"2","type":"t_uint256"},{"astId":1856,"contract":"contracts/Governance/GovernorBravoInterfaces.sol:GovernorBravoDelegateStorageV3","label":"targets","offset":0,"slot":"3","type":"t_array(t_address)dyn_storage"},{"astId":1859,"contract":"contracts/Governance/GovernorBravoInterfaces.sol:GovernorBravoDelegateStorageV3","label":"values","offset":0,"slot":"4","type":"t_array(t_uint256)dyn_storage"},{"astId":1862,"contract":"contracts/Governance/GovernorBravoInterfaces.sol:GovernorBravoDelegateStorageV3","label":"signatures","offset":0,"slot":"5","type":"t_array(t_string_storage)dyn_storage"},{"astId":1865,"contract":"contracts/Governance/GovernorBravoInterfaces.sol:GovernorBravoDelegateStorageV3","label":"calldatas","offset":0,"slot":"6","type":"t_array(t_bytes_storage)dyn_storage"},{"astId":1867,"contract":"contracts/Governance/GovernorBravoInterfaces.sol:GovernorBravoDelegateStorageV3","label":"startBlock","offset":0,"slot":"7","type":"t_uint256"},{"astId":1869,"contract":"contracts/Governance/GovernorBravoInterfaces.sol:GovernorBravoDelegateStorageV3","label":"endBlock","offset":0,"slot":"8","type":"t_uint256"},{"astId":1871,"contract":"contracts/Governance/GovernorBravoInterfaces.sol:GovernorBravoDelegateStorageV3","label":"forVotes","offset":0,"slot":"9","type":"t_uint256"},{"astId":1873,"contract":"contracts/Governance/GovernorBravoInterfaces.sol:GovernorBravoDelegateStorageV3","label":"againstVotes","offset":0,"slot":"10","type":"t_uint256"},{"astId":1875,"contract":"contracts/Governance/GovernorBravoInterfaces.sol:GovernorBravoDelegateStorageV3","label":"abstainVotes","offset":0,"slot":"11","type":"t_uint256"},{"astId":1877,"contract":"contracts/Governance/GovernorBravoInterfaces.sol:GovernorBravoDelegateStorageV3","label":"canceled","offset":0,"slot":"12","type":"t_bool"},{"astId":1879,"contract":"contracts/Governance/GovernorBravoInterfaces.sol:GovernorBravoDelegateStorageV3","label":"executed","offset":1,"slot":"12","type":"t_bool"},{"astId":1883,"contract":"contracts/Governance/GovernorBravoInterfaces.sol:GovernorBravoDelegateStorageV3","label":"receipts","offset":0,"slot":"13","type":"t_mapping(t_address,t_struct(Receipt)1893_storage)"},{"astId":1885,"contract":"contracts/Governance/GovernorBravoInterfaces.sol:GovernorBravoDelegateStorageV3","label":"proposalType","offset":0,"slot":"14","type":"t_uint8"}],"numberOfBytes":"480"},"t_struct(ProposalConfig)1920_storage":{"encoding":"inplace","label":"struct GovernorBravoDelegateStorageV2.ProposalConfig","members":[{"astId":1915,"contract":"contracts/Governance/GovernorBravoInterfaces.sol:GovernorBravoDelegateStorageV3","label":"votingDelay","offset":0,"slot":"0","type":"t_uint256"},{"astId":1917,"contract":"contracts/Governance/GovernorBravoInterfaces.sol:GovernorBravoDelegateStorageV3","label":"votingPeriod","offset":0,"slot":"1","type":"t_uint256"},{"astId":1919,"contract":"contracts/Governance/GovernorBravoInterfaces.sol:GovernorBravoDelegateStorageV3","label":"proposalThreshold","offset":0,"slot":"2","type":"t_uint256"}],"numberOfBytes":"96"},"t_struct(Receipt)1893_storage":{"encoding":"inplace","label":"struct GovernorBravoDelegateStorageV1.Receipt","members":[{"astId":1888,"contract":"contracts/Governance/GovernorBravoInterfaces.sol:GovernorBravoDelegateStorageV3","label":"hasVoted","offset":0,"slot":"0","type":"t_bool"},{"astId":1890,"contract":"contracts/Governance/GovernorBravoInterfaces.sol:GovernorBravoDelegateStorageV3","label":"support","offset":1,"slot":"0","type":"t_uint8"},{"astId":1892,"contract":"contracts/Governance/GovernorBravoInterfaces.sol:GovernorBravoDelegateStorageV3","label":"votes","offset":2,"slot":"0","type":"t_uint96"}],"numberOfBytes":"32"},"t_struct(ValidationParams)1940_storage":{"encoding":"inplace","label":"struct GovernorBravoDelegateStorageV3.ValidationParams","members":[{"astId":1933,"contract":"contracts/Governance/GovernorBravoInterfaces.sol:GovernorBravoDelegateStorageV3","label":"minVotingPeriod","offset":0,"slot":"0","type":"t_uint256"},{"astId":1935,"contract":"contracts/Governance/GovernorBravoInterfaces.sol:GovernorBravoDelegateStorageV3","label":"maxVotingPeriod","offset":0,"slot":"1","type":"t_uint256"},{"astId":1937,"contract":"contracts/Governance/GovernorBravoInterfaces.sol:GovernorBravoDelegateStorageV3","label":"minVotingDelay","offset":0,"slot":"2","type":"t_uint256"},{"astId":1939,"contract":"contracts/Governance/GovernorBravoInterfaces.sol:GovernorBravoDelegateStorageV3","label":"maxVotingDelay","offset":0,"slot":"3","type":"t_uint256"}],"numberOfBytes":"128"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"},"t_uint96":{"encoding":"inplace","label":"uint96","numberOfBytes":"12"}}},"userdoc":{"methods":{}}},"GovernorBravoDelegatorStorage":{"abi":[{"constant":true,"inputs":[],"name":"admin","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"implementation","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"pendingAdmin","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}],"devdoc":{"author":"Venus","methods":{},"title":"GovernorBravoDelegatorStorage"},"evm":{"bytecode":{"linkReferences":{},"object":"608060405234801561001057600080fd5b50610106806100206000396000f3fe6080604052348015600f57600080fd5b5060043610603c5760003560e01c8063267822471460415780635c60da1b14605b578063f851a440146061575b600080fd5b60476067565b6040516052919060a1565b60405180910390f35b60476076565b60476085565b6001546001600160a01b031681565b6002546001600160a01b031681565b6000546001600160a01b031681565b609b8160b3565b82525050565b6020810160ad82846094565b92915050565b60006001600160a01b03821660ad56fea365627a7a723158200aa9ee3f48ad143c5a4478e68cb940c2eedaae6bfef8ae25c49eeef3ffbad0296c6578706572696d656e74616cf564736f6c63430005100040","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x106 DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH1 0x3C JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x26782247 EQ PUSH1 0x41 JUMPI DUP1 PUSH4 0x5C60DA1B EQ PUSH1 0x5B JUMPI DUP1 PUSH4 0xF851A440 EQ PUSH1 0x61 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x47 PUSH1 0x67 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x52 SWAP2 SWAP1 PUSH1 0xA1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x47 PUSH1 0x76 JUMP JUMPDEST PUSH1 0x47 PUSH1 0x85 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 DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x9B DUP2 PUSH1 0xB3 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH1 0xAD DUP3 DUP5 PUSH1 0x94 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0xAD JUMP INVALID LOG3 PUSH6 0x627A7A723158 KECCAK256 EXP 0xA9 0xEE EXTCODEHASH 0x48 0xAD EQ EXTCODECOPY GAS DIFFICULTY PUSH25 0xE68CB940C2EEDAAE6BFEF8AE25C49EEEF3FFBAD0296C657870 PUSH6 0x72696D656E74 PUSH2 0x6CF5 PUSH5 0x736F6C6343 STOP SDIV LT STOP BLOCKHASH ","sourceMap":"3213:284:2:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3213:284:2;;;;;;;"},"deployedBytecode":{"linkReferences":{},"object":"6080604052348015600f57600080fd5b5060043610603c5760003560e01c8063267822471460415780635c60da1b14605b578063f851a440146061575b600080fd5b60476067565b6040516052919060a1565b60405180910390f35b60476076565b60476085565b6001546001600160a01b031681565b6002546001600160a01b031681565b6000546001600160a01b031681565b609b8160b3565b82525050565b6020810160ad82846094565b92915050565b60006001600160a01b03821660ad56fea365627a7a723158200aa9ee3f48ad143c5a4478e68cb940c2eedaae6bfef8ae25c49eeef3ffbad0296c6578706572696d656e74616cf564736f6c63430005100040","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH1 0x3C JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x26782247 EQ PUSH1 0x41 JUMPI DUP1 PUSH4 0x5C60DA1B EQ PUSH1 0x5B JUMPI DUP1 PUSH4 0xF851A440 EQ PUSH1 0x61 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x47 PUSH1 0x67 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x52 SWAP2 SWAP1 PUSH1 0xA1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x47 PUSH1 0x76 JUMP JUMPDEST PUSH1 0x47 PUSH1 0x85 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 DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x9B DUP2 PUSH1 0xB3 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH1 0xAD DUP3 DUP5 PUSH1 0x94 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0xAD JUMP INVALID LOG3 PUSH6 0x627A7A723158 KECCAK256 EXP 0xA9 0xEE EXTCODEHASH 0x48 0xAD EQ EXTCODECOPY GAS DIFFICULTY PUSH25 0xE68CB940C2EEDAAE6BFEF8AE25C49EEEF3FFBAD0296C657870 PUSH6 0x72696D656E74 PUSH2 0x6CF5 PUSH5 0x736F6C6343 STOP SDIV LT STOP BLOCKHASH ","sourceMap":"3213:284:2:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3213:284:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3389:27;;;:::i;:::-;;;;;;;;;;;;;;;;3465:29;;;:::i;3306:20::-;;;:::i;3389:27::-;;;-1:-1:-1;;;;;3389:27:2;;:::o;3465:29::-;;;-1:-1:-1;;;;;3465:29:2;;:::o;3306:20::-;;;-1:-1:-1;;;;;3306:20:2;;:::o;5:113:-1:-;88:24;106:5;88:24;;;83:3;76:37;70:48;;;125:213;243:2;228:18;;257:71;232:9;301:6;257:71;;;214:124;;;;;345:91;;-1:-1;;;;;505:54;;407:24;488:76"},"gasEstimates":{"creation":{"codeDepositCost":"52400","executionCost":"105","totalCost":"52505"},"external":{"admin()":"infinite","implementation()":"infinite","pendingAdmin()":"infinite"}},"methodIdentifiers":{"admin()":"f851a440","implementation()":"5c60da1b","pendingAdmin()":"26782247"}},"metadata":"{\"compiler\":{\"version\":\"0.5.16+commit.9c3226ce\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[],\"name\":\"admin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"implementation\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"pendingAdmin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Venus\",\"methods\":{},\"title\":\"GovernorBravoDelegatorStorage\"},\"userdoc\":{\"methods\":{},\"notice\":\"Storage layout of the `GovernorBravoDelegator` contract\"}},\"settings\":{\"compilationTarget\":{\"contracts/Governance/GovernorBravoInterfaces.sol\":\"GovernorBravoDelegatorStorage\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/Governance/GovernorBravoInterfaces.sol\":{\"content\":\"pragma solidity ^0.5.16;\\npragma experimental ABIEncoderV2;\\n\\n/**\\n * @title GovernorBravoEvents\\n * @author Venus\\n * @notice Set of events emitted by the GovernorBravo contracts.\\n */\\ncontract GovernorBravoEvents {\\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        uint8 proposalType\\n    );\\n\\n    /// @notice An event emitted when a vote has been cast on a proposal\\n    /// @param voter The address which casted a vote\\n    /// @param proposalId The proposal id which was voted on\\n    /// @param support Support value for the vote. 0=against, 1=for, 2=abstain\\n    /// @param votes Number of votes which were cast by the voter\\n    /// @param reason The reason given for the vote by the voter\\n    event VoteCast(address indexed voter, uint proposalId, uint8 support, uint votes, string reason);\\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    /// @notice An event emitted when the voting delay is set\\n    event VotingDelaySet(uint oldVotingDelay, uint newVotingDelay);\\n\\n    /// @notice An event emitted when the voting period is set\\n    event VotingPeriodSet(uint oldVotingPeriod, uint newVotingPeriod);\\n\\n    /// @notice Emitted when implementation is changed\\n    event NewImplementation(address oldImplementation, address newImplementation);\\n\\n    /// @notice Emitted when proposal threshold is set\\n    event ProposalThresholdSet(uint oldProposalThreshold, uint newProposalThreshold);\\n\\n    /// @notice Emitted when pendingAdmin is changed\\n    event NewPendingAdmin(address oldPendingAdmin, address newPendingAdmin);\\n\\n    /// @notice Emitted when pendingAdmin is accepted, which means admin is updated\\n    event NewAdmin(address oldAdmin, address newAdmin);\\n\\n    /// @notice Emitted when the new guardian address is set\\n    event NewGuardian(address oldGuardian, address newGuardian);\\n\\n    /// @notice Emitted when the maximum number of operations in one proposal is updated\\n    event ProposalMaxOperationsUpdated(uint oldMaxOperations, uint newMaxOperations);\\n\\n    /// @notice Emitted when the new validation params are set\\n    event SetValidationParams(\\n        uint256 oldMinVotingPeriod,\\n        uint256 newMinVotingPeriod,\\n        uint256 oldmaxVotingPeriod,\\n        uint256 newmaxVotingPeriod,\\n        uint256 oldminVotingDelay,\\n        uint256 newminVotingDelay,\\n        uint256 oldmaxVotingDelay,\\n        uint256 newmaxVotingDelay\\n    );\\n\\n    /// @notice Emitted when new Proposal configs added\\n    event SetProposalConfigs(uint256 votingPeriod, uint256 votingDelay, uint256 proposalThreshold);\\n}\\n\\n/**\\n * @title GovernorBravoDelegatorStorage\\n * @author Venus\\n * @notice Storage layout of the `GovernorBravoDelegator` contract\\n */\\ncontract GovernorBravoDelegatorStorage {\\n    /// @notice Administrator for this contract\\n    address public admin;\\n\\n    /// @notice Pending administrator for this contract\\n    address public pendingAdmin;\\n\\n    /// @notice Active brains of Governor\\n    address public implementation;\\n}\\n\\n/**\\n * @title GovernorBravoDelegateStorageV1\\n * @dev For future upgrades, do not change GovernorBravoDelegateStorageV1. Create a new\\n * contract which implements GovernorBravoDelegateStorageV1 and following the naming convention\\n * GovernorBravoDelegateStorageVX.\\n */\\ncontract GovernorBravoDelegateStorageV1 is GovernorBravoDelegatorStorage {\\n    /// @notice DEPRECATED The delay before voting on a proposal may take place, once proposed, in blocks\\n    uint public votingDelay;\\n\\n    /// @notice DEPRECATED The duration of voting on a proposal, in blocks\\n    uint public votingPeriod;\\n\\n    /// @notice DEPRECATED The number of votes required in order for a voter to become a proposer\\n    uint public proposalThreshold;\\n\\n    /// @notice Initial proposal id set at become\\n    uint public initialProposalId;\\n\\n    /// @notice The total number of proposals\\n    uint public proposalCount;\\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    XvsVaultInterface public xvsVault;\\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    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 Current number of votes for abstaining for this proposal\\n        uint abstainVotes;\\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        /// @notice The type of the proposal\\n        uint8 proposalType;\\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 or abstains\\n        uint8 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 maximum number of actions that can be included in a proposal\\n    uint public proposalMaxOperations;\\n\\n    /// @notice A privileged role that can cancel any proposal\\n    address public guardian;\\n}\\n\\n/**\\n * @title GovernorBravoDelegateStorageV2\\n * @dev For future upgrades, do not change GovernorBravoDelegateStorageV2. Create a new\\n * contract which implements GovernorBravoDelegateStorageV2 and following the naming convention\\n * GovernorBravoDelegateStorageVX.\\n */\\ncontract GovernorBravoDelegateStorageV2 is GovernorBravoDelegateStorageV1 {\\n    enum ProposalType {\\n        NORMAL,\\n        FASTTRACK,\\n        CRITICAL\\n    }\\n\\n    struct ProposalConfig {\\n        /// @notice The delay before voting on a proposal may take place, once proposed, in blocks\\n        uint256 votingDelay;\\n        /// @notice The duration of voting on a proposal, in blocks\\n        uint256 votingPeriod;\\n        /// @notice The number of votes required in order for a voter to become a proposer\\n        uint256 proposalThreshold;\\n    }\\n\\n    /// @notice mapping containing configuration for each proposal type\\n    mapping(uint => ProposalConfig) public proposalConfigs;\\n\\n    /// @notice mapping containing Timelock addresses for each proposal type\\n    mapping(uint => TimelockInterface) public proposalTimelocks;\\n}\\n\\n/**\\n * @title GovernorBravoDelegateStorageV3\\n * @dev For future upgrades, do not change GovernorBravoDelegateStorageV3. Create a new\\n * contract which implements GovernorBravoDelegateStorageV3 and following the naming convention\\n * GovernorBravoDelegateStorageVX.\\n */\\ncontract GovernorBravoDelegateStorageV3 is GovernorBravoDelegateStorageV2 {\\n    struct ValidationParams {\\n        uint256 minVotingPeriod;\\n        uint256 maxVotingPeriod;\\n        uint256 minVotingDelay;\\n        uint256 maxVotingDelay;\\n    }\\n    /// @notice Stores the current minimum and maximum values of voting delay and voting period\\n    ValidationParams public validationParams;\\n}\\n\\n/**\\n * @title TimelockInterface\\n * @author Venus\\n * @notice Interface implemented by the Timelock contract.\\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 XvsVaultInterface {\\n    function getPriorVotes(address account, uint blockNumber) external view returns (uint96);\\n}\\n\\ninterface GovernorAlphaInterface {\\n    /// @notice The total number of proposals\\n    function proposalCount() external returns (uint);\\n}\\n\",\"keccak256\":\"0x62c89309d4351dbeb5516465211fab0b566d83d60dc0148377deaad1f1929b85\"}},\"version\":1}","storageLayout":{"storage":[{"astId":1818,"contract":"contracts/Governance/GovernorBravoInterfaces.sol:GovernorBravoDelegatorStorage","label":"admin","offset":0,"slot":"0","type":"t_address"},{"astId":1820,"contract":"contracts/Governance/GovernorBravoInterfaces.sol:GovernorBravoDelegatorStorage","label":"pendingAdmin","offset":0,"slot":"1","type":"t_address"},{"astId":1822,"contract":"contracts/Governance/GovernorBravoInterfaces.sol:GovernorBravoDelegatorStorage","label":"implementation","offset":0,"slot":"2","type":"t_address"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"}}},"userdoc":{"methods":{},"notice":"Storage layout of the `GovernorBravoDelegator` contract"}},"GovernorBravoEvents":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldAdmin","type":"address"},{"indexed":false,"internalType":"address","name":"newAdmin","type":"address"}],"name":"NewAdmin","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldGuardian","type":"address"},{"indexed":false,"internalType":"address","name":"newGuardian","type":"address"}],"name":"NewGuardian","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldImplementation","type":"address"},{"indexed":false,"internalType":"address","name":"newImplementation","type":"address"}],"name":"NewImplementation","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldPendingAdmin","type":"address"},{"indexed":false,"internalType":"address","name":"newPendingAdmin","type":"address"}],"name":"NewPendingAdmin","type":"event"},{"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"},{"indexed":false,"internalType":"uint8","name":"proposalType","type":"uint8"}],"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":"oldMaxOperations","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newMaxOperations","type":"uint256"}],"name":"ProposalMaxOperationsUpdated","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":"uint256","name":"oldProposalThreshold","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newProposalThreshold","type":"uint256"}],"name":"ProposalThresholdSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"votingPeriod","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"votingDelay","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"proposalThreshold","type":"uint256"}],"name":"SetProposalConfigs","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"oldMinVotingPeriod","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newMinVotingPeriod","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"oldmaxVotingPeriod","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newmaxVotingPeriod","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"oldminVotingDelay","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newminVotingDelay","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"oldmaxVotingDelay","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newmaxVotingDelay","type":"uint256"}],"name":"SetValidationParams","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"voter","type":"address"},{"indexed":false,"internalType":"uint256","name":"proposalId","type":"uint256"},{"indexed":false,"internalType":"uint8","name":"support","type":"uint8"},{"indexed":false,"internalType":"uint256","name":"votes","type":"uint256"},{"indexed":false,"internalType":"string","name":"reason","type":"string"}],"name":"VoteCast","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"oldVotingDelay","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newVotingDelay","type":"uint256"}],"name":"VotingDelaySet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"oldVotingPeriod","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newVotingPeriod","type":"uint256"}],"name":"VotingPeriodSet","type":"event"}],"devdoc":{"author":"Venus","methods":{},"title":"GovernorBravoEvents"},"evm":{"bytecode":{"linkReferences":{},"object":"6080604052348015600f57600080fd5b50604c80601d6000396000f3fe6080604052600080fdfea365627a7a72315820882b1389cdf61ca4080e3308c4c24898301757d51bb8436b42fad5577b0d4d786c6578706572696d656e74616cf564736f6c63430005100040","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4C DUP1 PUSH1 0x1D PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG3 PUSH6 0x627A7A723158 KECCAK256 DUP9 0x2B SGT DUP10 0xCD 0xF6 SHR LOG4 ADDMOD 0xE CALLER ADDMOD 0xC4 0xC2 0x48 SWAP9 ADDRESS OR JUMPI 0xD5 SHL 0xB8 NUMBER PUSH12 0x42FAD5577B0D4D786C657870 PUSH6 0x72696D656E74 PUSH2 0x6CF5 PUSH5 0x736F6C6343 STOP SDIV LT STOP BLOCKHASH ","sourceMap":"180:2899:2:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;180:2899:2;;;;;;;"},"deployedBytecode":{"linkReferences":{},"object":"6080604052600080fdfea365627a7a72315820882b1389cdf61ca4080e3308c4c24898301757d51bb8436b42fad5577b0d4d786c6578706572696d656e74616cf564736f6c63430005100040","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG3 PUSH6 0x627A7A723158 KECCAK256 DUP9 0x2B SGT DUP10 0xCD 0xF6 SHR LOG4 ADDMOD 0xE CALLER ADDMOD 0xC4 0xC2 0x48 SWAP9 ADDRESS OR JUMPI 0xD5 SHL 0xB8 NUMBER PUSH12 0x42FAD5577B0D4D786C657870 PUSH6 0x72696D656E74 PUSH2 0x6CF5 PUSH5 0x736F6C6343 STOP SDIV LT STOP BLOCKHASH ","sourceMap":"180:2899:2:-;;;;;"},"gasEstimates":{"creation":{"codeDepositCost":"15200","executionCost":"69","totalCost":"15269"}},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.5.16+commit.9c3226ce\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"oldAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"NewAdmin\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"oldGuardian\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newGuardian\",\"type\":\"address\"}],\"name\":\"NewGuardian\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"oldImplementation\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"}],\"name\":\"NewImplementation\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"oldPendingAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newPendingAdmin\",\"type\":\"address\"}],\"name\":\"NewPendingAdmin\",\"type\":\"event\"},{\"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\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"proposalType\",\"type\":\"uint8\"}],\"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\":\"oldMaxOperations\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newMaxOperations\",\"type\":\"uint256\"}],\"name\":\"ProposalMaxOperationsUpdated\",\"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\":\"uint256\",\"name\":\"oldProposalThreshold\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newProposalThreshold\",\"type\":\"uint256\"}],\"name\":\"ProposalThresholdSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"votingPeriod\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"votingDelay\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalThreshold\",\"type\":\"uint256\"}],\"name\":\"SetProposalConfigs\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldMinVotingPeriod\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newMinVotingPeriod\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldmaxVotingPeriod\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newmaxVotingPeriod\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldminVotingDelay\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newminVotingDelay\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldmaxVotingDelay\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newmaxVotingDelay\",\"type\":\"uint256\"}],\"name\":\"SetValidationParams\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"voter\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"votes\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"VoteCast\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldVotingDelay\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newVotingDelay\",\"type\":\"uint256\"}],\"name\":\"VotingDelaySet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldVotingPeriod\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newVotingPeriod\",\"type\":\"uint256\"}],\"name\":\"VotingPeriodSet\",\"type\":\"event\"}],\"devdoc\":{\"author\":\"Venus\",\"methods\":{},\"title\":\"GovernorBravoEvents\"},\"userdoc\":{\"methods\":{},\"notice\":\"Set of events emitted by the GovernorBravo contracts.\"}},\"settings\":{\"compilationTarget\":{\"contracts/Governance/GovernorBravoInterfaces.sol\":\"GovernorBravoEvents\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/Governance/GovernorBravoInterfaces.sol\":{\"content\":\"pragma solidity ^0.5.16;\\npragma experimental ABIEncoderV2;\\n\\n/**\\n * @title GovernorBravoEvents\\n * @author Venus\\n * @notice Set of events emitted by the GovernorBravo contracts.\\n */\\ncontract GovernorBravoEvents {\\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        uint8 proposalType\\n    );\\n\\n    /// @notice An event emitted when a vote has been cast on a proposal\\n    /// @param voter The address which casted a vote\\n    /// @param proposalId The proposal id which was voted on\\n    /// @param support Support value for the vote. 0=against, 1=for, 2=abstain\\n    /// @param votes Number of votes which were cast by the voter\\n    /// @param reason The reason given for the vote by the voter\\n    event VoteCast(address indexed voter, uint proposalId, uint8 support, uint votes, string reason);\\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    /// @notice An event emitted when the voting delay is set\\n    event VotingDelaySet(uint oldVotingDelay, uint newVotingDelay);\\n\\n    /// @notice An event emitted when the voting period is set\\n    event VotingPeriodSet(uint oldVotingPeriod, uint newVotingPeriod);\\n\\n    /// @notice Emitted when implementation is changed\\n    event NewImplementation(address oldImplementation, address newImplementation);\\n\\n    /// @notice Emitted when proposal threshold is set\\n    event ProposalThresholdSet(uint oldProposalThreshold, uint newProposalThreshold);\\n\\n    /// @notice Emitted when pendingAdmin is changed\\n    event NewPendingAdmin(address oldPendingAdmin, address newPendingAdmin);\\n\\n    /// @notice Emitted when pendingAdmin is accepted, which means admin is updated\\n    event NewAdmin(address oldAdmin, address newAdmin);\\n\\n    /// @notice Emitted when the new guardian address is set\\n    event NewGuardian(address oldGuardian, address newGuardian);\\n\\n    /// @notice Emitted when the maximum number of operations in one proposal is updated\\n    event ProposalMaxOperationsUpdated(uint oldMaxOperations, uint newMaxOperations);\\n\\n    /// @notice Emitted when the new validation params are set\\n    event SetValidationParams(\\n        uint256 oldMinVotingPeriod,\\n        uint256 newMinVotingPeriod,\\n        uint256 oldmaxVotingPeriod,\\n        uint256 newmaxVotingPeriod,\\n        uint256 oldminVotingDelay,\\n        uint256 newminVotingDelay,\\n        uint256 oldmaxVotingDelay,\\n        uint256 newmaxVotingDelay\\n    );\\n\\n    /// @notice Emitted when new Proposal configs added\\n    event SetProposalConfigs(uint256 votingPeriod, uint256 votingDelay, uint256 proposalThreshold);\\n}\\n\\n/**\\n * @title GovernorBravoDelegatorStorage\\n * @author Venus\\n * @notice Storage layout of the `GovernorBravoDelegator` contract\\n */\\ncontract GovernorBravoDelegatorStorage {\\n    /// @notice Administrator for this contract\\n    address public admin;\\n\\n    /// @notice Pending administrator for this contract\\n    address public pendingAdmin;\\n\\n    /// @notice Active brains of Governor\\n    address public implementation;\\n}\\n\\n/**\\n * @title GovernorBravoDelegateStorageV1\\n * @dev For future upgrades, do not change GovernorBravoDelegateStorageV1. Create a new\\n * contract which implements GovernorBravoDelegateStorageV1 and following the naming convention\\n * GovernorBravoDelegateStorageVX.\\n */\\ncontract GovernorBravoDelegateStorageV1 is GovernorBravoDelegatorStorage {\\n    /// @notice DEPRECATED The delay before voting on a proposal may take place, once proposed, in blocks\\n    uint public votingDelay;\\n\\n    /// @notice DEPRECATED The duration of voting on a proposal, in blocks\\n    uint public votingPeriod;\\n\\n    /// @notice DEPRECATED The number of votes required in order for a voter to become a proposer\\n    uint public proposalThreshold;\\n\\n    /// @notice Initial proposal id set at become\\n    uint public initialProposalId;\\n\\n    /// @notice The total number of proposals\\n    uint public proposalCount;\\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    XvsVaultInterface public xvsVault;\\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    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 Current number of votes for abstaining for this proposal\\n        uint abstainVotes;\\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        /// @notice The type of the proposal\\n        uint8 proposalType;\\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 or abstains\\n        uint8 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 maximum number of actions that can be included in a proposal\\n    uint public proposalMaxOperations;\\n\\n    /// @notice A privileged role that can cancel any proposal\\n    address public guardian;\\n}\\n\\n/**\\n * @title GovernorBravoDelegateStorageV2\\n * @dev For future upgrades, do not change GovernorBravoDelegateStorageV2. Create a new\\n * contract which implements GovernorBravoDelegateStorageV2 and following the naming convention\\n * GovernorBravoDelegateStorageVX.\\n */\\ncontract GovernorBravoDelegateStorageV2 is GovernorBravoDelegateStorageV1 {\\n    enum ProposalType {\\n        NORMAL,\\n        FASTTRACK,\\n        CRITICAL\\n    }\\n\\n    struct ProposalConfig {\\n        /// @notice The delay before voting on a proposal may take place, once proposed, in blocks\\n        uint256 votingDelay;\\n        /// @notice The duration of voting on a proposal, in blocks\\n        uint256 votingPeriod;\\n        /// @notice The number of votes required in order for a voter to become a proposer\\n        uint256 proposalThreshold;\\n    }\\n\\n    /// @notice mapping containing configuration for each proposal type\\n    mapping(uint => ProposalConfig) public proposalConfigs;\\n\\n    /// @notice mapping containing Timelock addresses for each proposal type\\n    mapping(uint => TimelockInterface) public proposalTimelocks;\\n}\\n\\n/**\\n * @title GovernorBravoDelegateStorageV3\\n * @dev For future upgrades, do not change GovernorBravoDelegateStorageV3. Create a new\\n * contract which implements GovernorBravoDelegateStorageV3 and following the naming convention\\n * GovernorBravoDelegateStorageVX.\\n */\\ncontract GovernorBravoDelegateStorageV3 is GovernorBravoDelegateStorageV2 {\\n    struct ValidationParams {\\n        uint256 minVotingPeriod;\\n        uint256 maxVotingPeriod;\\n        uint256 minVotingDelay;\\n        uint256 maxVotingDelay;\\n    }\\n    /// @notice Stores the current minimum and maximum values of voting delay and voting period\\n    ValidationParams public validationParams;\\n}\\n\\n/**\\n * @title TimelockInterface\\n * @author Venus\\n * @notice Interface implemented by the Timelock contract.\\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 XvsVaultInterface {\\n    function getPriorVotes(address account, uint blockNumber) external view returns (uint96);\\n}\\n\\ninterface GovernorAlphaInterface {\\n    /// @notice The total number of proposals\\n    function proposalCount() external returns (uint);\\n}\\n\",\"keccak256\":\"0x62c89309d4351dbeb5516465211fab0b566d83d60dc0148377deaad1f1929b85\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"methods":{},"notice":"Set of events emitted by the GovernorBravo contracts."}},"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":{"author":"Venus","methods":{},"title":"TimelockInterface"},"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\":{\"author\":\"Venus\",\"methods\":{},\"title\":\"TimelockInterface\"},\"userdoc\":{\"methods\":{},\"notice\":\"Interface implemented by the Timelock contract.\"}},\"settings\":{\"compilationTarget\":{\"contracts/Governance/GovernorBravoInterfaces.sol\":\"TimelockInterface\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/Governance/GovernorBravoInterfaces.sol\":{\"content\":\"pragma solidity ^0.5.16;\\npragma experimental ABIEncoderV2;\\n\\n/**\\n * @title GovernorBravoEvents\\n * @author Venus\\n * @notice Set of events emitted by the GovernorBravo contracts.\\n */\\ncontract GovernorBravoEvents {\\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        uint8 proposalType\\n    );\\n\\n    /// @notice An event emitted when a vote has been cast on a proposal\\n    /// @param voter The address which casted a vote\\n    /// @param proposalId The proposal id which was voted on\\n    /// @param support Support value for the vote. 0=against, 1=for, 2=abstain\\n    /// @param votes Number of votes which were cast by the voter\\n    /// @param reason The reason given for the vote by the voter\\n    event VoteCast(address indexed voter, uint proposalId, uint8 support, uint votes, string reason);\\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    /// @notice An event emitted when the voting delay is set\\n    event VotingDelaySet(uint oldVotingDelay, uint newVotingDelay);\\n\\n    /// @notice An event emitted when the voting period is set\\n    event VotingPeriodSet(uint oldVotingPeriod, uint newVotingPeriod);\\n\\n    /// @notice Emitted when implementation is changed\\n    event NewImplementation(address oldImplementation, address newImplementation);\\n\\n    /// @notice Emitted when proposal threshold is set\\n    event ProposalThresholdSet(uint oldProposalThreshold, uint newProposalThreshold);\\n\\n    /// @notice Emitted when pendingAdmin is changed\\n    event NewPendingAdmin(address oldPendingAdmin, address newPendingAdmin);\\n\\n    /// @notice Emitted when pendingAdmin is accepted, which means admin is updated\\n    event NewAdmin(address oldAdmin, address newAdmin);\\n\\n    /// @notice Emitted when the new guardian address is set\\n    event NewGuardian(address oldGuardian, address newGuardian);\\n\\n    /// @notice Emitted when the maximum number of operations in one proposal is updated\\n    event ProposalMaxOperationsUpdated(uint oldMaxOperations, uint newMaxOperations);\\n\\n    /// @notice Emitted when the new validation params are set\\n    event SetValidationParams(\\n        uint256 oldMinVotingPeriod,\\n        uint256 newMinVotingPeriod,\\n        uint256 oldmaxVotingPeriod,\\n        uint256 newmaxVotingPeriod,\\n        uint256 oldminVotingDelay,\\n        uint256 newminVotingDelay,\\n        uint256 oldmaxVotingDelay,\\n        uint256 newmaxVotingDelay\\n    );\\n\\n    /// @notice Emitted when new Proposal configs added\\n    event SetProposalConfigs(uint256 votingPeriod, uint256 votingDelay, uint256 proposalThreshold);\\n}\\n\\n/**\\n * @title GovernorBravoDelegatorStorage\\n * @author Venus\\n * @notice Storage layout of the `GovernorBravoDelegator` contract\\n */\\ncontract GovernorBravoDelegatorStorage {\\n    /// @notice Administrator for this contract\\n    address public admin;\\n\\n    /// @notice Pending administrator for this contract\\n    address public pendingAdmin;\\n\\n    /// @notice Active brains of Governor\\n    address public implementation;\\n}\\n\\n/**\\n * @title GovernorBravoDelegateStorageV1\\n * @dev For future upgrades, do not change GovernorBravoDelegateStorageV1. Create a new\\n * contract which implements GovernorBravoDelegateStorageV1 and following the naming convention\\n * GovernorBravoDelegateStorageVX.\\n */\\ncontract GovernorBravoDelegateStorageV1 is GovernorBravoDelegatorStorage {\\n    /// @notice DEPRECATED The delay before voting on a proposal may take place, once proposed, in blocks\\n    uint public votingDelay;\\n\\n    /// @notice DEPRECATED The duration of voting on a proposal, in blocks\\n    uint public votingPeriod;\\n\\n    /// @notice DEPRECATED The number of votes required in order for a voter to become a proposer\\n    uint public proposalThreshold;\\n\\n    /// @notice Initial proposal id set at become\\n    uint public initialProposalId;\\n\\n    /// @notice The total number of proposals\\n    uint public proposalCount;\\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    XvsVaultInterface public xvsVault;\\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    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 Current number of votes for abstaining for this proposal\\n        uint abstainVotes;\\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        /// @notice The type of the proposal\\n        uint8 proposalType;\\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 or abstains\\n        uint8 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 maximum number of actions that can be included in a proposal\\n    uint public proposalMaxOperations;\\n\\n    /// @notice A privileged role that can cancel any proposal\\n    address public guardian;\\n}\\n\\n/**\\n * @title GovernorBravoDelegateStorageV2\\n * @dev For future upgrades, do not change GovernorBravoDelegateStorageV2. Create a new\\n * contract which implements GovernorBravoDelegateStorageV2 and following the naming convention\\n * GovernorBravoDelegateStorageVX.\\n */\\ncontract GovernorBravoDelegateStorageV2 is GovernorBravoDelegateStorageV1 {\\n    enum ProposalType {\\n        NORMAL,\\n        FASTTRACK,\\n        CRITICAL\\n    }\\n\\n    struct ProposalConfig {\\n        /// @notice The delay before voting on a proposal may take place, once proposed, in blocks\\n        uint256 votingDelay;\\n        /// @notice The duration of voting on a proposal, in blocks\\n        uint256 votingPeriod;\\n        /// @notice The number of votes required in order for a voter to become a proposer\\n        uint256 proposalThreshold;\\n    }\\n\\n    /// @notice mapping containing configuration for each proposal type\\n    mapping(uint => ProposalConfig) public proposalConfigs;\\n\\n    /// @notice mapping containing Timelock addresses for each proposal type\\n    mapping(uint => TimelockInterface) public proposalTimelocks;\\n}\\n\\n/**\\n * @title GovernorBravoDelegateStorageV3\\n * @dev For future upgrades, do not change GovernorBravoDelegateStorageV3. Create a new\\n * contract which implements GovernorBravoDelegateStorageV3 and following the naming convention\\n * GovernorBravoDelegateStorageVX.\\n */\\ncontract GovernorBravoDelegateStorageV3 is GovernorBravoDelegateStorageV2 {\\n    struct ValidationParams {\\n        uint256 minVotingPeriod;\\n        uint256 maxVotingPeriod;\\n        uint256 minVotingDelay;\\n        uint256 maxVotingDelay;\\n    }\\n    /// @notice Stores the current minimum and maximum values of voting delay and voting period\\n    ValidationParams public validationParams;\\n}\\n\\n/**\\n * @title TimelockInterface\\n * @author Venus\\n * @notice Interface implemented by the Timelock contract.\\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 XvsVaultInterface {\\n    function getPriorVotes(address account, uint blockNumber) external view returns (uint96);\\n}\\n\\ninterface GovernorAlphaInterface {\\n    /// @notice The total number of proposals\\n    function proposalCount() external returns (uint);\\n}\\n\",\"keccak256\":\"0x62c89309d4351dbeb5516465211fab0b566d83d60dc0148377deaad1f1929b85\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"methods":{},"notice":"Interface implemented by the Timelock contract."}},"XvsVaultInterface":{"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/Governance/GovernorBravoInterfaces.sol\":\"XvsVaultInterface\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/Governance/GovernorBravoInterfaces.sol\":{\"content\":\"pragma solidity ^0.5.16;\\npragma experimental ABIEncoderV2;\\n\\n/**\\n * @title GovernorBravoEvents\\n * @author Venus\\n * @notice Set of events emitted by the GovernorBravo contracts.\\n */\\ncontract GovernorBravoEvents {\\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        uint8 proposalType\\n    );\\n\\n    /// @notice An event emitted when a vote has been cast on a proposal\\n    /// @param voter The address which casted a vote\\n    /// @param proposalId The proposal id which was voted on\\n    /// @param support Support value for the vote. 0=against, 1=for, 2=abstain\\n    /// @param votes Number of votes which were cast by the voter\\n    /// @param reason The reason given for the vote by the voter\\n    event VoteCast(address indexed voter, uint proposalId, uint8 support, uint votes, string reason);\\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    /// @notice An event emitted when the voting delay is set\\n    event VotingDelaySet(uint oldVotingDelay, uint newVotingDelay);\\n\\n    /// @notice An event emitted when the voting period is set\\n    event VotingPeriodSet(uint oldVotingPeriod, uint newVotingPeriod);\\n\\n    /// @notice Emitted when implementation is changed\\n    event NewImplementation(address oldImplementation, address newImplementation);\\n\\n    /// @notice Emitted when proposal threshold is set\\n    event ProposalThresholdSet(uint oldProposalThreshold, uint newProposalThreshold);\\n\\n    /// @notice Emitted when pendingAdmin is changed\\n    event NewPendingAdmin(address oldPendingAdmin, address newPendingAdmin);\\n\\n    /// @notice Emitted when pendingAdmin is accepted, which means admin is updated\\n    event NewAdmin(address oldAdmin, address newAdmin);\\n\\n    /// @notice Emitted when the new guardian address is set\\n    event NewGuardian(address oldGuardian, address newGuardian);\\n\\n    /// @notice Emitted when the maximum number of operations in one proposal is updated\\n    event ProposalMaxOperationsUpdated(uint oldMaxOperations, uint newMaxOperations);\\n\\n    /// @notice Emitted when the new validation params are set\\n    event SetValidationParams(\\n        uint256 oldMinVotingPeriod,\\n        uint256 newMinVotingPeriod,\\n        uint256 oldmaxVotingPeriod,\\n        uint256 newmaxVotingPeriod,\\n        uint256 oldminVotingDelay,\\n        uint256 newminVotingDelay,\\n        uint256 oldmaxVotingDelay,\\n        uint256 newmaxVotingDelay\\n    );\\n\\n    /// @notice Emitted when new Proposal configs added\\n    event SetProposalConfigs(uint256 votingPeriod, uint256 votingDelay, uint256 proposalThreshold);\\n}\\n\\n/**\\n * @title GovernorBravoDelegatorStorage\\n * @author Venus\\n * @notice Storage layout of the `GovernorBravoDelegator` contract\\n */\\ncontract GovernorBravoDelegatorStorage {\\n    /// @notice Administrator for this contract\\n    address public admin;\\n\\n    /// @notice Pending administrator for this contract\\n    address public pendingAdmin;\\n\\n    /// @notice Active brains of Governor\\n    address public implementation;\\n}\\n\\n/**\\n * @title GovernorBravoDelegateStorageV1\\n * @dev For future upgrades, do not change GovernorBravoDelegateStorageV1. Create a new\\n * contract which implements GovernorBravoDelegateStorageV1 and following the naming convention\\n * GovernorBravoDelegateStorageVX.\\n */\\ncontract GovernorBravoDelegateStorageV1 is GovernorBravoDelegatorStorage {\\n    /// @notice DEPRECATED The delay before voting on a proposal may take place, once proposed, in blocks\\n    uint public votingDelay;\\n\\n    /// @notice DEPRECATED The duration of voting on a proposal, in blocks\\n    uint public votingPeriod;\\n\\n    /// @notice DEPRECATED The number of votes required in order for a voter to become a proposer\\n    uint public proposalThreshold;\\n\\n    /// @notice Initial proposal id set at become\\n    uint public initialProposalId;\\n\\n    /// @notice The total number of proposals\\n    uint public proposalCount;\\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    XvsVaultInterface public xvsVault;\\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    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 Current number of votes for abstaining for this proposal\\n        uint abstainVotes;\\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        /// @notice The type of the proposal\\n        uint8 proposalType;\\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 or abstains\\n        uint8 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 maximum number of actions that can be included in a proposal\\n    uint public proposalMaxOperations;\\n\\n    /// @notice A privileged role that can cancel any proposal\\n    address public guardian;\\n}\\n\\n/**\\n * @title GovernorBravoDelegateStorageV2\\n * @dev For future upgrades, do not change GovernorBravoDelegateStorageV2. Create a new\\n * contract which implements GovernorBravoDelegateStorageV2 and following the naming convention\\n * GovernorBravoDelegateStorageVX.\\n */\\ncontract GovernorBravoDelegateStorageV2 is GovernorBravoDelegateStorageV1 {\\n    enum ProposalType {\\n        NORMAL,\\n        FASTTRACK,\\n        CRITICAL\\n    }\\n\\n    struct ProposalConfig {\\n        /// @notice The delay before voting on a proposal may take place, once proposed, in blocks\\n        uint256 votingDelay;\\n        /// @notice The duration of voting on a proposal, in blocks\\n        uint256 votingPeriod;\\n        /// @notice The number of votes required in order for a voter to become a proposer\\n        uint256 proposalThreshold;\\n    }\\n\\n    /// @notice mapping containing configuration for each proposal type\\n    mapping(uint => ProposalConfig) public proposalConfigs;\\n\\n    /// @notice mapping containing Timelock addresses for each proposal type\\n    mapping(uint => TimelockInterface) public proposalTimelocks;\\n}\\n\\n/**\\n * @title GovernorBravoDelegateStorageV3\\n * @dev For future upgrades, do not change GovernorBravoDelegateStorageV3. Create a new\\n * contract which implements GovernorBravoDelegateStorageV3 and following the naming convention\\n * GovernorBravoDelegateStorageVX.\\n */\\ncontract GovernorBravoDelegateStorageV3 is GovernorBravoDelegateStorageV2 {\\n    struct ValidationParams {\\n        uint256 minVotingPeriod;\\n        uint256 maxVotingPeriod;\\n        uint256 minVotingDelay;\\n        uint256 maxVotingDelay;\\n    }\\n    /// @notice Stores the current minimum and maximum values of voting delay and voting period\\n    ValidationParams public validationParams;\\n}\\n\\n/**\\n * @title TimelockInterface\\n * @author Venus\\n * @notice Interface implemented by the Timelock contract.\\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 XvsVaultInterface {\\n    function getPriorVotes(address account, uint blockNumber) external view returns (uint96);\\n}\\n\\ninterface GovernorAlphaInterface {\\n    /// @notice The total number of proposals\\n    function proposalCount() external returns (uint);\\n}\\n\",\"keccak256\":\"0x62c89309d4351dbeb5516465211fab0b566d83d60dc0148377deaad1f1929b85\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"methods":{}}}},"contracts/legacy/GovenorBravoV1.sol":{"GovernorBravoDelegatorV1":{"abi":[{"inputs":[{"internalType":"address","name":"timelock_","type":"address"},{"internalType":"address","name":"xvsVault_","type":"address"},{"internalType":"address","name":"admin_","type":"address"},{"internalType":"address","name":"implementation_","type":"address"},{"internalType":"uint256","name":"votingPeriod_","type":"uint256"},{"internalType":"uint256","name":"votingDelay_","type":"uint256"},{"internalType":"uint256","name":"proposalThreshold_","type":"uint256"},{"internalType":"address","name":"guardian_","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldAdmin","type":"address"},{"indexed":false,"internalType":"address","name":"newAdmin","type":"address"}],"name":"NewAdmin","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldGuardian","type":"address"},{"indexed":false,"internalType":"address","name":"newGuardian","type":"address"}],"name":"NewGuardian","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldImplementation","type":"address"},{"indexed":false,"internalType":"address","name":"newImplementation","type":"address"}],"name":"NewImplementation","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldPendingAdmin","type":"address"},{"indexed":false,"internalType":"address","name":"newPendingAdmin","type":"address"}],"name":"NewPendingAdmin","type":"event"},{"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":"oldMaxOperations","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newMaxOperations","type":"uint256"}],"name":"ProposalMaxOperationsUpdated","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":"uint256","name":"oldProposalThreshold","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newProposalThreshold","type":"uint256"}],"name":"ProposalThresholdSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"voter","type":"address"},{"indexed":false,"internalType":"uint256","name":"proposalId","type":"uint256"},{"indexed":false,"internalType":"uint8","name":"support","type":"uint8"},{"indexed":false,"internalType":"uint256","name":"votes","type":"uint256"},{"indexed":false,"internalType":"string","name":"reason","type":"string"}],"name":"VoteCast","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"oldVotingDelay","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newVotingDelay","type":"uint256"}],"name":"VotingDelaySet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"oldVotingPeriod","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newVotingPeriod","type":"uint256"}],"name":"VotingPeriodSet","type":"event"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"constant":false,"inputs":[{"internalType":"address","name":"implementation_","type":"address"}],"name":"_setImplementation","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"admin","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"implementation","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"pendingAdmin","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}],"devdoc":{"author":"Venus","methods":{"_setImplementation(address)":{"params":{"implementation_":"The address of the new implementation for delegation"}}},"title":"GovernorBravoDelegator"},"evm":{"bytecode":{"linkReferences":{},"object":"60806040523480156200001157600080fd5b50604051620009963803806200099683398101604081905262000034916200023f565b600080546001600160a01b031916331790556040516200009e9086906200006a908b908b90899089908990899060240162000438565b60408051601f198184030181529190526020810180516001600160e01b0390811663b1a5d12d60e01b17909152620000e116565b620000b2856001600160e01b036200015d16565b5050600080546001600160a01b0319166001600160a01b039590951694909417909355506200053d9350505050565b60006060836001600160a01b031683604051620000ff919062000404565b600060405180830381855af49150503d80600081146200013c576040519150601f19603f3d011682016040523d82523d6000602084013e62000141565b606091505b5091509150600082141562000157573d60208201fd5b50505050565b6000546001600160a01b03163314620001935760405162461bcd60e51b81526004016200018a90620004b0565b60405180910390fd5b6001600160a01b038116620001bc5760405162461bcd60e51b81526004016200018a906200049e565b600280546001600160a01b038381166001600160a01b031983161792839055604051918116927fd604de94d45953f9138079ec1b82d533cb2160c906d1076d1f7ed54befbca97a9262000213928592169062000419565b60405180910390a15050565b80516200022c8162000518565b92915050565b80516200022c8162000532565b600080600080600080600080610100898b0312156200025d57600080fd5b60006200026b8b8b6200021f565b98505060206200027e8b828c016200021f565b9750506040620002918b828c016200021f565b9650506060620002a48b828c016200021f565b9550506080620002b78b828c0162000232565b94505060a0620002ca8b828c0162000232565b93505060c0620002dd8b828c0162000232565b92505060e0620002f08b828c016200021f565b9150509295985092959890939650565b6200030b81620004d4565b82525050565b60006200031e82620004c2565b6200032a8185620004c6565b93506200033c818560208601620004e9565b9290920192915050565b600062000355604a83620004cb565b6000805160206200097683398151915281527f656d656e746174696f6e3a20696e76616c696420696d706c656d656e746174696020820152696f6e206164647265737360b01b604082015260600192915050565b6000620003b8603683620004cb565b6000805160206200097683398151915281527f656d656e746174696f6e3a2061646d696e206f6e6c7900000000000000000000602082015260400192915050565b6200030b81620004e6565b600062000412828462000311565b9392505050565b6040810162000429828562000300565b62000412602083018462000300565b60c0810162000448828962000300565b62000457602083018862000300565b620004666040830187620003f9565b620004756060830186620003f9565b620004846080830185620003f9565b6200049360a083018462000300565b979650505050505050565b602080825281016200022c8162000346565b602080825281016200022c81620003a9565b5190565b919050565b90815260200190565b60006001600160a01b0382166200022c565b90565b60005b8381101562000506578181015183820152602001620004ec565b83811115620001575750506000910152565b6200052381620004d4565b81146200052f57600080fd5b50565b6200052381620004e6565b610429806200054d6000396000f3fe60806040526004361061003f5760003560e01c806326782247146100ba5780635c60da1b146100e5578063bb913f41146100fa578063f851a4401461011c575b6002546040516000916001600160a01b03169061005f9083903690610347565b600060405180830381855af49150503d806000811461009a576040519150601f19603f3d011682016040523d82523d6000602084013e61009f565b606091505b505090506040513d6000823e8180156100b6573d82f35b3d82fd5b3480156100c657600080fd5b506100cf610131565b6040516100dc9190610354565b60405180910390f35b3480156100f157600080fd5b506100cf610140565b34801561010657600080fd5b5061011a610115366004610229565b61014f565b005b34801561012857600080fd5b506100cf610209565b6001546001600160a01b031681565b6002546001600160a01b031681565b6000546001600160a01b031633146101825760405162461bcd60e51b815260040161017990610394565b60405180910390fd5b6001600160a01b0381166101a85760405162461bcd60e51b815260040161017990610384565b600280546001600160a01b038381166001600160a01b031983161792839055604051918116927fd604de94d45953f9138079ec1b82d533cb2160c906d1076d1f7ed54befbca97a926101fd9285921690610362565b60405180910390a15050565b6000546001600160a01b031681565b8035610223816103cf565b92915050565b60006020828403121561023b57600080fd5b60006102478484610218565b949350505050565b610258816103b2565b82525050565b600061026a83856103a4565b93506102778385846103c3565b50500190565b600061028a604a836103a9565b7f476f7665726e6f72427261766f44656c656761746f723a3a5f736574496d706c81527f656d656e746174696f6e3a20696e76616c696420696d706c656d656e746174696020820152696f6e206164647265737360b01b604082015260600192915050565b60006102fc6036836103a9565b7f476f7665726e6f72427261766f44656c656761746f723a3a5f736574496d706c815275656d656e746174696f6e3a2061646d696e206f6e6c7960501b602082015260400192915050565b600061024782848661025e565b60208101610223828461024f565b60408101610370828561024f565b61037d602083018461024f565b9392505050565b602080825281016102238161027d565b60208082528101610223816102ef565b919050565b90815260200190565b60006001600160a01b038216610223565b82818337506000910152565b6103d8816103b2565b81146103e357600080fd5b5056fea365627a7a7231582003a317d4f75701b1f3b4a097872ee5e167c39c2e4e7d9b4e33057dae9bd9d5ce6c6578706572696d656e74616cf564736f6c63430005100040476f7665726e6f72427261766f44656c656761746f723a3a5f736574496d706c","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x996 CODESIZE SUB DUP1 PUSH3 0x996 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH3 0x34 SWAP2 PUSH3 0x23F JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND CALLER OR SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH3 0x9E SWAP1 DUP7 SWAP1 PUSH3 0x6A SWAP1 DUP12 SWAP1 DUP12 SWAP1 DUP10 SWAP1 DUP10 SWAP1 DUP10 SWAP1 DUP10 SWAP1 PUSH1 0x24 ADD PUSH3 0x438 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 SWAP1 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB SWAP1 DUP2 AND PUSH4 0xB1A5D12D PUSH1 0xE0 SHL OR SWAP1 SWAP2 MSTORE PUSH3 0xE1 AND JUMP JUMPDEST PUSH3 0xB2 DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB PUSH3 0x15D AND JUMP JUMPDEST POP POP PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP6 SWAP1 SWAP6 AND SWAP5 SWAP1 SWAP5 OR SWAP1 SWAP4 SSTORE POP PUSH3 0x53D SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH1 0x40 MLOAD PUSH3 0xFF SWAP2 SWAP1 PUSH3 0x404 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH3 0x13C JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH3 0x141 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH1 0x0 DUP3 EQ ISZERO PUSH3 0x157 JUMPI RETURNDATASIZE PUSH1 0x20 DUP3 ADD REVERT JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH3 0x193 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH3 0x18A SWAP1 PUSH3 0x4B0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH3 0x1BC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH3 0x18A SWAP1 PUSH3 0x49E JUMP JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND OR SWAP3 DUP4 SWAP1 SSTORE PUSH1 0x40 MLOAD SWAP2 DUP2 AND SWAP3 PUSH32 0xD604DE94D45953F9138079EC1B82D533CB2160C906D1076D1F7ED54BEFBCA97A SWAP3 PUSH3 0x213 SWAP3 DUP6 SWAP3 AND SWAP1 PUSH3 0x419 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST DUP1 MLOAD PUSH3 0x22C DUP2 PUSH3 0x518 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 MLOAD PUSH3 0x22C DUP2 PUSH3 0x532 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x100 DUP10 DUP12 SUB SLT ISZERO PUSH3 0x25D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH3 0x26B DUP12 DUP12 PUSH3 0x21F JUMP JUMPDEST SWAP9 POP POP PUSH1 0x20 PUSH3 0x27E DUP12 DUP3 DUP13 ADD PUSH3 0x21F JUMP JUMPDEST SWAP8 POP POP PUSH1 0x40 PUSH3 0x291 DUP12 DUP3 DUP13 ADD PUSH3 0x21F JUMP JUMPDEST SWAP7 POP POP PUSH1 0x60 PUSH3 0x2A4 DUP12 DUP3 DUP13 ADD PUSH3 0x21F JUMP JUMPDEST SWAP6 POP POP PUSH1 0x80 PUSH3 0x2B7 DUP12 DUP3 DUP13 ADD PUSH3 0x232 JUMP JUMPDEST SWAP5 POP POP PUSH1 0xA0 PUSH3 0x2CA DUP12 DUP3 DUP13 ADD PUSH3 0x232 JUMP JUMPDEST SWAP4 POP POP PUSH1 0xC0 PUSH3 0x2DD DUP12 DUP3 DUP13 ADD PUSH3 0x232 JUMP JUMPDEST SWAP3 POP POP PUSH1 0xE0 PUSH3 0x2F0 DUP12 DUP3 DUP13 ADD PUSH3 0x21F JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP9 POP SWAP3 SWAP6 SWAP9 SWAP1 SWAP4 SWAP7 POP JUMP JUMPDEST PUSH3 0x30B DUP2 PUSH3 0x4D4 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x31E DUP3 PUSH3 0x4C2 JUMP JUMPDEST PUSH3 0x32A DUP2 DUP6 PUSH3 0x4C6 JUMP JUMPDEST SWAP4 POP PUSH3 0x33C DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH3 0x4E9 JUMP JUMPDEST SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x355 PUSH1 0x4A DUP4 PUSH3 0x4CB JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH3 0x976 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP2 MSTORE PUSH32 0x656D656E746174696F6E3A20696E76616C696420696D706C656D656E74617469 PUSH1 0x20 DUP3 ADD MSTORE PUSH10 0x6F6E2061646472657373 PUSH1 0xB0 SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x3B8 PUSH1 0x36 DUP4 PUSH3 0x4CB JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH3 0x976 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP2 MSTORE PUSH32 0x656D656E746174696F6E3A2061646D696E206F6E6C7900000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH3 0x30B DUP2 PUSH3 0x4E6 JUMP JUMPDEST PUSH1 0x0 PUSH3 0x412 DUP3 DUP5 PUSH3 0x311 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH3 0x429 DUP3 DUP6 PUSH3 0x300 JUMP JUMPDEST PUSH3 0x412 PUSH1 0x20 DUP4 ADD DUP5 PUSH3 0x300 JUMP JUMPDEST PUSH1 0xC0 DUP2 ADD PUSH3 0x448 DUP3 DUP10 PUSH3 0x300 JUMP JUMPDEST PUSH3 0x457 PUSH1 0x20 DUP4 ADD DUP9 PUSH3 0x300 JUMP JUMPDEST PUSH3 0x466 PUSH1 0x40 DUP4 ADD DUP8 PUSH3 0x3F9 JUMP JUMPDEST PUSH3 0x475 PUSH1 0x60 DUP4 ADD DUP7 PUSH3 0x3F9 JUMP JUMPDEST PUSH3 0x484 PUSH1 0x80 DUP4 ADD DUP6 PUSH3 0x3F9 JUMP JUMPDEST PUSH3 0x493 PUSH1 0xA0 DUP4 ADD DUP5 PUSH3 0x300 JUMP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH3 0x22C DUP2 PUSH3 0x346 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH3 0x22C DUP2 PUSH3 0x3A9 JUMP JUMPDEST MLOAD SWAP1 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH3 0x22C JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH3 0x506 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH3 0x4EC JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH3 0x157 JUMPI POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH3 0x523 DUP2 PUSH3 0x4D4 JUMP JUMPDEST DUP2 EQ PUSH3 0x52F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH3 0x523 DUP2 PUSH3 0x4E6 JUMP JUMPDEST PUSH2 0x429 DUP1 PUSH3 0x54D PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x3F JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x26782247 EQ PUSH2 0xBA JUMPI DUP1 PUSH4 0x5C60DA1B EQ PUSH2 0xE5 JUMPI DUP1 PUSH4 0xBB913F41 EQ PUSH2 0xFA JUMPI DUP1 PUSH4 0xF851A440 EQ PUSH2 0x11C JUMPI JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH2 0x5F SWAP1 DUP4 SWAP1 CALLDATASIZE SWAP1 PUSH2 0x347 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x9A JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x9F JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY DUP2 DUP1 ISZERO PUSH2 0xB6 JUMPI RETURNDATASIZE DUP3 RETURN JUMPDEST RETURNDATASIZE DUP3 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xC6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xCF PUSH2 0x131 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xDC SWAP2 SWAP1 PUSH2 0x354 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xF1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xCF PUSH2 0x140 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x106 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x11A PUSH2 0x115 CALLDATASIZE PUSH1 0x4 PUSH2 0x229 JUMP JUMPDEST PUSH2 0x14F JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x128 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xCF PUSH2 0x209 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 DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x182 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x179 SWAP1 PUSH2 0x394 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x1A8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x179 SWAP1 PUSH2 0x384 JUMP JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND OR SWAP3 DUP4 SWAP1 SSTORE PUSH1 0x40 MLOAD SWAP2 DUP2 AND SWAP3 PUSH32 0xD604DE94D45953F9138079EC1B82D533CB2160C906D1076D1F7ED54BEFBCA97A SWAP3 PUSH2 0x1FD SWAP3 DUP6 SWAP3 AND SWAP1 PUSH2 0x362 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x223 DUP2 PUSH2 0x3CF JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x23B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x247 DUP5 DUP5 PUSH2 0x218 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0x258 DUP2 PUSH2 0x3B2 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x26A DUP4 DUP6 PUSH2 0x3A4 JUMP JUMPDEST SWAP4 POP PUSH2 0x277 DUP4 DUP6 DUP5 PUSH2 0x3C3 JUMP JUMPDEST POP POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x28A PUSH1 0x4A DUP4 PUSH2 0x3A9 JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F44656C656761746F723A3A5F736574496D706C DUP2 MSTORE PUSH32 0x656D656E746174696F6E3A20696E76616C696420696D706C656D656E74617469 PUSH1 0x20 DUP3 ADD MSTORE PUSH10 0x6F6E2061646472657373 PUSH1 0xB0 SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2FC PUSH1 0x36 DUP4 PUSH2 0x3A9 JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F44656C656761746F723A3A5F736574496D706C DUP2 MSTORE PUSH22 0x656D656E746174696F6E3A2061646D696E206F6E6C79 PUSH1 0x50 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x247 DUP3 DUP5 DUP7 PUSH2 0x25E JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x223 DUP3 DUP5 PUSH2 0x24F JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0x370 DUP3 DUP6 PUSH2 0x24F JUMP JUMPDEST PUSH2 0x37D PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x24F JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x223 DUP2 PUSH2 0x27D JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x223 DUP2 PUSH2 0x2EF JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x223 JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH2 0x3D8 DUP2 PUSH2 0x3B2 JUMP JUMPDEST DUP2 EQ PUSH2 0x3E3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG3 PUSH6 0x627A7A723158 KECCAK256 SUB LOG3 OR 0xD4 0xF7 JUMPI ADD 0xB1 RETURN 0xB4 LOG0 SWAP8 DUP8 0x2E 0xE5 0xE1 PUSH8 0xC39C2E4E7D9B4E33 SDIV PUSH30 0xAE9BD9D5CE6C6578706572696D656E74616CF564736F6C63430005100040 SELFBALANCE PUSH16 0x7665726E6F72427261766F44656C6567 PUSH2 0x746F PUSH19 0x3A3A5F736574496D706C000000000000000000 ","sourceMap":"209:2825:3:-;;;305:779;8:9:-1;5:2;;;30:1;27;20:12;5:2;305:779:3;;;;;;;;;;;;;;;;;;;;;620:5;:18;;-1:-1:-1;;;;;;620:18:3;628:10;620:18;;;702:294;;649:357;;673:15;;702:294;;822:9;;849;;876:13;;907:12;;937:18;;973:9;;702:294;;;;;;;;-1:-1:-1;;26:21;;;22:32;6:49;;702:294:3;;;49:4:-1;25:18;;61:17;;-1:-1;;;;;182:15;;;-1:-1;;;179:29;160:49;;;649:10:3;:357;:::i;:::-;1017:35;1036:15;-1:-1:-1;;;;;1017:18:3;:35;:::i;:::-;-1:-1:-1;;1063:5:3;:14;;-1:-1:-1;;;;;;1063:14:3;-1:-1:-1;;;;;1063:14:3;;;;;;;;;;;-1:-1:-1;209:2825:3;;-1:-1:-1;;;;209:2825:3;2051:285;2126:12;2140:23;2167:6;-1:-1:-1;;;;;2167:19:3;2187:4;2167:25;;;;;;;;;;;;;;;;;;;;;;14:1:-1;21;16:31;;;;75:4;69:11;64:16;;144:4;140:9;133:4;115:16;111:27;107:43;104:1;100:51;94:4;87:65;169:16;166:1;159:27;225:16;222:1;215:4;212:1;208:12;193:49;7:242;;16:31;36:4;31:9;;7:242;;2125:67:3;;;;2240:1;2231:7;2228:14;2225:2;;;2291:14;2284:4;2272:10;2268:21;2261:45;2225:2;2211:119;;;;:::o;1270:486::-;1362:5;;-1:-1:-1;;;;;1362:5:3;1348:10;:19;1340:86;;;;-1:-1:-1;;;1340:86:3;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1457:29:3;;1436:150;;;;-1:-1:-1;;;1436:150:3;;;;;;;;;1625:14;;;-1:-1:-1;;;;;1649:32:3;;;-1:-1:-1;;;;;;1649:32:3;;;;;;;1697:52;;1625:14;;;;1697:52;;;;1625:14;;1734;;1697:52;;;;;;;;;;1270:486;;:::o;5:134:-1:-;83:13;;101:33;83:13;101:33;;;68:71;;;;;146:134;224:13;;242:33;224:13;242:33;;287:1220;;;;;;;;;521:3;509:9;500:7;496:23;492:33;489:2;;;538:1;535;528:12;489:2;573:1;590:64;646:7;626:9;590:64;;;580:74;;552:108;691:2;709:64;765:7;756:6;745:9;741:22;709:64;;;699:74;;670:109;810:2;828:64;884:7;875:6;864:9;860:22;828:64;;;818:74;;789:109;929:2;947:64;1003:7;994:6;983:9;979:22;947:64;;;937:74;;908:109;1048:3;1067:64;1123:7;1114:6;1103:9;1099:22;1067:64;;;1057:74;;1027:110;1168:3;1187:64;1243:7;1234:6;1223:9;1219:22;1187:64;;;1177:74;;1147:110;1288:3;1307:64;1363:7;1354:6;1343:9;1339:22;1307:64;;;1297:74;;1267:110;1408:3;1427:64;1483:7;1474:6;1463:9;1459:22;1427:64;;;1417:74;;1387:110;483:1024;;;;;;;;;;;;1514:113;1597:24;1615:5;1597:24;;;1592:3;1585:37;1579:48;;;1634:356;;1762:38;1794:5;1762:38;;;1812:88;1893:6;1888:3;1812:88;;;1805:95;;1905:52;1950:6;1945:3;1938:4;1931:5;1927:16;1905:52;;;1969:16;;;;;1742:248;-1:-1;;1742:248;1998:448;;2158:67;2222:2;2217:3;2158:67;;;-1:-1;;;;;;;;;;;2238:55;;2327:34;2322:2;2313:12;;2306:56;-1:-1;;;2391:2;2382:12;;2375:34;2437:2;2428:12;;2144:302;-1:-1;;2144:302;2455:391;;2615:67;2679:2;2674:3;2615:67;;;-1:-1;;;;;;;;;;;2695:55;;2784:24;2779:2;2770:12;;2763:46;2837:2;2828:12;;2601:245;-1:-1;;2601:245;2854:113;2937:24;2955:5;2937:24;;2974:262;;3118:93;3207:3;3198:6;3118:93;;;3111:100;3099:137;-1:-1;;;3099:137;3243:324;3389:2;3374:18;;3403:71;3378:9;3447:6;3403:71;;;3485:72;3553:2;3542:9;3538:18;3529:6;3485:72;;3574:771;3832:3;3817:19;;3847:71;3821:9;3891:6;3847:71;;;3929:72;3997:2;3986:9;3982:18;3973:6;3929:72;;;4012;4080:2;4069:9;4065:18;4056:6;4012:72;;;4095;4163:2;4152:9;4148:18;4139:6;4095:72;;;4178:73;4246:3;4235:9;4231:19;4222:6;4178:73;;;4262;4330:3;4319:9;4315:19;4306:6;4262:73;;;3803:542;;;;;;;;;;4352:407;4543:2;4557:47;;;4528:18;;4618:131;4528:18;4618:131;;4766:407;4957:2;4971:47;;;4942:18;;5032:131;4942:18;5032:131;;5180:121;5267:12;;5238:63;5309:144;5444:3;5422:31;-1:-1;5422:31;5462:163;5565:19;;;5614:4;5605:14;;5558:67;5633:91;;-1:-1;;;;;5793:54;;5695:24;5776:76;5859:72;5921:5;5904:27;5939:268;6004:1;6011:101;6025:6;6022:1;6019:13;6011:101;;;6092:11;;;6086:18;6073:11;;;6066:39;6047:2;6040:10;6011:101;;;6127:6;6124:1;6121:13;6118:2;;;-1:-1;;6192:1;6174:16;;6167:27;5988:219;6215:117;6284:24;6302:5;6284:24;;;6277:5;6274:35;6264:2;;6323:1;6320;6313:12;6264:2;6258:74;;6339:117;6408:24;6426:5;6408:24;;6382:74;209:2825:3;;;;;;"},"deployedBytecode":{"linkReferences":{},"object":"60806040526004361061003f5760003560e01c806326782247146100ba5780635c60da1b146100e5578063bb913f41146100fa578063f851a4401461011c575b6002546040516000916001600160a01b03169061005f9083903690610347565b600060405180830381855af49150503d806000811461009a576040519150601f19603f3d011682016040523d82523d6000602084013e61009f565b606091505b505090506040513d6000823e8180156100b6573d82f35b3d82fd5b3480156100c657600080fd5b506100cf610131565b6040516100dc9190610354565b60405180910390f35b3480156100f157600080fd5b506100cf610140565b34801561010657600080fd5b5061011a610115366004610229565b61014f565b005b34801561012857600080fd5b506100cf610209565b6001546001600160a01b031681565b6002546001600160a01b031681565b6000546001600160a01b031633146101825760405162461bcd60e51b815260040161017990610394565b60405180910390fd5b6001600160a01b0381166101a85760405162461bcd60e51b815260040161017990610384565b600280546001600160a01b038381166001600160a01b031983161792839055604051918116927fd604de94d45953f9138079ec1b82d533cb2160c906d1076d1f7ed54befbca97a926101fd9285921690610362565b60405180910390a15050565b6000546001600160a01b031681565b8035610223816103cf565b92915050565b60006020828403121561023b57600080fd5b60006102478484610218565b949350505050565b610258816103b2565b82525050565b600061026a83856103a4565b93506102778385846103c3565b50500190565b600061028a604a836103a9565b7f476f7665726e6f72427261766f44656c656761746f723a3a5f736574496d706c81527f656d656e746174696f6e3a20696e76616c696420696d706c656d656e746174696020820152696f6e206164647265737360b01b604082015260600192915050565b60006102fc6036836103a9565b7f476f7665726e6f72427261766f44656c656761746f723a3a5f736574496d706c815275656d656e746174696f6e3a2061646d696e206f6e6c7960501b602082015260400192915050565b600061024782848661025e565b60208101610223828461024f565b60408101610370828561024f565b61037d602083018461024f565b9392505050565b602080825281016102238161027d565b60208082528101610223816102ef565b919050565b90815260200190565b60006001600160a01b038216610223565b82818337506000910152565b6103d8816103b2565b81146103e357600080fd5b5056fea365627a7a7231582003a317d4f75701b1f3b4a097872ee5e167c39c2e4e7d9b4e33057dae9bd9d5ce6c6578706572696d656e74616cf564736f6c63430005100040","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x3F JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x26782247 EQ PUSH2 0xBA JUMPI DUP1 PUSH4 0x5C60DA1B EQ PUSH2 0xE5 JUMPI DUP1 PUSH4 0xBB913F41 EQ PUSH2 0xFA JUMPI DUP1 PUSH4 0xF851A440 EQ PUSH2 0x11C JUMPI JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH2 0x5F SWAP1 DUP4 SWAP1 CALLDATASIZE SWAP1 PUSH2 0x347 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x9A JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x9F JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY DUP2 DUP1 ISZERO PUSH2 0xB6 JUMPI RETURNDATASIZE DUP3 RETURN JUMPDEST RETURNDATASIZE DUP3 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xC6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xCF PUSH2 0x131 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xDC SWAP2 SWAP1 PUSH2 0x354 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xF1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xCF PUSH2 0x140 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x106 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x11A PUSH2 0x115 CALLDATASIZE PUSH1 0x4 PUSH2 0x229 JUMP JUMPDEST PUSH2 0x14F JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x128 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xCF PUSH2 0x209 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 DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x182 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x179 SWAP1 PUSH2 0x394 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x1A8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x179 SWAP1 PUSH2 0x384 JUMP JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND OR SWAP3 DUP4 SWAP1 SSTORE PUSH1 0x40 MLOAD SWAP2 DUP2 AND SWAP3 PUSH32 0xD604DE94D45953F9138079EC1B82D533CB2160C906D1076D1F7ED54BEFBCA97A SWAP3 PUSH2 0x1FD SWAP3 DUP6 SWAP3 AND SWAP1 PUSH2 0x362 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x223 DUP2 PUSH2 0x3CF JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x23B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x247 DUP5 DUP5 PUSH2 0x218 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0x258 DUP2 PUSH2 0x3B2 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x26A DUP4 DUP6 PUSH2 0x3A4 JUMP JUMPDEST SWAP4 POP PUSH2 0x277 DUP4 DUP6 DUP5 PUSH2 0x3C3 JUMP JUMPDEST POP POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x28A PUSH1 0x4A DUP4 PUSH2 0x3A9 JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F44656C656761746F723A3A5F736574496D706C DUP2 MSTORE PUSH32 0x656D656E746174696F6E3A20696E76616C696420696D706C656D656E74617469 PUSH1 0x20 DUP3 ADD MSTORE PUSH10 0x6F6E2061646472657373 PUSH1 0xB0 SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2FC PUSH1 0x36 DUP4 PUSH2 0x3A9 JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F44656C656761746F723A3A5F736574496D706C DUP2 MSTORE PUSH22 0x656D656E746174696F6E3A2061646D696E206F6E6C79 PUSH1 0x50 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x247 DUP3 DUP5 DUP7 PUSH2 0x25E JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x223 DUP3 DUP5 PUSH2 0x24F JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0x370 DUP3 DUP6 PUSH2 0x24F JUMP JUMPDEST PUSH2 0x37D PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x24F JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x223 DUP2 PUSH2 0x27D JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x223 DUP2 PUSH2 0x2EF JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x223 JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH2 0x3D8 DUP2 PUSH2 0x3B2 JUMP JUMPDEST DUP2 EQ PUSH2 0x3E3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG3 PUSH6 0x627A7A723158 KECCAK256 SUB LOG3 OR 0xD4 0xF7 JUMPI ADD 0xB1 RETURN 0xB4 LOG0 SWAP8 DUP8 0x2E 0xE5 0xE1 PUSH8 0xC39C2E4E7D9B4E33 SDIV PUSH30 0xAE9BD9D5CE6C6578706572696D656E74616CF564736F6C63430005100040 ","sourceMap":"209:2825:3:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2649:14;;:37;;2631:12;;-1:-1:-1;;;;;2649:14:3;;:37;;2631:12;;2677:8;;2649:37;;;;;;;;;;;;;;;;;14:1:-1;21;16:31;;;;75:4;69:11;64:16;;144:4;140:9;133:4;115:16;111:27;107:43;104:1;100:51;94:4;87:65;169:16;166:1;159:27;225:16;222:1;215:4;212:1;208:12;193:49;7:242;;16:31;36:4;31:9;;7:242;;2630:56:3;;;2746:4;2740:11;2796:14;2793:1;2779:12;2764:47;2832:7;2852:75;;;;2987:14;2973:12;2966:36;2852:75;2898:14;2884:12;2877:36;3119:27:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3119:27:7;;;:::i;:::-;;;;;;;;;;;;;;;;3195:29;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3195:29:7;;;:::i;1270:486:3:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1270:486:3;;;;;;;;:::i;:::-;;3036:20:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3036:20:7;;;:::i;3119:27::-;;;-1:-1:-1;;;;;3119:27:7;;:::o;3195:29::-;;;-1:-1:-1;;;;;3195:29:7;;:::o;1270:486:3:-;1362:5;;-1:-1:-1;;;;;1362:5:3;1348:10;:19;1340:86;;;;-1:-1:-1;;;1340:86:3;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1457:29:3;;1436:150;;;;-1:-1:-1;;;1436:150:3;;;;;;;;;1625:14;;;-1:-1:-1;;;;;1649:32:3;;;-1:-1:-1;;;;;;1649:32:3;;;;;;;1697:52;;1625:14;;;;1697:52;;;;1625:14;;1734;;1697:52;;;;;;;;;;1270:486;;:::o;3036:20:7:-;;;-1:-1:-1;;;;;3036:20:7;;:::o;5:130:-1:-;72:20;;97:33;72:20;97:33;;;57:78;;;;;142:241;;246:2;234:9;225:7;221:23;217:32;214:2;;;262:1;259;252:12;214:2;297:1;314:53;359:7;339:9;314:53;;;304:63;208:175;-1:-1;;;;208:175;390:113;473:24;491:5;473:24;;;468:3;461:37;455:48;;;533:310;;665:88;746:6;741:3;665:88;;;658:95;;765:43;801:6;796:3;789:5;765:43;;;-1:-1;;821:16;;651:192;852:448;;1012:67;1076:2;1071:3;1012:67;;;1112:34;1092:55;;1181:34;1176:2;1167:12;;1160:56;-1:-1;;;1245:2;1236:12;;1229:34;1291:2;1282:12;;998:302;-1:-1;;998:302;1309:391;;1469:67;1533:2;1528:3;1469:67;;;1569:34;1549:55;;-1:-1;;;1633:2;1624:12;;1617:46;1691:2;1682:12;;1455:245;-1:-1;;1455:245;1708:282;;1862:103;1961:3;1952:6;1944;1862:103;;1997:213;2115:2;2100:18;;2129:71;2104:9;2173:6;2129:71;;2217:324;2363:2;2348:18;;2377:71;2352:9;2421:6;2377:71;;;2459:72;2527:2;2516:9;2512:18;2503:6;2459:72;;;2334:207;;;;;;2548:407;2739:2;2753:47;;;2724:18;;2814:131;2724:18;2814:131;;2962:407;3153:2;3167:47;;;3138:18;;3228:131;3138:18;3228:131;;3377:144;3512:3;3490:31;-1:-1;3490:31;3530:163;3633:19;;;3682:4;3673:14;;3626:67;3701:91;;-1:-1;;;;;3861:54;;3763:24;3844:76;3928:145;4009:6;4004:3;3999;3986:30;-1:-1;4065:1;4047:16;;4040:27;3979:94;4081:117;4150:24;4168:5;4150:24;;;4143:5;4140:35;4130:2;;4189:1;4186;4179:12;4130:2;4124:74;"},"gasEstimates":{"creation":{"codeDepositCost":"213000","executionCost":"infinite","totalCost":"infinite"},"external":{"":"infinite","_setImplementation(address)":"infinite","admin()":"infinite","implementation()":"infinite","pendingAdmin()":"infinite"},"internal":{"delegateTo(address,bytes memory)":"infinite"}},"methodIdentifiers":{"_setImplementation(address)":"bb913f41","admin()":"f851a440","implementation()":"5c60da1b","pendingAdmin()":"26782247"}},"metadata":"{\"compiler\":{\"version\":\"0.5.16+commit.9c3226ce\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"timelock_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"xvsVault_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"admin_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"implementation_\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"votingPeriod_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"votingDelay_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"proposalThreshold_\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"guardian_\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"oldAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"NewAdmin\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"oldGuardian\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newGuardian\",\"type\":\"address\"}],\"name\":\"NewGuardian\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"oldImplementation\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"}],\"name\":\"NewImplementation\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"oldPendingAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newPendingAdmin\",\"type\":\"address\"}],\"name\":\"NewPendingAdmin\",\"type\":\"event\"},{\"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\":\"oldMaxOperations\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newMaxOperations\",\"type\":\"uint256\"}],\"name\":\"ProposalMaxOperationsUpdated\",\"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\":\"uint256\",\"name\":\"oldProposalThreshold\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newProposalThreshold\",\"type\":\"uint256\"}],\"name\":\"ProposalThresholdSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"voter\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"votes\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"VoteCast\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldVotingDelay\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newVotingDelay\",\"type\":\"uint256\"}],\"name\":\"VotingDelaySet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldVotingPeriod\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newVotingPeriod\",\"type\":\"uint256\"}],\"name\":\"VotingPeriodSet\",\"type\":\"event\"},{\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation_\",\"type\":\"address\"}],\"name\":\"_setImplementation\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"admin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"implementation\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"pendingAdmin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Venus\",\"methods\":{\"_setImplementation(address)\":{\"params\":{\"implementation_\":\"The address of the new implementation for delegation\"}}},\"title\":\"GovernorBravoDelegator\"},\"userdoc\":{\"methods\":{\"_setImplementation(address)\":{\"notice\":\"Called by the admin to update the implementation of the delegator\"}},\"notice\":\"The `GovernorBravoDelegator` contract.\"}},\"settings\":{\"compilationTarget\":{\"contracts/legacy/GovenorBravoV1.sol\":\"GovernorBravoDelegatorV1\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/Governance/GovernorBravoInterfaces.sol\":{\"content\":\"pragma solidity ^0.5.16;\\npragma experimental ABIEncoderV2;\\n\\n/**\\n * @title GovernorBravoEvents\\n * @author Venus\\n * @notice Set of events emitted by the GovernorBravo contracts.\\n */\\ncontract GovernorBravoEvents {\\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        uint8 proposalType\\n    );\\n\\n    /// @notice An event emitted when a vote has been cast on a proposal\\n    /// @param voter The address which casted a vote\\n    /// @param proposalId The proposal id which was voted on\\n    /// @param support Support value for the vote. 0=against, 1=for, 2=abstain\\n    /// @param votes Number of votes which were cast by the voter\\n    /// @param reason The reason given for the vote by the voter\\n    event VoteCast(address indexed voter, uint proposalId, uint8 support, uint votes, string reason);\\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    /// @notice An event emitted when the voting delay is set\\n    event VotingDelaySet(uint oldVotingDelay, uint newVotingDelay);\\n\\n    /// @notice An event emitted when the voting period is set\\n    event VotingPeriodSet(uint oldVotingPeriod, uint newVotingPeriod);\\n\\n    /// @notice Emitted when implementation is changed\\n    event NewImplementation(address oldImplementation, address newImplementation);\\n\\n    /// @notice Emitted when proposal threshold is set\\n    event ProposalThresholdSet(uint oldProposalThreshold, uint newProposalThreshold);\\n\\n    /// @notice Emitted when pendingAdmin is changed\\n    event NewPendingAdmin(address oldPendingAdmin, address newPendingAdmin);\\n\\n    /// @notice Emitted when pendingAdmin is accepted, which means admin is updated\\n    event NewAdmin(address oldAdmin, address newAdmin);\\n\\n    /// @notice Emitted when the new guardian address is set\\n    event NewGuardian(address oldGuardian, address newGuardian);\\n\\n    /// @notice Emitted when the maximum number of operations in one proposal is updated\\n    event ProposalMaxOperationsUpdated(uint oldMaxOperations, uint newMaxOperations);\\n\\n    /// @notice Emitted when the new validation params are set\\n    event SetValidationParams(\\n        uint256 oldMinVotingPeriod,\\n        uint256 newMinVotingPeriod,\\n        uint256 oldmaxVotingPeriod,\\n        uint256 newmaxVotingPeriod,\\n        uint256 oldminVotingDelay,\\n        uint256 newminVotingDelay,\\n        uint256 oldmaxVotingDelay,\\n        uint256 newmaxVotingDelay\\n    );\\n\\n    /// @notice Emitted when new Proposal configs added\\n    event SetProposalConfigs(uint256 votingPeriod, uint256 votingDelay, uint256 proposalThreshold);\\n}\\n\\n/**\\n * @title GovernorBravoDelegatorStorage\\n * @author Venus\\n * @notice Storage layout of the `GovernorBravoDelegator` contract\\n */\\ncontract GovernorBravoDelegatorStorage {\\n    /// @notice Administrator for this contract\\n    address public admin;\\n\\n    /// @notice Pending administrator for this contract\\n    address public pendingAdmin;\\n\\n    /// @notice Active brains of Governor\\n    address public implementation;\\n}\\n\\n/**\\n * @title GovernorBravoDelegateStorageV1\\n * @dev For future upgrades, do not change GovernorBravoDelegateStorageV1. Create a new\\n * contract which implements GovernorBravoDelegateStorageV1 and following the naming convention\\n * GovernorBravoDelegateStorageVX.\\n */\\ncontract GovernorBravoDelegateStorageV1 is GovernorBravoDelegatorStorage {\\n    /// @notice DEPRECATED The delay before voting on a proposal may take place, once proposed, in blocks\\n    uint public votingDelay;\\n\\n    /// @notice DEPRECATED The duration of voting on a proposal, in blocks\\n    uint public votingPeriod;\\n\\n    /// @notice DEPRECATED The number of votes required in order for a voter to become a proposer\\n    uint public proposalThreshold;\\n\\n    /// @notice Initial proposal id set at become\\n    uint public initialProposalId;\\n\\n    /// @notice The total number of proposals\\n    uint public proposalCount;\\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    XvsVaultInterface public xvsVault;\\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    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 Current number of votes for abstaining for this proposal\\n        uint abstainVotes;\\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        /// @notice The type of the proposal\\n        uint8 proposalType;\\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 or abstains\\n        uint8 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 maximum number of actions that can be included in a proposal\\n    uint public proposalMaxOperations;\\n\\n    /// @notice A privileged role that can cancel any proposal\\n    address public guardian;\\n}\\n\\n/**\\n * @title GovernorBravoDelegateStorageV2\\n * @dev For future upgrades, do not change GovernorBravoDelegateStorageV2. Create a new\\n * contract which implements GovernorBravoDelegateStorageV2 and following the naming convention\\n * GovernorBravoDelegateStorageVX.\\n */\\ncontract GovernorBravoDelegateStorageV2 is GovernorBravoDelegateStorageV1 {\\n    enum ProposalType {\\n        NORMAL,\\n        FASTTRACK,\\n        CRITICAL\\n    }\\n\\n    struct ProposalConfig {\\n        /// @notice The delay before voting on a proposal may take place, once proposed, in blocks\\n        uint256 votingDelay;\\n        /// @notice The duration of voting on a proposal, in blocks\\n        uint256 votingPeriod;\\n        /// @notice The number of votes required in order for a voter to become a proposer\\n        uint256 proposalThreshold;\\n    }\\n\\n    /// @notice mapping containing configuration for each proposal type\\n    mapping(uint => ProposalConfig) public proposalConfigs;\\n\\n    /// @notice mapping containing Timelock addresses for each proposal type\\n    mapping(uint => TimelockInterface) public proposalTimelocks;\\n}\\n\\n/**\\n * @title GovernorBravoDelegateStorageV3\\n * @dev For future upgrades, do not change GovernorBravoDelegateStorageV3. Create a new\\n * contract which implements GovernorBravoDelegateStorageV3 and following the naming convention\\n * GovernorBravoDelegateStorageVX.\\n */\\ncontract GovernorBravoDelegateStorageV3 is GovernorBravoDelegateStorageV2 {\\n    struct ValidationParams {\\n        uint256 minVotingPeriod;\\n        uint256 maxVotingPeriod;\\n        uint256 minVotingDelay;\\n        uint256 maxVotingDelay;\\n    }\\n    /// @notice Stores the current minimum and maximum values of voting delay and voting period\\n    ValidationParams public validationParams;\\n}\\n\\n/**\\n * @title TimelockInterface\\n * @author Venus\\n * @notice Interface implemented by the Timelock contract.\\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 XvsVaultInterface {\\n    function getPriorVotes(address account, uint blockNumber) external view returns (uint96);\\n}\\n\\ninterface GovernorAlphaInterface {\\n    /// @notice The total number of proposals\\n    function proposalCount() external returns (uint);\\n}\\n\",\"keccak256\":\"0x62c89309d4351dbeb5516465211fab0b566d83d60dc0148377deaad1f1929b85\"},\"contracts/legacy/GovenorBravoV1.sol\":{\"content\":\"pragma solidity ^0.5.16;\\npragma experimental ABIEncoderV2;\\n\\nimport \\\"./GovernorBravoInterfaces.sol\\\";\\n\\n/**\\n * @title GovernorBravoDelegator\\n * @author Venus\\n * @notice The `GovernorBravoDelegator` contract.\\n */\\ncontract GovernorBravoDelegatorV1 is GovernorBravoDelegatorStorage, GovernorBravoEventsV1 {\\n    constructor(\\n        address timelock_,\\n        address xvsVault_,\\n        address admin_,\\n        address implementation_,\\n        uint votingPeriod_,\\n        uint votingDelay_,\\n        uint proposalThreshold_,\\n        address guardian_\\n    ) public {\\n        // Admin set to msg.sender for initialization\\n        admin = msg.sender;\\n\\n        delegateTo(\\n            implementation_,\\n            abi.encodeWithSignature(\\n                \\\"initialize(address,address,uint256,uint256,uint256,address)\\\",\\n                timelock_,\\n                xvsVault_,\\n                votingPeriod_,\\n                votingDelay_,\\n                proposalThreshold_,\\n                guardian_\\n            )\\n        );\\n\\n        _setImplementation(implementation_);\\n\\n        admin = admin_;\\n    }\\n\\n    /**\\n     * @notice Called by the admin to update the implementation of the delegator\\n     * @param implementation_ The address of the new implementation for delegation\\n     */\\n    function _setImplementation(address implementation_) public {\\n        require(msg.sender == admin, \\\"GovernorBravoDelegator::_setImplementation: admin only\\\");\\n        require(\\n            implementation_ != address(0),\\n            \\\"GovernorBravoDelegator::_setImplementation: invalid implementation address\\\"\\n        );\\n\\n        address oldImplementation = implementation;\\n        implementation = implementation_;\\n\\n        emit NewImplementation(oldImplementation, implementation);\\n    }\\n\\n    /**\\n     * @notice Internal method to delegate execution to another contract\\n     * @dev It returns to the external caller whatever the implementation returns or forwards reverts\\n     * @param callee The contract to delegatecall\\n     * @param data The raw data to delegatecall\\n     */\\n    function delegateTo(address callee, bytes memory data) internal {\\n        (bool success, bytes memory returnData) = callee.delegatecall(data);\\n        assembly {\\n            if eq(success, 0) {\\n                revert(add(returnData, 0x20), returndatasize)\\n            }\\n        }\\n    }\\n\\n    /**\\n     * @dev Delegates execution to an implementation contract.\\n     * It returns to the external caller whatever the implementation returns\\n     * or forwards reverts.\\n     */\\n    function() external payable {\\n        // delegate all other functions to current implementation\\n        (bool success, ) = implementation.delegatecall(msg.data);\\n\\n        assembly {\\n            let free_mem_ptr := mload(0x40)\\n            returndatacopy(free_mem_ptr, 0, returndatasize)\\n\\n            switch success\\n            case 0 {\\n                revert(free_mem_ptr, returndatasize)\\n            }\\n            default {\\n                return(free_mem_ptr, returndatasize)\\n            }\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0xfab7c7a2dcaee4fc81fa00a8f7cda64f9b32c6e64e903d589f7ecb9b3915df3b\"},\"contracts/legacy/GovernorBravoInterfaces.sol\":{\"content\":\"pragma solidity ^0.5.16;\\npragma experimental ABIEncoderV2;\\n\\nimport { XvsVaultInterface, TimelockInterface, GovernorAlphaInterface } from \\\"../Governance/GovernorBravoInterfaces.sol\\\";\\n\\n/**\\n * @title GovernorBravoEvents\\n * @author Venus\\n * @notice Set of events emitted by the first GovernorBravo implementation contract.\\n * @dev This contract is included for archival and testing purposes as the ProposalCreated event has a different signature than the latest implementation.\\n */\\ncontract GovernorBravoEventsV1 {\\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    /// @param voter The address which casted a vote\\n    /// @param proposalId The proposal id which was voted on\\n    /// @param support Support value for the vote. 0=against, 1=for, 2=abstain\\n    /// @param votes Number of votes which were cast by the voter\\n    /// @param reason The reason given for the vote by the voter\\n    event VoteCast(address indexed voter, uint proposalId, uint8 support, uint votes, string reason);\\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    /// @notice An event emitted when the voting delay is set\\n    event VotingDelaySet(uint oldVotingDelay, uint newVotingDelay);\\n\\n    /// @notice An event emitted when the voting period is set\\n    event VotingPeriodSet(uint oldVotingPeriod, uint newVotingPeriod);\\n\\n    /// @notice Emitted when implementation is changed\\n    event NewImplementation(address oldImplementation, address newImplementation);\\n\\n    /// @notice Emitted when proposal threshold is set\\n    event ProposalThresholdSet(uint oldProposalThreshold, uint newProposalThreshold);\\n\\n    /// @notice Emitted when pendingAdmin is changed\\n    event NewPendingAdmin(address oldPendingAdmin, address newPendingAdmin);\\n\\n    /// @notice Emitted when pendingAdmin is accepted, which means admin is updated\\n    event NewAdmin(address oldAdmin, address newAdmin);\\n\\n    /// @notice Emitted when the new guardian address is set\\n    event NewGuardian(address oldGuardian, address newGuardian);\\n\\n    /// @notice Emitted when the maximum number of operations in one proposal is updated\\n    event ProposalMaxOperationsUpdated(uint oldMaxOperations, uint newMaxOperations);\\n}\\n\\n/**\\n * @title GovernorBravoDelegatorStorage\\n * @author Venus\\n * @notice Storage layout of the `GovernorBravoDelegator` contract\\n */\\ncontract GovernorBravoDelegatorStorage {\\n    /// @notice Administrator for this contract\\n    address public admin;\\n\\n    /// @notice Pending administrator for this contract\\n    address public pendingAdmin;\\n\\n    /// @notice Active brains of Governor\\n    address public implementation;\\n}\\n\\n/**\\n * @title GovernorBravoDelegateStorageV1\\n * @dev This contract is included for archival and testing purposes as the Proposal struct has a different shape than the latest implementation.\\n */\\ncontract GovernorBravoDelegateStorageV1 is GovernorBravoDelegatorStorage {\\n    /// @notice DEPRECATED The delay before voting on a proposal may take place, once proposed, in blocks\\n    uint public votingDelay;\\n\\n    /// @notice DEPRECATED The duration of voting on a proposal, in blocks\\n    uint public votingPeriod;\\n\\n    /// @notice DEPRECATED The number of votes required in order for a voter to become a proposer\\n    uint public proposalThreshold;\\n\\n    /// @notice Initial proposal id set at become\\n    uint public initialProposalId;\\n\\n    /// @notice The total number of proposals\\n    uint public proposalCount;\\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    XvsVaultInterface public xvsVault;\\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    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 Current number of votes for abstaining for this proposal\\n        uint abstainVotes;\\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 or abstains\\n        uint8 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 maximum number of actions that can be included in a proposal\\n    uint public proposalMaxOperations;\\n\\n    /// @notice A privileged role that can cancel any proposal\\n    address public guardian;\\n}\\n\",\"keccak256\":\"0x4f3e79420754567fb02452f7ded7a13796204e360ca1b4033009745cfda4a813\"}},\"version\":1}","storageLayout":{"storage":[{"astId":5229,"contract":"contracts/legacy/GovenorBravoV1.sol:GovernorBravoDelegatorV1","label":"admin","offset":0,"slot":"0","type":"t_address"},{"astId":5231,"contract":"contracts/legacy/GovenorBravoV1.sol:GovernorBravoDelegatorV1","label":"pendingAdmin","offset":0,"slot":"1","type":"t_address"},{"astId":5233,"contract":"contracts/legacy/GovenorBravoV1.sol:GovernorBravoDelegatorV1","label":"implementation","offset":0,"slot":"2","type":"t_address"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"}}},"userdoc":{"methods":{"_setImplementation(address)":{"notice":"Called by the admin to update the implementation of the delegator"}},"notice":"The `GovernorBravoDelegator` contract."}}},"contracts/legacy/GovenorBravoV2.sol":{"GovernorBravoDelegatorV1":{"abi":[{"inputs":[{"internalType":"address","name":"timelock_","type":"address"},{"internalType":"address","name":"xvsVault_","type":"address"},{"internalType":"address","name":"admin_","type":"address"},{"internalType":"address","name":"implementation_","type":"address"},{"internalType":"uint256","name":"votingPeriod_","type":"uint256"},{"internalType":"uint256","name":"votingDelay_","type":"uint256"},{"internalType":"uint256","name":"proposalThreshold_","type":"uint256"},{"internalType":"address","name":"guardian_","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldAdmin","type":"address"},{"indexed":false,"internalType":"address","name":"newAdmin","type":"address"}],"name":"NewAdmin","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldGuardian","type":"address"},{"indexed":false,"internalType":"address","name":"newGuardian","type":"address"}],"name":"NewGuardian","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldImplementation","type":"address"},{"indexed":false,"internalType":"address","name":"newImplementation","type":"address"}],"name":"NewImplementation","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldPendingAdmin","type":"address"},{"indexed":false,"internalType":"address","name":"newPendingAdmin","type":"address"}],"name":"NewPendingAdmin","type":"event"},{"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":"oldMaxOperations","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newMaxOperations","type":"uint256"}],"name":"ProposalMaxOperationsUpdated","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":"uint256","name":"oldProposalThreshold","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newProposalThreshold","type":"uint256"}],"name":"ProposalThresholdSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"voter","type":"address"},{"indexed":false,"internalType":"uint256","name":"proposalId","type":"uint256"},{"indexed":false,"internalType":"uint8","name":"support","type":"uint8"},{"indexed":false,"internalType":"uint256","name":"votes","type":"uint256"},{"indexed":false,"internalType":"string","name":"reason","type":"string"}],"name":"VoteCast","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"oldVotingDelay","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newVotingDelay","type":"uint256"}],"name":"VotingDelaySet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"oldVotingPeriod","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newVotingPeriod","type":"uint256"}],"name":"VotingPeriodSet","type":"event"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"constant":false,"inputs":[{"internalType":"address","name":"implementation_","type":"address"}],"name":"_setImplementation","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"admin","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"implementation","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"pendingAdmin","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}],"devdoc":{"author":"Venus","methods":{"_setImplementation(address)":{"params":{"implementation_":"The address of the new implementation for delegation"}}},"title":"GovernorBravoDelegator"},"evm":{"bytecode":{"linkReferences":{},"object":"60806040523480156200001157600080fd5b50604051620009963803806200099683398101604081905262000034916200023f565b600080546001600160a01b031916331790556040516200009e9086906200006a908b908b90899089908990899060240162000438565b60408051601f198184030181529190526020810180516001600160e01b0390811663b1a5d12d60e01b17909152620000e116565b620000b2856001600160e01b036200015d16565b5050600080546001600160a01b0319166001600160a01b039590951694909417909355506200053d9350505050565b60006060836001600160a01b031683604051620000ff919062000404565b600060405180830381855af49150503d80600081146200013c576040519150601f19603f3d011682016040523d82523d6000602084013e62000141565b606091505b5091509150600082141562000157573d60208201fd5b50505050565b6000546001600160a01b03163314620001935760405162461bcd60e51b81526004016200018a90620004b0565b60405180910390fd5b6001600160a01b038116620001bc5760405162461bcd60e51b81526004016200018a906200049e565b600280546001600160a01b038381166001600160a01b031983161792839055604051918116927fd604de94d45953f9138079ec1b82d533cb2160c906d1076d1f7ed54befbca97a9262000213928592169062000419565b60405180910390a15050565b80516200022c8162000518565b92915050565b80516200022c8162000532565b600080600080600080600080610100898b0312156200025d57600080fd5b60006200026b8b8b6200021f565b98505060206200027e8b828c016200021f565b9750506040620002918b828c016200021f565b9650506060620002a48b828c016200021f565b9550506080620002b78b828c0162000232565b94505060a0620002ca8b828c0162000232565b93505060c0620002dd8b828c0162000232565b92505060e0620002f08b828c016200021f565b9150509295985092959890939650565b6200030b81620004d4565b82525050565b60006200031e82620004c2565b6200032a8185620004c6565b93506200033c818560208601620004e9565b9290920192915050565b600062000355604a83620004cb565b6000805160206200097683398151915281527f656d656e746174696f6e3a20696e76616c696420696d706c656d656e746174696020820152696f6e206164647265737360b01b604082015260600192915050565b6000620003b8603683620004cb565b6000805160206200097683398151915281527f656d656e746174696f6e3a2061646d696e206f6e6c7900000000000000000000602082015260400192915050565b6200030b81620004e6565b600062000412828462000311565b9392505050565b6040810162000429828562000300565b62000412602083018462000300565b60c0810162000448828962000300565b62000457602083018862000300565b620004666040830187620003f9565b620004756060830186620003f9565b620004846080830185620003f9565b6200049360a083018462000300565b979650505050505050565b602080825281016200022c8162000346565b602080825281016200022c81620003a9565b5190565b919050565b90815260200190565b60006001600160a01b0382166200022c565b90565b60005b8381101562000506578181015183820152602001620004ec565b83811115620001575750506000910152565b6200052381620004d4565b81146200052f57600080fd5b50565b6200052381620004e6565b610429806200054d6000396000f3fe60806040526004361061003f5760003560e01c806326782247146100ba5780635c60da1b146100e5578063bb913f41146100fa578063f851a4401461011c575b6002546040516000916001600160a01b03169061005f9083903690610347565b600060405180830381855af49150503d806000811461009a576040519150601f19603f3d011682016040523d82523d6000602084013e61009f565b606091505b505090506040513d6000823e8180156100b6573d82f35b3d82fd5b3480156100c657600080fd5b506100cf610131565b6040516100dc9190610354565b60405180910390f35b3480156100f157600080fd5b506100cf610140565b34801561010657600080fd5b5061011a610115366004610229565b61014f565b005b34801561012857600080fd5b506100cf610209565b6001546001600160a01b031681565b6002546001600160a01b031681565b6000546001600160a01b031633146101825760405162461bcd60e51b815260040161017990610394565b60405180910390fd5b6001600160a01b0381166101a85760405162461bcd60e51b815260040161017990610384565b600280546001600160a01b038381166001600160a01b031983161792839055604051918116927fd604de94d45953f9138079ec1b82d533cb2160c906d1076d1f7ed54befbca97a926101fd9285921690610362565b60405180910390a15050565b6000546001600160a01b031681565b8035610223816103cf565b92915050565b60006020828403121561023b57600080fd5b60006102478484610218565b949350505050565b610258816103b2565b82525050565b600061026a83856103a4565b93506102778385846103c3565b50500190565b600061028a604a836103a9565b7f476f7665726e6f72427261766f44656c656761746f723a3a5f736574496d706c81527f656d656e746174696f6e3a20696e76616c696420696d706c656d656e746174696020820152696f6e206164647265737360b01b604082015260600192915050565b60006102fc6036836103a9565b7f476f7665726e6f72427261766f44656c656761746f723a3a5f736574496d706c815275656d656e746174696f6e3a2061646d696e206f6e6c7960501b602082015260400192915050565b600061024782848661025e565b60208101610223828461024f565b60408101610370828561024f565b61037d602083018461024f565b9392505050565b602080825281016102238161027d565b60208082528101610223816102ef565b919050565b90815260200190565b60006001600160a01b038216610223565b82818337506000910152565b6103d8816103b2565b81146103e357600080fd5b5056fea365627a7a72315820cea3bfb5a3eca034b600e5326d972a176d3e7f2b9ec4fcdf018f372a3b6967cc6c6578706572696d656e74616cf564736f6c63430005100040476f7665726e6f72427261766f44656c656761746f723a3a5f736574496d706c","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x996 CODESIZE SUB DUP1 PUSH3 0x996 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH3 0x34 SWAP2 PUSH3 0x23F JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND CALLER OR SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH3 0x9E SWAP1 DUP7 SWAP1 PUSH3 0x6A SWAP1 DUP12 SWAP1 DUP12 SWAP1 DUP10 SWAP1 DUP10 SWAP1 DUP10 SWAP1 DUP10 SWAP1 PUSH1 0x24 ADD PUSH3 0x438 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 SWAP1 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB SWAP1 DUP2 AND PUSH4 0xB1A5D12D PUSH1 0xE0 SHL OR SWAP1 SWAP2 MSTORE PUSH3 0xE1 AND JUMP JUMPDEST PUSH3 0xB2 DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB PUSH3 0x15D AND JUMP JUMPDEST POP POP PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP6 SWAP1 SWAP6 AND SWAP5 SWAP1 SWAP5 OR SWAP1 SWAP4 SSTORE POP PUSH3 0x53D SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH1 0x40 MLOAD PUSH3 0xFF SWAP2 SWAP1 PUSH3 0x404 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH3 0x13C JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH3 0x141 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH1 0x0 DUP3 EQ ISZERO PUSH3 0x157 JUMPI RETURNDATASIZE PUSH1 0x20 DUP3 ADD REVERT JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH3 0x193 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH3 0x18A SWAP1 PUSH3 0x4B0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH3 0x1BC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH3 0x18A SWAP1 PUSH3 0x49E JUMP JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND OR SWAP3 DUP4 SWAP1 SSTORE PUSH1 0x40 MLOAD SWAP2 DUP2 AND SWAP3 PUSH32 0xD604DE94D45953F9138079EC1B82D533CB2160C906D1076D1F7ED54BEFBCA97A SWAP3 PUSH3 0x213 SWAP3 DUP6 SWAP3 AND SWAP1 PUSH3 0x419 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST DUP1 MLOAD PUSH3 0x22C DUP2 PUSH3 0x518 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 MLOAD PUSH3 0x22C DUP2 PUSH3 0x532 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x100 DUP10 DUP12 SUB SLT ISZERO PUSH3 0x25D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH3 0x26B DUP12 DUP12 PUSH3 0x21F JUMP JUMPDEST SWAP9 POP POP PUSH1 0x20 PUSH3 0x27E DUP12 DUP3 DUP13 ADD PUSH3 0x21F JUMP JUMPDEST SWAP8 POP POP PUSH1 0x40 PUSH3 0x291 DUP12 DUP3 DUP13 ADD PUSH3 0x21F JUMP JUMPDEST SWAP7 POP POP PUSH1 0x60 PUSH3 0x2A4 DUP12 DUP3 DUP13 ADD PUSH3 0x21F JUMP JUMPDEST SWAP6 POP POP PUSH1 0x80 PUSH3 0x2B7 DUP12 DUP3 DUP13 ADD PUSH3 0x232 JUMP JUMPDEST SWAP5 POP POP PUSH1 0xA0 PUSH3 0x2CA DUP12 DUP3 DUP13 ADD PUSH3 0x232 JUMP JUMPDEST SWAP4 POP POP PUSH1 0xC0 PUSH3 0x2DD DUP12 DUP3 DUP13 ADD PUSH3 0x232 JUMP JUMPDEST SWAP3 POP POP PUSH1 0xE0 PUSH3 0x2F0 DUP12 DUP3 DUP13 ADD PUSH3 0x21F JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP9 POP SWAP3 SWAP6 SWAP9 SWAP1 SWAP4 SWAP7 POP JUMP JUMPDEST PUSH3 0x30B DUP2 PUSH3 0x4D4 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x31E DUP3 PUSH3 0x4C2 JUMP JUMPDEST PUSH3 0x32A DUP2 DUP6 PUSH3 0x4C6 JUMP JUMPDEST SWAP4 POP PUSH3 0x33C DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH3 0x4E9 JUMP JUMPDEST SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x355 PUSH1 0x4A DUP4 PUSH3 0x4CB JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH3 0x976 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP2 MSTORE PUSH32 0x656D656E746174696F6E3A20696E76616C696420696D706C656D656E74617469 PUSH1 0x20 DUP3 ADD MSTORE PUSH10 0x6F6E2061646472657373 PUSH1 0xB0 SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x3B8 PUSH1 0x36 DUP4 PUSH3 0x4CB JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH3 0x976 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP2 MSTORE PUSH32 0x656D656E746174696F6E3A2061646D696E206F6E6C7900000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH3 0x30B DUP2 PUSH3 0x4E6 JUMP JUMPDEST PUSH1 0x0 PUSH3 0x412 DUP3 DUP5 PUSH3 0x311 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH3 0x429 DUP3 DUP6 PUSH3 0x300 JUMP JUMPDEST PUSH3 0x412 PUSH1 0x20 DUP4 ADD DUP5 PUSH3 0x300 JUMP JUMPDEST PUSH1 0xC0 DUP2 ADD PUSH3 0x448 DUP3 DUP10 PUSH3 0x300 JUMP JUMPDEST PUSH3 0x457 PUSH1 0x20 DUP4 ADD DUP9 PUSH3 0x300 JUMP JUMPDEST PUSH3 0x466 PUSH1 0x40 DUP4 ADD DUP8 PUSH3 0x3F9 JUMP JUMPDEST PUSH3 0x475 PUSH1 0x60 DUP4 ADD DUP7 PUSH3 0x3F9 JUMP JUMPDEST PUSH3 0x484 PUSH1 0x80 DUP4 ADD DUP6 PUSH3 0x3F9 JUMP JUMPDEST PUSH3 0x493 PUSH1 0xA0 DUP4 ADD DUP5 PUSH3 0x300 JUMP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH3 0x22C DUP2 PUSH3 0x346 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH3 0x22C DUP2 PUSH3 0x3A9 JUMP JUMPDEST MLOAD SWAP1 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH3 0x22C JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH3 0x506 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH3 0x4EC JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH3 0x157 JUMPI POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH3 0x523 DUP2 PUSH3 0x4D4 JUMP JUMPDEST DUP2 EQ PUSH3 0x52F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH3 0x523 DUP2 PUSH3 0x4E6 JUMP JUMPDEST PUSH2 0x429 DUP1 PUSH3 0x54D PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x3F JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x26782247 EQ PUSH2 0xBA JUMPI DUP1 PUSH4 0x5C60DA1B EQ PUSH2 0xE5 JUMPI DUP1 PUSH4 0xBB913F41 EQ PUSH2 0xFA JUMPI DUP1 PUSH4 0xF851A440 EQ PUSH2 0x11C JUMPI JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH2 0x5F SWAP1 DUP4 SWAP1 CALLDATASIZE SWAP1 PUSH2 0x347 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x9A JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x9F JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY DUP2 DUP1 ISZERO PUSH2 0xB6 JUMPI RETURNDATASIZE DUP3 RETURN JUMPDEST RETURNDATASIZE DUP3 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xC6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xCF PUSH2 0x131 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xDC SWAP2 SWAP1 PUSH2 0x354 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xF1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xCF PUSH2 0x140 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x106 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x11A PUSH2 0x115 CALLDATASIZE PUSH1 0x4 PUSH2 0x229 JUMP JUMPDEST PUSH2 0x14F JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x128 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xCF PUSH2 0x209 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 DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x182 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x179 SWAP1 PUSH2 0x394 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x1A8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x179 SWAP1 PUSH2 0x384 JUMP JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND OR SWAP3 DUP4 SWAP1 SSTORE PUSH1 0x40 MLOAD SWAP2 DUP2 AND SWAP3 PUSH32 0xD604DE94D45953F9138079EC1B82D533CB2160C906D1076D1F7ED54BEFBCA97A SWAP3 PUSH2 0x1FD SWAP3 DUP6 SWAP3 AND SWAP1 PUSH2 0x362 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x223 DUP2 PUSH2 0x3CF JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x23B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x247 DUP5 DUP5 PUSH2 0x218 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0x258 DUP2 PUSH2 0x3B2 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x26A DUP4 DUP6 PUSH2 0x3A4 JUMP JUMPDEST SWAP4 POP PUSH2 0x277 DUP4 DUP6 DUP5 PUSH2 0x3C3 JUMP JUMPDEST POP POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x28A PUSH1 0x4A DUP4 PUSH2 0x3A9 JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F44656C656761746F723A3A5F736574496D706C DUP2 MSTORE PUSH32 0x656D656E746174696F6E3A20696E76616C696420696D706C656D656E74617469 PUSH1 0x20 DUP3 ADD MSTORE PUSH10 0x6F6E2061646472657373 PUSH1 0xB0 SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2FC PUSH1 0x36 DUP4 PUSH2 0x3A9 JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F44656C656761746F723A3A5F736574496D706C DUP2 MSTORE PUSH22 0x656D656E746174696F6E3A2061646D696E206F6E6C79 PUSH1 0x50 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x247 DUP3 DUP5 DUP7 PUSH2 0x25E JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x223 DUP3 DUP5 PUSH2 0x24F JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0x370 DUP3 DUP6 PUSH2 0x24F JUMP JUMPDEST PUSH2 0x37D PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x24F JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x223 DUP2 PUSH2 0x27D JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x223 DUP2 PUSH2 0x2EF JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x223 JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH2 0x3D8 DUP2 PUSH2 0x3B2 JUMP JUMPDEST DUP2 EQ PUSH2 0x3E3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG3 PUSH6 0x627A7A723158 KECCAK256 0xCE LOG3 0xBF 0xB5 LOG3 0xEC LOG0 CALLVALUE 0xB6 STOP 0xE5 ORIGIN PUSH14 0x972A176D3E7F2B9EC4FCDF018F37 0x2A EXTCODESIZE PUSH10 0x67CC6C6578706572696D PUSH6 0x6E74616CF564 PUSH20 0x6F6C63430005100040476F7665726E6F72427261 PUSH23 0x6F44656C656761746F723A3A5F736574496D706C000000 ","sourceMap":"209:2825:4:-;;;305:779;8:9:-1;5:2;;;30:1;27;20:12;5:2;305:779:4;;;;;;;;;;;;;;;;;;;;;620:5;:18;;-1:-1:-1;;;;;;620:18:4;628:10;620:18;;;702:294;;649:357;;673:15;;702:294;;822:9;;849;;876:13;;907:12;;937:18;;973:9;;702:294;;;;;;;;-1:-1:-1;;26:21;;;22:32;6:49;;702:294:4;;;49:4:-1;25:18;;61:17;;-1:-1;;;;;182:15;;;-1:-1;;;179:29;160:49;;;649:10:4;:357;:::i;:::-;1017:35;1036:15;-1:-1:-1;;;;;1017:18:4;:35;:::i;:::-;-1:-1:-1;;1063:5:4;:14;;-1:-1:-1;;;;;;1063:14:4;-1:-1:-1;;;;;1063:14:4;;;;;;;;;;;-1:-1:-1;209:2825:4;;-1:-1:-1;;;;209:2825:4;2051:285;2126:12;2140:23;2167:6;-1:-1:-1;;;;;2167:19:4;2187:4;2167:25;;;;;;;;;;;;;;;;;;;;;;14:1:-1;21;16:31;;;;75:4;69:11;64:16;;144:4;140:9;133:4;115:16;111:27;107:43;104:1;100:51;94:4;87:65;169:16;166:1;159:27;225:16;222:1;215:4;212:1;208:12;193:49;7:242;;16:31;36:4;31:9;;7:242;;2125:67:4;;;;2240:1;2231:7;2228:14;2225:2;;;2291:14;2284:4;2272:10;2268:21;2261:45;2225:2;2211:119;;;;:::o;1270:486::-;1362:5;;-1:-1:-1;;;;;1362:5:4;1348:10;:19;1340:86;;;;-1:-1:-1;;;1340:86:4;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1457:29:4;;1436:150;;;;-1:-1:-1;;;1436:150:4;;;;;;;;;1625:14;;;-1:-1:-1;;;;;1649:32:4;;;-1:-1:-1;;;;;;1649:32:4;;;;;;;1697:52;;1625:14;;;;1697:52;;;;1625:14;;1734;;1697:52;;;;;;;;;;1270:486;;:::o;5:134:-1:-;83:13;;101:33;83:13;101:33;;;68:71;;;;;146:134;224:13;;242:33;224:13;242:33;;287:1220;;;;;;;;;521:3;509:9;500:7;496:23;492:33;489:2;;;538:1;535;528:12;489:2;573:1;590:64;646:7;626:9;590:64;;;580:74;;552:108;691:2;709:64;765:7;756:6;745:9;741:22;709:64;;;699:74;;670:109;810:2;828:64;884:7;875:6;864:9;860:22;828:64;;;818:74;;789:109;929:2;947:64;1003:7;994:6;983:9;979:22;947:64;;;937:74;;908:109;1048:3;1067:64;1123:7;1114:6;1103:9;1099:22;1067:64;;;1057:74;;1027:110;1168:3;1187:64;1243:7;1234:6;1223:9;1219:22;1187:64;;;1177:74;;1147:110;1288:3;1307:64;1363:7;1354:6;1343:9;1339:22;1307:64;;;1297:74;;1267:110;1408:3;1427:64;1483:7;1474:6;1463:9;1459:22;1427:64;;;1417:74;;1387:110;483:1024;;;;;;;;;;;;1514:113;1597:24;1615:5;1597:24;;;1592:3;1585:37;1579:48;;;1634:356;;1762:38;1794:5;1762:38;;;1812:88;1893:6;1888:3;1812:88;;;1805:95;;1905:52;1950:6;1945:3;1938:4;1931:5;1927:16;1905:52;;;1969:16;;;;;1742:248;-1:-1;;1742:248;1998:448;;2158:67;2222:2;2217:3;2158:67;;;-1:-1;;;;;;;;;;;2238:55;;2327:34;2322:2;2313:12;;2306:56;-1:-1;;;2391:2;2382:12;;2375:34;2437:2;2428:12;;2144:302;-1:-1;;2144:302;2455:391;;2615:67;2679:2;2674:3;2615:67;;;-1:-1;;;;;;;;;;;2695:55;;2784:24;2779:2;2770:12;;2763:46;2837:2;2828:12;;2601:245;-1:-1;;2601:245;2854:113;2937:24;2955:5;2937:24;;2974:262;;3118:93;3207:3;3198:6;3118:93;;;3111:100;3099:137;-1:-1;;;3099:137;3243:324;3389:2;3374:18;;3403:71;3378:9;3447:6;3403:71;;;3485:72;3553:2;3542:9;3538:18;3529:6;3485:72;;3574:771;3832:3;3817:19;;3847:71;3821:9;3891:6;3847:71;;;3929:72;3997:2;3986:9;3982:18;3973:6;3929:72;;;4012;4080:2;4069:9;4065:18;4056:6;4012:72;;;4095;4163:2;4152:9;4148:18;4139:6;4095:72;;;4178:73;4246:3;4235:9;4231:19;4222:6;4178:73;;;4262;4330:3;4319:9;4315:19;4306:6;4262:73;;;3803:542;;;;;;;;;;4352:407;4543:2;4557:47;;;4528:18;;4618:131;4528:18;4618:131;;4766:407;4957:2;4971:47;;;4942:18;;5032:131;4942:18;5032:131;;5180:121;5267:12;;5238:63;5309:144;5444:3;5422:31;-1:-1;5422:31;5462:163;5565:19;;;5614:4;5605:14;;5558:67;5633:91;;-1:-1;;;;;5793:54;;5695:24;5776:76;5859:72;5921:5;5904:27;5939:268;6004:1;6011:101;6025:6;6022:1;6019:13;6011:101;;;6092:11;;;6086:18;6073:11;;;6066:39;6047:2;6040:10;6011:101;;;6127:6;6124:1;6121:13;6118:2;;;-1:-1;;6192:1;6174:16;;6167:27;5988:219;6215:117;6284:24;6302:5;6284:24;;;6277:5;6274:35;6264:2;;6323:1;6320;6313:12;6264:2;6258:74;;6339:117;6408:24;6426:5;6408:24;;6382:74;209:2825:4;;;;;;"},"deployedBytecode":{"linkReferences":{},"object":"60806040526004361061003f5760003560e01c806326782247146100ba5780635c60da1b146100e5578063bb913f41146100fa578063f851a4401461011c575b6002546040516000916001600160a01b03169061005f9083903690610347565b600060405180830381855af49150503d806000811461009a576040519150601f19603f3d011682016040523d82523d6000602084013e61009f565b606091505b505090506040513d6000823e8180156100b6573d82f35b3d82fd5b3480156100c657600080fd5b506100cf610131565b6040516100dc9190610354565b60405180910390f35b3480156100f157600080fd5b506100cf610140565b34801561010657600080fd5b5061011a610115366004610229565b61014f565b005b34801561012857600080fd5b506100cf610209565b6001546001600160a01b031681565b6002546001600160a01b031681565b6000546001600160a01b031633146101825760405162461bcd60e51b815260040161017990610394565b60405180910390fd5b6001600160a01b0381166101a85760405162461bcd60e51b815260040161017990610384565b600280546001600160a01b038381166001600160a01b031983161792839055604051918116927fd604de94d45953f9138079ec1b82d533cb2160c906d1076d1f7ed54befbca97a926101fd9285921690610362565b60405180910390a15050565b6000546001600160a01b031681565b8035610223816103cf565b92915050565b60006020828403121561023b57600080fd5b60006102478484610218565b949350505050565b610258816103b2565b82525050565b600061026a83856103a4565b93506102778385846103c3565b50500190565b600061028a604a836103a9565b7f476f7665726e6f72427261766f44656c656761746f723a3a5f736574496d706c81527f656d656e746174696f6e3a20696e76616c696420696d706c656d656e746174696020820152696f6e206164647265737360b01b604082015260600192915050565b60006102fc6036836103a9565b7f476f7665726e6f72427261766f44656c656761746f723a3a5f736574496d706c815275656d656e746174696f6e3a2061646d696e206f6e6c7960501b602082015260400192915050565b600061024782848661025e565b60208101610223828461024f565b60408101610370828561024f565b61037d602083018461024f565b9392505050565b602080825281016102238161027d565b60208082528101610223816102ef565b919050565b90815260200190565b60006001600160a01b038216610223565b82818337506000910152565b6103d8816103b2565b81146103e357600080fd5b5056fea365627a7a72315820cea3bfb5a3eca034b600e5326d972a176d3e7f2b9ec4fcdf018f372a3b6967cc6c6578706572696d656e74616cf564736f6c63430005100040","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x3F JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x26782247 EQ PUSH2 0xBA JUMPI DUP1 PUSH4 0x5C60DA1B EQ PUSH2 0xE5 JUMPI DUP1 PUSH4 0xBB913F41 EQ PUSH2 0xFA JUMPI DUP1 PUSH4 0xF851A440 EQ PUSH2 0x11C JUMPI JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH2 0x5F SWAP1 DUP4 SWAP1 CALLDATASIZE SWAP1 PUSH2 0x347 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x9A JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x9F JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY DUP2 DUP1 ISZERO PUSH2 0xB6 JUMPI RETURNDATASIZE DUP3 RETURN JUMPDEST RETURNDATASIZE DUP3 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xC6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xCF PUSH2 0x131 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xDC SWAP2 SWAP1 PUSH2 0x354 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xF1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xCF PUSH2 0x140 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x106 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x11A PUSH2 0x115 CALLDATASIZE PUSH1 0x4 PUSH2 0x229 JUMP JUMPDEST PUSH2 0x14F JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x128 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xCF PUSH2 0x209 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 DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x182 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x179 SWAP1 PUSH2 0x394 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x1A8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x179 SWAP1 PUSH2 0x384 JUMP JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND OR SWAP3 DUP4 SWAP1 SSTORE PUSH1 0x40 MLOAD SWAP2 DUP2 AND SWAP3 PUSH32 0xD604DE94D45953F9138079EC1B82D533CB2160C906D1076D1F7ED54BEFBCA97A SWAP3 PUSH2 0x1FD SWAP3 DUP6 SWAP3 AND SWAP1 PUSH2 0x362 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x223 DUP2 PUSH2 0x3CF JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x23B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x247 DUP5 DUP5 PUSH2 0x218 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0x258 DUP2 PUSH2 0x3B2 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x26A DUP4 DUP6 PUSH2 0x3A4 JUMP JUMPDEST SWAP4 POP PUSH2 0x277 DUP4 DUP6 DUP5 PUSH2 0x3C3 JUMP JUMPDEST POP POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x28A PUSH1 0x4A DUP4 PUSH2 0x3A9 JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F44656C656761746F723A3A5F736574496D706C DUP2 MSTORE PUSH32 0x656D656E746174696F6E3A20696E76616C696420696D706C656D656E74617469 PUSH1 0x20 DUP3 ADD MSTORE PUSH10 0x6F6E2061646472657373 PUSH1 0xB0 SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2FC PUSH1 0x36 DUP4 PUSH2 0x3A9 JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F44656C656761746F723A3A5F736574496D706C DUP2 MSTORE PUSH22 0x656D656E746174696F6E3A2061646D696E206F6E6C79 PUSH1 0x50 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x247 DUP3 DUP5 DUP7 PUSH2 0x25E JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x223 DUP3 DUP5 PUSH2 0x24F JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0x370 DUP3 DUP6 PUSH2 0x24F JUMP JUMPDEST PUSH2 0x37D PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x24F JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x223 DUP2 PUSH2 0x27D JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x223 DUP2 PUSH2 0x2EF JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x223 JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH2 0x3D8 DUP2 PUSH2 0x3B2 JUMP JUMPDEST DUP2 EQ PUSH2 0x3E3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG3 PUSH6 0x627A7A723158 KECCAK256 0xCE LOG3 0xBF 0xB5 LOG3 0xEC LOG0 CALLVALUE 0xB6 STOP 0xE5 ORIGIN PUSH14 0x972A176D3E7F2B9EC4FCDF018F37 0x2A EXTCODESIZE PUSH10 0x67CC6C6578706572696D PUSH6 0x6E74616CF564 PUSH20 0x6F6C634300051000400000000000000000000000 ","sourceMap":"209:2825:4:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2649:14;;:37;;2631:12;;-1:-1:-1;;;;;2649:14:4;;:37;;2631:12;;2677:8;;2649:37;;;;;;;;;;;;;;;;;14:1:-1;21;16:31;;;;75:4;69:11;64:16;;144:4;140:9;133:4;115:16;111:27;107:43;104:1;100:51;94:4;87:65;169:16;166:1;159:27;225:16;222:1;215:4;212:1;208:12;193:49;7:242;;16:31;36:4;31:9;;7:242;;2630:56:4;;;2746:4;2740:11;2796:14;2793:1;2779:12;2764:47;2832:7;2852:75;;;;2987:14;2973:12;2966:36;2852:75;2898:14;2884:12;2877:36;3119:27:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3119:27:7;;;:::i;:::-;;;;;;;;;;;;;;;;3195:29;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3195:29:7;;;:::i;1270:486:4:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1270:486:4;;;;;;;;:::i;:::-;;3036:20:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3036:20:7;;;:::i;3119:27::-;;;-1:-1:-1;;;;;3119:27:7;;:::o;3195:29::-;;;-1:-1:-1;;;;;3195:29:7;;:::o;1270:486:4:-;1362:5;;-1:-1:-1;;;;;1362:5:4;1348:10;:19;1340:86;;;;-1:-1:-1;;;1340:86:4;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1457:29:4;;1436:150;;;;-1:-1:-1;;;1436:150:4;;;;;;;;;1625:14;;;-1:-1:-1;;;;;1649:32:4;;;-1:-1:-1;;;;;;1649:32:4;;;;;;;1697:52;;1625:14;;;;1697:52;;;;1625:14;;1734;;1697:52;;;;;;;;;;1270:486;;:::o;3036:20:7:-;;;-1:-1:-1;;;;;3036:20:7;;:::o;5:130:-1:-;72:20;;97:33;72:20;97:33;;;57:78;;;;;142:241;;246:2;234:9;225:7;221:23;217:32;214:2;;;262:1;259;252:12;214:2;297:1;314:53;359:7;339:9;314:53;;;304:63;208:175;-1:-1;;;;208:175;390:113;473:24;491:5;473:24;;;468:3;461:37;455:48;;;533:310;;665:88;746:6;741:3;665:88;;;658:95;;765:43;801:6;796:3;789:5;765:43;;;-1:-1;;821:16;;651:192;852:448;;1012:67;1076:2;1071:3;1012:67;;;1112:34;1092:55;;1181:34;1176:2;1167:12;;1160:56;-1:-1;;;1245:2;1236:12;;1229:34;1291:2;1282:12;;998:302;-1:-1;;998:302;1309:391;;1469:67;1533:2;1528:3;1469:67;;;1569:34;1549:55;;-1:-1;;;1633:2;1624:12;;1617:46;1691:2;1682:12;;1455:245;-1:-1;;1455:245;1708:282;;1862:103;1961:3;1952:6;1944;1862:103;;1997:213;2115:2;2100:18;;2129:71;2104:9;2173:6;2129:71;;2217:324;2363:2;2348:18;;2377:71;2352:9;2421:6;2377:71;;;2459:72;2527:2;2516:9;2512:18;2503:6;2459:72;;;2334:207;;;;;;2548:407;2739:2;2753:47;;;2724:18;;2814:131;2724:18;2814:131;;2962:407;3153:2;3167:47;;;3138:18;;3228:131;3138:18;3228:131;;3377:144;3512:3;3490:31;-1:-1;3490:31;3530:163;3633:19;;;3682:4;3673:14;;3626:67;3701:91;;-1:-1;;;;;3861:54;;3763:24;3844:76;3928:145;4009:6;4004:3;3999;3986:30;-1:-1;4065:1;4047:16;;4040:27;3979:94;4081:117;4150:24;4168:5;4150:24;;;4143:5;4140:35;4130:2;;4189:1;4186;4179:12;4130:2;4124:74;"},"gasEstimates":{"creation":{"codeDepositCost":"213000","executionCost":"infinite","totalCost":"infinite"},"external":{"":"infinite","_setImplementation(address)":"infinite","admin()":"infinite","implementation()":"infinite","pendingAdmin()":"infinite"},"internal":{"delegateTo(address,bytes memory)":"infinite"}},"methodIdentifiers":{"_setImplementation(address)":"bb913f41","admin()":"f851a440","implementation()":"5c60da1b","pendingAdmin()":"26782247"}},"metadata":"{\"compiler\":{\"version\":\"0.5.16+commit.9c3226ce\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"timelock_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"xvsVault_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"admin_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"implementation_\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"votingPeriod_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"votingDelay_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"proposalThreshold_\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"guardian_\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"oldAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"NewAdmin\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"oldGuardian\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newGuardian\",\"type\":\"address\"}],\"name\":\"NewGuardian\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"oldImplementation\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"}],\"name\":\"NewImplementation\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"oldPendingAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newPendingAdmin\",\"type\":\"address\"}],\"name\":\"NewPendingAdmin\",\"type\":\"event\"},{\"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\":\"oldMaxOperations\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newMaxOperations\",\"type\":\"uint256\"}],\"name\":\"ProposalMaxOperationsUpdated\",\"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\":\"uint256\",\"name\":\"oldProposalThreshold\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newProposalThreshold\",\"type\":\"uint256\"}],\"name\":\"ProposalThresholdSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"voter\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"votes\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"VoteCast\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldVotingDelay\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newVotingDelay\",\"type\":\"uint256\"}],\"name\":\"VotingDelaySet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldVotingPeriod\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newVotingPeriod\",\"type\":\"uint256\"}],\"name\":\"VotingPeriodSet\",\"type\":\"event\"},{\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation_\",\"type\":\"address\"}],\"name\":\"_setImplementation\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"admin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"implementation\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"pendingAdmin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Venus\",\"methods\":{\"_setImplementation(address)\":{\"params\":{\"implementation_\":\"The address of the new implementation for delegation\"}}},\"title\":\"GovernorBravoDelegator\"},\"userdoc\":{\"methods\":{\"_setImplementation(address)\":{\"notice\":\"Called by the admin to update the implementation of the delegator\"}},\"notice\":\"The `GovernorBravoDelegator` contract.\"}},\"settings\":{\"compilationTarget\":{\"contracts/legacy/GovenorBravoV2.sol\":\"GovernorBravoDelegatorV1\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/Governance/GovernorBravoInterfaces.sol\":{\"content\":\"pragma solidity ^0.5.16;\\npragma experimental ABIEncoderV2;\\n\\n/**\\n * @title GovernorBravoEvents\\n * @author Venus\\n * @notice Set of events emitted by the GovernorBravo contracts.\\n */\\ncontract GovernorBravoEvents {\\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        uint8 proposalType\\n    );\\n\\n    /// @notice An event emitted when a vote has been cast on a proposal\\n    /// @param voter The address which casted a vote\\n    /// @param proposalId The proposal id which was voted on\\n    /// @param support Support value for the vote. 0=against, 1=for, 2=abstain\\n    /// @param votes Number of votes which were cast by the voter\\n    /// @param reason The reason given for the vote by the voter\\n    event VoteCast(address indexed voter, uint proposalId, uint8 support, uint votes, string reason);\\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    /// @notice An event emitted when the voting delay is set\\n    event VotingDelaySet(uint oldVotingDelay, uint newVotingDelay);\\n\\n    /// @notice An event emitted when the voting period is set\\n    event VotingPeriodSet(uint oldVotingPeriod, uint newVotingPeriod);\\n\\n    /// @notice Emitted when implementation is changed\\n    event NewImplementation(address oldImplementation, address newImplementation);\\n\\n    /// @notice Emitted when proposal threshold is set\\n    event ProposalThresholdSet(uint oldProposalThreshold, uint newProposalThreshold);\\n\\n    /// @notice Emitted when pendingAdmin is changed\\n    event NewPendingAdmin(address oldPendingAdmin, address newPendingAdmin);\\n\\n    /// @notice Emitted when pendingAdmin is accepted, which means admin is updated\\n    event NewAdmin(address oldAdmin, address newAdmin);\\n\\n    /// @notice Emitted when the new guardian address is set\\n    event NewGuardian(address oldGuardian, address newGuardian);\\n\\n    /// @notice Emitted when the maximum number of operations in one proposal is updated\\n    event ProposalMaxOperationsUpdated(uint oldMaxOperations, uint newMaxOperations);\\n\\n    /// @notice Emitted when the new validation params are set\\n    event SetValidationParams(\\n        uint256 oldMinVotingPeriod,\\n        uint256 newMinVotingPeriod,\\n        uint256 oldmaxVotingPeriod,\\n        uint256 newmaxVotingPeriod,\\n        uint256 oldminVotingDelay,\\n        uint256 newminVotingDelay,\\n        uint256 oldmaxVotingDelay,\\n        uint256 newmaxVotingDelay\\n    );\\n\\n    /// @notice Emitted when new Proposal configs added\\n    event SetProposalConfigs(uint256 votingPeriod, uint256 votingDelay, uint256 proposalThreshold);\\n}\\n\\n/**\\n * @title GovernorBravoDelegatorStorage\\n * @author Venus\\n * @notice Storage layout of the `GovernorBravoDelegator` contract\\n */\\ncontract GovernorBravoDelegatorStorage {\\n    /// @notice Administrator for this contract\\n    address public admin;\\n\\n    /// @notice Pending administrator for this contract\\n    address public pendingAdmin;\\n\\n    /// @notice Active brains of Governor\\n    address public implementation;\\n}\\n\\n/**\\n * @title GovernorBravoDelegateStorageV1\\n * @dev For future upgrades, do not change GovernorBravoDelegateStorageV1. Create a new\\n * contract which implements GovernorBravoDelegateStorageV1 and following the naming convention\\n * GovernorBravoDelegateStorageVX.\\n */\\ncontract GovernorBravoDelegateStorageV1 is GovernorBravoDelegatorStorage {\\n    /// @notice DEPRECATED The delay before voting on a proposal may take place, once proposed, in blocks\\n    uint public votingDelay;\\n\\n    /// @notice DEPRECATED The duration of voting on a proposal, in blocks\\n    uint public votingPeriod;\\n\\n    /// @notice DEPRECATED The number of votes required in order for a voter to become a proposer\\n    uint public proposalThreshold;\\n\\n    /// @notice Initial proposal id set at become\\n    uint public initialProposalId;\\n\\n    /// @notice The total number of proposals\\n    uint public proposalCount;\\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    XvsVaultInterface public xvsVault;\\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    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 Current number of votes for abstaining for this proposal\\n        uint abstainVotes;\\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        /// @notice The type of the proposal\\n        uint8 proposalType;\\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 or abstains\\n        uint8 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 maximum number of actions that can be included in a proposal\\n    uint public proposalMaxOperations;\\n\\n    /// @notice A privileged role that can cancel any proposal\\n    address public guardian;\\n}\\n\\n/**\\n * @title GovernorBravoDelegateStorageV2\\n * @dev For future upgrades, do not change GovernorBravoDelegateStorageV2. Create a new\\n * contract which implements GovernorBravoDelegateStorageV2 and following the naming convention\\n * GovernorBravoDelegateStorageVX.\\n */\\ncontract GovernorBravoDelegateStorageV2 is GovernorBravoDelegateStorageV1 {\\n    enum ProposalType {\\n        NORMAL,\\n        FASTTRACK,\\n        CRITICAL\\n    }\\n\\n    struct ProposalConfig {\\n        /// @notice The delay before voting on a proposal may take place, once proposed, in blocks\\n        uint256 votingDelay;\\n        /// @notice The duration of voting on a proposal, in blocks\\n        uint256 votingPeriod;\\n        /// @notice The number of votes required in order for a voter to become a proposer\\n        uint256 proposalThreshold;\\n    }\\n\\n    /// @notice mapping containing configuration for each proposal type\\n    mapping(uint => ProposalConfig) public proposalConfigs;\\n\\n    /// @notice mapping containing Timelock addresses for each proposal type\\n    mapping(uint => TimelockInterface) public proposalTimelocks;\\n}\\n\\n/**\\n * @title GovernorBravoDelegateStorageV3\\n * @dev For future upgrades, do not change GovernorBravoDelegateStorageV3. Create a new\\n * contract which implements GovernorBravoDelegateStorageV3 and following the naming convention\\n * GovernorBravoDelegateStorageVX.\\n */\\ncontract GovernorBravoDelegateStorageV3 is GovernorBravoDelegateStorageV2 {\\n    struct ValidationParams {\\n        uint256 minVotingPeriod;\\n        uint256 maxVotingPeriod;\\n        uint256 minVotingDelay;\\n        uint256 maxVotingDelay;\\n    }\\n    /// @notice Stores the current minimum and maximum values of voting delay and voting period\\n    ValidationParams public validationParams;\\n}\\n\\n/**\\n * @title TimelockInterface\\n * @author Venus\\n * @notice Interface implemented by the Timelock contract.\\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 XvsVaultInterface {\\n    function getPriorVotes(address account, uint blockNumber) external view returns (uint96);\\n}\\n\\ninterface GovernorAlphaInterface {\\n    /// @notice The total number of proposals\\n    function proposalCount() external returns (uint);\\n}\\n\",\"keccak256\":\"0x62c89309d4351dbeb5516465211fab0b566d83d60dc0148377deaad1f1929b85\"},\"contracts/legacy/GovenorBravoV2.sol\":{\"content\":\"pragma solidity ^0.5.16;\\npragma experimental ABIEncoderV2;\\n\\nimport \\\"./GovernorBravoInterfaces.sol\\\";\\n\\n/**\\n * @title GovernorBravoDelegator\\n * @author Venus\\n * @notice The `GovernorBravoDelegator` contract.\\n */\\ncontract GovernorBravoDelegatorV1 is GovernorBravoDelegatorStorage, GovernorBravoEventsV1 {\\n    constructor(\\n        address timelock_,\\n        address xvsVault_,\\n        address admin_,\\n        address implementation_,\\n        uint votingPeriod_,\\n        uint votingDelay_,\\n        uint proposalThreshold_,\\n        address guardian_\\n    ) public {\\n        // Admin set to msg.sender for initialization\\n        admin = msg.sender;\\n\\n        delegateTo(\\n            implementation_,\\n            abi.encodeWithSignature(\\n                \\\"initialize(address,address,uint256,uint256,uint256,address)\\\",\\n                timelock_,\\n                xvsVault_,\\n                votingPeriod_,\\n                votingDelay_,\\n                proposalThreshold_,\\n                guardian_\\n            )\\n        );\\n\\n        _setImplementation(implementation_);\\n\\n        admin = admin_;\\n    }\\n\\n    /**\\n     * @notice Called by the admin to update the implementation of the delegator\\n     * @param implementation_ The address of the new implementation for delegation\\n     */\\n    function _setImplementation(address implementation_) public {\\n        require(msg.sender == admin, \\\"GovernorBravoDelegator::_setImplementation: admin only\\\");\\n        require(\\n            implementation_ != address(0),\\n            \\\"GovernorBravoDelegator::_setImplementation: invalid implementation address\\\"\\n        );\\n\\n        address oldImplementation = implementation;\\n        implementation = implementation_;\\n\\n        emit NewImplementation(oldImplementation, implementation);\\n    }\\n\\n    /**\\n     * @notice Internal method to delegate execution to another contract\\n     * @dev It returns to the external caller whatever the implementation returns or forwards reverts\\n     * @param callee The contract to delegatecall\\n     * @param data The raw data to delegatecall\\n     */\\n    function delegateTo(address callee, bytes memory data) internal {\\n        (bool success, bytes memory returnData) = callee.delegatecall(data);\\n        assembly {\\n            if eq(success, 0) {\\n                revert(add(returnData, 0x20), returndatasize)\\n            }\\n        }\\n    }\\n\\n    /**\\n     * @dev Delegates execution to an implementation contract.\\n     * It returns to the external caller whatever the implementation returns\\n     * or forwards reverts.\\n     */\\n    function() external payable {\\n        // delegate all other functions to current implementation\\n        (bool success, ) = implementation.delegatecall(msg.data);\\n\\n        assembly {\\n            let free_mem_ptr := mload(0x40)\\n            returndatacopy(free_mem_ptr, 0, returndatasize)\\n\\n            switch success\\n            case 0 {\\n                revert(free_mem_ptr, returndatasize)\\n            }\\n            default {\\n                return(free_mem_ptr, returndatasize)\\n            }\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0xfab7c7a2dcaee4fc81fa00a8f7cda64f9b32c6e64e903d589f7ecb9b3915df3b\"},\"contracts/legacy/GovernorBravoInterfaces.sol\":{\"content\":\"pragma solidity ^0.5.16;\\npragma experimental ABIEncoderV2;\\n\\nimport { XvsVaultInterface, TimelockInterface, GovernorAlphaInterface } from \\\"../Governance/GovernorBravoInterfaces.sol\\\";\\n\\n/**\\n * @title GovernorBravoEvents\\n * @author Venus\\n * @notice Set of events emitted by the first GovernorBravo implementation contract.\\n * @dev This contract is included for archival and testing purposes as the ProposalCreated event has a different signature than the latest implementation.\\n */\\ncontract GovernorBravoEventsV1 {\\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    /// @param voter The address which casted a vote\\n    /// @param proposalId The proposal id which was voted on\\n    /// @param support Support value for the vote. 0=against, 1=for, 2=abstain\\n    /// @param votes Number of votes which were cast by the voter\\n    /// @param reason The reason given for the vote by the voter\\n    event VoteCast(address indexed voter, uint proposalId, uint8 support, uint votes, string reason);\\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    /// @notice An event emitted when the voting delay is set\\n    event VotingDelaySet(uint oldVotingDelay, uint newVotingDelay);\\n\\n    /// @notice An event emitted when the voting period is set\\n    event VotingPeriodSet(uint oldVotingPeriod, uint newVotingPeriod);\\n\\n    /// @notice Emitted when implementation is changed\\n    event NewImplementation(address oldImplementation, address newImplementation);\\n\\n    /// @notice Emitted when proposal threshold is set\\n    event ProposalThresholdSet(uint oldProposalThreshold, uint newProposalThreshold);\\n\\n    /// @notice Emitted when pendingAdmin is changed\\n    event NewPendingAdmin(address oldPendingAdmin, address newPendingAdmin);\\n\\n    /// @notice Emitted when pendingAdmin is accepted, which means admin is updated\\n    event NewAdmin(address oldAdmin, address newAdmin);\\n\\n    /// @notice Emitted when the new guardian address is set\\n    event NewGuardian(address oldGuardian, address newGuardian);\\n\\n    /// @notice Emitted when the maximum number of operations in one proposal is updated\\n    event ProposalMaxOperationsUpdated(uint oldMaxOperations, uint newMaxOperations);\\n}\\n\\n/**\\n * @title GovernorBravoDelegatorStorage\\n * @author Venus\\n * @notice Storage layout of the `GovernorBravoDelegator` contract\\n */\\ncontract GovernorBravoDelegatorStorage {\\n    /// @notice Administrator for this contract\\n    address public admin;\\n\\n    /// @notice Pending administrator for this contract\\n    address public pendingAdmin;\\n\\n    /// @notice Active brains of Governor\\n    address public implementation;\\n}\\n\\n/**\\n * @title GovernorBravoDelegateStorageV1\\n * @dev This contract is included for archival and testing purposes as the Proposal struct has a different shape than the latest implementation.\\n */\\ncontract GovernorBravoDelegateStorageV1 is GovernorBravoDelegatorStorage {\\n    /// @notice DEPRECATED The delay before voting on a proposal may take place, once proposed, in blocks\\n    uint public votingDelay;\\n\\n    /// @notice DEPRECATED The duration of voting on a proposal, in blocks\\n    uint public votingPeriod;\\n\\n    /// @notice DEPRECATED The number of votes required in order for a voter to become a proposer\\n    uint public proposalThreshold;\\n\\n    /// @notice Initial proposal id set at become\\n    uint public initialProposalId;\\n\\n    /// @notice The total number of proposals\\n    uint public proposalCount;\\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    XvsVaultInterface public xvsVault;\\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    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 Current number of votes for abstaining for this proposal\\n        uint abstainVotes;\\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 or abstains\\n        uint8 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 maximum number of actions that can be included in a proposal\\n    uint public proposalMaxOperations;\\n\\n    /// @notice A privileged role that can cancel any proposal\\n    address public guardian;\\n}\\n\",\"keccak256\":\"0x4f3e79420754567fb02452f7ded7a13796204e360ca1b4033009745cfda4a813\"}},\"version\":1}","storageLayout":{"storage":[{"astId":5229,"contract":"contracts/legacy/GovenorBravoV2.sol:GovernorBravoDelegatorV1","label":"admin","offset":0,"slot":"0","type":"t_address"},{"astId":5231,"contract":"contracts/legacy/GovenorBravoV2.sol:GovernorBravoDelegatorV1","label":"pendingAdmin","offset":0,"slot":"1","type":"t_address"},{"astId":5233,"contract":"contracts/legacy/GovenorBravoV2.sol:GovernorBravoDelegatorV1","label":"implementation","offset":0,"slot":"2","type":"t_address"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"}}},"userdoc":{"methods":{"_setImplementation(address)":{"notice":"Called by the admin to update the implementation of the delegator"}},"notice":"The `GovernorBravoDelegator` contract."}}},"contracts/legacy/GovernorBravoDelegateV1.sol":{"GovernorBravoDelegateV1":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldAdmin","type":"address"},{"indexed":false,"internalType":"address","name":"newAdmin","type":"address"}],"name":"NewAdmin","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldGuardian","type":"address"},{"indexed":false,"internalType":"address","name":"newGuardian","type":"address"}],"name":"NewGuardian","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldImplementation","type":"address"},{"indexed":false,"internalType":"address","name":"newImplementation","type":"address"}],"name":"NewImplementation","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldPendingAdmin","type":"address"},{"indexed":false,"internalType":"address","name":"newPendingAdmin","type":"address"}],"name":"NewPendingAdmin","type":"event"},{"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":"oldMaxOperations","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newMaxOperations","type":"uint256"}],"name":"ProposalMaxOperationsUpdated","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":"uint256","name":"oldProposalThreshold","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newProposalThreshold","type":"uint256"}],"name":"ProposalThresholdSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"voter","type":"address"},{"indexed":false,"internalType":"uint256","name":"proposalId","type":"uint256"},{"indexed":false,"internalType":"uint8","name":"support","type":"uint8"},{"indexed":false,"internalType":"uint256","name":"votes","type":"uint256"},{"indexed":false,"internalType":"string","name":"reason","type":"string"}],"name":"VoteCast","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"oldVotingDelay","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newVotingDelay","type":"uint256"}],"name":"VotingDelaySet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"oldVotingPeriod","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newVotingPeriod","type":"uint256"}],"name":"VotingPeriodSet","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":true,"inputs":[],"name":"MAX_PROPOSAL_THRESHOLD","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"MAX_VOTING_DELAY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"MAX_VOTING_PERIOD","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"MIN_PROPOSAL_THRESHOLD","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"MIN_VOTING_DELAY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"MIN_VOTING_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":"governorAlpha","type":"address"}],"name":"_initiate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"newGuardian","type":"address"}],"name":"_setGuardian","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"newPendingAdmin","type":"address"}],"name":"_setPendingAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"proposalMaxOperations_","type":"uint256"}],"name":"_setProposalMaxOperations","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"newProposalThreshold","type":"uint256"}],"name":"_setProposalThreshold","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"newVotingDelay","type":"uint256"}],"name":"_setVotingDelay","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"newVotingPeriod","type":"uint256"}],"name":"_setVotingPeriod","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"admin","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","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":"uint8","name":"support","type":"uint8"}],"name":"castVote","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"uint8","name":"support","type":"uint8"},{"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"},{"internalType":"uint8","name":"support","type":"uint8"},{"internalType":"string","name":"reason","type":"string"}],"name":"castVoteWithReason","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"}],"name":"execute","outputs":[],"payable":false,"stateMutability":"nonpayable","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":"uint8","name":"support","type":"uint8"},{"internalType":"uint96","name":"votes","type":"uint96"}],"internalType":"struct GovernorBravoDelegateStorageV1.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":[],"name":"implementation","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"initialProposalId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"timelock_","type":"address"},{"internalType":"address","name":"xvsVault_","type":"address"},{"internalType":"uint256","name":"votingPeriod_","type":"uint256"},{"internalType":"uint256","name":"votingDelay_","type":"uint256"},{"internalType":"uint256","name":"proposalThreshold_","type":"uint256"},{"internalType":"address","name":"guardian_","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","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":"pendingAdmin","outputs":[{"internalType":"address","name":"","type":"address"}],"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":"view","type":"function"},{"constant":true,"inputs":[],"name":"proposalThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","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":"uint256","name":"abstainVotes","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":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"}],"name":"state","outputs":[{"internalType":"enum GovernorBravoDelegateStorageV1.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":"view","type":"function"},{"constant":true,"inputs":[],"name":"votingPeriod","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"xvsVault","outputs":[{"internalType":"contract XvsVaultInterface","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}],"devdoc":{"details":"This contract is the first deployed implementation GovernorBravo. It is included here for testing purposes because it has a different signature for the ProposalCreated event and Proposal struct","methods":{"_acceptAdmin()":{"details":"Admin function for pending admin to accept role and update admin"},"_initiate(address)":{"details":"Admin only. Sets initial proposal id which initiates the contract, ensuring a continuous proposal id count","params":{"governorAlpha":"The address for the Governor to continue the proposal id count from"}},"_setGuardian(address)":{"params":{"newGuardian":"the address of the new guardian"}},"_setPendingAdmin(address)":{"details":"Admin function to begin change of admin. The newPendingAdmin must call `_acceptAdmin` to finalize the transfer.","params":{"newPendingAdmin":"New pending admin."}},"_setProposalMaxOperations(uint256)":{"details":"Admin only.","params":{"proposalMaxOperations_":"Max proposal operations"}},"_setProposalThreshold(uint256)":{"details":"newProposalThreshold must be greater than the hardcoded min","params":{"newProposalThreshold":"new proposal threshold"}},"_setVotingDelay(uint256)":{"params":{"newVotingDelay":"new voting delay, in blocks"}},"_setVotingPeriod(uint256)":{"params":{"newVotingPeriod":"new voting period, in blocks"}},"cancel(uint256)":{"params":{"proposalId":"The id of the proposal to cancel"}},"castVote(uint256,uint8)":{"params":{"proposalId":"The id of the proposal to vote on","support":"The support value for the vote. 0=against, 1=for, 2=abstain"}},"castVoteBySig(uint256,uint8,uint8,bytes32,bytes32)":{"details":"External function that accepts EIP-712 signatures for voting on proposals."},"castVoteWithReason(uint256,uint8,string)":{"params":{"proposalId":"The id of the proposal to vote on","reason":"The reason given for the vote by the voter","support":"The support value for the vote. 0=against, 1=for, 2=abstain"}},"execute(uint256)":{"params":{"proposalId":"The id of the proposal to execute"}},"getActions(uint256)":{"params":{"proposalId":"the id of the proposal"},"return":"targets, values, signatures, and calldatas of the proposal actions"},"getReceipt(uint256,address)":{"params":{"proposalId":"the id of proposal","voter":"The address of the voter"},"return":"The voting receipt"},"initialize(address,address,uint256,uint256,uint256,address)":{"params":{"proposalThreshold_":"The initial proposal threshold","timelock_":"The address of the Timelock","votingDelay_":"The initial voting delay","votingPeriod_":"The initial voting period","xvsVault_":"The address of the XvsVault"}},"propose(address[],uint256[],string[],bytes[],string)":{"params":{"calldatas":"Calldatas for proposal calls","description":"String description of the proposal","signatures":"Function signatures for proposal calls","targets":"Target addresses for proposal calls","values":"Eth values for proposal calls"},"return":"Proposal id of new proposal"},"queue(uint256)":{"params":{"proposalId":"The id of the proposal to queue"}},"state(uint256)":{"params":{"proposalId":"The id of the proposal"},"return":"Proposal state"}},"title":"GovernorBravoDelegateV1"},"evm":{"bytecode":{"linkReferences":{},"object":"608060405234801561001057600080fd5b50614640806100206000396000f3fe608060405234801561001057600080fd5b50600436106102695760003560e01c80635c60da1b11610151578063da95691a116100c3578063e48083fe11610087578063e48083fe146104db578063e9c714f2146104e3578063f851a440146104eb578063f9d28b80146104f3578063fc4eee4214610506578063fe0d94c11461050e57610269565b8063da95691a1461047a578063ddf0b0091461048d578063deaaa7cc146104a0578063e23a9a52146104a8578063e38e8c0f146104c857610269565b8063b112626311610115578063b112626314610434578063b1a5d12d1461043c578063b58131b01461044f578063b71d1a0c14610457578063d33219b41461046a578063da35c6641461047257610269565b80635c60da1b14610401578063791f5d23146104095780637b3c71d3146104115780637bdbe4d014610424578063a64e024a1461042c57610269565b8063215809ca116101ea5780633932abb1116101ae5780633932abb1146103985780633bccf4fd146103a05780633e4f49e6146103b357806340e58ee5146103d3578063452a9320146103e657806356781388146103ee57610269565b8063215809ca1461034857806324bc1a641461035057806325fd935a146103585780632678224714610360578063328dd9821461037557610269565b806317ba1b8b1161023157806317ba1b8b146102f25780631b9ce575146103055780631dfb1b5a1461031a5780631ebcfefd1461032d57806320606b701461034057610269565b8063013cf08b1461026e57806302a251a3146102a057806306fdde03146102b55780630ea2d98c146102ca57806317977c61146102df575b600080fd5b61028161027c366004612b4a565b610521565b6040516102979a99989796959493929190614357565b60405180910390f35b6102a8610584565b6040516102979190613f54565b6102bd61058a565b6040516102979190614010565b6102dd6102d8366004612b4a565b6105ba565b005b6102a86102ed366004612940565b610664565b6102dd610300366004612b4a565b610676565b61030d61071a565b6040516102979190613ff4565b6102dd610328366004612b4a565b610729565b6102dd61033b366004612b4a565b6107bd565b6102a8610821565b6102a8610838565b6102a861083e565b6102a861084c565b61036861085a565b6040516102979190613e1a565b610388610383366004612b4a565b610869565b6040516102979493929190613f07565b6102a8610af8565b6102dd6103ae366004612c3a565b610afe565b6103c66103c1366004612b4a565b610cd6565b6040516102979190614002565b6102dd6103e1366004612b4a565b610e5c565b6103686110c5565b6102dd6103fc366004612ba2565b6110d4565b61036861111e565b6102a861112d565b6102dd61041f366004612bd2565b61113b565b6102a861118b565b6102a8611191565b6102a8611198565b6102dd61044a366004612966565b61119f565b6102a8611358565b6102dd610465366004612940565b61135e565b61030d6113db565b6102a86113ea565b6102a86104883660046129ed565b6113f0565b6102dd61049b366004612b4a565b611839565b6102a8611ab5565b6104bb6104b6366004612b68565b611ac1565b60405161029791906142a1565b6102dd6104d6366004612940565b611b2e565b6102a8611be6565b6102dd611beb565b610368611cc9565b6102dd610501366004612940565b611cd8565b6102a8611dfe565b6102dd61051c366004612b4a565b611e04565b600a60208190526000918252604090912080546001820154600283015460078401546008850154600986015496860154600b870154600c9097015495976001600160a01b0390951696939592949193919290919060ff808216916101009004168a565b60045481565b6040518060400160405280601481526020017356656e757320476f7665726e6f7220427261766f60601b81525081565b6000546001600160a01b031633146105ed5760405162461bcd60e51b81526004016105e490614061565b60405180910390fd5b610e1081101580156106025750620627008111155b61061e5760405162461bcd60e51b81526004016105e4906140a1565b60048054908290556040517f7e3f7f0708a84de9203036abaa450dccc85ad5ff52f78c170f3edb55cf5e88289061065890839085906143dd565b60405180910390a15050565b600b6020526000908152604090205481565b6000546001600160a01b031633146106a05760405162461bcd60e51b81526004016105e490614241565b691fc3842bd1f071c0000081101580156106c45750693f870857a3e0e38000008111155b6106e05760405162461bcd60e51b81526004016105e490614151565b60058054908290556040517fccb45da8d5717e6c4544694297c4ba5cf151d455c9bb0ed4fc7a38411bc054619061065890839085906143dd565b6009546001600160a01b031681565b6000546001600160a01b031633146107535760405162461bcd60e51b81526004016105e490614081565b600181101580156107675750620313808111155b6107835760405162461bcd60e51b81526004016105e4906140e1565b60038054908290556040517fc565b045403dc03c2eea82b81a0465edad9e2e7fc4d97e11421c209da93d7a939061065890839085906143dd565b6000546001600160a01b031633146107e75760405162461bcd60e51b81526004016105e4906141f1565b600c8054908290556040517fd03b3c3c5c1446bcdd31423061041c94ca3bc5450fe7ccfb0f636f4c420de87e9061065890839085906143dd565b60405161082d90613e0f565b604051809103902081565b610e1081565b697f0e10af47c1c700000081565b693f870857a3e0e380000081565b6001546001600160a01b031681565b6060806060806000600a6000878152602001908152602001600020905080600301816004018260050183600601838054806020026020016040519081016040528092919081815260200182805480156108eb57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116108cd575b505050505093508280548060200260200160405190810160405280929190818152602001828054801561093d57602002820191906000526020600020905b815481526020019060010190808311610929575b5050505050925081805480602002602001604051908101604052809291908181526020016000905b82821015610a105760008481526020908190208301805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156109fc5780601f106109d1576101008083540402835291602001916109fc565b820191906000526020600020905b8154815290600101906020018083116109df57829003601f168201915b505050505081526020019060010190610965565b50505050915080805480602002602001604051908101604052809291908181526020016000905b82821015610ae25760008481526020908190208301805460408051601f6002600019610100600187161502019094169390930492830185900485028101850190915281815292830182828015610ace5780601f10610aa357610100808354040283529160200191610ace565b820191906000526020600020905b815481529060010190602001808311610ab157829003601f168201915b505050505081526020019060010190610a37565b5050505090509450945094509450509193509193565b60035481565b6000604051610b0c90613e0f565b60408051918290038220828201909152601482527356656e757320476f7665726e6f7220427261766f60601b6020909201919091527f157d76627a3b71c0167806f5879f7a61d3e301322f3a3b9f900315f15937671a610b6a611fa3565b30604051602001610b7e9493929190613f62565b6040516020818303038152906040528051906020012090506000604051610ba490613dd3565b604051908190038120610bbd9189908990602001613f97565b60405160208183030381529060405280519060200120905060008282604051602001610bea929190613dde565b604051602081830303815290604052805190602001209050600060018288888860405160008152602001604052604051610c279493929190613fbf565b6020604051602081039080840390855afa158015610c49573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116610c7c5760405162461bcd60e51b81526004016105e490614111565b806001600160a01b03167fb8e138887d0aa13bab447e82de9d5c1777041ecd21ca36ba824ff1e6c07ddda48a8a610cb4858e8e611fa8565b604051610cc393929190614431565b60405180910390a2505050505050505050565b60008160075410158015610ceb575060065482115b610d075760405162461bcd60e51b81526004016105e490614251565b6000828152600a60205260409020600c81015460ff1615610d2c576002915050610e57565b80600701544311610d41576000915050610e57565b80600801544311610d56576001915050610e57565b80600a01548160090154111580610d7a5750697f0e10af47c1c70000008160090154105b15610d89576003915050610e57565b6002810154610d9c576004915050610e57565b600c810154610100900460ff1615610db8576007915050610e57565b6002810154600854604080516360d143f160e11b81529051610e4193926001600160a01b03169163c1a287e2916004808301926020929190829003018186803b158015610e0457600080fd5b505afa158015610e18573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610e3c9190810190612af7565b612199565b4210610e51576006915050610e57565b60059150505b919050565b6007610e6782610cd6565b6007811115610e7257fe5b1415610e905760405162461bcd60e51b81526004016105e490614231565b6000818152600a60205260409020600d546001600160a01b0316331480610ec3575060018101546001600160a01b031633145b80610f6d57506005546009546001838101546001600160a01b039283169263782d6fe192911690610ef59043906121be565b6040518363ffffffff1660e01b8152600401610f12929190613e5e565b60206040518083038186803b158015610f2a57600080fd5b505afa158015610f3e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610f629190810190612ca2565b6001600160601b0316105b610f895760405162461bcd60e51b81526004016105e4906141b1565b600c8101805460ff1916600117905560005b6003820154811015611095576008546003830180546001600160a01b039092169163591fcdfe919084908110610fcd57fe5b6000918252602090912001546004850180546001600160a01b039092169185908110610ff557fe5b906000526020600020015485600501858154811061100f57fe5b9060005260206000200186600601868154811061102857fe5b9060005260206000200187600201546040518663ffffffff1660e01b8152600401611057959493929190613ec6565b600060405180830381600087803b15801561107157600080fd5b505af1158015611085573d6000803e3d6000fd5b505060019092019150610f9b9050565b507f789cf55be980739dad1d0699b93b58e806b51c9d96619bfa8fe0a28abaa7b30c826040516106589190613f54565b600d546001600160a01b031681565b337fb8e138887d0aa13bab447e82de9d5c1777041ecd21ca36ba824ff1e6c07ddda48383611103848383611fa8565b60405161111293929190614431565b60405180910390a25050565b6002546001600160a01b031681565b691fc3842bd1f071c0000081565b337fb8e138887d0aa13bab447e82de9d5c1777041ecd21ca36ba824ff1e6c07ddda4858561116a848383611fa8565b868660405161117d9594939291906143eb565b60405180910390a250505050565b600c5481565b6206270081565b6203138081565b6008546001600160a01b0316156111c85760405162461bcd60e51b81526004016105e490614031565b6000546001600160a01b031633146111f25760405162461bcd60e51b81526004016105e490614141565b6001600160a01b0386166112185760405162461bcd60e51b81526004016105e490614071565b6001600160a01b03851661123e5760405162461bcd60e51b81526004016105e4906140d1565b610e1084101580156112535750620627008411155b61126f5760405162461bcd60e51b81526004016105e490614261565b600183101580156112835750620313808311155b61129f5760405162461bcd60e51b81526004016105e490614121565b691fc3842bd1f071c0000082101580156112c35750693f870857a3e0e38000008211155b6112df5760405162461bcd60e51b81526004016105e4906140f1565b6001600160a01b0381166113055760405162461bcd60e51b81526004016105e4906141c1565b600880546001600160a01b039788166001600160a01b0319918216179091556009805496881696821696909617909555600493909355600391909155600555600a600c55600d8054919093169116179055565b60055481565b6000546001600160a01b031633146113885760405162461bcd60e51b81526004016105e490614041565b600180546001600160a01b038381166001600160a01b03198316179092556040519116907fca4f2f25d0898edd99413412fb94012f9e54ec8142f9b093e7720646a95b16a9906106589083908590613e43565b6008546001600160a01b031681565b60075481565b6000600654600014156114155760405162461bcd60e51b81526004016105e490614091565b6005546009546001600160a01b031663782d6fe1336114354360016121be565b6040518363ffffffff1660e01b8152600401611452929190613e28565b60206040518083038186803b15801561146a57600080fd5b505afa15801561147e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506114a29190810190612ca2565b6001600160601b0316116114c85760405162461bcd60e51b81526004016105e490614221565b845186511480156114da575083518651145b80156114e7575082518651145b6115035760405162461bcd60e51b81526004016105e490614131565b85516115215760405162461bcd60e51b81526004016105e490614191565b600c54865111156115445760405162461bcd60e51b81526004016105e4906141d1565b336000908152600b602052604090205480156115c157600061156582610cd6565b9050600181600781111561157557fe5b14156115935760405162461bcd60e51b81526004016105e490614201565b60008160078111156115a157fe5b14156115bf5760405162461bcd60e51b81526004016105e4906141e1565b505b60006115cf43600354612199565b905060006115df82600454612199565b60078054600101905590506115f2612345565b604051806101c001604052806007548152602001336001600160a01b03168152602001600081526020018b81526020018a815260200189815260200188815260200184815260200183815260200160008152602001600081526020016000815260200160001515815260200160001515815250905080600a6000836000015181526020019081526020016000206000820151816000015560208201518160010160006101000a8154816001600160a01b0302191690836001600160a01b031602179055506040820151816002015560608201518160030190805190602001906116dc9291906123c1565b50608082015180516116f8916004840191602090910190612426565b5060a0820151805161171491600584019160209091019061246d565b5060c082015180516117309160068401916020909101906124c6565b5060e082015181600701556101008201518160080155610120820151816009015561014082015181600a015561016082015181600b015561018082015181600c0160006101000a81548160ff0219169083151502179055506101a082015181600c0160016101000a81548160ff0219169083151502179055509050508060000151600b600083602001516001600160a01b03166001600160a01b03168152602001908152602001600020819055507f7d84a6263ae0d98d3329bd7b46bb4e8d6f98cd35a7adb45c274c8b7fd5ebd5e08160000151338c8c8c8c89898e604051611821999897969594939291906142af565b60405180910390a15193505050505b95945050505050565b600461184482610cd6565b600781111561184f57fe5b1461186c5760405162461bcd60e51b81526004016105e490614161565b6000818152600a602090815260408083206008548251630d48571f60e31b815292519194936118c69342936001600160a01b0390931692636a42b8f892600480840193919291829003018186803b158015610e0457600080fd5b905060005b6003830154811015611a6e57611a668360030182815481106118e957fe5b6000918252602090912001546004850180546001600160a01b03909216918490811061191157fe5b906000526020600020015485600501848154811061192b57fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156119b95780601f1061198e576101008083540402835291602001916119b9565b820191906000526020600020905b81548152906001019060200180831161199c57829003601f168201915b50505050508660060185815481106119cd57fe5b600091825260209182902001805460408051601f6002600019610100600187161502019094169390930492830185900485028101850190915281815292830182828015611a5b5780601f10611a3057610100808354040283529160200191611a5b565b820191906000526020600020905b815481529060010190602001808311611a3e57829003601f168201915b5050505050866121e6565b6001016118cb565b50600282018190556040517f9a2e42fd6722813d69113e7d0079d3d940171428df7373df9c7f7617cfda289290611aa890859084906143dd565b60405180910390a1505050565b60405161082d90613dd3565b611ac961251f565b506000828152600a602090815260408083206001600160a01b0385168452600d018252918290208251606081018452905460ff8082161515835261010082041692820192909252620100009091046001600160601b0316918101919091525b92915050565b600d546001600160a01b0316331480611b5157506000546001600160a01b031633145b611b6d5760405162461bcd60e51b81526004016105e490614281565b6001600160a01b038116611b935760405162461bcd60e51b81526004016105e490614271565b600d80546001600160a01b038381166001600160a01b03198316179092556040519116907f08fdaf06427a2010e5958f4329b566993472d14ce81d3f16ce7f2a2660da98e3906106589083908590613e43565b600181565b6001546001600160a01b031633148015611c0457503315155b611c205760405162461bcd60e51b81526004016105e4906141a1565b60008054600180546001600160a01b038082166001600160a01b03198086168217968790559092169092556040519282169390927ff9ffabca9c8276e99321725bcb43fb076a6c66a54b7f21c4e8146d8519b417dc92611c84928692911690613e43565b60405180910390a16001546040517fca4f2f25d0898edd99413412fb94012f9e54ec8142f9b093e7720646a95b16a9916106589184916001600160a01b031690613e43565b6000546001600160a01b031681565b6000546001600160a01b03163314611d025760405162461bcd60e51b81526004016105e490614211565b60065415611d225760405162461bcd60e51b81526004016105e490614181565b806001600160a01b031663da35c6646040518163ffffffff1660e01b8152600401602060405180830381600087803b158015611d5d57600080fd5b505af1158015611d71573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611d959190810190612af7565b600781905560065560085460408051630e18b68160e01b815290516001600160a01b0390921691630e18b6819160048082019260009290919082900301818387803b158015611de357600080fd5b505af1158015611df7573d6000803e3d6000fd5b5050505050565b60065481565b6005611e0f82610cd6565b6007811115611e1a57fe5b14611e375760405162461bcd60e51b81526004016105e490614101565b6000818152600a60205260408120600c8101805461ff001916610100179055905b6003820154811015611f73576008546003830180546001600160a01b0390921691630825f38f919084908110611e8a57fe5b6000918252602090912001546004850180546001600160a01b039092169185908110611eb257fe5b9060005260206000200154856005018581548110611ecc57fe5b90600052602060002001866006018681548110611ee557fe5b9060005260206000200187600201546040518663ffffffff1660e01b8152600401611f14959493929190613ec6565b600060405180830381600087803b158015611f2e57600080fd5b505af1158015611f42573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611f6a9190810190612b15565b50600101611e58565b507f712ae1383f79ac853f8d882153778e0260ef8f03b504e2866e0593e04d2b291f826040516106589190613f54565b465b90565b60006001611fb584610cd6565b6007811115611fc057fe5b14611fdd5760405162461bcd60e51b81526004016105e4906140b1565b60028260ff1611156120015760405162461bcd60e51b81526004016105e490614021565b6000838152600a602090815260408083206001600160a01b0388168452600d8101909252909120805460ff161561204a5760405162461bcd60e51b81526004016105e4906140c1565b600954600783015460405163782d6fe160e01b81526000926001600160a01b03169163782d6fe191612080918b91600401613e5e565b60206040518083038186803b15801561209857600080fd5b505afa1580156120ac573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506120d09190810190612ca2565b905060ff85166120fb576120f183600a0154826001600160601b0316612199565b600a840155612151565b8460ff16600114156121285761211e8360090154826001600160601b0316612199565b6009840155612151565b8460ff16600214156121515761214b83600b0154826001600160601b0316612199565b600b8401555b8154600160ff199091161761ff00191661010060ff871602176dffffffffffffffffffffffff00001916620100006001600160601b03831602179091559150505b9392505050565b6000828201838110156121925760405162461bcd60e51b81526004016105e490614171565b6000828211156121e05760405162461bcd60e51b81526004016105e490614291565b50900390565b6008546040516001600160a01b039091169063f2b06537906122149088908890889088908890602001613e6c565b604051602081830303815290604052805190602001206040518263ffffffff1660e01b81526004016122469190613f54565b60206040518083038186803b15801561225e57600080fd5b505afa158015612272573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506122969190810190612ad9565b156122b35760405162461bcd60e51b81526004016105e490614051565b600854604051633a66f90160e01b81526001600160a01b0390911690633a66f901906122eb9088908890889088908890600401613e6c565b602060405180830381600087803b15801561230557600080fd5b505af1158015612319573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061233d9190810190612af7565b505050505050565b604051806101c001604052806000815260200160006001600160a01b03168152602001600081526020016060815260200160608152602001606081526020016060815260200160008152602001600081526020016000815260200160008152602001600081526020016000151581526020016000151581525090565b828054828255906000526020600020908101928215612416579160200282015b8281111561241657825182546001600160a01b0319166001600160a01b039091161782556020909201916001909101906123e1565b5061242292915061253f565b5090565b828054828255906000526020600020908101928215612461579160200282015b82811115612461578251825591602001919060010190612446565b50612422929150612563565b8280548282559060005260206000209081019282156124ba579160200282015b828111156124ba57825180516124aa91849160209091019061257d565b509160200191906001019061248d565b506124229291506125ea565b828054828255906000526020600020908101928215612513579160200282015b82811115612513578251805161250391849160209091019061257d565b50916020019190600101906124e6565b5061242292915061260d565b604080516060810182526000808252602082018190529181019190915290565b611fa591905b808211156124225780546001600160a01b0319168155600101612545565b611fa591905b808211156124225760008155600101612569565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106125be57805160ff1916838001178555612461565b828001600101855582156124615791820182811115612461578251825591602001919060010190612446565b611fa591905b808211156124225760006126048282612630565b506001016125f0565b611fa591905b808211156124225760006126278282612630565b50600101612613565b50805460018160011615610100020316600290046000825580601f106126565750612674565b601f0160209004906000526020600020908101906126749190612563565b50565b8035611b28816145a5565b600082601f83011261269357600080fd5b81356126a66126a182614491565b61446a565b915081818352602084019350602081019050838560208402820111156126cb57600080fd5b60005b838110156126f757816126e18882612677565b84525060209283019291909101906001016126ce565b5050505092915050565b600082601f83011261271257600080fd5b81356127206126a182614491565b81815260209384019390925082018360005b838110156126f75781358601612748888261284c565b8452506020928301929190910190600101612732565b600082601f83011261276f57600080fd5b813561277d6126a182614491565b81815260209384019390925082018360005b838110156126f757813586016127a5888261284c565b845250602092830192919091019060010161278f565b600082601f8301126127cc57600080fd5b81356127da6126a182614491565b915081818352602084019350602081019050838560208402820111156127ff57600080fd5b60005b838110156126f757816128158882612836565b8452506020928301929190910190600101612802565b8051611b28816145b9565b8035611b28816145c2565b8051611b28816145c2565b600082601f83011261285d57600080fd5b813561286b6126a1826144b2565b9150808252602083016020830185838301111561288757600080fd5b612892838284614559565b50505092915050565b600082601f8301126128ac57600080fd5b81516128ba6126a1826144b2565b915080825260208301602083018583830111156128d657600080fd5b612892838284614565565b60008083601f8401126128f357600080fd5b50813567ffffffffffffffff81111561290b57600080fd5b60208301915083600182028301111561292357600080fd5b9250929050565b8035611b28816145cb565b8051611b28816145d4565b60006020828403121561295257600080fd5b600061295e8484612677565b949350505050565b60008060008060008060c0878903121561297f57600080fd5b600061298b8989612677565b965050602061299c89828a01612677565b95505060406129ad89828a01612836565b94505060606129be89828a01612836565b93505060806129cf89828a01612836565b92505060a06129e089828a01612677565b9150509295509295509295565b600080600080600060a08688031215612a0557600080fd5b853567ffffffffffffffff811115612a1c57600080fd5b612a2888828901612682565b955050602086013567ffffffffffffffff811115612a4557600080fd5b612a51888289016127bb565b945050604086013567ffffffffffffffff811115612a6e57600080fd5b612a7a8882890161275e565b935050606086013567ffffffffffffffff811115612a9757600080fd5b612aa388828901612701565b925050608086013567ffffffffffffffff811115612ac057600080fd5b612acc8882890161284c565b9150509295509295909350565b600060208284031215612aeb57600080fd5b600061295e848461282b565b600060208284031215612b0957600080fd5b600061295e8484612841565b600060208284031215612b2757600080fd5b815167ffffffffffffffff811115612b3e57600080fd5b61295e8482850161289b565b600060208284031215612b5c57600080fd5b600061295e8484612836565b60008060408385031215612b7b57600080fd5b6000612b878585612836565b9250506020612b9885828601612677565b9150509250929050565b60008060408385031215612bb557600080fd5b6000612bc18585612836565b9250506020612b988582860161292a565b60008060008060608587031215612be857600080fd5b6000612bf48787612836565b9450506020612c058782880161292a565b935050604085013567ffffffffffffffff811115612c2257600080fd5b612c2e878288016128e1565b95989497509550505050565b600080600080600060a08688031215612c5257600080fd5b6000612c5e8888612836565b9550506020612c6f8882890161292a565b9450506040612c808882890161292a565b9350506060612c9188828901612836565b9250506080612acc88828901612836565b600060208284031215612cb457600080fd5b600061295e8484612935565b6000612ccc8383612cfb565b505060200190565b60006121928383612e9d565b6000612ccc8383612e83565b612cf581614531565b82525050565b612cf5816144f9565b6000612d0f826144ec565b612d1981856144f0565b9350612d24836144da565b8060005b83811015612d52578151612d3c8882612cc0565b9750612d47836144da565b925050600101612d28565b509495945050505050565b6000612d68826144ec565b612d7281856144f0565b935083602082028501612d84856144da565b8060005b85811015612dbe5784840389528151612da18582612cd4565b9450612dac836144da565b60209a909a0199925050600101612d88565b5091979650505050505050565b6000612dd6826144ec565b612de081856144f0565b935083602082028501612df2856144da565b8060005b85811015612dbe5784840389528151612e0f8582612cd4565b9450612e1a836144da565b60209a909a0199925050600101612df6565b6000612e37826144ec565b612e4181856144f0565b9350612e4c836144da565b8060005b83811015612d52578151612e648882612ce0565b9750612e6f836144da565b925050600101612e50565b612cf581614504565b612cf581611fa5565b612cf5612e9882611fa5565b611fa5565b6000612ea8826144ec565b612eb281856144f0565b9350612ec2818560208601614565565b612ecb81614591565b9093019392505050565b600081546001811660008114612ef25760018114612f1857612f57565b607f6002830416612f0381876144f0565b60ff1984168152955050602085019250612f57565b60028204612f2681876144f0565b9550612f31856144e0565b60005b82811015612f5057815488820152600190910190602001612f34565b8701945050505b505092915050565b612cf581614538565b612cf581614543565b6000612f7d83856144f0565b9350612f8a838584614559565b612ecb83614591565b6000612fa06032836144f0565b7f476f7665726e6f72427261766f3a3a63617374566f7465496e7465726e616c3a81527120696e76616c696420766f7465207479706560701b602082015260400192915050565b6000612ff4602883610e57565b7f42616c6c6f742875696e743235362070726f706f73616c49642c75696e743820815267737570706f72742960c01b602082015260280192915050565b600061303e6033836144f0565b7f476f7665726e6f72427261766f3a3a696e697469616c697a653a2063616e206f8152726e6c7920696e697469616c697a65206f6e636560681b602082015260400192915050565b6000613093602a836144f0565b7f476f7665726e6f72427261766f3a5f73657450656e64696e6741646d696e3a2081526961646d696e206f6e6c7960b01b602082015260400192915050565b60006130df6055836144f0565b7f476f7665726e6f72427261766f3a3a71756575654f72526576657274496e746581527f726e616c3a206964656e746963616c2070726f706f73616c20616374696f6e20602082015274616c7265616479207175657565642061742065746160581b604082015260600192915050565b600061315c602b836144f0565b7f476f7665726e6f72427261766f3a3a5f736574566f74696e67506572696f643a81526a2061646d696e206f6e6c7960a81b602082015260400192915050565b60006131a96033836144f0565b6000805160206145de83398151915281527269642074696d656c6f636b206164647265737360681b602082015260400192915050565b60006131ec602a836144f0565b7f476f7665726e6f72427261766f3a3a5f736574566f74696e6744656c61793a2081526961646d696e206f6e6c7960b01b602082015260400192915050565b60006132386031836144f0565b7f476f7665726e6f72427261766f3a3a70726f706f73653a20476f7665726e6f7281527020427261766f206e6f742061637469766560781b602082015260400192915050565b600061328b600283610e57565b61190160f01b815260020192915050565b60006132a96036836144f0565b7f476f7665726e6f72427261766f3a3a5f736574566f74696e67506572696f643a815275081a5b9d985b1a59081d9bdd1a5b99c81c195c9a5bd960521b602082015260400192915050565b60006133016031836144f0565b7f476f7665726e6f72427261766f3a3a63617374566f7465496e7465726e616c3a815270081d9bdd1a5b99c81a5cc818db1bdcd959607a1b602082015260400192915050565b60006133546034836144f0565b7f476f7665726e6f72427261766f3a3a63617374566f7465496e7465726e616c3a815273081d9bdd195c88185b1c9958591e481d9bdd195960621b602082015260400192915050565b60006133aa602e836144f0565b6000805160206145de83398151915281526d696420787673206164647265737360901b602082015260400192915050565b60006133e86034836144f0565b7f476f7665726e6f72427261766f3a3a5f736574566f74696e6744656c61793a20815273696e76616c696420766f74696e672064656c617960601b602082015260400192915050565b600061343e6035836144f0565b6000805160206145de8339815191528152741a59081c1c9bdc1bdcd85b081d1a1c995cda1bdb19605a1b602082015260400192915050565b60006134836045836144f0565b7f476f7665726e6f72427261766f3a3a657865637574653a2070726f706f73616c81527f2063616e206f6e6c7920626520657865637574656420696620697420697320716020820152641d595d595960da1b604082015260600192915050565b60006134f0602f836144f0565b7f476f7665726e6f72427261766f3a3a63617374566f746542795369673a20696e81526e76616c6964207369676e617475726560881b602082015260400192915050565b6000613541602f836144f0565b6000805160206145de83398151915281526e696420766f74696e672064656c617960881b602082015260400192915050565b60006135806044836144f0565b7f476f7665726e6f72427261766f3a3a70726f706f73653a2070726f706f73616c81527f2066756e6374696f6e20696e666f726d6174696f6e206172697479206d69736d6020820152630c2e8c6d60e31b604082015260600192915050565b60006135ec6025836144f0565b7f476f7665726e6f72427261766f3a3a696e697469616c697a653a2061646d696e815264206f6e6c7960d81b602082015260400192915050565b60006136336040836144f0565b7f476f7665726e6f72427261766f3a3a5f73657450726f706f73616c546872657381527f686f6c643a20696e76616c69642070726f706f73616c207468726573686f6c64602082015260400192915050565b60006136926044836144f0565b7f476f7665726e6f72427261766f3a3a71756575653a2070726f706f73616c206381527f616e206f6e6c79206265207175657565642069662069742069732073756363656020820152631959195960e21b604082015260600192915050565b60006136fe6011836144f0565b706164646974696f6e206f766572666c6f7760781b815260200192915050565b600061372b604383610e57565b7f454950373132446f6d61696e28737472696e67206e616d652c75696e7432353681527f20636861696e49642c6164647265737320766572696679696e67436f6e74726160208201526263742960e81b604082015260430192915050565b60006137966030836144f0565b7f476f7665726e6f72427261766f3a3a5f696e6974696174653a2063616e206f6e81526f6c7920696e697469617465206f6e636560801b602082015260400192915050565b60006137e8602c836144f0565b7f476f7665726e6f72427261766f3a3a70726f706f73653a206d7573742070726f81526b7669646520616374696f6e7360a01b602082015260400192915050565b6000613836602e836144f0565b7f476f7665726e6f72427261766f3a5f61636365707441646d696e3a2070656e6481526d696e672061646d696e206f6e6c7960901b602082015260400192915050565b6000613886602f836144f0565b7f476f7665726e6f72427261766f3a3a63616e63656c3a2070726f706f7365722081526e18589bdd99481d1a1c995cda1bdb19608a1b602082015260400192915050565b60006138d7602b836144f0565b6000805160206145de83398151915281526a34b21033bab0b93234b0b760a91b602082015260400192915050565b60006139126028836144f0565b7f476f7665726e6f72427261766f3a3a70726f706f73653a20746f6f206d616e7981526720616374696f6e7360c01b602082015260400192915050565b600061395c6059836144f0565b7f476f7665726e6f72427261766f3a3a70726f706f73653a206f6e65206c69766581527f2070726f706f73616c207065722070726f706f7365722c20666f756e6420616e60208201527f20616c72656164792070656e64696e672070726f706f73616c00000000000000604082015260600192915050565b60006139e16034836144f0565b7f476f7665726e6f72427261766f3a3a5f73657450726f706f73616c4d61784f7081527365726174696f6e733a2061646d696e206f6e6c7960601b602082015260400192915050565b6000613a376058836144f0565b7f476f7665726e6f72427261766f3a3a70726f706f73653a206f6e65206c69766581527f2070726f706f73616c207065722070726f706f7365722c20666f756e6420616e60208201527f20616c7265616479206163746976652070726f706f73616c0000000000000000604082015260600192915050565b6000611b286000836144f0565b6000613ac96024836144f0565b7f476f7665726e6f72427261766f3a3a5f696e6974696174653a2061646d696e208152636f6e6c7960e01b602082015260400192915050565b6000613b0f603f836144f0565b7f476f7665726e6f72427261766f3a3a70726f706f73653a2070726f706f73657281527f20766f7465732062656c6f772070726f706f73616c207468726573686f6c6400602082015260400192915050565b6000613b6e6036836144f0565b7f476f7665726e6f72427261766f3a3a63616e63656c3a2063616e6e6f742063618152751b98d95b08195e1958dd5d1959081c1c9bdc1bdcd85b60521b602082015260400192915050565b6000613bc66030836144f0565b7f476f7665726e6f72427261766f3a3a5f73657450726f706f73616c546872657381526f686f6c643a2061646d696e206f6e6c7960801b602082015260400192915050565b6000613c186029836144f0565b7f476f7665726e6f72427261766f3a3a73746174653a20696e76616c69642070728152681bdc1bdcd85b081a5960ba1b602082015260400192915050565b6000613c636030836144f0565b6000805160206145de83398151915281526f1a59081d9bdd1a5b99c81c195c9a5bd960821b602082015260400192915050565b6000613ca3603b836144f0565b7f476f7665726e6f72427261766f3a3a5f736574477561726469616e3a2063616e81527f6e6f74206c69766520776974686f7574206120677561726469616e0000000000602082015260400192915050565b6000613d026033836144f0565b7f476f7665726e6f72427261766f3a3a5f736574477561726469616e3a2061646d815272696e206f7220677561726469616e206f6e6c7960681b602082015260400192915050565b6000613d576015836144f0565b747375627472616374696f6e20756e646572666c6f7760581b815260200192915050565b80516060830190613d8c8482612e7a565b506020820151613d9f6020850182613db8565b506040820151613db26040850182613dca565b50505050565b612cf58161451f565b612cf58161454e565b612cf581614525565b6000611b2882612fe7565b6000613de98261327e565b9150613df58285612e8c565b602082019150613e058284612e8c565b5060200192915050565b6000611b288261371e565b60208101611b288284612cfb565b60408101613e368285612cec565b6121926020830184612e83565b60408101613e518285612cfb565b6121926020830184612cfb565b60408101613e368285612cfb565b60a08101613e7a8288612cfb565b613e876020830187612e83565b8181036040830152613e998186612e9d565b90508181036060830152613ead8185612e9d565b9050613ebc6080830184612e83565b9695505050505050565b60a08101613ed48288612cfb565b613ee16020830187612e83565b8181036040830152613ef38186612ed5565b90508181036060830152613ead8185612ed5565b60808082528101613f188187612d04565b90508181036020830152613f2c8186612e2c565b90508181036040830152613f408185612dcb565b90508181036060830152613ebc8184612d5d565b60208101611b288284612e83565b60808101613f708287612e83565b613f7d6020830186612e83565b613f8a6040830185612e83565b6118306060830184612cfb565b60608101613fa58286612e83565b613fb26020830185612e83565b61295e6040830184613db8565b60808101613fcd8287612e83565b613fda6020830186613db8565b613fe76040830185612e83565b6118306060830184612e83565b60208101611b288284612f5f565b60208101611b288284612f68565b602080825281016121928184612e9d565b60208082528101611b2881612f93565b60208082528101611b2881613031565b60208082528101611b2881613086565b60208082528101611b28816130d2565b60208082528101611b288161314f565b60208082528101611b288161319c565b60208082528101611b28816131df565b60208082528101611b288161322b565b60208082528101611b288161329c565b60208082528101611b28816132f4565b60208082528101611b2881613347565b60208082528101611b288161339d565b60208082528101611b28816133db565b60208082528101611b2881613431565b60208082528101611b2881613476565b60208082528101611b28816134e3565b60208082528101611b2881613534565b60208082528101611b2881613573565b60208082528101611b28816135df565b60208082528101611b2881613626565b60208082528101611b2881613685565b60208082528101611b28816136f1565b60208082528101611b2881613789565b60208082528101611b28816137db565b60208082528101611b2881613829565b60208082528101611b2881613879565b60208082528101611b28816138ca565b60208082528101611b2881613905565b60208082528101611b288161394f565b60208082528101611b28816139d4565b60208082528101611b2881613a2a565b60208082528101611b2881613abc565b60208082528101611b2881613b02565b60208082528101611b2881613b61565b60208082528101611b2881613bb9565b60208082528101611b2881613c0b565b60208082528101611b2881613c56565b60208082528101611b2881613c96565b60208082528101611b2881613cf5565b60208082528101611b2881613d4a565b60608101611b288284613d7b565b61012081016142be828c612e83565b6142cb602083018b612cec565b81810360408301526142dd818a612d04565b905081810360608301526142f18189612e2c565b905081810360808301526143058188612dcb565b905081810360a08301526143198187612d5d565b905061432860c0830186612e83565b61433560e0830185612e83565b8181036101008301526143488184612e9d565b9b9a5050505050505050505050565b6101408101614366828d612e83565b614373602083018c612cfb565b614380604083018b612e83565b61438d606083018a612e83565b61439a6080830189612e83565b6143a760a0830188612e83565b6143b460c0830187612e83565b6143c160e0830186612e83565b6143cf610100830185612e7a565b614348610120830184612e7a565b60408101613e368285612e83565b608081016143f98288612e83565b6144066020830187613db8565b6144136040830186613dc1565b8181036060830152614426818486612f71565b979650505050505050565b6080810161443f8286612e83565b61444c6020830185613db8565b6144596040830184613dc1565b818103606083015261183081613aaf565b60405181810167ffffffffffffffff8111828210171561448957600080fd5b604052919050565b600067ffffffffffffffff8211156144a857600080fd5b5060209081020190565b600067ffffffffffffffff8211156144c957600080fd5b506020601f91909101601f19160190565b60200190565b60009081526020902090565b5190565b90815260200190565b6000611b2882614513565b151590565b80610e578161459b565b6001600160a01b031690565b60ff1690565b6001600160601b031690565b6000611b28825b6000611b28826144f9565b6000611b2882614509565b6000611b2882614525565b82818337506000910152565b60005b83811015614580578181015183820152602001614568565b83811115613db25750506000910152565b601f01601f191690565b6008811061267457fe5b6145ae816144f9565b811461267457600080fd5b6145ae81614504565b6145ae81611fa5565b6145ae8161451f565b6145ae8161452556fe476f7665726e6f72427261766f3a3a696e697469616c697a653a20696e76616ca365627a7a72315820b9a6b9c60844b6c8ba29f2974fe741c3252179b2d9f635206a558ec5f97598566c6578706572696d656e74616cf564736f6c63430005100040","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4640 DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x269 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x5C60DA1B GT PUSH2 0x151 JUMPI DUP1 PUSH4 0xDA95691A GT PUSH2 0xC3 JUMPI DUP1 PUSH4 0xE48083FE GT PUSH2 0x87 JUMPI DUP1 PUSH4 0xE48083FE EQ PUSH2 0x4DB JUMPI DUP1 PUSH4 0xE9C714F2 EQ PUSH2 0x4E3 JUMPI DUP1 PUSH4 0xF851A440 EQ PUSH2 0x4EB JUMPI DUP1 PUSH4 0xF9D28B80 EQ PUSH2 0x4F3 JUMPI DUP1 PUSH4 0xFC4EEE42 EQ PUSH2 0x506 JUMPI DUP1 PUSH4 0xFE0D94C1 EQ PUSH2 0x50E JUMPI PUSH2 0x269 JUMP JUMPDEST DUP1 PUSH4 0xDA95691A EQ PUSH2 0x47A JUMPI DUP1 PUSH4 0xDDF0B009 EQ PUSH2 0x48D JUMPI DUP1 PUSH4 0xDEAAA7CC EQ PUSH2 0x4A0 JUMPI DUP1 PUSH4 0xE23A9A52 EQ PUSH2 0x4A8 JUMPI DUP1 PUSH4 0xE38E8C0F EQ PUSH2 0x4C8 JUMPI PUSH2 0x269 JUMP JUMPDEST DUP1 PUSH4 0xB1126263 GT PUSH2 0x115 JUMPI DUP1 PUSH4 0xB1126263 EQ PUSH2 0x434 JUMPI DUP1 PUSH4 0xB1A5D12D EQ PUSH2 0x43C JUMPI DUP1 PUSH4 0xB58131B0 EQ PUSH2 0x44F JUMPI DUP1 PUSH4 0xB71D1A0C EQ PUSH2 0x457 JUMPI DUP1 PUSH4 0xD33219B4 EQ PUSH2 0x46A JUMPI DUP1 PUSH4 0xDA35C664 EQ PUSH2 0x472 JUMPI PUSH2 0x269 JUMP JUMPDEST DUP1 PUSH4 0x5C60DA1B EQ PUSH2 0x401 JUMPI DUP1 PUSH4 0x791F5D23 EQ PUSH2 0x409 JUMPI DUP1 PUSH4 0x7B3C71D3 EQ PUSH2 0x411 JUMPI DUP1 PUSH4 0x7BDBE4D0 EQ PUSH2 0x424 JUMPI DUP1 PUSH4 0xA64E024A EQ PUSH2 0x42C JUMPI PUSH2 0x269 JUMP JUMPDEST DUP1 PUSH4 0x215809CA GT PUSH2 0x1EA JUMPI DUP1 PUSH4 0x3932ABB1 GT PUSH2 0x1AE JUMPI DUP1 PUSH4 0x3932ABB1 EQ PUSH2 0x398 JUMPI DUP1 PUSH4 0x3BCCF4FD EQ PUSH2 0x3A0 JUMPI DUP1 PUSH4 0x3E4F49E6 EQ PUSH2 0x3B3 JUMPI DUP1 PUSH4 0x40E58EE5 EQ PUSH2 0x3D3 JUMPI DUP1 PUSH4 0x452A9320 EQ PUSH2 0x3E6 JUMPI DUP1 PUSH4 0x56781388 EQ PUSH2 0x3EE JUMPI PUSH2 0x269 JUMP JUMPDEST DUP1 PUSH4 0x215809CA EQ PUSH2 0x348 JUMPI DUP1 PUSH4 0x24BC1A64 EQ PUSH2 0x350 JUMPI DUP1 PUSH4 0x25FD935A EQ PUSH2 0x358 JUMPI DUP1 PUSH4 0x26782247 EQ PUSH2 0x360 JUMPI DUP1 PUSH4 0x328DD982 EQ PUSH2 0x375 JUMPI PUSH2 0x269 JUMP JUMPDEST DUP1 PUSH4 0x17BA1B8B GT PUSH2 0x231 JUMPI DUP1 PUSH4 0x17BA1B8B EQ PUSH2 0x2F2 JUMPI DUP1 PUSH4 0x1B9CE575 EQ PUSH2 0x305 JUMPI DUP1 PUSH4 0x1DFB1B5A EQ PUSH2 0x31A JUMPI DUP1 PUSH4 0x1EBCFEFD EQ PUSH2 0x32D JUMPI DUP1 PUSH4 0x20606B70 EQ PUSH2 0x340 JUMPI PUSH2 0x269 JUMP JUMPDEST DUP1 PUSH4 0x13CF08B EQ PUSH2 0x26E JUMPI DUP1 PUSH4 0x2A251A3 EQ PUSH2 0x2A0 JUMPI DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x2B5 JUMPI DUP1 PUSH4 0xEA2D98C EQ PUSH2 0x2CA JUMPI DUP1 PUSH4 0x17977C61 EQ PUSH2 0x2DF JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x281 PUSH2 0x27C CALLDATASIZE PUSH1 0x4 PUSH2 0x2B4A JUMP JUMPDEST PUSH2 0x521 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x297 SWAP11 SWAP10 SWAP9 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4357 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2A8 PUSH2 0x584 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x297 SWAP2 SWAP1 PUSH2 0x3F54 JUMP JUMPDEST PUSH2 0x2BD PUSH2 0x58A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x297 SWAP2 SWAP1 PUSH2 0x4010 JUMP JUMPDEST PUSH2 0x2DD PUSH2 0x2D8 CALLDATASIZE PUSH1 0x4 PUSH2 0x2B4A JUMP JUMPDEST PUSH2 0x5BA JUMP JUMPDEST STOP JUMPDEST PUSH2 0x2A8 PUSH2 0x2ED CALLDATASIZE PUSH1 0x4 PUSH2 0x2940 JUMP JUMPDEST PUSH2 0x664 JUMP JUMPDEST PUSH2 0x2DD PUSH2 0x300 CALLDATASIZE PUSH1 0x4 PUSH2 0x2B4A JUMP JUMPDEST PUSH2 0x676 JUMP JUMPDEST PUSH2 0x30D PUSH2 0x71A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x297 SWAP2 SWAP1 PUSH2 0x3FF4 JUMP JUMPDEST PUSH2 0x2DD PUSH2 0x328 CALLDATASIZE PUSH1 0x4 PUSH2 0x2B4A JUMP JUMPDEST PUSH2 0x729 JUMP JUMPDEST PUSH2 0x2DD PUSH2 0x33B CALLDATASIZE PUSH1 0x4 PUSH2 0x2B4A JUMP JUMPDEST PUSH2 0x7BD JUMP JUMPDEST PUSH2 0x2A8 PUSH2 0x821 JUMP JUMPDEST PUSH2 0x2A8 PUSH2 0x838 JUMP JUMPDEST PUSH2 0x2A8 PUSH2 0x83E JUMP JUMPDEST PUSH2 0x2A8 PUSH2 0x84C JUMP JUMPDEST PUSH2 0x368 PUSH2 0x85A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x297 SWAP2 SWAP1 PUSH2 0x3E1A JUMP JUMPDEST PUSH2 0x388 PUSH2 0x383 CALLDATASIZE PUSH1 0x4 PUSH2 0x2B4A JUMP JUMPDEST PUSH2 0x869 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x297 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3F07 JUMP JUMPDEST PUSH2 0x2A8 PUSH2 0xAF8 JUMP JUMPDEST PUSH2 0x2DD PUSH2 0x3AE CALLDATASIZE PUSH1 0x4 PUSH2 0x2C3A JUMP JUMPDEST PUSH2 0xAFE JUMP JUMPDEST PUSH2 0x3C6 PUSH2 0x3C1 CALLDATASIZE PUSH1 0x4 PUSH2 0x2B4A JUMP JUMPDEST PUSH2 0xCD6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x297 SWAP2 SWAP1 PUSH2 0x4002 JUMP JUMPDEST PUSH2 0x2DD PUSH2 0x3E1 CALLDATASIZE PUSH1 0x4 PUSH2 0x2B4A JUMP JUMPDEST PUSH2 0xE5C JUMP JUMPDEST PUSH2 0x368 PUSH2 0x10C5 JUMP JUMPDEST PUSH2 0x2DD PUSH2 0x3FC CALLDATASIZE PUSH1 0x4 PUSH2 0x2BA2 JUMP JUMPDEST PUSH2 0x10D4 JUMP JUMPDEST PUSH2 0x368 PUSH2 0x111E JUMP JUMPDEST PUSH2 0x2A8 PUSH2 0x112D JUMP JUMPDEST PUSH2 0x2DD PUSH2 0x41F CALLDATASIZE PUSH1 0x4 PUSH2 0x2BD2 JUMP JUMPDEST PUSH2 0x113B JUMP JUMPDEST PUSH2 0x2A8 PUSH2 0x118B JUMP JUMPDEST PUSH2 0x2A8 PUSH2 0x1191 JUMP JUMPDEST PUSH2 0x2A8 PUSH2 0x1198 JUMP JUMPDEST PUSH2 0x2DD PUSH2 0x44A CALLDATASIZE PUSH1 0x4 PUSH2 0x2966 JUMP JUMPDEST PUSH2 0x119F JUMP JUMPDEST PUSH2 0x2A8 PUSH2 0x1358 JUMP JUMPDEST PUSH2 0x2DD PUSH2 0x465 CALLDATASIZE PUSH1 0x4 PUSH2 0x2940 JUMP JUMPDEST PUSH2 0x135E JUMP JUMPDEST PUSH2 0x30D PUSH2 0x13DB JUMP JUMPDEST PUSH2 0x2A8 PUSH2 0x13EA JUMP JUMPDEST PUSH2 0x2A8 PUSH2 0x488 CALLDATASIZE PUSH1 0x4 PUSH2 0x29ED JUMP JUMPDEST PUSH2 0x13F0 JUMP JUMPDEST PUSH2 0x2DD PUSH2 0x49B CALLDATASIZE PUSH1 0x4 PUSH2 0x2B4A JUMP JUMPDEST PUSH2 0x1839 JUMP JUMPDEST PUSH2 0x2A8 PUSH2 0x1AB5 JUMP JUMPDEST PUSH2 0x4BB PUSH2 0x4B6 CALLDATASIZE PUSH1 0x4 PUSH2 0x2B68 JUMP JUMPDEST PUSH2 0x1AC1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x297 SWAP2 SWAP1 PUSH2 0x42A1 JUMP JUMPDEST PUSH2 0x2DD PUSH2 0x4D6 CALLDATASIZE PUSH1 0x4 PUSH2 0x2940 JUMP JUMPDEST PUSH2 0x1B2E JUMP JUMPDEST PUSH2 0x2A8 PUSH2 0x1BE6 JUMP JUMPDEST PUSH2 0x2DD PUSH2 0x1BEB JUMP JUMPDEST PUSH2 0x368 PUSH2 0x1CC9 JUMP JUMPDEST PUSH2 0x2DD PUSH2 0x501 CALLDATASIZE PUSH1 0x4 PUSH2 0x2940 JUMP JUMPDEST PUSH2 0x1CD8 JUMP JUMPDEST PUSH2 0x2A8 PUSH2 0x1DFE JUMP JUMPDEST PUSH2 0x2DD PUSH2 0x51C CALLDATASIZE PUSH1 0x4 PUSH2 0x2B4A JUMP JUMPDEST PUSH2 0x1E04 JUMP JUMPDEST PUSH1 0xA PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x40 SWAP1 SWAP2 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 SWAP7 DUP7 ADD SLOAD PUSH1 0xB DUP8 ADD SLOAD PUSH1 0xC SWAP1 SWAP8 ADD SLOAD SWAP6 SWAP8 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP6 AND SWAP7 SWAP4 SWAP6 SWAP3 SWAP5 SWAP2 SWAP4 SWAP2 SWAP3 SWAP1 SWAP2 SWAP1 PUSH1 0xFF DUP1 DUP3 AND SWAP2 PUSH2 0x100 SWAP1 DIV AND DUP11 JUMP JUMPDEST PUSH1 0x4 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x14 DUP2 MSTORE PUSH1 0x20 ADD PUSH20 0x56656E757320476F7665726E6F7220427261766F PUSH1 0x60 SHL DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x5ED JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5E4 SWAP1 PUSH2 0x4061 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xE10 DUP2 LT ISZERO DUP1 ISZERO PUSH2 0x602 JUMPI POP PUSH3 0x62700 DUP2 GT ISZERO JUMPDEST PUSH2 0x61E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5E4 SWAP1 PUSH2 0x40A1 JUMP JUMPDEST PUSH1 0x4 DUP1 SLOAD SWAP1 DUP3 SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH32 0x7E3F7F0708A84DE9203036ABAA450DCCC85AD5FF52F78C170F3EDB55CF5E8828 SWAP1 PUSH2 0x658 SWAP1 DUP4 SWAP1 DUP6 SWAP1 PUSH2 0x43DD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x6A0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5E4 SWAP1 PUSH2 0x4241 JUMP JUMPDEST PUSH10 0x1FC3842BD1F071C00000 DUP2 LT ISZERO DUP1 ISZERO PUSH2 0x6C4 JUMPI POP PUSH10 0x3F870857A3E0E3800000 DUP2 GT ISZERO JUMPDEST PUSH2 0x6E0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5E4 SWAP1 PUSH2 0x4151 JUMP JUMPDEST PUSH1 0x5 DUP1 SLOAD SWAP1 DUP3 SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH32 0xCCB45DA8D5717E6C4544694297C4BA5CF151D455C9BB0ED4FC7A38411BC05461 SWAP1 PUSH2 0x658 SWAP1 DUP4 SWAP1 DUP6 SWAP1 PUSH2 0x43DD JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x753 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5E4 SWAP1 PUSH2 0x4081 JUMP JUMPDEST PUSH1 0x1 DUP2 LT ISZERO DUP1 ISZERO PUSH2 0x767 JUMPI POP PUSH3 0x31380 DUP2 GT ISZERO JUMPDEST PUSH2 0x783 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5E4 SWAP1 PUSH2 0x40E1 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD SWAP1 DUP3 SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH32 0xC565B045403DC03C2EEA82B81A0465EDAD9E2E7FC4D97E11421C209DA93D7A93 SWAP1 PUSH2 0x658 SWAP1 DUP4 SWAP1 DUP6 SWAP1 PUSH2 0x43DD JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x7E7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5E4 SWAP1 PUSH2 0x41F1 JUMP JUMPDEST PUSH1 0xC DUP1 SLOAD SWAP1 DUP3 SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH32 0xD03B3C3C5C1446BCDD31423061041C94CA3BC5450FE7CCFB0F636F4C420DE87E SWAP1 PUSH2 0x658 SWAP1 DUP4 SWAP1 DUP6 SWAP1 PUSH2 0x43DD JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x82D SWAP1 PUSH2 0x3E0F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 DUP2 JUMP JUMPDEST PUSH2 0xE10 DUP2 JUMP JUMPDEST PUSH10 0x7F0E10AF47C1C7000000 DUP2 JUMP JUMPDEST PUSH10 0x3F870857A3E0E3800000 DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x60 DUP1 PUSH1 0x60 DUP1 PUSH1 0x0 PUSH1 0xA 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 0x8EB 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 0x8CD 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 0x93D 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 0x929 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 0xA10 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 0x9FC JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x9D1 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x9FC 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 0x9DF 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 0x965 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 0xAE2 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 0xACE JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xAA3 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xACE 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 0xAB1 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 0xA37 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 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD PUSH2 0xB0C SWAP1 PUSH2 0x3E0F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB DUP3 KECCAK256 DUP3 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x14 DUP3 MSTORE PUSH20 0x56656E757320476F7665726E6F7220427261766F PUSH1 0x60 SHL PUSH1 0x20 SWAP1 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0x157D76627A3B71C0167806F5879F7A61D3E301322F3A3B9F900315F15937671A PUSH2 0xB6A PUSH2 0x1FA3 JUMP JUMPDEST ADDRESS PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xB7E SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3F62 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 0xBA4 SWAP1 PUSH2 0x3DD3 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB DUP2 KECCAK256 PUSH2 0xBBD SWAP2 DUP10 SWAP1 DUP10 SWAP1 PUSH1 0x20 ADD PUSH2 0x3F97 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 0xBEA SWAP3 SWAP2 SWAP1 PUSH2 0x3DDE 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 0xC27 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3FBF JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xC49 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 0xC7C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5E4 SWAP1 PUSH2 0x4111 JUMP JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xB8E138887D0AA13BAB447E82DE9D5C1777041ECD21CA36BA824FF1E6C07DDDA4 DUP11 DUP11 PUSH2 0xCB4 DUP6 DUP15 DUP15 PUSH2 0x1FA8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xCC3 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4431 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x7 SLOAD LT ISZERO DUP1 ISZERO PUSH2 0xCEB JUMPI POP PUSH1 0x6 SLOAD DUP3 GT JUMPDEST PUSH2 0xD07 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5E4 SWAP1 PUSH2 0x4251 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0xC DUP2 ADD SLOAD PUSH1 0xFF AND ISZERO PUSH2 0xD2C JUMPI PUSH1 0x2 SWAP2 POP POP PUSH2 0xE57 JUMP JUMPDEST DUP1 PUSH1 0x7 ADD SLOAD NUMBER GT PUSH2 0xD41 JUMPI PUSH1 0x0 SWAP2 POP POP PUSH2 0xE57 JUMP JUMPDEST DUP1 PUSH1 0x8 ADD SLOAD NUMBER GT PUSH2 0xD56 JUMPI PUSH1 0x1 SWAP2 POP POP PUSH2 0xE57 JUMP JUMPDEST DUP1 PUSH1 0xA ADD SLOAD DUP2 PUSH1 0x9 ADD SLOAD GT ISZERO DUP1 PUSH2 0xD7A JUMPI POP PUSH10 0x7F0E10AF47C1C7000000 DUP2 PUSH1 0x9 ADD SLOAD LT JUMPDEST ISZERO PUSH2 0xD89 JUMPI PUSH1 0x3 SWAP2 POP POP PUSH2 0xE57 JUMP JUMPDEST PUSH1 0x2 DUP2 ADD SLOAD PUSH2 0xD9C JUMPI PUSH1 0x4 SWAP2 POP POP PUSH2 0xE57 JUMP JUMPDEST PUSH1 0xC DUP2 ADD SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0xDB8 JUMPI PUSH1 0x7 SWAP2 POP POP PUSH2 0xE57 JUMP JUMPDEST PUSH1 0x2 DUP2 ADD SLOAD PUSH1 0x8 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH4 0x60D143F1 PUSH1 0xE1 SHL DUP2 MSTORE SWAP1 MLOAD PUSH2 0xE41 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 0xE04 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xE18 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 0xE3C SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2AF7 JUMP JUMPDEST PUSH2 0x2199 JUMP JUMPDEST TIMESTAMP LT PUSH2 0xE51 JUMPI PUSH1 0x6 SWAP2 POP POP PUSH2 0xE57 JUMP JUMPDEST PUSH1 0x5 SWAP2 POP POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x7 PUSH2 0xE67 DUP3 PUSH2 0xCD6 JUMP JUMPDEST PUSH1 0x7 DUP2 GT ISZERO PUSH2 0xE72 JUMPI INVALID JUMPDEST EQ ISZERO PUSH2 0xE90 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5E4 SWAP1 PUSH2 0x4231 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0xD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ DUP1 PUSH2 0xEC3 JUMPI POP PUSH1 0x1 DUP2 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ JUMPDEST DUP1 PUSH2 0xF6D JUMPI POP PUSH1 0x5 SLOAD PUSH1 0x9 SLOAD PUSH1 0x1 DUP4 DUP2 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 AND SWAP3 PUSH4 0x782D6FE1 SWAP3 SWAP2 AND SWAP1 PUSH2 0xEF5 SWAP1 NUMBER SWAP1 PUSH2 0x21BE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xF12 SWAP3 SWAP2 SWAP1 PUSH2 0x3E5E JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xF2A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xF3E 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 0xF62 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2CA2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB AND LT JUMPDEST PUSH2 0xF89 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5E4 SWAP1 PUSH2 0x41B1 JUMP JUMPDEST PUSH1 0xC 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 0x1095 JUMPI PUSH1 0x8 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 0xFCD 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 0xFF5 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD DUP6 PUSH1 0x5 ADD DUP6 DUP2 SLOAD DUP2 LT PUSH2 0x100F JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD DUP7 PUSH1 0x6 ADD DUP7 DUP2 SLOAD DUP2 LT PUSH2 0x1028 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 0x1057 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3EC6 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1071 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1085 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 POP PUSH2 0xF9B SWAP1 POP JUMP JUMPDEST POP PUSH32 0x789CF55BE980739DAD1D0699B93B58E806B51C9D96619BFA8FE0A28ABAA7B30C DUP3 PUSH1 0x40 MLOAD PUSH2 0x658 SWAP2 SWAP1 PUSH2 0x3F54 JUMP JUMPDEST PUSH1 0xD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST CALLER PUSH32 0xB8E138887D0AA13BAB447E82DE9D5C1777041ECD21CA36BA824FF1E6C07DDDA4 DUP4 DUP4 PUSH2 0x1103 DUP5 DUP4 DUP4 PUSH2 0x1FA8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1112 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4431 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH10 0x1FC3842BD1F071C00000 DUP2 JUMP JUMPDEST CALLER PUSH32 0xB8E138887D0AA13BAB447E82DE9D5C1777041ECD21CA36BA824FF1E6C07DDDA4 DUP6 DUP6 PUSH2 0x116A DUP5 DUP4 DUP4 PUSH2 0x1FA8 JUMP JUMPDEST DUP7 DUP7 PUSH1 0x40 MLOAD PUSH2 0x117D SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x43EB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP POP JUMP JUMPDEST PUSH1 0xC SLOAD DUP2 JUMP JUMPDEST PUSH3 0x62700 DUP2 JUMP JUMPDEST PUSH3 0x31380 DUP2 JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ISZERO PUSH2 0x11C8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5E4 SWAP1 PUSH2 0x4031 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x11F2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5E4 SWAP1 PUSH2 0x4141 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH2 0x1218 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5E4 SWAP1 PUSH2 0x4071 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH2 0x123E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5E4 SWAP1 PUSH2 0x40D1 JUMP JUMPDEST PUSH2 0xE10 DUP5 LT ISZERO DUP1 ISZERO PUSH2 0x1253 JUMPI POP PUSH3 0x62700 DUP5 GT ISZERO JUMPDEST PUSH2 0x126F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5E4 SWAP1 PUSH2 0x4261 JUMP JUMPDEST PUSH1 0x1 DUP4 LT ISZERO DUP1 ISZERO PUSH2 0x1283 JUMPI POP PUSH3 0x31380 DUP4 GT ISZERO JUMPDEST PUSH2 0x129F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5E4 SWAP1 PUSH2 0x4121 JUMP JUMPDEST PUSH10 0x1FC3842BD1F071C00000 DUP3 LT ISZERO DUP1 ISZERO PUSH2 0x12C3 JUMPI POP PUSH10 0x3F870857A3E0E3800000 DUP3 GT ISZERO JUMPDEST PUSH2 0x12DF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5E4 SWAP1 PUSH2 0x40F1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x1305 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5E4 SWAP1 PUSH2 0x41C1 JUMP JUMPDEST PUSH1 0x8 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP8 DUP9 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP2 DUP3 AND OR SWAP1 SWAP2 SSTORE PUSH1 0x9 DUP1 SLOAD SWAP7 DUP9 AND SWAP7 DUP3 AND SWAP7 SWAP1 SWAP7 OR SWAP1 SWAP6 SSTORE PUSH1 0x4 SWAP4 SWAP1 SWAP4 SSTORE PUSH1 0x3 SWAP2 SWAP1 SWAP2 SSTORE PUSH1 0x5 SSTORE PUSH1 0xA PUSH1 0xC SSTORE PUSH1 0xD DUP1 SLOAD SWAP2 SWAP1 SWAP4 AND SWAP2 AND OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x5 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x1388 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5E4 SWAP1 PUSH2 0x4041 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND OR SWAP1 SWAP3 SSTORE PUSH1 0x40 MLOAD SWAP2 AND SWAP1 PUSH32 0xCA4F2F25D0898EDD99413412FB94012F9E54EC8142F9B093E7720646A95B16A9 SWAP1 PUSH2 0x658 SWAP1 DUP4 SWAP1 DUP6 SWAP1 PUSH2 0x3E43 JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x7 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x6 SLOAD PUSH1 0x0 EQ ISZERO PUSH2 0x1415 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5E4 SWAP1 PUSH2 0x4091 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x9 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x782D6FE1 CALLER PUSH2 0x1435 NUMBER PUSH1 0x1 PUSH2 0x21BE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1452 SWAP3 SWAP2 SWAP1 PUSH2 0x3E28 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x146A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x147E 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 0x14A2 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2CA2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB AND GT PUSH2 0x14C8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5E4 SWAP1 PUSH2 0x4221 JUMP JUMPDEST DUP5 MLOAD DUP7 MLOAD EQ DUP1 ISZERO PUSH2 0x14DA JUMPI POP DUP4 MLOAD DUP7 MLOAD EQ JUMPDEST DUP1 ISZERO PUSH2 0x14E7 JUMPI POP DUP3 MLOAD DUP7 MLOAD EQ JUMPDEST PUSH2 0x1503 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5E4 SWAP1 PUSH2 0x4131 JUMP JUMPDEST DUP6 MLOAD PUSH2 0x1521 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5E4 SWAP1 PUSH2 0x4191 JUMP JUMPDEST PUSH1 0xC SLOAD DUP7 MLOAD GT ISZERO PUSH2 0x1544 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5E4 SWAP1 PUSH2 0x41D1 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP1 ISZERO PUSH2 0x15C1 JUMPI PUSH1 0x0 PUSH2 0x1565 DUP3 PUSH2 0xCD6 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 DUP2 PUSH1 0x7 DUP2 GT ISZERO PUSH2 0x1575 JUMPI INVALID JUMPDEST EQ ISZERO PUSH2 0x1593 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5E4 SWAP1 PUSH2 0x4201 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x7 DUP2 GT ISZERO PUSH2 0x15A1 JUMPI INVALID JUMPDEST EQ ISZERO PUSH2 0x15BF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5E4 SWAP1 PUSH2 0x41E1 JUMP JUMPDEST POP JUMPDEST PUSH1 0x0 PUSH2 0x15CF NUMBER PUSH1 0x3 SLOAD PUSH2 0x2199 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x15DF DUP3 PUSH1 0x4 SLOAD PUSH2 0x2199 JUMP JUMPDEST PUSH1 0x7 DUP1 SLOAD PUSH1 0x1 ADD SWAP1 SSTORE SWAP1 POP PUSH2 0x15F2 PUSH2 0x2345 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH2 0x1C0 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x7 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 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 0xA 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 0x16DC SWAP3 SWAP2 SWAP1 PUSH2 0x23C1 JUMP JUMPDEST POP PUSH1 0x80 DUP3 ADD MLOAD DUP1 MLOAD PUSH2 0x16F8 SWAP2 PUSH1 0x4 DUP5 ADD SWAP2 PUSH1 0x20 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x2426 JUMP JUMPDEST POP PUSH1 0xA0 DUP3 ADD MLOAD DUP1 MLOAD PUSH2 0x1714 SWAP2 PUSH1 0x5 DUP5 ADD SWAP2 PUSH1 0x20 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x246D JUMP JUMPDEST POP PUSH1 0xC0 DUP3 ADD MLOAD DUP1 MLOAD PUSH2 0x1730 SWAP2 PUSH1 0x6 DUP5 ADD SWAP2 PUSH1 0x20 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x24C6 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 SSTORE PUSH2 0x180 DUP3 ADD MLOAD DUP2 PUSH1 0xC ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH2 0x1A0 DUP3 ADD MLOAD DUP2 PUSH1 0xC 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 0xB 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 0x1821 SWAP10 SWAP9 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x42AF 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 0x1844 DUP3 PUSH2 0xCD6 JUMP JUMPDEST PUSH1 0x7 DUP2 GT ISZERO PUSH2 0x184F JUMPI INVALID JUMPDEST EQ PUSH2 0x186C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5E4 SWAP1 PUSH2 0x4161 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x8 SLOAD DUP3 MLOAD PUSH4 0xD48571F PUSH1 0xE3 SHL DUP2 MSTORE SWAP3 MLOAD SWAP2 SWAP5 SWAP4 PUSH2 0x18C6 SWAP4 TIMESTAMP SWAP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP4 AND SWAP3 PUSH4 0x6A42B8F8 SWAP3 PUSH1 0x4 DUP1 DUP5 ADD SWAP4 SWAP2 SWAP3 SWAP2 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xE04 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 POP PUSH1 0x0 JUMPDEST PUSH1 0x3 DUP4 ADD SLOAD DUP2 LT ISZERO PUSH2 0x1A6E JUMPI PUSH2 0x1A66 DUP4 PUSH1 0x3 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x18E9 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 0x1911 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD DUP6 PUSH1 0x5 ADD DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x192B 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 0x19B9 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x198E JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x19B9 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 0x199C 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 0x19CD 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 0x1A5B JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1A30 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1A5B 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 0x1A3E JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP7 PUSH2 0x21E6 JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0x18CB JUMP JUMPDEST POP PUSH1 0x2 DUP3 ADD DUP2 SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH32 0x9A2E42FD6722813D69113E7D0079D3D940171428DF7373DF9C7F7617CFDA2892 SWAP1 PUSH2 0x1AA8 SWAP1 DUP6 SWAP1 DUP5 SWAP1 PUSH2 0x43DD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x82D SWAP1 PUSH2 0x3DD3 JUMP JUMPDEST PUSH2 0x1AC9 PUSH2 0x251F JUMP JUMPDEST POP PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP5 MSTORE PUSH1 0xD 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 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 0xD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ DUP1 PUSH2 0x1B51 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ JUMPDEST PUSH2 0x1B6D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5E4 SWAP1 PUSH2 0x4281 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x1B93 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5E4 SWAP1 PUSH2 0x4271 JUMP JUMPDEST PUSH1 0xD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND OR SWAP1 SWAP3 SSTORE PUSH1 0x40 MLOAD SWAP2 AND SWAP1 PUSH32 0x8FDAF06427A2010E5958F4329B566993472D14CE81D3F16CE7F2A2660DA98E3 SWAP1 PUSH2 0x658 SWAP1 DUP4 SWAP1 DUP6 SWAP1 PUSH2 0x3E43 JUMP JUMPDEST PUSH1 0x1 DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ DUP1 ISZERO PUSH2 0x1C04 JUMPI POP CALLER ISZERO ISZERO JUMPDEST PUSH2 0x1C20 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5E4 SWAP1 PUSH2 0x41A1 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP3 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP1 DUP7 AND DUP3 OR SWAP7 DUP8 SWAP1 SSTORE SWAP1 SWAP3 AND SWAP1 SWAP3 SSTORE PUSH1 0x40 MLOAD SWAP3 DUP3 AND SWAP4 SWAP1 SWAP3 PUSH32 0xF9FFABCA9C8276E99321725BCB43FB076A6C66A54B7F21C4E8146D8519B417DC SWAP3 PUSH2 0x1C84 SWAP3 DUP7 SWAP3 SWAP2 AND SWAP1 PUSH2 0x3E43 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD PUSH32 0xCA4F2F25D0898EDD99413412FB94012F9E54EC8142F9B093E7720646A95B16A9 SWAP2 PUSH2 0x658 SWAP2 DUP5 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH2 0x3E43 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x1D02 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5E4 SWAP1 PUSH2 0x4211 JUMP JUMPDEST PUSH1 0x6 SLOAD ISZERO PUSH2 0x1D22 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5E4 SWAP1 PUSH2 0x4181 JUMP JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xDA35C664 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1D5D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1D71 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 0x1D95 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2AF7 JUMP JUMPDEST PUSH1 0x7 DUP2 SWAP1 SSTORE PUSH1 0x6 SSTORE PUSH1 0x8 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 SWAP2 PUSH4 0xE18B681 SWAP2 PUSH1 0x4 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1DE3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1DF7 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x6 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x5 PUSH2 0x1E0F DUP3 PUSH2 0xCD6 JUMP JUMPDEST PUSH1 0x7 DUP2 GT ISZERO PUSH2 0x1E1A JUMPI INVALID JUMPDEST EQ PUSH2 0x1E37 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5E4 SWAP1 PUSH2 0x4101 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH1 0xC DUP2 ADD DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE SWAP1 JUMPDEST PUSH1 0x3 DUP3 ADD SLOAD DUP2 LT ISZERO PUSH2 0x1F73 JUMPI PUSH1 0x8 SLOAD PUSH1 0x3 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 0x1E8A 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 0x1EB2 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD DUP6 PUSH1 0x5 ADD DUP6 DUP2 SLOAD DUP2 LT PUSH2 0x1ECC JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD DUP7 PUSH1 0x6 ADD DUP7 DUP2 SLOAD DUP2 LT PUSH2 0x1EE5 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 0x1F14 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3EC6 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1F2E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1F42 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 0x1F6A SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2B15 JUMP JUMPDEST POP PUSH1 0x1 ADD PUSH2 0x1E58 JUMP JUMPDEST POP PUSH32 0x712AE1383F79AC853F8D882153778E0260EF8F03B504E2866E0593E04D2B291F DUP3 PUSH1 0x40 MLOAD PUSH2 0x658 SWAP2 SWAP1 PUSH2 0x3F54 JUMP JUMPDEST CHAINID JUMPDEST SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH2 0x1FB5 DUP5 PUSH2 0xCD6 JUMP JUMPDEST PUSH1 0x7 DUP2 GT ISZERO PUSH2 0x1FC0 JUMPI INVALID JUMPDEST EQ PUSH2 0x1FDD JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5E4 SWAP1 PUSH2 0x40B1 JUMP JUMPDEST PUSH1 0x2 DUP3 PUSH1 0xFF AND GT ISZERO PUSH2 0x2001 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5E4 SWAP1 PUSH2 0x4021 JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND DUP5 MSTORE PUSH1 0xD DUP2 ADD SWAP1 SWAP3 MSTORE SWAP1 SWAP2 KECCAK256 DUP1 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x204A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5E4 SWAP1 PUSH2 0x40C1 JUMP JUMPDEST PUSH1 0x9 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 0x2080 SWAP2 DUP12 SWAP2 PUSH1 0x4 ADD PUSH2 0x3E5E JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2098 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x20AC 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 0x20D0 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2CA2 JUMP JUMPDEST SWAP1 POP PUSH1 0xFF DUP6 AND PUSH2 0x20FB JUMPI PUSH2 0x20F1 DUP4 PUSH1 0xA ADD SLOAD DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB AND PUSH2 0x2199 JUMP JUMPDEST PUSH1 0xA DUP5 ADD SSTORE PUSH2 0x2151 JUMP JUMPDEST DUP5 PUSH1 0xFF AND PUSH1 0x1 EQ ISZERO PUSH2 0x2128 JUMPI PUSH2 0x211E DUP4 PUSH1 0x9 ADD SLOAD DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB AND PUSH2 0x2199 JUMP JUMPDEST PUSH1 0x9 DUP5 ADD SSTORE PUSH2 0x2151 JUMP JUMPDEST DUP5 PUSH1 0xFF AND PUSH1 0x2 EQ ISZERO PUSH2 0x2151 JUMPI PUSH2 0x214B DUP4 PUSH1 0xB ADD SLOAD DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB AND PUSH2 0x2199 JUMP JUMPDEST PUSH1 0xB DUP5 ADD SSTORE JUMPDEST DUP2 SLOAD PUSH1 0x1 PUSH1 0xFF NOT SWAP1 SWAP2 AND OR PUSH2 0xFF00 NOT AND PUSH2 0x100 PUSH1 0xFF DUP8 AND MUL OR PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFF0000 NOT AND PUSH3 0x10000 PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB DUP4 AND MUL OR SWAP1 SWAP2 SSTORE SWAP2 POP POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 ADD DUP4 DUP2 LT ISZERO PUSH2 0x2192 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5E4 SWAP1 PUSH2 0x4171 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 GT ISZERO PUSH2 0x21E0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5E4 SWAP1 PUSH2 0x4291 JUMP JUMPDEST POP SWAP1 SUB SWAP1 JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xF2B06537 SWAP1 PUSH2 0x2214 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH1 0x20 ADD PUSH2 0x3E6C 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 0x2246 SWAP2 SWAP1 PUSH2 0x3F54 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x225E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2272 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 0x2296 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2AD9 JUMP JUMPDEST ISZERO PUSH2 0x22B3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5E4 SWAP1 PUSH2 0x4051 JUMP JUMPDEST PUSH1 0x8 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 0x22EB SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH1 0x4 ADD PUSH2 0x3E6C JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2305 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2319 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 0x233D SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2AF7 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH2 0x1C0 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 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 0x2416 JUMPI SWAP2 PUSH1 0x20 MUL DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x2416 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 0x23E1 JUMP JUMPDEST POP PUSH2 0x2422 SWAP3 SWAP2 POP PUSH2 0x253F 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 0x2461 JUMPI SWAP2 PUSH1 0x20 MUL DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x2461 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x2446 JUMP JUMPDEST POP PUSH2 0x2422 SWAP3 SWAP2 POP PUSH2 0x2563 JUMP JUMPDEST DUP3 DUP1 SLOAD DUP3 DUP3 SSTORE SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP3 DUP3 ISZERO PUSH2 0x24BA JUMPI SWAP2 PUSH1 0x20 MUL DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x24BA JUMPI DUP3 MLOAD DUP1 MLOAD PUSH2 0x24AA SWAP2 DUP5 SWAP2 PUSH1 0x20 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x257D JUMP JUMPDEST POP SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x248D JUMP JUMPDEST POP PUSH2 0x2422 SWAP3 SWAP2 POP PUSH2 0x25EA JUMP JUMPDEST DUP3 DUP1 SLOAD DUP3 DUP3 SSTORE SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP3 DUP3 ISZERO PUSH2 0x2513 JUMPI SWAP2 PUSH1 0x20 MUL DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x2513 JUMPI DUP3 MLOAD DUP1 MLOAD PUSH2 0x2503 SWAP2 DUP5 SWAP2 PUSH1 0x20 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x257D JUMP JUMPDEST POP SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x24E6 JUMP JUMPDEST POP PUSH2 0x2422 SWAP3 SWAP2 POP PUSH2 0x260D 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 0x1FA5 SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x2422 JUMPI DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x2545 JUMP JUMPDEST PUSH2 0x1FA5 SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x2422 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x2569 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 0x25BE JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH2 0x2461 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x2461 JUMPI SWAP2 DUP3 ADD DUP3 DUP2 GT ISZERO PUSH2 0x2461 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x2446 JUMP JUMPDEST PUSH2 0x1FA5 SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x2422 JUMPI PUSH1 0x0 PUSH2 0x2604 DUP3 DUP3 PUSH2 0x2630 JUMP JUMPDEST POP PUSH1 0x1 ADD PUSH2 0x25F0 JUMP JUMPDEST PUSH2 0x1FA5 SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x2422 JUMPI PUSH1 0x0 PUSH2 0x2627 DUP3 DUP3 PUSH2 0x2630 JUMP JUMPDEST POP PUSH1 0x1 ADD PUSH2 0x2613 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 0x2656 JUMPI POP PUSH2 0x2674 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2674 SWAP2 SWAP1 PUSH2 0x2563 JUMP JUMPDEST POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x1B28 DUP2 PUSH2 0x45A5 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2693 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x26A6 PUSH2 0x26A1 DUP3 PUSH2 0x4491 JUMP JUMPDEST PUSH2 0x446A 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 0x26CB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x26F7 JUMPI DUP2 PUSH2 0x26E1 DUP9 DUP3 PUSH2 0x2677 JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x26CE JUMP JUMPDEST POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2712 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x2720 PUSH2 0x26A1 DUP3 PUSH2 0x4491 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 0x26F7 JUMPI DUP2 CALLDATALOAD DUP7 ADD PUSH2 0x2748 DUP9 DUP3 PUSH2 0x284C JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x2732 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x276F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x277D PUSH2 0x26A1 DUP3 PUSH2 0x4491 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 0x26F7 JUMPI DUP2 CALLDATALOAD DUP7 ADD PUSH2 0x27A5 DUP9 DUP3 PUSH2 0x284C JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x278F JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x27CC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x27DA PUSH2 0x26A1 DUP3 PUSH2 0x4491 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 0x27FF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x26F7 JUMPI DUP2 PUSH2 0x2815 DUP9 DUP3 PUSH2 0x2836 JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x2802 JUMP JUMPDEST DUP1 MLOAD PUSH2 0x1B28 DUP2 PUSH2 0x45B9 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x1B28 DUP2 PUSH2 0x45C2 JUMP JUMPDEST DUP1 MLOAD PUSH2 0x1B28 DUP2 PUSH2 0x45C2 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x285D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x286B PUSH2 0x26A1 DUP3 PUSH2 0x44B2 JUMP JUMPDEST SWAP2 POP DUP1 DUP3 MSTORE PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP4 ADD DUP6 DUP4 DUP4 ADD GT ISZERO PUSH2 0x2887 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2892 DUP4 DUP3 DUP5 PUSH2 0x4559 JUMP JUMPDEST POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x28AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x28BA PUSH2 0x26A1 DUP3 PUSH2 0x44B2 JUMP JUMPDEST SWAP2 POP DUP1 DUP3 MSTORE PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP4 ADD DUP6 DUP4 DUP4 ADD GT ISZERO PUSH2 0x28D6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2892 DUP4 DUP3 DUP5 PUSH2 0x4565 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x28F3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x290B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x2923 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x1B28 DUP2 PUSH2 0x45CB JUMP JUMPDEST DUP1 MLOAD PUSH2 0x1B28 DUP2 PUSH2 0x45D4 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2952 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x295E DUP5 DUP5 PUSH2 0x2677 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xC0 DUP8 DUP10 SUB SLT ISZERO PUSH2 0x297F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x298B DUP10 DUP10 PUSH2 0x2677 JUMP JUMPDEST SWAP7 POP POP PUSH1 0x20 PUSH2 0x299C DUP10 DUP3 DUP11 ADD PUSH2 0x2677 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x40 PUSH2 0x29AD DUP10 DUP3 DUP11 ADD PUSH2 0x2836 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x60 PUSH2 0x29BE DUP10 DUP3 DUP11 ADD PUSH2 0x2836 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x80 PUSH2 0x29CF DUP10 DUP3 DUP11 ADD PUSH2 0x2836 JUMP JUMPDEST SWAP3 POP POP PUSH1 0xA0 PUSH2 0x29E0 DUP10 DUP3 DUP11 ADD PUSH2 0x2677 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 POP SWAP3 SWAP6 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x2A05 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP6 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2A1C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2A28 DUP9 DUP3 DUP10 ADD PUSH2 0x2682 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2A45 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2A51 DUP9 DUP3 DUP10 ADD PUSH2 0x27BB JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2A6E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2A7A DUP9 DUP3 DUP10 ADD PUSH2 0x275E JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2A97 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2AA3 DUP9 DUP3 DUP10 ADD PUSH2 0x2701 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x80 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2AC0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2ACC DUP9 DUP3 DUP10 ADD PUSH2 0x284C 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 0x2AEB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x295E DUP5 DUP5 PUSH2 0x282B JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2B09 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x295E DUP5 DUP5 PUSH2 0x2841 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2B27 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2B3E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x295E DUP5 DUP3 DUP6 ADD PUSH2 0x289B JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2B5C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x295E DUP5 DUP5 PUSH2 0x2836 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2B7B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2B87 DUP6 DUP6 PUSH2 0x2836 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x2B98 DUP6 DUP3 DUP7 ADD PUSH2 0x2677 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2BB5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2BC1 DUP6 DUP6 PUSH2 0x2836 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x2B98 DUP6 DUP3 DUP7 ADD PUSH2 0x292A JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x60 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x2BE8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2BF4 DUP8 DUP8 PUSH2 0x2836 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 PUSH2 0x2C05 DUP8 DUP3 DUP9 ADD PUSH2 0x292A JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2C22 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2C2E DUP8 DUP3 DUP9 ADD PUSH2 0x28E1 JUMP JUMPDEST SWAP6 SWAP9 SWAP5 SWAP8 POP SWAP6 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x2C52 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2C5E DUP9 DUP9 PUSH2 0x2836 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 PUSH2 0x2C6F DUP9 DUP3 DUP10 ADD PUSH2 0x292A JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 PUSH2 0x2C80 DUP9 DUP3 DUP10 ADD PUSH2 0x292A JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 PUSH2 0x2C91 DUP9 DUP3 DUP10 ADD PUSH2 0x2836 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x80 PUSH2 0x2ACC DUP9 DUP3 DUP10 ADD PUSH2 0x2836 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2CB4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x295E DUP5 DUP5 PUSH2 0x2935 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2CCC DUP4 DUP4 PUSH2 0x2CFB JUMP JUMPDEST POP POP PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2192 DUP4 DUP4 PUSH2 0x2E9D JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2CCC DUP4 DUP4 PUSH2 0x2E83 JUMP JUMPDEST PUSH2 0x2CF5 DUP2 PUSH2 0x4531 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x2CF5 DUP2 PUSH2 0x44F9 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2D0F DUP3 PUSH2 0x44EC JUMP JUMPDEST PUSH2 0x2D19 DUP2 DUP6 PUSH2 0x44F0 JUMP JUMPDEST SWAP4 POP PUSH2 0x2D24 DUP4 PUSH2 0x44DA JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2D52 JUMPI DUP2 MLOAD PUSH2 0x2D3C DUP9 DUP3 PUSH2 0x2CC0 JUMP JUMPDEST SWAP8 POP PUSH2 0x2D47 DUP4 PUSH2 0x44DA JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 ADD PUSH2 0x2D28 JUMP JUMPDEST POP SWAP5 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2D68 DUP3 PUSH2 0x44EC JUMP JUMPDEST PUSH2 0x2D72 DUP2 DUP6 PUSH2 0x44F0 JUMP JUMPDEST SWAP4 POP DUP4 PUSH1 0x20 DUP3 MUL DUP6 ADD PUSH2 0x2D84 DUP6 PUSH2 0x44DA JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP6 DUP2 LT ISZERO PUSH2 0x2DBE JUMPI DUP5 DUP5 SUB DUP10 MSTORE DUP2 MLOAD PUSH2 0x2DA1 DUP6 DUP3 PUSH2 0x2CD4 JUMP JUMPDEST SWAP5 POP PUSH2 0x2DAC DUP4 PUSH2 0x44DA JUMP JUMPDEST PUSH1 0x20 SWAP11 SWAP1 SWAP11 ADD SWAP10 SWAP3 POP POP PUSH1 0x1 ADD PUSH2 0x2D88 JUMP JUMPDEST POP SWAP2 SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2DD6 DUP3 PUSH2 0x44EC JUMP JUMPDEST PUSH2 0x2DE0 DUP2 DUP6 PUSH2 0x44F0 JUMP JUMPDEST SWAP4 POP DUP4 PUSH1 0x20 DUP3 MUL DUP6 ADD PUSH2 0x2DF2 DUP6 PUSH2 0x44DA JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP6 DUP2 LT ISZERO PUSH2 0x2DBE JUMPI DUP5 DUP5 SUB DUP10 MSTORE DUP2 MLOAD PUSH2 0x2E0F DUP6 DUP3 PUSH2 0x2CD4 JUMP JUMPDEST SWAP5 POP PUSH2 0x2E1A DUP4 PUSH2 0x44DA JUMP JUMPDEST PUSH1 0x20 SWAP11 SWAP1 SWAP11 ADD SWAP10 SWAP3 POP POP PUSH1 0x1 ADD PUSH2 0x2DF6 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2E37 DUP3 PUSH2 0x44EC JUMP JUMPDEST PUSH2 0x2E41 DUP2 DUP6 PUSH2 0x44F0 JUMP JUMPDEST SWAP4 POP PUSH2 0x2E4C DUP4 PUSH2 0x44DA JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2D52 JUMPI DUP2 MLOAD PUSH2 0x2E64 DUP9 DUP3 PUSH2 0x2CE0 JUMP JUMPDEST SWAP8 POP PUSH2 0x2E6F DUP4 PUSH2 0x44DA JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 ADD PUSH2 0x2E50 JUMP JUMPDEST PUSH2 0x2CF5 DUP2 PUSH2 0x4504 JUMP JUMPDEST PUSH2 0x2CF5 DUP2 PUSH2 0x1FA5 JUMP JUMPDEST PUSH2 0x2CF5 PUSH2 0x2E98 DUP3 PUSH2 0x1FA5 JUMP JUMPDEST PUSH2 0x1FA5 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2EA8 DUP3 PUSH2 0x44EC JUMP JUMPDEST PUSH2 0x2EB2 DUP2 DUP6 PUSH2 0x44F0 JUMP JUMPDEST SWAP4 POP PUSH2 0x2EC2 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x4565 JUMP JUMPDEST PUSH2 0x2ECB DUP2 PUSH2 0x4591 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 0x2EF2 JUMPI PUSH1 0x1 DUP2 EQ PUSH2 0x2F18 JUMPI PUSH2 0x2F57 JUMP JUMPDEST PUSH1 0x7F PUSH1 0x2 DUP4 DIV AND PUSH2 0x2F03 DUP2 DUP8 PUSH2 0x44F0 JUMP JUMPDEST PUSH1 0xFF NOT DUP5 AND DUP2 MSTORE SWAP6 POP POP PUSH1 0x20 DUP6 ADD SWAP3 POP PUSH2 0x2F57 JUMP JUMPDEST PUSH1 0x2 DUP3 DIV PUSH2 0x2F26 DUP2 DUP8 PUSH2 0x44F0 JUMP JUMPDEST SWAP6 POP PUSH2 0x2F31 DUP6 PUSH2 0x44E0 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x2F50 JUMPI DUP2 SLOAD DUP9 DUP3 ADD MSTORE PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x20 ADD PUSH2 0x2F34 JUMP JUMPDEST DUP8 ADD SWAP5 POP POP POP JUMPDEST POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x2CF5 DUP2 PUSH2 0x4538 JUMP JUMPDEST PUSH2 0x2CF5 DUP2 PUSH2 0x4543 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2F7D DUP4 DUP6 PUSH2 0x44F0 JUMP JUMPDEST SWAP4 POP PUSH2 0x2F8A DUP4 DUP6 DUP5 PUSH2 0x4559 JUMP JUMPDEST PUSH2 0x2ECB DUP4 PUSH2 0x4591 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2FA0 PUSH1 0x32 DUP4 PUSH2 0x44F0 JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A63617374566F7465496E7465726E616C3A DUP2 MSTORE PUSH18 0x20696E76616C696420766F74652074797065 PUSH1 0x70 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2FF4 PUSH1 0x28 DUP4 PUSH2 0xE57 JUMP JUMPDEST PUSH32 0x42616C6C6F742875696E743235362070726F706F73616C49642C75696E743820 DUP2 MSTORE PUSH8 0x737570706F727429 PUSH1 0xC0 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x28 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x303E PUSH1 0x33 DUP4 PUSH2 0x44F0 JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A696E697469616C697A653A2063616E206F DUP2 MSTORE PUSH19 0x6E6C7920696E697469616C697A65206F6E6365 PUSH1 0x68 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3093 PUSH1 0x2A DUP4 PUSH2 0x44F0 JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A5F73657450656E64696E6741646D696E3A20 DUP2 MSTORE PUSH10 0x61646D696E206F6E6C79 PUSH1 0xB0 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x30DF PUSH1 0x55 DUP4 PUSH2 0x44F0 JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A71756575654F72526576657274496E7465 DUP2 MSTORE PUSH32 0x726E616C3A206964656E746963616C2070726F706F73616C20616374696F6E20 PUSH1 0x20 DUP3 ADD MSTORE PUSH21 0x616C72656164792071756575656420617420657461 PUSH1 0x58 SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x315C PUSH1 0x2B DUP4 PUSH2 0x44F0 JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A5F736574566F74696E67506572696F643A DUP2 MSTORE PUSH11 0x2061646D696E206F6E6C79 PUSH1 0xA8 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x31A9 PUSH1 0x33 DUP4 PUSH2 0x44F0 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x45DE DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP2 MSTORE PUSH19 0x69642074696D656C6F636B2061646472657373 PUSH1 0x68 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x31EC PUSH1 0x2A DUP4 PUSH2 0x44F0 JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A5F736574566F74696E6744656C61793A20 DUP2 MSTORE PUSH10 0x61646D696E206F6E6C79 PUSH1 0xB0 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3238 PUSH1 0x31 DUP4 PUSH2 0x44F0 JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A70726F706F73653A20476F7665726E6F72 DUP2 MSTORE PUSH17 0x20427261766F206E6F7420616374697665 PUSH1 0x78 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x328B PUSH1 0x2 DUP4 PUSH2 0xE57 JUMP JUMPDEST PUSH2 0x1901 PUSH1 0xF0 SHL DUP2 MSTORE PUSH1 0x2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x32A9 PUSH1 0x36 DUP4 PUSH2 0x44F0 JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A5F736574566F74696E67506572696F643A DUP2 MSTORE PUSH22 0x81A5B9D985B1A59081D9BDD1A5B99C81C195C9A5BD9 PUSH1 0x52 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3301 PUSH1 0x31 DUP4 PUSH2 0x44F0 JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A63617374566F7465496E7465726E616C3A DUP2 MSTORE PUSH17 0x81D9BDD1A5B99C81A5CC818DB1BDCD959 PUSH1 0x7A SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3354 PUSH1 0x34 DUP4 PUSH2 0x44F0 JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A63617374566F7465496E7465726E616C3A DUP2 MSTORE PUSH20 0x81D9BDD195C88185B1C9958591E481D9BDD1959 PUSH1 0x62 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x33AA PUSH1 0x2E DUP4 PUSH2 0x44F0 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x45DE DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP2 MSTORE PUSH14 0x6964207876732061646472657373 PUSH1 0x90 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x33E8 PUSH1 0x34 DUP4 PUSH2 0x44F0 JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A5F736574566F74696E6744656C61793A20 DUP2 MSTORE PUSH20 0x696E76616C696420766F74696E672064656C6179 PUSH1 0x60 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x343E PUSH1 0x35 DUP4 PUSH2 0x44F0 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x45DE DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP2 MSTORE PUSH21 0x1A59081C1C9BDC1BDCD85B081D1A1C995CDA1BDB19 PUSH1 0x5A SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3483 PUSH1 0x45 DUP4 PUSH2 0x44F0 JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A657865637574653A2070726F706F73616C 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 0x34F0 PUSH1 0x2F DUP4 PUSH2 0x44F0 JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A63617374566F746542795369673A20696E DUP2 MSTORE PUSH15 0x76616C6964207369676E6174757265 PUSH1 0x88 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3541 PUSH1 0x2F DUP4 PUSH2 0x44F0 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x45DE DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP2 MSTORE PUSH15 0x696420766F74696E672064656C6179 PUSH1 0x88 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3580 PUSH1 0x44 DUP4 PUSH2 0x44F0 JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A70726F706F73653A2070726F706F73616C 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 0x35EC PUSH1 0x25 DUP4 PUSH2 0x44F0 JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A696E697469616C697A653A2061646D696E DUP2 MSTORE PUSH5 0x206F6E6C79 PUSH1 0xD8 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3633 PUSH1 0x40 DUP4 PUSH2 0x44F0 JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A5F73657450726F706F73616C5468726573 DUP2 MSTORE PUSH32 0x686F6C643A20696E76616C69642070726F706F73616C207468726573686F6C64 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3692 PUSH1 0x44 DUP4 PUSH2 0x44F0 JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A71756575653A2070726F706F73616C2063 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 0x36FE PUSH1 0x11 DUP4 PUSH2 0x44F0 JUMP JUMPDEST PUSH17 0x6164646974696F6E206F766572666C6F77 PUSH1 0x78 SHL DUP2 MSTORE PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x372B PUSH1 0x43 DUP4 PUSH2 0xE57 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 0x3796 PUSH1 0x30 DUP4 PUSH2 0x44F0 JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A5F696E6974696174653A2063616E206F6E DUP2 MSTORE PUSH16 0x6C7920696E697469617465206F6E6365 PUSH1 0x80 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x37E8 PUSH1 0x2C DUP4 PUSH2 0x44F0 JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A70726F706F73653A206D7573742070726F DUP2 MSTORE PUSH12 0x7669646520616374696F6E73 PUSH1 0xA0 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3836 PUSH1 0x2E DUP4 PUSH2 0x44F0 JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A5F61636365707441646D696E3A2070656E64 DUP2 MSTORE PUSH14 0x696E672061646D696E206F6E6C79 PUSH1 0x90 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3886 PUSH1 0x2F DUP4 PUSH2 0x44F0 JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A63616E63656C3A2070726F706F73657220 DUP2 MSTORE PUSH15 0x18589BDD99481D1A1C995CDA1BDB19 PUSH1 0x8A SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x38D7 PUSH1 0x2B DUP4 PUSH2 0x44F0 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x45DE DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP2 MSTORE PUSH11 0x34B21033BAB0B93234B0B7 PUSH1 0xA9 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3912 PUSH1 0x28 DUP4 PUSH2 0x44F0 JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A70726F706F73653A20746F6F206D616E79 DUP2 MSTORE PUSH8 0x20616374696F6E73 PUSH1 0xC0 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x395C PUSH1 0x59 DUP4 PUSH2 0x44F0 JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A70726F706F73653A206F6E65206C697665 DUP2 MSTORE PUSH32 0x2070726F706F73616C207065722070726F706F7365722C20666F756E6420616E PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x20616C72656164792070656E64696E672070726F706F73616C00000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x39E1 PUSH1 0x34 DUP4 PUSH2 0x44F0 JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A5F73657450726F706F73616C4D61784F70 DUP2 MSTORE PUSH20 0x65726174696F6E733A2061646D696E206F6E6C79 PUSH1 0x60 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3A37 PUSH1 0x58 DUP4 PUSH2 0x44F0 JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A70726F706F73653A206F6E65206C697665 DUP2 MSTORE PUSH32 0x2070726F706F73616C207065722070726F706F7365722C20666F756E6420616E PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x20616C7265616479206163746976652070726F706F73616C0000000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1B28 PUSH1 0x0 DUP4 PUSH2 0x44F0 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3AC9 PUSH1 0x24 DUP4 PUSH2 0x44F0 JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A5F696E6974696174653A2061646D696E20 DUP2 MSTORE PUSH4 0x6F6E6C79 PUSH1 0xE0 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3B0F PUSH1 0x3F DUP4 PUSH2 0x44F0 JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A70726F706F73653A2070726F706F736572 DUP2 MSTORE PUSH32 0x20766F7465732062656C6F772070726F706F73616C207468726573686F6C6400 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3B6E PUSH1 0x36 DUP4 PUSH2 0x44F0 JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A63616E63656C3A2063616E6E6F74206361 DUP2 MSTORE PUSH22 0x1B98D95B08195E1958DD5D1959081C1C9BDC1BDCD85B PUSH1 0x52 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3BC6 PUSH1 0x30 DUP4 PUSH2 0x44F0 JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A5F73657450726F706F73616C5468726573 DUP2 MSTORE PUSH16 0x686F6C643A2061646D696E206F6E6C79 PUSH1 0x80 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3C18 PUSH1 0x29 DUP4 PUSH2 0x44F0 JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A73746174653A20696E76616C6964207072 DUP2 MSTORE PUSH9 0x1BDC1BDCD85B081A59 PUSH1 0xBA SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3C63 PUSH1 0x30 DUP4 PUSH2 0x44F0 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x45DE DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP2 MSTORE PUSH16 0x1A59081D9BDD1A5B99C81C195C9A5BD9 PUSH1 0x82 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3CA3 PUSH1 0x3B DUP4 PUSH2 0x44F0 JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A5F736574477561726469616E3A2063616E DUP2 MSTORE PUSH32 0x6E6F74206C69766520776974686F7574206120677561726469616E0000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3D02 PUSH1 0x33 DUP4 PUSH2 0x44F0 JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A5F736574477561726469616E3A2061646D DUP2 MSTORE PUSH19 0x696E206F7220677561726469616E206F6E6C79 PUSH1 0x68 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3D57 PUSH1 0x15 DUP4 PUSH2 0x44F0 JUMP JUMPDEST PUSH21 0x7375627472616374696F6E20756E646572666C6F77 PUSH1 0x58 SHL DUP2 MSTORE PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 MLOAD PUSH1 0x60 DUP4 ADD SWAP1 PUSH2 0x3D8C DUP5 DUP3 PUSH2 0x2E7A JUMP JUMPDEST POP PUSH1 0x20 DUP3 ADD MLOAD PUSH2 0x3D9F PUSH1 0x20 DUP6 ADD DUP3 PUSH2 0x3DB8 JUMP JUMPDEST POP PUSH1 0x40 DUP3 ADD MLOAD PUSH2 0x3DB2 PUSH1 0x40 DUP6 ADD DUP3 PUSH2 0x3DCA JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0x2CF5 DUP2 PUSH2 0x451F JUMP JUMPDEST PUSH2 0x2CF5 DUP2 PUSH2 0x454E JUMP JUMPDEST PUSH2 0x2CF5 DUP2 PUSH2 0x4525 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1B28 DUP3 PUSH2 0x2FE7 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3DE9 DUP3 PUSH2 0x327E JUMP JUMPDEST SWAP2 POP PUSH2 0x3DF5 DUP3 DUP6 PUSH2 0x2E8C JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH2 0x3E05 DUP3 DUP5 PUSH2 0x2E8C JUMP JUMPDEST POP PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1B28 DUP3 PUSH2 0x371E JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x1B28 DUP3 DUP5 PUSH2 0x2CFB JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0x3E36 DUP3 DUP6 PUSH2 0x2CEC JUMP JUMPDEST PUSH2 0x2192 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x2E83 JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0x3E51 DUP3 DUP6 PUSH2 0x2CFB JUMP JUMPDEST PUSH2 0x2192 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x2CFB JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0x3E36 DUP3 DUP6 PUSH2 0x2CFB JUMP JUMPDEST PUSH1 0xA0 DUP2 ADD PUSH2 0x3E7A DUP3 DUP9 PUSH2 0x2CFB JUMP JUMPDEST PUSH2 0x3E87 PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x2E83 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x3E99 DUP2 DUP7 PUSH2 0x2E9D JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x3EAD DUP2 DUP6 PUSH2 0x2E9D JUMP JUMPDEST SWAP1 POP PUSH2 0x3EBC PUSH1 0x80 DUP4 ADD DUP5 PUSH2 0x2E83 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0xA0 DUP2 ADD PUSH2 0x3ED4 DUP3 DUP9 PUSH2 0x2CFB JUMP JUMPDEST PUSH2 0x3EE1 PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x2E83 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x3EF3 DUP2 DUP7 PUSH2 0x2ED5 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x3EAD DUP2 DUP6 PUSH2 0x2ED5 JUMP JUMPDEST PUSH1 0x80 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x3F18 DUP2 DUP8 PUSH2 0x2D04 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x3F2C DUP2 DUP7 PUSH2 0x2E2C JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x3F40 DUP2 DUP6 PUSH2 0x2DCB JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x3EBC DUP2 DUP5 PUSH2 0x2D5D JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x1B28 DUP3 DUP5 PUSH2 0x2E83 JUMP JUMPDEST PUSH1 0x80 DUP2 ADD PUSH2 0x3F70 DUP3 DUP8 PUSH2 0x2E83 JUMP JUMPDEST PUSH2 0x3F7D PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x2E83 JUMP JUMPDEST PUSH2 0x3F8A PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x2E83 JUMP JUMPDEST PUSH2 0x1830 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x2CFB JUMP JUMPDEST PUSH1 0x60 DUP2 ADD PUSH2 0x3FA5 DUP3 DUP7 PUSH2 0x2E83 JUMP JUMPDEST PUSH2 0x3FB2 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x2E83 JUMP JUMPDEST PUSH2 0x295E PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x3DB8 JUMP JUMPDEST PUSH1 0x80 DUP2 ADD PUSH2 0x3FCD DUP3 DUP8 PUSH2 0x2E83 JUMP JUMPDEST PUSH2 0x3FDA PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x3DB8 JUMP JUMPDEST PUSH2 0x3FE7 PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x2E83 JUMP JUMPDEST PUSH2 0x1830 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x2E83 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x1B28 DUP3 DUP5 PUSH2 0x2F5F JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x1B28 DUP3 DUP5 PUSH2 0x2F68 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x2192 DUP2 DUP5 PUSH2 0x2E9D JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1B28 DUP2 PUSH2 0x2F93 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1B28 DUP2 PUSH2 0x3031 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1B28 DUP2 PUSH2 0x3086 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1B28 DUP2 PUSH2 0x30D2 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1B28 DUP2 PUSH2 0x314F JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1B28 DUP2 PUSH2 0x319C JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1B28 DUP2 PUSH2 0x31DF JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1B28 DUP2 PUSH2 0x322B JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1B28 DUP2 PUSH2 0x329C JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1B28 DUP2 PUSH2 0x32F4 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1B28 DUP2 PUSH2 0x3347 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1B28 DUP2 PUSH2 0x339D JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1B28 DUP2 PUSH2 0x33DB JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1B28 DUP2 PUSH2 0x3431 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1B28 DUP2 PUSH2 0x3476 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1B28 DUP2 PUSH2 0x34E3 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1B28 DUP2 PUSH2 0x3534 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1B28 DUP2 PUSH2 0x3573 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1B28 DUP2 PUSH2 0x35DF JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1B28 DUP2 PUSH2 0x3626 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1B28 DUP2 PUSH2 0x3685 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1B28 DUP2 PUSH2 0x36F1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1B28 DUP2 PUSH2 0x3789 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1B28 DUP2 PUSH2 0x37DB JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1B28 DUP2 PUSH2 0x3829 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1B28 DUP2 PUSH2 0x3879 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1B28 DUP2 PUSH2 0x38CA JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1B28 DUP2 PUSH2 0x3905 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1B28 DUP2 PUSH2 0x394F JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1B28 DUP2 PUSH2 0x39D4 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1B28 DUP2 PUSH2 0x3A2A JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1B28 DUP2 PUSH2 0x3ABC JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1B28 DUP2 PUSH2 0x3B02 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1B28 DUP2 PUSH2 0x3B61 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1B28 DUP2 PUSH2 0x3BB9 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1B28 DUP2 PUSH2 0x3C0B JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1B28 DUP2 PUSH2 0x3C56 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1B28 DUP2 PUSH2 0x3C96 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1B28 DUP2 PUSH2 0x3CF5 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1B28 DUP2 PUSH2 0x3D4A JUMP JUMPDEST PUSH1 0x60 DUP2 ADD PUSH2 0x1B28 DUP3 DUP5 PUSH2 0x3D7B JUMP JUMPDEST PUSH2 0x120 DUP2 ADD PUSH2 0x42BE DUP3 DUP13 PUSH2 0x2E83 JUMP JUMPDEST PUSH2 0x42CB PUSH1 0x20 DUP4 ADD DUP12 PUSH2 0x2CEC JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x42DD DUP2 DUP11 PUSH2 0x2D04 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x42F1 DUP2 DUP10 PUSH2 0x2E2C JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x80 DUP4 ADD MSTORE PUSH2 0x4305 DUP2 DUP9 PUSH2 0x2DCB JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0xA0 DUP4 ADD MSTORE PUSH2 0x4319 DUP2 DUP8 PUSH2 0x2D5D JUMP JUMPDEST SWAP1 POP PUSH2 0x4328 PUSH1 0xC0 DUP4 ADD DUP7 PUSH2 0x2E83 JUMP JUMPDEST PUSH2 0x4335 PUSH1 0xE0 DUP4 ADD DUP6 PUSH2 0x2E83 JUMP JUMPDEST DUP2 DUP2 SUB PUSH2 0x100 DUP4 ADD MSTORE PUSH2 0x4348 DUP2 DUP5 PUSH2 0x2E9D JUMP JUMPDEST SWAP12 SWAP11 POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x140 DUP2 ADD PUSH2 0x4366 DUP3 DUP14 PUSH2 0x2E83 JUMP JUMPDEST PUSH2 0x4373 PUSH1 0x20 DUP4 ADD DUP13 PUSH2 0x2CFB JUMP JUMPDEST PUSH2 0x4380 PUSH1 0x40 DUP4 ADD DUP12 PUSH2 0x2E83 JUMP JUMPDEST PUSH2 0x438D PUSH1 0x60 DUP4 ADD DUP11 PUSH2 0x2E83 JUMP JUMPDEST PUSH2 0x439A PUSH1 0x80 DUP4 ADD DUP10 PUSH2 0x2E83 JUMP JUMPDEST PUSH2 0x43A7 PUSH1 0xA0 DUP4 ADD DUP9 PUSH2 0x2E83 JUMP JUMPDEST PUSH2 0x43B4 PUSH1 0xC0 DUP4 ADD DUP8 PUSH2 0x2E83 JUMP JUMPDEST PUSH2 0x43C1 PUSH1 0xE0 DUP4 ADD DUP7 PUSH2 0x2E83 JUMP JUMPDEST PUSH2 0x43CF PUSH2 0x100 DUP4 ADD DUP6 PUSH2 0x2E7A JUMP JUMPDEST PUSH2 0x4348 PUSH2 0x120 DUP4 ADD DUP5 PUSH2 0x2E7A JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0x3E36 DUP3 DUP6 PUSH2 0x2E83 JUMP JUMPDEST PUSH1 0x80 DUP2 ADD PUSH2 0x43F9 DUP3 DUP9 PUSH2 0x2E83 JUMP JUMPDEST PUSH2 0x4406 PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x3DB8 JUMP JUMPDEST PUSH2 0x4413 PUSH1 0x40 DUP4 ADD DUP7 PUSH2 0x3DC1 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x4426 DUP2 DUP5 DUP7 PUSH2 0x2F71 JUMP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x80 DUP2 ADD PUSH2 0x443F DUP3 DUP7 PUSH2 0x2E83 JUMP JUMPDEST PUSH2 0x444C PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x3DB8 JUMP JUMPDEST PUSH2 0x4459 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x3DC1 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x1830 DUP2 PUSH2 0x3AAF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP2 DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x4489 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x44A8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x20 SWAP1 DUP2 MUL ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x44C9 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 0x1B28 DUP3 PUSH2 0x4513 JUMP JUMPDEST ISZERO ISZERO SWAP1 JUMP JUMPDEST DUP1 PUSH2 0xE57 DUP2 PUSH2 0x459B 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 0x1B28 DUP3 JUMPDEST PUSH1 0x0 PUSH2 0x1B28 DUP3 PUSH2 0x44F9 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1B28 DUP3 PUSH2 0x4509 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1B28 DUP3 PUSH2 0x4525 JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x4580 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x4568 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x3DB2 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 0x2674 JUMPI INVALID JUMPDEST PUSH2 0x45AE DUP2 PUSH2 0x44F9 JUMP JUMPDEST DUP2 EQ PUSH2 0x2674 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x45AE DUP2 PUSH2 0x4504 JUMP JUMPDEST PUSH2 0x45AE DUP2 PUSH2 0x1FA5 JUMP JUMPDEST PUSH2 0x45AE DUP2 PUSH2 0x451F JUMP JUMPDEST PUSH2 0x45AE DUP2 PUSH2 0x4525 JUMP INVALID SELFBALANCE PUSH16 0x7665726E6F72427261766F3A3A696E69 PUSH21 0x69616C697A653A20696E76616CA365627A7A723158 KECCAK256 0xB9 0xA6 0xB9 0xC6 ADDMOD DIFFICULTY 0xB6 0xC8 0xBA 0x29 CALLCODE SWAP8 0x4F 0xE7 COINBASE 0xC3 0x25 0x21 PUSH26 0xB2D9F635206A558EC5F97598566C6578706572696D656E74616C CREATE2 PUSH5 0x736F6C6343 STOP SDIV LT STOP BLOCKHASH ","sourceMap":"348:20943:5:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;348:20943:5;;;;;;;"},"deployedBytecode":{"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106102695760003560e01c80635c60da1b11610151578063da95691a116100c3578063e48083fe11610087578063e48083fe146104db578063e9c714f2146104e3578063f851a440146104eb578063f9d28b80146104f3578063fc4eee4214610506578063fe0d94c11461050e57610269565b8063da95691a1461047a578063ddf0b0091461048d578063deaaa7cc146104a0578063e23a9a52146104a8578063e38e8c0f146104c857610269565b8063b112626311610115578063b112626314610434578063b1a5d12d1461043c578063b58131b01461044f578063b71d1a0c14610457578063d33219b41461046a578063da35c6641461047257610269565b80635c60da1b14610401578063791f5d23146104095780637b3c71d3146104115780637bdbe4d014610424578063a64e024a1461042c57610269565b8063215809ca116101ea5780633932abb1116101ae5780633932abb1146103985780633bccf4fd146103a05780633e4f49e6146103b357806340e58ee5146103d3578063452a9320146103e657806356781388146103ee57610269565b8063215809ca1461034857806324bc1a641461035057806325fd935a146103585780632678224714610360578063328dd9821461037557610269565b806317ba1b8b1161023157806317ba1b8b146102f25780631b9ce575146103055780631dfb1b5a1461031a5780631ebcfefd1461032d57806320606b701461034057610269565b8063013cf08b1461026e57806302a251a3146102a057806306fdde03146102b55780630ea2d98c146102ca57806317977c61146102df575b600080fd5b61028161027c366004612b4a565b610521565b6040516102979a99989796959493929190614357565b60405180910390f35b6102a8610584565b6040516102979190613f54565b6102bd61058a565b6040516102979190614010565b6102dd6102d8366004612b4a565b6105ba565b005b6102a86102ed366004612940565b610664565b6102dd610300366004612b4a565b610676565b61030d61071a565b6040516102979190613ff4565b6102dd610328366004612b4a565b610729565b6102dd61033b366004612b4a565b6107bd565b6102a8610821565b6102a8610838565b6102a861083e565b6102a861084c565b61036861085a565b6040516102979190613e1a565b610388610383366004612b4a565b610869565b6040516102979493929190613f07565b6102a8610af8565b6102dd6103ae366004612c3a565b610afe565b6103c66103c1366004612b4a565b610cd6565b6040516102979190614002565b6102dd6103e1366004612b4a565b610e5c565b6103686110c5565b6102dd6103fc366004612ba2565b6110d4565b61036861111e565b6102a861112d565b6102dd61041f366004612bd2565b61113b565b6102a861118b565b6102a8611191565b6102a8611198565b6102dd61044a366004612966565b61119f565b6102a8611358565b6102dd610465366004612940565b61135e565b61030d6113db565b6102a86113ea565b6102a86104883660046129ed565b6113f0565b6102dd61049b366004612b4a565b611839565b6102a8611ab5565b6104bb6104b6366004612b68565b611ac1565b60405161029791906142a1565b6102dd6104d6366004612940565b611b2e565b6102a8611be6565b6102dd611beb565b610368611cc9565b6102dd610501366004612940565b611cd8565b6102a8611dfe565b6102dd61051c366004612b4a565b611e04565b600a60208190526000918252604090912080546001820154600283015460078401546008850154600986015496860154600b870154600c9097015495976001600160a01b0390951696939592949193919290919060ff808216916101009004168a565b60045481565b6040518060400160405280601481526020017356656e757320476f7665726e6f7220427261766f60601b81525081565b6000546001600160a01b031633146105ed5760405162461bcd60e51b81526004016105e490614061565b60405180910390fd5b610e1081101580156106025750620627008111155b61061e5760405162461bcd60e51b81526004016105e4906140a1565b60048054908290556040517f7e3f7f0708a84de9203036abaa450dccc85ad5ff52f78c170f3edb55cf5e88289061065890839085906143dd565b60405180910390a15050565b600b6020526000908152604090205481565b6000546001600160a01b031633146106a05760405162461bcd60e51b81526004016105e490614241565b691fc3842bd1f071c0000081101580156106c45750693f870857a3e0e38000008111155b6106e05760405162461bcd60e51b81526004016105e490614151565b60058054908290556040517fccb45da8d5717e6c4544694297c4ba5cf151d455c9bb0ed4fc7a38411bc054619061065890839085906143dd565b6009546001600160a01b031681565b6000546001600160a01b031633146107535760405162461bcd60e51b81526004016105e490614081565b600181101580156107675750620313808111155b6107835760405162461bcd60e51b81526004016105e4906140e1565b60038054908290556040517fc565b045403dc03c2eea82b81a0465edad9e2e7fc4d97e11421c209da93d7a939061065890839085906143dd565b6000546001600160a01b031633146107e75760405162461bcd60e51b81526004016105e4906141f1565b600c8054908290556040517fd03b3c3c5c1446bcdd31423061041c94ca3bc5450fe7ccfb0f636f4c420de87e9061065890839085906143dd565b60405161082d90613e0f565b604051809103902081565b610e1081565b697f0e10af47c1c700000081565b693f870857a3e0e380000081565b6001546001600160a01b031681565b6060806060806000600a6000878152602001908152602001600020905080600301816004018260050183600601838054806020026020016040519081016040528092919081815260200182805480156108eb57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116108cd575b505050505093508280548060200260200160405190810160405280929190818152602001828054801561093d57602002820191906000526020600020905b815481526020019060010190808311610929575b5050505050925081805480602002602001604051908101604052809291908181526020016000905b82821015610a105760008481526020908190208301805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156109fc5780601f106109d1576101008083540402835291602001916109fc565b820191906000526020600020905b8154815290600101906020018083116109df57829003601f168201915b505050505081526020019060010190610965565b50505050915080805480602002602001604051908101604052809291908181526020016000905b82821015610ae25760008481526020908190208301805460408051601f6002600019610100600187161502019094169390930492830185900485028101850190915281815292830182828015610ace5780601f10610aa357610100808354040283529160200191610ace565b820191906000526020600020905b815481529060010190602001808311610ab157829003601f168201915b505050505081526020019060010190610a37565b5050505090509450945094509450509193509193565b60035481565b6000604051610b0c90613e0f565b60408051918290038220828201909152601482527356656e757320476f7665726e6f7220427261766f60601b6020909201919091527f157d76627a3b71c0167806f5879f7a61d3e301322f3a3b9f900315f15937671a610b6a611fa3565b30604051602001610b7e9493929190613f62565b6040516020818303038152906040528051906020012090506000604051610ba490613dd3565b604051908190038120610bbd9189908990602001613f97565b60405160208183030381529060405280519060200120905060008282604051602001610bea929190613dde565b604051602081830303815290604052805190602001209050600060018288888860405160008152602001604052604051610c279493929190613fbf565b6020604051602081039080840390855afa158015610c49573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116610c7c5760405162461bcd60e51b81526004016105e490614111565b806001600160a01b03167fb8e138887d0aa13bab447e82de9d5c1777041ecd21ca36ba824ff1e6c07ddda48a8a610cb4858e8e611fa8565b604051610cc393929190614431565b60405180910390a2505050505050505050565b60008160075410158015610ceb575060065482115b610d075760405162461bcd60e51b81526004016105e490614251565b6000828152600a60205260409020600c81015460ff1615610d2c576002915050610e57565b80600701544311610d41576000915050610e57565b80600801544311610d56576001915050610e57565b80600a01548160090154111580610d7a5750697f0e10af47c1c70000008160090154105b15610d89576003915050610e57565b6002810154610d9c576004915050610e57565b600c810154610100900460ff1615610db8576007915050610e57565b6002810154600854604080516360d143f160e11b81529051610e4193926001600160a01b03169163c1a287e2916004808301926020929190829003018186803b158015610e0457600080fd5b505afa158015610e18573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610e3c9190810190612af7565b612199565b4210610e51576006915050610e57565b60059150505b919050565b6007610e6782610cd6565b6007811115610e7257fe5b1415610e905760405162461bcd60e51b81526004016105e490614231565b6000818152600a60205260409020600d546001600160a01b0316331480610ec3575060018101546001600160a01b031633145b80610f6d57506005546009546001838101546001600160a01b039283169263782d6fe192911690610ef59043906121be565b6040518363ffffffff1660e01b8152600401610f12929190613e5e565b60206040518083038186803b158015610f2a57600080fd5b505afa158015610f3e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610f629190810190612ca2565b6001600160601b0316105b610f895760405162461bcd60e51b81526004016105e4906141b1565b600c8101805460ff1916600117905560005b6003820154811015611095576008546003830180546001600160a01b039092169163591fcdfe919084908110610fcd57fe5b6000918252602090912001546004850180546001600160a01b039092169185908110610ff557fe5b906000526020600020015485600501858154811061100f57fe5b9060005260206000200186600601868154811061102857fe5b9060005260206000200187600201546040518663ffffffff1660e01b8152600401611057959493929190613ec6565b600060405180830381600087803b15801561107157600080fd5b505af1158015611085573d6000803e3d6000fd5b505060019092019150610f9b9050565b507f789cf55be980739dad1d0699b93b58e806b51c9d96619bfa8fe0a28abaa7b30c826040516106589190613f54565b600d546001600160a01b031681565b337fb8e138887d0aa13bab447e82de9d5c1777041ecd21ca36ba824ff1e6c07ddda48383611103848383611fa8565b60405161111293929190614431565b60405180910390a25050565b6002546001600160a01b031681565b691fc3842bd1f071c0000081565b337fb8e138887d0aa13bab447e82de9d5c1777041ecd21ca36ba824ff1e6c07ddda4858561116a848383611fa8565b868660405161117d9594939291906143eb565b60405180910390a250505050565b600c5481565b6206270081565b6203138081565b6008546001600160a01b0316156111c85760405162461bcd60e51b81526004016105e490614031565b6000546001600160a01b031633146111f25760405162461bcd60e51b81526004016105e490614141565b6001600160a01b0386166112185760405162461bcd60e51b81526004016105e490614071565b6001600160a01b03851661123e5760405162461bcd60e51b81526004016105e4906140d1565b610e1084101580156112535750620627008411155b61126f5760405162461bcd60e51b81526004016105e490614261565b600183101580156112835750620313808311155b61129f5760405162461bcd60e51b81526004016105e490614121565b691fc3842bd1f071c0000082101580156112c35750693f870857a3e0e38000008211155b6112df5760405162461bcd60e51b81526004016105e4906140f1565b6001600160a01b0381166113055760405162461bcd60e51b81526004016105e4906141c1565b600880546001600160a01b039788166001600160a01b0319918216179091556009805496881696821696909617909555600493909355600391909155600555600a600c55600d8054919093169116179055565b60055481565b6000546001600160a01b031633146113885760405162461bcd60e51b81526004016105e490614041565b600180546001600160a01b038381166001600160a01b03198316179092556040519116907fca4f2f25d0898edd99413412fb94012f9e54ec8142f9b093e7720646a95b16a9906106589083908590613e43565b6008546001600160a01b031681565b60075481565b6000600654600014156114155760405162461bcd60e51b81526004016105e490614091565b6005546009546001600160a01b031663782d6fe1336114354360016121be565b6040518363ffffffff1660e01b8152600401611452929190613e28565b60206040518083038186803b15801561146a57600080fd5b505afa15801561147e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506114a29190810190612ca2565b6001600160601b0316116114c85760405162461bcd60e51b81526004016105e490614221565b845186511480156114da575083518651145b80156114e7575082518651145b6115035760405162461bcd60e51b81526004016105e490614131565b85516115215760405162461bcd60e51b81526004016105e490614191565b600c54865111156115445760405162461bcd60e51b81526004016105e4906141d1565b336000908152600b602052604090205480156115c157600061156582610cd6565b9050600181600781111561157557fe5b14156115935760405162461bcd60e51b81526004016105e490614201565b60008160078111156115a157fe5b14156115bf5760405162461bcd60e51b81526004016105e4906141e1565b505b60006115cf43600354612199565b905060006115df82600454612199565b60078054600101905590506115f2612345565b604051806101c001604052806007548152602001336001600160a01b03168152602001600081526020018b81526020018a815260200189815260200188815260200184815260200183815260200160008152602001600081526020016000815260200160001515815260200160001515815250905080600a6000836000015181526020019081526020016000206000820151816000015560208201518160010160006101000a8154816001600160a01b0302191690836001600160a01b031602179055506040820151816002015560608201518160030190805190602001906116dc9291906123c1565b50608082015180516116f8916004840191602090910190612426565b5060a0820151805161171491600584019160209091019061246d565b5060c082015180516117309160068401916020909101906124c6565b5060e082015181600701556101008201518160080155610120820151816009015561014082015181600a015561016082015181600b015561018082015181600c0160006101000a81548160ff0219169083151502179055506101a082015181600c0160016101000a81548160ff0219169083151502179055509050508060000151600b600083602001516001600160a01b03166001600160a01b03168152602001908152602001600020819055507f7d84a6263ae0d98d3329bd7b46bb4e8d6f98cd35a7adb45c274c8b7fd5ebd5e08160000151338c8c8c8c89898e604051611821999897969594939291906142af565b60405180910390a15193505050505b95945050505050565b600461184482610cd6565b600781111561184f57fe5b1461186c5760405162461bcd60e51b81526004016105e490614161565b6000818152600a602090815260408083206008548251630d48571f60e31b815292519194936118c69342936001600160a01b0390931692636a42b8f892600480840193919291829003018186803b158015610e0457600080fd5b905060005b6003830154811015611a6e57611a668360030182815481106118e957fe5b6000918252602090912001546004850180546001600160a01b03909216918490811061191157fe5b906000526020600020015485600501848154811061192b57fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156119b95780601f1061198e576101008083540402835291602001916119b9565b820191906000526020600020905b81548152906001019060200180831161199c57829003601f168201915b50505050508660060185815481106119cd57fe5b600091825260209182902001805460408051601f6002600019610100600187161502019094169390930492830185900485028101850190915281815292830182828015611a5b5780601f10611a3057610100808354040283529160200191611a5b565b820191906000526020600020905b815481529060010190602001808311611a3e57829003601f168201915b5050505050866121e6565b6001016118cb565b50600282018190556040517f9a2e42fd6722813d69113e7d0079d3d940171428df7373df9c7f7617cfda289290611aa890859084906143dd565b60405180910390a1505050565b60405161082d90613dd3565b611ac961251f565b506000828152600a602090815260408083206001600160a01b0385168452600d018252918290208251606081018452905460ff8082161515835261010082041692820192909252620100009091046001600160601b0316918101919091525b92915050565b600d546001600160a01b0316331480611b5157506000546001600160a01b031633145b611b6d5760405162461bcd60e51b81526004016105e490614281565b6001600160a01b038116611b935760405162461bcd60e51b81526004016105e490614271565b600d80546001600160a01b038381166001600160a01b03198316179092556040519116907f08fdaf06427a2010e5958f4329b566993472d14ce81d3f16ce7f2a2660da98e3906106589083908590613e43565b600181565b6001546001600160a01b031633148015611c0457503315155b611c205760405162461bcd60e51b81526004016105e4906141a1565b60008054600180546001600160a01b038082166001600160a01b03198086168217968790559092169092556040519282169390927ff9ffabca9c8276e99321725bcb43fb076a6c66a54b7f21c4e8146d8519b417dc92611c84928692911690613e43565b60405180910390a16001546040517fca4f2f25d0898edd99413412fb94012f9e54ec8142f9b093e7720646a95b16a9916106589184916001600160a01b031690613e43565b6000546001600160a01b031681565b6000546001600160a01b03163314611d025760405162461bcd60e51b81526004016105e490614211565b60065415611d225760405162461bcd60e51b81526004016105e490614181565b806001600160a01b031663da35c6646040518163ffffffff1660e01b8152600401602060405180830381600087803b158015611d5d57600080fd5b505af1158015611d71573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611d959190810190612af7565b600781905560065560085460408051630e18b68160e01b815290516001600160a01b0390921691630e18b6819160048082019260009290919082900301818387803b158015611de357600080fd5b505af1158015611df7573d6000803e3d6000fd5b5050505050565b60065481565b6005611e0f82610cd6565b6007811115611e1a57fe5b14611e375760405162461bcd60e51b81526004016105e490614101565b6000818152600a60205260408120600c8101805461ff001916610100179055905b6003820154811015611f73576008546003830180546001600160a01b0390921691630825f38f919084908110611e8a57fe5b6000918252602090912001546004850180546001600160a01b039092169185908110611eb257fe5b9060005260206000200154856005018581548110611ecc57fe5b90600052602060002001866006018681548110611ee557fe5b9060005260206000200187600201546040518663ffffffff1660e01b8152600401611f14959493929190613ec6565b600060405180830381600087803b158015611f2e57600080fd5b505af1158015611f42573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611f6a9190810190612b15565b50600101611e58565b507f712ae1383f79ac853f8d882153778e0260ef8f03b504e2866e0593e04d2b291f826040516106589190613f54565b465b90565b60006001611fb584610cd6565b6007811115611fc057fe5b14611fdd5760405162461bcd60e51b81526004016105e4906140b1565b60028260ff1611156120015760405162461bcd60e51b81526004016105e490614021565b6000838152600a602090815260408083206001600160a01b0388168452600d8101909252909120805460ff161561204a5760405162461bcd60e51b81526004016105e4906140c1565b600954600783015460405163782d6fe160e01b81526000926001600160a01b03169163782d6fe191612080918b91600401613e5e565b60206040518083038186803b15801561209857600080fd5b505afa1580156120ac573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506120d09190810190612ca2565b905060ff85166120fb576120f183600a0154826001600160601b0316612199565b600a840155612151565b8460ff16600114156121285761211e8360090154826001600160601b0316612199565b6009840155612151565b8460ff16600214156121515761214b83600b0154826001600160601b0316612199565b600b8401555b8154600160ff199091161761ff00191661010060ff871602176dffffffffffffffffffffffff00001916620100006001600160601b03831602179091559150505b9392505050565b6000828201838110156121925760405162461bcd60e51b81526004016105e490614171565b6000828211156121e05760405162461bcd60e51b81526004016105e490614291565b50900390565b6008546040516001600160a01b039091169063f2b06537906122149088908890889088908890602001613e6c565b604051602081830303815290604052805190602001206040518263ffffffff1660e01b81526004016122469190613f54565b60206040518083038186803b15801561225e57600080fd5b505afa158015612272573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506122969190810190612ad9565b156122b35760405162461bcd60e51b81526004016105e490614051565b600854604051633a66f90160e01b81526001600160a01b0390911690633a66f901906122eb9088908890889088908890600401613e6c565b602060405180830381600087803b15801561230557600080fd5b505af1158015612319573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061233d9190810190612af7565b505050505050565b604051806101c001604052806000815260200160006001600160a01b03168152602001600081526020016060815260200160608152602001606081526020016060815260200160008152602001600081526020016000815260200160008152602001600081526020016000151581526020016000151581525090565b828054828255906000526020600020908101928215612416579160200282015b8281111561241657825182546001600160a01b0319166001600160a01b039091161782556020909201916001909101906123e1565b5061242292915061253f565b5090565b828054828255906000526020600020908101928215612461579160200282015b82811115612461578251825591602001919060010190612446565b50612422929150612563565b8280548282559060005260206000209081019282156124ba579160200282015b828111156124ba57825180516124aa91849160209091019061257d565b509160200191906001019061248d565b506124229291506125ea565b828054828255906000526020600020908101928215612513579160200282015b82811115612513578251805161250391849160209091019061257d565b50916020019190600101906124e6565b5061242292915061260d565b604080516060810182526000808252602082018190529181019190915290565b611fa591905b808211156124225780546001600160a01b0319168155600101612545565b611fa591905b808211156124225760008155600101612569565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106125be57805160ff1916838001178555612461565b828001600101855582156124615791820182811115612461578251825591602001919060010190612446565b611fa591905b808211156124225760006126048282612630565b506001016125f0565b611fa591905b808211156124225760006126278282612630565b50600101612613565b50805460018160011615610100020316600290046000825580601f106126565750612674565b601f0160209004906000526020600020908101906126749190612563565b50565b8035611b28816145a5565b600082601f83011261269357600080fd5b81356126a66126a182614491565b61446a565b915081818352602084019350602081019050838560208402820111156126cb57600080fd5b60005b838110156126f757816126e18882612677565b84525060209283019291909101906001016126ce565b5050505092915050565b600082601f83011261271257600080fd5b81356127206126a182614491565b81815260209384019390925082018360005b838110156126f75781358601612748888261284c565b8452506020928301929190910190600101612732565b600082601f83011261276f57600080fd5b813561277d6126a182614491565b81815260209384019390925082018360005b838110156126f757813586016127a5888261284c565b845250602092830192919091019060010161278f565b600082601f8301126127cc57600080fd5b81356127da6126a182614491565b915081818352602084019350602081019050838560208402820111156127ff57600080fd5b60005b838110156126f757816128158882612836565b8452506020928301929190910190600101612802565b8051611b28816145b9565b8035611b28816145c2565b8051611b28816145c2565b600082601f83011261285d57600080fd5b813561286b6126a1826144b2565b9150808252602083016020830185838301111561288757600080fd5b612892838284614559565b50505092915050565b600082601f8301126128ac57600080fd5b81516128ba6126a1826144b2565b915080825260208301602083018583830111156128d657600080fd5b612892838284614565565b60008083601f8401126128f357600080fd5b50813567ffffffffffffffff81111561290b57600080fd5b60208301915083600182028301111561292357600080fd5b9250929050565b8035611b28816145cb565b8051611b28816145d4565b60006020828403121561295257600080fd5b600061295e8484612677565b949350505050565b60008060008060008060c0878903121561297f57600080fd5b600061298b8989612677565b965050602061299c89828a01612677565b95505060406129ad89828a01612836565b94505060606129be89828a01612836565b93505060806129cf89828a01612836565b92505060a06129e089828a01612677565b9150509295509295509295565b600080600080600060a08688031215612a0557600080fd5b853567ffffffffffffffff811115612a1c57600080fd5b612a2888828901612682565b955050602086013567ffffffffffffffff811115612a4557600080fd5b612a51888289016127bb565b945050604086013567ffffffffffffffff811115612a6e57600080fd5b612a7a8882890161275e565b935050606086013567ffffffffffffffff811115612a9757600080fd5b612aa388828901612701565b925050608086013567ffffffffffffffff811115612ac057600080fd5b612acc8882890161284c565b9150509295509295909350565b600060208284031215612aeb57600080fd5b600061295e848461282b565b600060208284031215612b0957600080fd5b600061295e8484612841565b600060208284031215612b2757600080fd5b815167ffffffffffffffff811115612b3e57600080fd5b61295e8482850161289b565b600060208284031215612b5c57600080fd5b600061295e8484612836565b60008060408385031215612b7b57600080fd5b6000612b878585612836565b9250506020612b9885828601612677565b9150509250929050565b60008060408385031215612bb557600080fd5b6000612bc18585612836565b9250506020612b988582860161292a565b60008060008060608587031215612be857600080fd5b6000612bf48787612836565b9450506020612c058782880161292a565b935050604085013567ffffffffffffffff811115612c2257600080fd5b612c2e878288016128e1565b95989497509550505050565b600080600080600060a08688031215612c5257600080fd5b6000612c5e8888612836565b9550506020612c6f8882890161292a565b9450506040612c808882890161292a565b9350506060612c9188828901612836565b9250506080612acc88828901612836565b600060208284031215612cb457600080fd5b600061295e8484612935565b6000612ccc8383612cfb565b505060200190565b60006121928383612e9d565b6000612ccc8383612e83565b612cf581614531565b82525050565b612cf5816144f9565b6000612d0f826144ec565b612d1981856144f0565b9350612d24836144da565b8060005b83811015612d52578151612d3c8882612cc0565b9750612d47836144da565b925050600101612d28565b509495945050505050565b6000612d68826144ec565b612d7281856144f0565b935083602082028501612d84856144da565b8060005b85811015612dbe5784840389528151612da18582612cd4565b9450612dac836144da565b60209a909a0199925050600101612d88565b5091979650505050505050565b6000612dd6826144ec565b612de081856144f0565b935083602082028501612df2856144da565b8060005b85811015612dbe5784840389528151612e0f8582612cd4565b9450612e1a836144da565b60209a909a0199925050600101612df6565b6000612e37826144ec565b612e4181856144f0565b9350612e4c836144da565b8060005b83811015612d52578151612e648882612ce0565b9750612e6f836144da565b925050600101612e50565b612cf581614504565b612cf581611fa5565b612cf5612e9882611fa5565b611fa5565b6000612ea8826144ec565b612eb281856144f0565b9350612ec2818560208601614565565b612ecb81614591565b9093019392505050565b600081546001811660008114612ef25760018114612f1857612f57565b607f6002830416612f0381876144f0565b60ff1984168152955050602085019250612f57565b60028204612f2681876144f0565b9550612f31856144e0565b60005b82811015612f5057815488820152600190910190602001612f34565b8701945050505b505092915050565b612cf581614538565b612cf581614543565b6000612f7d83856144f0565b9350612f8a838584614559565b612ecb83614591565b6000612fa06032836144f0565b7f476f7665726e6f72427261766f3a3a63617374566f7465496e7465726e616c3a81527120696e76616c696420766f7465207479706560701b602082015260400192915050565b6000612ff4602883610e57565b7f42616c6c6f742875696e743235362070726f706f73616c49642c75696e743820815267737570706f72742960c01b602082015260280192915050565b600061303e6033836144f0565b7f476f7665726e6f72427261766f3a3a696e697469616c697a653a2063616e206f8152726e6c7920696e697469616c697a65206f6e636560681b602082015260400192915050565b6000613093602a836144f0565b7f476f7665726e6f72427261766f3a5f73657450656e64696e6741646d696e3a2081526961646d696e206f6e6c7960b01b602082015260400192915050565b60006130df6055836144f0565b7f476f7665726e6f72427261766f3a3a71756575654f72526576657274496e746581527f726e616c3a206964656e746963616c2070726f706f73616c20616374696f6e20602082015274616c7265616479207175657565642061742065746160581b604082015260600192915050565b600061315c602b836144f0565b7f476f7665726e6f72427261766f3a3a5f736574566f74696e67506572696f643a81526a2061646d696e206f6e6c7960a81b602082015260400192915050565b60006131a96033836144f0565b6000805160206145de83398151915281527269642074696d656c6f636b206164647265737360681b602082015260400192915050565b60006131ec602a836144f0565b7f476f7665726e6f72427261766f3a3a5f736574566f74696e6744656c61793a2081526961646d696e206f6e6c7960b01b602082015260400192915050565b60006132386031836144f0565b7f476f7665726e6f72427261766f3a3a70726f706f73653a20476f7665726e6f7281527020427261766f206e6f742061637469766560781b602082015260400192915050565b600061328b600283610e57565b61190160f01b815260020192915050565b60006132a96036836144f0565b7f476f7665726e6f72427261766f3a3a5f736574566f74696e67506572696f643a815275081a5b9d985b1a59081d9bdd1a5b99c81c195c9a5bd960521b602082015260400192915050565b60006133016031836144f0565b7f476f7665726e6f72427261766f3a3a63617374566f7465496e7465726e616c3a815270081d9bdd1a5b99c81a5cc818db1bdcd959607a1b602082015260400192915050565b60006133546034836144f0565b7f476f7665726e6f72427261766f3a3a63617374566f7465496e7465726e616c3a815273081d9bdd195c88185b1c9958591e481d9bdd195960621b602082015260400192915050565b60006133aa602e836144f0565b6000805160206145de83398151915281526d696420787673206164647265737360901b602082015260400192915050565b60006133e86034836144f0565b7f476f7665726e6f72427261766f3a3a5f736574566f74696e6744656c61793a20815273696e76616c696420766f74696e672064656c617960601b602082015260400192915050565b600061343e6035836144f0565b6000805160206145de8339815191528152741a59081c1c9bdc1bdcd85b081d1a1c995cda1bdb19605a1b602082015260400192915050565b60006134836045836144f0565b7f476f7665726e6f72427261766f3a3a657865637574653a2070726f706f73616c81527f2063616e206f6e6c7920626520657865637574656420696620697420697320716020820152641d595d595960da1b604082015260600192915050565b60006134f0602f836144f0565b7f476f7665726e6f72427261766f3a3a63617374566f746542795369673a20696e81526e76616c6964207369676e617475726560881b602082015260400192915050565b6000613541602f836144f0565b6000805160206145de83398151915281526e696420766f74696e672064656c617960881b602082015260400192915050565b60006135806044836144f0565b7f476f7665726e6f72427261766f3a3a70726f706f73653a2070726f706f73616c81527f2066756e6374696f6e20696e666f726d6174696f6e206172697479206d69736d6020820152630c2e8c6d60e31b604082015260600192915050565b60006135ec6025836144f0565b7f476f7665726e6f72427261766f3a3a696e697469616c697a653a2061646d696e815264206f6e6c7960d81b602082015260400192915050565b60006136336040836144f0565b7f476f7665726e6f72427261766f3a3a5f73657450726f706f73616c546872657381527f686f6c643a20696e76616c69642070726f706f73616c207468726573686f6c64602082015260400192915050565b60006136926044836144f0565b7f476f7665726e6f72427261766f3a3a71756575653a2070726f706f73616c206381527f616e206f6e6c79206265207175657565642069662069742069732073756363656020820152631959195960e21b604082015260600192915050565b60006136fe6011836144f0565b706164646974696f6e206f766572666c6f7760781b815260200192915050565b600061372b604383610e57565b7f454950373132446f6d61696e28737472696e67206e616d652c75696e7432353681527f20636861696e49642c6164647265737320766572696679696e67436f6e74726160208201526263742960e81b604082015260430192915050565b60006137966030836144f0565b7f476f7665726e6f72427261766f3a3a5f696e6974696174653a2063616e206f6e81526f6c7920696e697469617465206f6e636560801b602082015260400192915050565b60006137e8602c836144f0565b7f476f7665726e6f72427261766f3a3a70726f706f73653a206d7573742070726f81526b7669646520616374696f6e7360a01b602082015260400192915050565b6000613836602e836144f0565b7f476f7665726e6f72427261766f3a5f61636365707441646d696e3a2070656e6481526d696e672061646d696e206f6e6c7960901b602082015260400192915050565b6000613886602f836144f0565b7f476f7665726e6f72427261766f3a3a63616e63656c3a2070726f706f7365722081526e18589bdd99481d1a1c995cda1bdb19608a1b602082015260400192915050565b60006138d7602b836144f0565b6000805160206145de83398151915281526a34b21033bab0b93234b0b760a91b602082015260400192915050565b60006139126028836144f0565b7f476f7665726e6f72427261766f3a3a70726f706f73653a20746f6f206d616e7981526720616374696f6e7360c01b602082015260400192915050565b600061395c6059836144f0565b7f476f7665726e6f72427261766f3a3a70726f706f73653a206f6e65206c69766581527f2070726f706f73616c207065722070726f706f7365722c20666f756e6420616e60208201527f20616c72656164792070656e64696e672070726f706f73616c00000000000000604082015260600192915050565b60006139e16034836144f0565b7f476f7665726e6f72427261766f3a3a5f73657450726f706f73616c4d61784f7081527365726174696f6e733a2061646d696e206f6e6c7960601b602082015260400192915050565b6000613a376058836144f0565b7f476f7665726e6f72427261766f3a3a70726f706f73653a206f6e65206c69766581527f2070726f706f73616c207065722070726f706f7365722c20666f756e6420616e60208201527f20616c7265616479206163746976652070726f706f73616c0000000000000000604082015260600192915050565b6000611b286000836144f0565b6000613ac96024836144f0565b7f476f7665726e6f72427261766f3a3a5f696e6974696174653a2061646d696e208152636f6e6c7960e01b602082015260400192915050565b6000613b0f603f836144f0565b7f476f7665726e6f72427261766f3a3a70726f706f73653a2070726f706f73657281527f20766f7465732062656c6f772070726f706f73616c207468726573686f6c6400602082015260400192915050565b6000613b6e6036836144f0565b7f476f7665726e6f72427261766f3a3a63616e63656c3a2063616e6e6f742063618152751b98d95b08195e1958dd5d1959081c1c9bdc1bdcd85b60521b602082015260400192915050565b6000613bc66030836144f0565b7f476f7665726e6f72427261766f3a3a5f73657450726f706f73616c546872657381526f686f6c643a2061646d696e206f6e6c7960801b602082015260400192915050565b6000613c186029836144f0565b7f476f7665726e6f72427261766f3a3a73746174653a20696e76616c69642070728152681bdc1bdcd85b081a5960ba1b602082015260400192915050565b6000613c636030836144f0565b6000805160206145de83398151915281526f1a59081d9bdd1a5b99c81c195c9a5bd960821b602082015260400192915050565b6000613ca3603b836144f0565b7f476f7665726e6f72427261766f3a3a5f736574477561726469616e3a2063616e81527f6e6f74206c69766520776974686f7574206120677561726469616e0000000000602082015260400192915050565b6000613d026033836144f0565b7f476f7665726e6f72427261766f3a3a5f736574477561726469616e3a2061646d815272696e206f7220677561726469616e206f6e6c7960681b602082015260400192915050565b6000613d576015836144f0565b747375627472616374696f6e20756e646572666c6f7760581b815260200192915050565b80516060830190613d8c8482612e7a565b506020820151613d9f6020850182613db8565b506040820151613db26040850182613dca565b50505050565b612cf58161451f565b612cf58161454e565b612cf581614525565b6000611b2882612fe7565b6000613de98261327e565b9150613df58285612e8c565b602082019150613e058284612e8c565b5060200192915050565b6000611b288261371e565b60208101611b288284612cfb565b60408101613e368285612cec565b6121926020830184612e83565b60408101613e518285612cfb565b6121926020830184612cfb565b60408101613e368285612cfb565b60a08101613e7a8288612cfb565b613e876020830187612e83565b8181036040830152613e998186612e9d565b90508181036060830152613ead8185612e9d565b9050613ebc6080830184612e83565b9695505050505050565b60a08101613ed48288612cfb565b613ee16020830187612e83565b8181036040830152613ef38186612ed5565b90508181036060830152613ead8185612ed5565b60808082528101613f188187612d04565b90508181036020830152613f2c8186612e2c565b90508181036040830152613f408185612dcb565b90508181036060830152613ebc8184612d5d565b60208101611b288284612e83565b60808101613f708287612e83565b613f7d6020830186612e83565b613f8a6040830185612e83565b6118306060830184612cfb565b60608101613fa58286612e83565b613fb26020830185612e83565b61295e6040830184613db8565b60808101613fcd8287612e83565b613fda6020830186613db8565b613fe76040830185612e83565b6118306060830184612e83565b60208101611b288284612f5f565b60208101611b288284612f68565b602080825281016121928184612e9d565b60208082528101611b2881612f93565b60208082528101611b2881613031565b60208082528101611b2881613086565b60208082528101611b28816130d2565b60208082528101611b288161314f565b60208082528101611b288161319c565b60208082528101611b28816131df565b60208082528101611b288161322b565b60208082528101611b288161329c565b60208082528101611b28816132f4565b60208082528101611b2881613347565b60208082528101611b288161339d565b60208082528101611b28816133db565b60208082528101611b2881613431565b60208082528101611b2881613476565b60208082528101611b28816134e3565b60208082528101611b2881613534565b60208082528101611b2881613573565b60208082528101611b28816135df565b60208082528101611b2881613626565b60208082528101611b2881613685565b60208082528101611b28816136f1565b60208082528101611b2881613789565b60208082528101611b28816137db565b60208082528101611b2881613829565b60208082528101611b2881613879565b60208082528101611b28816138ca565b60208082528101611b2881613905565b60208082528101611b288161394f565b60208082528101611b28816139d4565b60208082528101611b2881613a2a565b60208082528101611b2881613abc565b60208082528101611b2881613b02565b60208082528101611b2881613b61565b60208082528101611b2881613bb9565b60208082528101611b2881613c0b565b60208082528101611b2881613c56565b60208082528101611b2881613c96565b60208082528101611b2881613cf5565b60208082528101611b2881613d4a565b60608101611b288284613d7b565b61012081016142be828c612e83565b6142cb602083018b612cec565b81810360408301526142dd818a612d04565b905081810360608301526142f18189612e2c565b905081810360808301526143058188612dcb565b905081810360a08301526143198187612d5d565b905061432860c0830186612e83565b61433560e0830185612e83565b8181036101008301526143488184612e9d565b9b9a5050505050505050505050565b6101408101614366828d612e83565b614373602083018c612cfb565b614380604083018b612e83565b61438d606083018a612e83565b61439a6080830189612e83565b6143a760a0830188612e83565b6143b460c0830187612e83565b6143c160e0830186612e83565b6143cf610100830185612e7a565b614348610120830184612e7a565b60408101613e368285612e83565b608081016143f98288612e83565b6144066020830187613db8565b6144136040830186613dc1565b8181036060830152614426818486612f71565b979650505050505050565b6080810161443f8286612e83565b61444c6020830185613db8565b6144596040830184613dc1565b818103606083015261183081613aaf565b60405181810167ffffffffffffffff8111828210171561448957600080fd5b604052919050565b600067ffffffffffffffff8211156144a857600080fd5b5060209081020190565b600067ffffffffffffffff8211156144c957600080fd5b506020601f91909101601f19160190565b60200190565b60009081526020902090565b5190565b90815260200190565b6000611b2882614513565b151590565b80610e578161459b565b6001600160a01b031690565b60ff1690565b6001600160601b031690565b6000611b28825b6000611b28826144f9565b6000611b2882614509565b6000611b2882614525565b82818337506000910152565b60005b83811015614580578181015183820152602001614568565b83811115613db25750506000910152565b601f01601f191690565b6008811061267457fe5b6145ae816144f9565b811461267457600080fd5b6145ae81614504565b6145ae81611fa5565b6145ae8161451f565b6145ae8161452556fe476f7665726e6f72427261766f3a3a696e697469616c697a653a20696e76616ca365627a7a72315820b9a6b9c60844b6c8ba29f2974fe741c3252179b2d9f635206a558ec5f97598566c6578706572696d656e74616cf564736f6c63430005100040","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x269 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x5C60DA1B GT PUSH2 0x151 JUMPI DUP1 PUSH4 0xDA95691A GT PUSH2 0xC3 JUMPI DUP1 PUSH4 0xE48083FE GT PUSH2 0x87 JUMPI DUP1 PUSH4 0xE48083FE EQ PUSH2 0x4DB JUMPI DUP1 PUSH4 0xE9C714F2 EQ PUSH2 0x4E3 JUMPI DUP1 PUSH4 0xF851A440 EQ PUSH2 0x4EB JUMPI DUP1 PUSH4 0xF9D28B80 EQ PUSH2 0x4F3 JUMPI DUP1 PUSH4 0xFC4EEE42 EQ PUSH2 0x506 JUMPI DUP1 PUSH4 0xFE0D94C1 EQ PUSH2 0x50E JUMPI PUSH2 0x269 JUMP JUMPDEST DUP1 PUSH4 0xDA95691A EQ PUSH2 0x47A JUMPI DUP1 PUSH4 0xDDF0B009 EQ PUSH2 0x48D JUMPI DUP1 PUSH4 0xDEAAA7CC EQ PUSH2 0x4A0 JUMPI DUP1 PUSH4 0xE23A9A52 EQ PUSH2 0x4A8 JUMPI DUP1 PUSH4 0xE38E8C0F EQ PUSH2 0x4C8 JUMPI PUSH2 0x269 JUMP JUMPDEST DUP1 PUSH4 0xB1126263 GT PUSH2 0x115 JUMPI DUP1 PUSH4 0xB1126263 EQ PUSH2 0x434 JUMPI DUP1 PUSH4 0xB1A5D12D EQ PUSH2 0x43C JUMPI DUP1 PUSH4 0xB58131B0 EQ PUSH2 0x44F JUMPI DUP1 PUSH4 0xB71D1A0C EQ PUSH2 0x457 JUMPI DUP1 PUSH4 0xD33219B4 EQ PUSH2 0x46A JUMPI DUP1 PUSH4 0xDA35C664 EQ PUSH2 0x472 JUMPI PUSH2 0x269 JUMP JUMPDEST DUP1 PUSH4 0x5C60DA1B EQ PUSH2 0x401 JUMPI DUP1 PUSH4 0x791F5D23 EQ PUSH2 0x409 JUMPI DUP1 PUSH4 0x7B3C71D3 EQ PUSH2 0x411 JUMPI DUP1 PUSH4 0x7BDBE4D0 EQ PUSH2 0x424 JUMPI DUP1 PUSH4 0xA64E024A EQ PUSH2 0x42C JUMPI PUSH2 0x269 JUMP JUMPDEST DUP1 PUSH4 0x215809CA GT PUSH2 0x1EA JUMPI DUP1 PUSH4 0x3932ABB1 GT PUSH2 0x1AE JUMPI DUP1 PUSH4 0x3932ABB1 EQ PUSH2 0x398 JUMPI DUP1 PUSH4 0x3BCCF4FD EQ PUSH2 0x3A0 JUMPI DUP1 PUSH4 0x3E4F49E6 EQ PUSH2 0x3B3 JUMPI DUP1 PUSH4 0x40E58EE5 EQ PUSH2 0x3D3 JUMPI DUP1 PUSH4 0x452A9320 EQ PUSH2 0x3E6 JUMPI DUP1 PUSH4 0x56781388 EQ PUSH2 0x3EE JUMPI PUSH2 0x269 JUMP JUMPDEST DUP1 PUSH4 0x215809CA EQ PUSH2 0x348 JUMPI DUP1 PUSH4 0x24BC1A64 EQ PUSH2 0x350 JUMPI DUP1 PUSH4 0x25FD935A EQ PUSH2 0x358 JUMPI DUP1 PUSH4 0x26782247 EQ PUSH2 0x360 JUMPI DUP1 PUSH4 0x328DD982 EQ PUSH2 0x375 JUMPI PUSH2 0x269 JUMP JUMPDEST DUP1 PUSH4 0x17BA1B8B GT PUSH2 0x231 JUMPI DUP1 PUSH4 0x17BA1B8B EQ PUSH2 0x2F2 JUMPI DUP1 PUSH4 0x1B9CE575 EQ PUSH2 0x305 JUMPI DUP1 PUSH4 0x1DFB1B5A EQ PUSH2 0x31A JUMPI DUP1 PUSH4 0x1EBCFEFD EQ PUSH2 0x32D JUMPI DUP1 PUSH4 0x20606B70 EQ PUSH2 0x340 JUMPI PUSH2 0x269 JUMP JUMPDEST DUP1 PUSH4 0x13CF08B EQ PUSH2 0x26E JUMPI DUP1 PUSH4 0x2A251A3 EQ PUSH2 0x2A0 JUMPI DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x2B5 JUMPI DUP1 PUSH4 0xEA2D98C EQ PUSH2 0x2CA JUMPI DUP1 PUSH4 0x17977C61 EQ PUSH2 0x2DF JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x281 PUSH2 0x27C CALLDATASIZE PUSH1 0x4 PUSH2 0x2B4A JUMP JUMPDEST PUSH2 0x521 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x297 SWAP11 SWAP10 SWAP9 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4357 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2A8 PUSH2 0x584 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x297 SWAP2 SWAP1 PUSH2 0x3F54 JUMP JUMPDEST PUSH2 0x2BD PUSH2 0x58A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x297 SWAP2 SWAP1 PUSH2 0x4010 JUMP JUMPDEST PUSH2 0x2DD PUSH2 0x2D8 CALLDATASIZE PUSH1 0x4 PUSH2 0x2B4A JUMP JUMPDEST PUSH2 0x5BA JUMP JUMPDEST STOP JUMPDEST PUSH2 0x2A8 PUSH2 0x2ED CALLDATASIZE PUSH1 0x4 PUSH2 0x2940 JUMP JUMPDEST PUSH2 0x664 JUMP JUMPDEST PUSH2 0x2DD PUSH2 0x300 CALLDATASIZE PUSH1 0x4 PUSH2 0x2B4A JUMP JUMPDEST PUSH2 0x676 JUMP JUMPDEST PUSH2 0x30D PUSH2 0x71A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x297 SWAP2 SWAP1 PUSH2 0x3FF4 JUMP JUMPDEST PUSH2 0x2DD PUSH2 0x328 CALLDATASIZE PUSH1 0x4 PUSH2 0x2B4A JUMP JUMPDEST PUSH2 0x729 JUMP JUMPDEST PUSH2 0x2DD PUSH2 0x33B CALLDATASIZE PUSH1 0x4 PUSH2 0x2B4A JUMP JUMPDEST PUSH2 0x7BD JUMP JUMPDEST PUSH2 0x2A8 PUSH2 0x821 JUMP JUMPDEST PUSH2 0x2A8 PUSH2 0x838 JUMP JUMPDEST PUSH2 0x2A8 PUSH2 0x83E JUMP JUMPDEST PUSH2 0x2A8 PUSH2 0x84C JUMP JUMPDEST PUSH2 0x368 PUSH2 0x85A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x297 SWAP2 SWAP1 PUSH2 0x3E1A JUMP JUMPDEST PUSH2 0x388 PUSH2 0x383 CALLDATASIZE PUSH1 0x4 PUSH2 0x2B4A JUMP JUMPDEST PUSH2 0x869 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x297 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3F07 JUMP JUMPDEST PUSH2 0x2A8 PUSH2 0xAF8 JUMP JUMPDEST PUSH2 0x2DD PUSH2 0x3AE CALLDATASIZE PUSH1 0x4 PUSH2 0x2C3A JUMP JUMPDEST PUSH2 0xAFE JUMP JUMPDEST PUSH2 0x3C6 PUSH2 0x3C1 CALLDATASIZE PUSH1 0x4 PUSH2 0x2B4A JUMP JUMPDEST PUSH2 0xCD6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x297 SWAP2 SWAP1 PUSH2 0x4002 JUMP JUMPDEST PUSH2 0x2DD PUSH2 0x3E1 CALLDATASIZE PUSH1 0x4 PUSH2 0x2B4A JUMP JUMPDEST PUSH2 0xE5C JUMP JUMPDEST PUSH2 0x368 PUSH2 0x10C5 JUMP JUMPDEST PUSH2 0x2DD PUSH2 0x3FC CALLDATASIZE PUSH1 0x4 PUSH2 0x2BA2 JUMP JUMPDEST PUSH2 0x10D4 JUMP JUMPDEST PUSH2 0x368 PUSH2 0x111E JUMP JUMPDEST PUSH2 0x2A8 PUSH2 0x112D JUMP JUMPDEST PUSH2 0x2DD PUSH2 0x41F CALLDATASIZE PUSH1 0x4 PUSH2 0x2BD2 JUMP JUMPDEST PUSH2 0x113B JUMP JUMPDEST PUSH2 0x2A8 PUSH2 0x118B JUMP JUMPDEST PUSH2 0x2A8 PUSH2 0x1191 JUMP JUMPDEST PUSH2 0x2A8 PUSH2 0x1198 JUMP JUMPDEST PUSH2 0x2DD PUSH2 0x44A CALLDATASIZE PUSH1 0x4 PUSH2 0x2966 JUMP JUMPDEST PUSH2 0x119F JUMP JUMPDEST PUSH2 0x2A8 PUSH2 0x1358 JUMP JUMPDEST PUSH2 0x2DD PUSH2 0x465 CALLDATASIZE PUSH1 0x4 PUSH2 0x2940 JUMP JUMPDEST PUSH2 0x135E JUMP JUMPDEST PUSH2 0x30D PUSH2 0x13DB JUMP JUMPDEST PUSH2 0x2A8 PUSH2 0x13EA JUMP JUMPDEST PUSH2 0x2A8 PUSH2 0x488 CALLDATASIZE PUSH1 0x4 PUSH2 0x29ED JUMP JUMPDEST PUSH2 0x13F0 JUMP JUMPDEST PUSH2 0x2DD PUSH2 0x49B CALLDATASIZE PUSH1 0x4 PUSH2 0x2B4A JUMP JUMPDEST PUSH2 0x1839 JUMP JUMPDEST PUSH2 0x2A8 PUSH2 0x1AB5 JUMP JUMPDEST PUSH2 0x4BB PUSH2 0x4B6 CALLDATASIZE PUSH1 0x4 PUSH2 0x2B68 JUMP JUMPDEST PUSH2 0x1AC1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x297 SWAP2 SWAP1 PUSH2 0x42A1 JUMP JUMPDEST PUSH2 0x2DD PUSH2 0x4D6 CALLDATASIZE PUSH1 0x4 PUSH2 0x2940 JUMP JUMPDEST PUSH2 0x1B2E JUMP JUMPDEST PUSH2 0x2A8 PUSH2 0x1BE6 JUMP JUMPDEST PUSH2 0x2DD PUSH2 0x1BEB JUMP JUMPDEST PUSH2 0x368 PUSH2 0x1CC9 JUMP JUMPDEST PUSH2 0x2DD PUSH2 0x501 CALLDATASIZE PUSH1 0x4 PUSH2 0x2940 JUMP JUMPDEST PUSH2 0x1CD8 JUMP JUMPDEST PUSH2 0x2A8 PUSH2 0x1DFE JUMP JUMPDEST PUSH2 0x2DD PUSH2 0x51C CALLDATASIZE PUSH1 0x4 PUSH2 0x2B4A JUMP JUMPDEST PUSH2 0x1E04 JUMP JUMPDEST PUSH1 0xA PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x40 SWAP1 SWAP2 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 SWAP7 DUP7 ADD SLOAD PUSH1 0xB DUP8 ADD SLOAD PUSH1 0xC SWAP1 SWAP8 ADD SLOAD SWAP6 SWAP8 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP6 AND SWAP7 SWAP4 SWAP6 SWAP3 SWAP5 SWAP2 SWAP4 SWAP2 SWAP3 SWAP1 SWAP2 SWAP1 PUSH1 0xFF DUP1 DUP3 AND SWAP2 PUSH2 0x100 SWAP1 DIV AND DUP11 JUMP JUMPDEST PUSH1 0x4 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x14 DUP2 MSTORE PUSH1 0x20 ADD PUSH20 0x56656E757320476F7665726E6F7220427261766F PUSH1 0x60 SHL DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x5ED JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5E4 SWAP1 PUSH2 0x4061 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xE10 DUP2 LT ISZERO DUP1 ISZERO PUSH2 0x602 JUMPI POP PUSH3 0x62700 DUP2 GT ISZERO JUMPDEST PUSH2 0x61E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5E4 SWAP1 PUSH2 0x40A1 JUMP JUMPDEST PUSH1 0x4 DUP1 SLOAD SWAP1 DUP3 SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH32 0x7E3F7F0708A84DE9203036ABAA450DCCC85AD5FF52F78C170F3EDB55CF5E8828 SWAP1 PUSH2 0x658 SWAP1 DUP4 SWAP1 DUP6 SWAP1 PUSH2 0x43DD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x6A0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5E4 SWAP1 PUSH2 0x4241 JUMP JUMPDEST PUSH10 0x1FC3842BD1F071C00000 DUP2 LT ISZERO DUP1 ISZERO PUSH2 0x6C4 JUMPI POP PUSH10 0x3F870857A3E0E3800000 DUP2 GT ISZERO JUMPDEST PUSH2 0x6E0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5E4 SWAP1 PUSH2 0x4151 JUMP JUMPDEST PUSH1 0x5 DUP1 SLOAD SWAP1 DUP3 SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH32 0xCCB45DA8D5717E6C4544694297C4BA5CF151D455C9BB0ED4FC7A38411BC05461 SWAP1 PUSH2 0x658 SWAP1 DUP4 SWAP1 DUP6 SWAP1 PUSH2 0x43DD JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x753 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5E4 SWAP1 PUSH2 0x4081 JUMP JUMPDEST PUSH1 0x1 DUP2 LT ISZERO DUP1 ISZERO PUSH2 0x767 JUMPI POP PUSH3 0x31380 DUP2 GT ISZERO JUMPDEST PUSH2 0x783 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5E4 SWAP1 PUSH2 0x40E1 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD SWAP1 DUP3 SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH32 0xC565B045403DC03C2EEA82B81A0465EDAD9E2E7FC4D97E11421C209DA93D7A93 SWAP1 PUSH2 0x658 SWAP1 DUP4 SWAP1 DUP6 SWAP1 PUSH2 0x43DD JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x7E7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5E4 SWAP1 PUSH2 0x41F1 JUMP JUMPDEST PUSH1 0xC DUP1 SLOAD SWAP1 DUP3 SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH32 0xD03B3C3C5C1446BCDD31423061041C94CA3BC5450FE7CCFB0F636F4C420DE87E SWAP1 PUSH2 0x658 SWAP1 DUP4 SWAP1 DUP6 SWAP1 PUSH2 0x43DD JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x82D SWAP1 PUSH2 0x3E0F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 DUP2 JUMP JUMPDEST PUSH2 0xE10 DUP2 JUMP JUMPDEST PUSH10 0x7F0E10AF47C1C7000000 DUP2 JUMP JUMPDEST PUSH10 0x3F870857A3E0E3800000 DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x60 DUP1 PUSH1 0x60 DUP1 PUSH1 0x0 PUSH1 0xA 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 0x8EB 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 0x8CD 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 0x93D 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 0x929 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 0xA10 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 0x9FC JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x9D1 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x9FC 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 0x9DF 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 0x965 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 0xAE2 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 0xACE JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xAA3 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xACE 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 0xAB1 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 0xA37 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 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD PUSH2 0xB0C SWAP1 PUSH2 0x3E0F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB DUP3 KECCAK256 DUP3 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x14 DUP3 MSTORE PUSH20 0x56656E757320476F7665726E6F7220427261766F PUSH1 0x60 SHL PUSH1 0x20 SWAP1 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0x157D76627A3B71C0167806F5879F7A61D3E301322F3A3B9F900315F15937671A PUSH2 0xB6A PUSH2 0x1FA3 JUMP JUMPDEST ADDRESS PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xB7E SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3F62 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 0xBA4 SWAP1 PUSH2 0x3DD3 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB DUP2 KECCAK256 PUSH2 0xBBD SWAP2 DUP10 SWAP1 DUP10 SWAP1 PUSH1 0x20 ADD PUSH2 0x3F97 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 0xBEA SWAP3 SWAP2 SWAP1 PUSH2 0x3DDE 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 0xC27 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3FBF JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xC49 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 0xC7C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5E4 SWAP1 PUSH2 0x4111 JUMP JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xB8E138887D0AA13BAB447E82DE9D5C1777041ECD21CA36BA824FF1E6C07DDDA4 DUP11 DUP11 PUSH2 0xCB4 DUP6 DUP15 DUP15 PUSH2 0x1FA8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xCC3 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4431 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x7 SLOAD LT ISZERO DUP1 ISZERO PUSH2 0xCEB JUMPI POP PUSH1 0x6 SLOAD DUP3 GT JUMPDEST PUSH2 0xD07 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5E4 SWAP1 PUSH2 0x4251 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0xC DUP2 ADD SLOAD PUSH1 0xFF AND ISZERO PUSH2 0xD2C JUMPI PUSH1 0x2 SWAP2 POP POP PUSH2 0xE57 JUMP JUMPDEST DUP1 PUSH1 0x7 ADD SLOAD NUMBER GT PUSH2 0xD41 JUMPI PUSH1 0x0 SWAP2 POP POP PUSH2 0xE57 JUMP JUMPDEST DUP1 PUSH1 0x8 ADD SLOAD NUMBER GT PUSH2 0xD56 JUMPI PUSH1 0x1 SWAP2 POP POP PUSH2 0xE57 JUMP JUMPDEST DUP1 PUSH1 0xA ADD SLOAD DUP2 PUSH1 0x9 ADD SLOAD GT ISZERO DUP1 PUSH2 0xD7A JUMPI POP PUSH10 0x7F0E10AF47C1C7000000 DUP2 PUSH1 0x9 ADD SLOAD LT JUMPDEST ISZERO PUSH2 0xD89 JUMPI PUSH1 0x3 SWAP2 POP POP PUSH2 0xE57 JUMP JUMPDEST PUSH1 0x2 DUP2 ADD SLOAD PUSH2 0xD9C JUMPI PUSH1 0x4 SWAP2 POP POP PUSH2 0xE57 JUMP JUMPDEST PUSH1 0xC DUP2 ADD SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0xDB8 JUMPI PUSH1 0x7 SWAP2 POP POP PUSH2 0xE57 JUMP JUMPDEST PUSH1 0x2 DUP2 ADD SLOAD PUSH1 0x8 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH4 0x60D143F1 PUSH1 0xE1 SHL DUP2 MSTORE SWAP1 MLOAD PUSH2 0xE41 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 0xE04 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xE18 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 0xE3C SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2AF7 JUMP JUMPDEST PUSH2 0x2199 JUMP JUMPDEST TIMESTAMP LT PUSH2 0xE51 JUMPI PUSH1 0x6 SWAP2 POP POP PUSH2 0xE57 JUMP JUMPDEST PUSH1 0x5 SWAP2 POP POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x7 PUSH2 0xE67 DUP3 PUSH2 0xCD6 JUMP JUMPDEST PUSH1 0x7 DUP2 GT ISZERO PUSH2 0xE72 JUMPI INVALID JUMPDEST EQ ISZERO PUSH2 0xE90 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5E4 SWAP1 PUSH2 0x4231 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0xD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ DUP1 PUSH2 0xEC3 JUMPI POP PUSH1 0x1 DUP2 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ JUMPDEST DUP1 PUSH2 0xF6D JUMPI POP PUSH1 0x5 SLOAD PUSH1 0x9 SLOAD PUSH1 0x1 DUP4 DUP2 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 AND SWAP3 PUSH4 0x782D6FE1 SWAP3 SWAP2 AND SWAP1 PUSH2 0xEF5 SWAP1 NUMBER SWAP1 PUSH2 0x21BE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xF12 SWAP3 SWAP2 SWAP1 PUSH2 0x3E5E JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xF2A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xF3E 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 0xF62 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2CA2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB AND LT JUMPDEST PUSH2 0xF89 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5E4 SWAP1 PUSH2 0x41B1 JUMP JUMPDEST PUSH1 0xC 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 0x1095 JUMPI PUSH1 0x8 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 0xFCD 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 0xFF5 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD DUP6 PUSH1 0x5 ADD DUP6 DUP2 SLOAD DUP2 LT PUSH2 0x100F JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD DUP7 PUSH1 0x6 ADD DUP7 DUP2 SLOAD DUP2 LT PUSH2 0x1028 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 0x1057 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3EC6 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1071 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1085 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 POP PUSH2 0xF9B SWAP1 POP JUMP JUMPDEST POP PUSH32 0x789CF55BE980739DAD1D0699B93B58E806B51C9D96619BFA8FE0A28ABAA7B30C DUP3 PUSH1 0x40 MLOAD PUSH2 0x658 SWAP2 SWAP1 PUSH2 0x3F54 JUMP JUMPDEST PUSH1 0xD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST CALLER PUSH32 0xB8E138887D0AA13BAB447E82DE9D5C1777041ECD21CA36BA824FF1E6C07DDDA4 DUP4 DUP4 PUSH2 0x1103 DUP5 DUP4 DUP4 PUSH2 0x1FA8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1112 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4431 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH10 0x1FC3842BD1F071C00000 DUP2 JUMP JUMPDEST CALLER PUSH32 0xB8E138887D0AA13BAB447E82DE9D5C1777041ECD21CA36BA824FF1E6C07DDDA4 DUP6 DUP6 PUSH2 0x116A DUP5 DUP4 DUP4 PUSH2 0x1FA8 JUMP JUMPDEST DUP7 DUP7 PUSH1 0x40 MLOAD PUSH2 0x117D SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x43EB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP POP JUMP JUMPDEST PUSH1 0xC SLOAD DUP2 JUMP JUMPDEST PUSH3 0x62700 DUP2 JUMP JUMPDEST PUSH3 0x31380 DUP2 JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ISZERO PUSH2 0x11C8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5E4 SWAP1 PUSH2 0x4031 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x11F2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5E4 SWAP1 PUSH2 0x4141 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH2 0x1218 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5E4 SWAP1 PUSH2 0x4071 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH2 0x123E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5E4 SWAP1 PUSH2 0x40D1 JUMP JUMPDEST PUSH2 0xE10 DUP5 LT ISZERO DUP1 ISZERO PUSH2 0x1253 JUMPI POP PUSH3 0x62700 DUP5 GT ISZERO JUMPDEST PUSH2 0x126F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5E4 SWAP1 PUSH2 0x4261 JUMP JUMPDEST PUSH1 0x1 DUP4 LT ISZERO DUP1 ISZERO PUSH2 0x1283 JUMPI POP PUSH3 0x31380 DUP4 GT ISZERO JUMPDEST PUSH2 0x129F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5E4 SWAP1 PUSH2 0x4121 JUMP JUMPDEST PUSH10 0x1FC3842BD1F071C00000 DUP3 LT ISZERO DUP1 ISZERO PUSH2 0x12C3 JUMPI POP PUSH10 0x3F870857A3E0E3800000 DUP3 GT ISZERO JUMPDEST PUSH2 0x12DF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5E4 SWAP1 PUSH2 0x40F1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x1305 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5E4 SWAP1 PUSH2 0x41C1 JUMP JUMPDEST PUSH1 0x8 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP8 DUP9 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP2 DUP3 AND OR SWAP1 SWAP2 SSTORE PUSH1 0x9 DUP1 SLOAD SWAP7 DUP9 AND SWAP7 DUP3 AND SWAP7 SWAP1 SWAP7 OR SWAP1 SWAP6 SSTORE PUSH1 0x4 SWAP4 SWAP1 SWAP4 SSTORE PUSH1 0x3 SWAP2 SWAP1 SWAP2 SSTORE PUSH1 0x5 SSTORE PUSH1 0xA PUSH1 0xC SSTORE PUSH1 0xD DUP1 SLOAD SWAP2 SWAP1 SWAP4 AND SWAP2 AND OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x5 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x1388 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5E4 SWAP1 PUSH2 0x4041 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND OR SWAP1 SWAP3 SSTORE PUSH1 0x40 MLOAD SWAP2 AND SWAP1 PUSH32 0xCA4F2F25D0898EDD99413412FB94012F9E54EC8142F9B093E7720646A95B16A9 SWAP1 PUSH2 0x658 SWAP1 DUP4 SWAP1 DUP6 SWAP1 PUSH2 0x3E43 JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x7 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x6 SLOAD PUSH1 0x0 EQ ISZERO PUSH2 0x1415 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5E4 SWAP1 PUSH2 0x4091 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x9 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x782D6FE1 CALLER PUSH2 0x1435 NUMBER PUSH1 0x1 PUSH2 0x21BE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1452 SWAP3 SWAP2 SWAP1 PUSH2 0x3E28 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x146A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x147E 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 0x14A2 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2CA2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB AND GT PUSH2 0x14C8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5E4 SWAP1 PUSH2 0x4221 JUMP JUMPDEST DUP5 MLOAD DUP7 MLOAD EQ DUP1 ISZERO PUSH2 0x14DA JUMPI POP DUP4 MLOAD DUP7 MLOAD EQ JUMPDEST DUP1 ISZERO PUSH2 0x14E7 JUMPI POP DUP3 MLOAD DUP7 MLOAD EQ JUMPDEST PUSH2 0x1503 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5E4 SWAP1 PUSH2 0x4131 JUMP JUMPDEST DUP6 MLOAD PUSH2 0x1521 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5E4 SWAP1 PUSH2 0x4191 JUMP JUMPDEST PUSH1 0xC SLOAD DUP7 MLOAD GT ISZERO PUSH2 0x1544 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5E4 SWAP1 PUSH2 0x41D1 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP1 ISZERO PUSH2 0x15C1 JUMPI PUSH1 0x0 PUSH2 0x1565 DUP3 PUSH2 0xCD6 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 DUP2 PUSH1 0x7 DUP2 GT ISZERO PUSH2 0x1575 JUMPI INVALID JUMPDEST EQ ISZERO PUSH2 0x1593 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5E4 SWAP1 PUSH2 0x4201 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x7 DUP2 GT ISZERO PUSH2 0x15A1 JUMPI INVALID JUMPDEST EQ ISZERO PUSH2 0x15BF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5E4 SWAP1 PUSH2 0x41E1 JUMP JUMPDEST POP JUMPDEST PUSH1 0x0 PUSH2 0x15CF NUMBER PUSH1 0x3 SLOAD PUSH2 0x2199 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x15DF DUP3 PUSH1 0x4 SLOAD PUSH2 0x2199 JUMP JUMPDEST PUSH1 0x7 DUP1 SLOAD PUSH1 0x1 ADD SWAP1 SSTORE SWAP1 POP PUSH2 0x15F2 PUSH2 0x2345 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH2 0x1C0 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x7 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 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 0xA 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 0x16DC SWAP3 SWAP2 SWAP1 PUSH2 0x23C1 JUMP JUMPDEST POP PUSH1 0x80 DUP3 ADD MLOAD DUP1 MLOAD PUSH2 0x16F8 SWAP2 PUSH1 0x4 DUP5 ADD SWAP2 PUSH1 0x20 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x2426 JUMP JUMPDEST POP PUSH1 0xA0 DUP3 ADD MLOAD DUP1 MLOAD PUSH2 0x1714 SWAP2 PUSH1 0x5 DUP5 ADD SWAP2 PUSH1 0x20 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x246D JUMP JUMPDEST POP PUSH1 0xC0 DUP3 ADD MLOAD DUP1 MLOAD PUSH2 0x1730 SWAP2 PUSH1 0x6 DUP5 ADD SWAP2 PUSH1 0x20 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x24C6 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 SSTORE PUSH2 0x180 DUP3 ADD MLOAD DUP2 PUSH1 0xC ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH2 0x1A0 DUP3 ADD MLOAD DUP2 PUSH1 0xC 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 0xB 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 0x1821 SWAP10 SWAP9 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x42AF 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 0x1844 DUP3 PUSH2 0xCD6 JUMP JUMPDEST PUSH1 0x7 DUP2 GT ISZERO PUSH2 0x184F JUMPI INVALID JUMPDEST EQ PUSH2 0x186C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5E4 SWAP1 PUSH2 0x4161 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x8 SLOAD DUP3 MLOAD PUSH4 0xD48571F PUSH1 0xE3 SHL DUP2 MSTORE SWAP3 MLOAD SWAP2 SWAP5 SWAP4 PUSH2 0x18C6 SWAP4 TIMESTAMP SWAP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP4 AND SWAP3 PUSH4 0x6A42B8F8 SWAP3 PUSH1 0x4 DUP1 DUP5 ADD SWAP4 SWAP2 SWAP3 SWAP2 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xE04 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 POP PUSH1 0x0 JUMPDEST PUSH1 0x3 DUP4 ADD SLOAD DUP2 LT ISZERO PUSH2 0x1A6E JUMPI PUSH2 0x1A66 DUP4 PUSH1 0x3 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x18E9 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 0x1911 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD DUP6 PUSH1 0x5 ADD DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x192B 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 0x19B9 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x198E JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x19B9 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 0x199C 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 0x19CD 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 0x1A5B JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1A30 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1A5B 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 0x1A3E JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP7 PUSH2 0x21E6 JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0x18CB JUMP JUMPDEST POP PUSH1 0x2 DUP3 ADD DUP2 SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH32 0x9A2E42FD6722813D69113E7D0079D3D940171428DF7373DF9C7F7617CFDA2892 SWAP1 PUSH2 0x1AA8 SWAP1 DUP6 SWAP1 DUP5 SWAP1 PUSH2 0x43DD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x82D SWAP1 PUSH2 0x3DD3 JUMP JUMPDEST PUSH2 0x1AC9 PUSH2 0x251F JUMP JUMPDEST POP PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP5 MSTORE PUSH1 0xD 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 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 0xD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ DUP1 PUSH2 0x1B51 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ JUMPDEST PUSH2 0x1B6D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5E4 SWAP1 PUSH2 0x4281 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x1B93 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5E4 SWAP1 PUSH2 0x4271 JUMP JUMPDEST PUSH1 0xD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND OR SWAP1 SWAP3 SSTORE PUSH1 0x40 MLOAD SWAP2 AND SWAP1 PUSH32 0x8FDAF06427A2010E5958F4329B566993472D14CE81D3F16CE7F2A2660DA98E3 SWAP1 PUSH2 0x658 SWAP1 DUP4 SWAP1 DUP6 SWAP1 PUSH2 0x3E43 JUMP JUMPDEST PUSH1 0x1 DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ DUP1 ISZERO PUSH2 0x1C04 JUMPI POP CALLER ISZERO ISZERO JUMPDEST PUSH2 0x1C20 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5E4 SWAP1 PUSH2 0x41A1 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP3 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP1 DUP7 AND DUP3 OR SWAP7 DUP8 SWAP1 SSTORE SWAP1 SWAP3 AND SWAP1 SWAP3 SSTORE PUSH1 0x40 MLOAD SWAP3 DUP3 AND SWAP4 SWAP1 SWAP3 PUSH32 0xF9FFABCA9C8276E99321725BCB43FB076A6C66A54B7F21C4E8146D8519B417DC SWAP3 PUSH2 0x1C84 SWAP3 DUP7 SWAP3 SWAP2 AND SWAP1 PUSH2 0x3E43 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD PUSH32 0xCA4F2F25D0898EDD99413412FB94012F9E54EC8142F9B093E7720646A95B16A9 SWAP2 PUSH2 0x658 SWAP2 DUP5 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH2 0x3E43 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x1D02 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5E4 SWAP1 PUSH2 0x4211 JUMP JUMPDEST PUSH1 0x6 SLOAD ISZERO PUSH2 0x1D22 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5E4 SWAP1 PUSH2 0x4181 JUMP JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xDA35C664 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1D5D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1D71 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 0x1D95 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2AF7 JUMP JUMPDEST PUSH1 0x7 DUP2 SWAP1 SSTORE PUSH1 0x6 SSTORE PUSH1 0x8 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 SWAP2 PUSH4 0xE18B681 SWAP2 PUSH1 0x4 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1DE3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1DF7 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x6 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x5 PUSH2 0x1E0F DUP3 PUSH2 0xCD6 JUMP JUMPDEST PUSH1 0x7 DUP2 GT ISZERO PUSH2 0x1E1A JUMPI INVALID JUMPDEST EQ PUSH2 0x1E37 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5E4 SWAP1 PUSH2 0x4101 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH1 0xC DUP2 ADD DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE SWAP1 JUMPDEST PUSH1 0x3 DUP3 ADD SLOAD DUP2 LT ISZERO PUSH2 0x1F73 JUMPI PUSH1 0x8 SLOAD PUSH1 0x3 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 0x1E8A 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 0x1EB2 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD DUP6 PUSH1 0x5 ADD DUP6 DUP2 SLOAD DUP2 LT PUSH2 0x1ECC JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD DUP7 PUSH1 0x6 ADD DUP7 DUP2 SLOAD DUP2 LT PUSH2 0x1EE5 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 0x1F14 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3EC6 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1F2E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1F42 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 0x1F6A SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2B15 JUMP JUMPDEST POP PUSH1 0x1 ADD PUSH2 0x1E58 JUMP JUMPDEST POP PUSH32 0x712AE1383F79AC853F8D882153778E0260EF8F03B504E2866E0593E04D2B291F DUP3 PUSH1 0x40 MLOAD PUSH2 0x658 SWAP2 SWAP1 PUSH2 0x3F54 JUMP JUMPDEST CHAINID JUMPDEST SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH2 0x1FB5 DUP5 PUSH2 0xCD6 JUMP JUMPDEST PUSH1 0x7 DUP2 GT ISZERO PUSH2 0x1FC0 JUMPI INVALID JUMPDEST EQ PUSH2 0x1FDD JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5E4 SWAP1 PUSH2 0x40B1 JUMP JUMPDEST PUSH1 0x2 DUP3 PUSH1 0xFF AND GT ISZERO PUSH2 0x2001 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5E4 SWAP1 PUSH2 0x4021 JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND DUP5 MSTORE PUSH1 0xD DUP2 ADD SWAP1 SWAP3 MSTORE SWAP1 SWAP2 KECCAK256 DUP1 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x204A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5E4 SWAP1 PUSH2 0x40C1 JUMP JUMPDEST PUSH1 0x9 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 0x2080 SWAP2 DUP12 SWAP2 PUSH1 0x4 ADD PUSH2 0x3E5E JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2098 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x20AC 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 0x20D0 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2CA2 JUMP JUMPDEST SWAP1 POP PUSH1 0xFF DUP6 AND PUSH2 0x20FB JUMPI PUSH2 0x20F1 DUP4 PUSH1 0xA ADD SLOAD DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB AND PUSH2 0x2199 JUMP JUMPDEST PUSH1 0xA DUP5 ADD SSTORE PUSH2 0x2151 JUMP JUMPDEST DUP5 PUSH1 0xFF AND PUSH1 0x1 EQ ISZERO PUSH2 0x2128 JUMPI PUSH2 0x211E DUP4 PUSH1 0x9 ADD SLOAD DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB AND PUSH2 0x2199 JUMP JUMPDEST PUSH1 0x9 DUP5 ADD SSTORE PUSH2 0x2151 JUMP JUMPDEST DUP5 PUSH1 0xFF AND PUSH1 0x2 EQ ISZERO PUSH2 0x2151 JUMPI PUSH2 0x214B DUP4 PUSH1 0xB ADD SLOAD DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB AND PUSH2 0x2199 JUMP JUMPDEST PUSH1 0xB DUP5 ADD SSTORE JUMPDEST DUP2 SLOAD PUSH1 0x1 PUSH1 0xFF NOT SWAP1 SWAP2 AND OR PUSH2 0xFF00 NOT AND PUSH2 0x100 PUSH1 0xFF DUP8 AND MUL OR PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFF0000 NOT AND PUSH3 0x10000 PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB DUP4 AND MUL OR SWAP1 SWAP2 SSTORE SWAP2 POP POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 ADD DUP4 DUP2 LT ISZERO PUSH2 0x2192 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5E4 SWAP1 PUSH2 0x4171 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 GT ISZERO PUSH2 0x21E0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5E4 SWAP1 PUSH2 0x4291 JUMP JUMPDEST POP SWAP1 SUB SWAP1 JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xF2B06537 SWAP1 PUSH2 0x2214 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH1 0x20 ADD PUSH2 0x3E6C 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 0x2246 SWAP2 SWAP1 PUSH2 0x3F54 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x225E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2272 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 0x2296 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2AD9 JUMP JUMPDEST ISZERO PUSH2 0x22B3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5E4 SWAP1 PUSH2 0x4051 JUMP JUMPDEST PUSH1 0x8 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 0x22EB SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH1 0x4 ADD PUSH2 0x3E6C JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2305 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2319 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 0x233D SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2AF7 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH2 0x1C0 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 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 0x2416 JUMPI SWAP2 PUSH1 0x20 MUL DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x2416 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 0x23E1 JUMP JUMPDEST POP PUSH2 0x2422 SWAP3 SWAP2 POP PUSH2 0x253F 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 0x2461 JUMPI SWAP2 PUSH1 0x20 MUL DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x2461 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x2446 JUMP JUMPDEST POP PUSH2 0x2422 SWAP3 SWAP2 POP PUSH2 0x2563 JUMP JUMPDEST DUP3 DUP1 SLOAD DUP3 DUP3 SSTORE SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP3 DUP3 ISZERO PUSH2 0x24BA JUMPI SWAP2 PUSH1 0x20 MUL DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x24BA JUMPI DUP3 MLOAD DUP1 MLOAD PUSH2 0x24AA SWAP2 DUP5 SWAP2 PUSH1 0x20 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x257D JUMP JUMPDEST POP SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x248D JUMP JUMPDEST POP PUSH2 0x2422 SWAP3 SWAP2 POP PUSH2 0x25EA JUMP JUMPDEST DUP3 DUP1 SLOAD DUP3 DUP3 SSTORE SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP3 DUP3 ISZERO PUSH2 0x2513 JUMPI SWAP2 PUSH1 0x20 MUL DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x2513 JUMPI DUP3 MLOAD DUP1 MLOAD PUSH2 0x2503 SWAP2 DUP5 SWAP2 PUSH1 0x20 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x257D JUMP JUMPDEST POP SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x24E6 JUMP JUMPDEST POP PUSH2 0x2422 SWAP3 SWAP2 POP PUSH2 0x260D 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 0x1FA5 SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x2422 JUMPI DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x2545 JUMP JUMPDEST PUSH2 0x1FA5 SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x2422 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x2569 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 0x25BE JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH2 0x2461 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x2461 JUMPI SWAP2 DUP3 ADD DUP3 DUP2 GT ISZERO PUSH2 0x2461 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x2446 JUMP JUMPDEST PUSH2 0x1FA5 SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x2422 JUMPI PUSH1 0x0 PUSH2 0x2604 DUP3 DUP3 PUSH2 0x2630 JUMP JUMPDEST POP PUSH1 0x1 ADD PUSH2 0x25F0 JUMP JUMPDEST PUSH2 0x1FA5 SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x2422 JUMPI PUSH1 0x0 PUSH2 0x2627 DUP3 DUP3 PUSH2 0x2630 JUMP JUMPDEST POP PUSH1 0x1 ADD PUSH2 0x2613 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 0x2656 JUMPI POP PUSH2 0x2674 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2674 SWAP2 SWAP1 PUSH2 0x2563 JUMP JUMPDEST POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x1B28 DUP2 PUSH2 0x45A5 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2693 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x26A6 PUSH2 0x26A1 DUP3 PUSH2 0x4491 JUMP JUMPDEST PUSH2 0x446A 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 0x26CB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x26F7 JUMPI DUP2 PUSH2 0x26E1 DUP9 DUP3 PUSH2 0x2677 JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x26CE JUMP JUMPDEST POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2712 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x2720 PUSH2 0x26A1 DUP3 PUSH2 0x4491 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 0x26F7 JUMPI DUP2 CALLDATALOAD DUP7 ADD PUSH2 0x2748 DUP9 DUP3 PUSH2 0x284C JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x2732 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x276F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x277D PUSH2 0x26A1 DUP3 PUSH2 0x4491 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 0x26F7 JUMPI DUP2 CALLDATALOAD DUP7 ADD PUSH2 0x27A5 DUP9 DUP3 PUSH2 0x284C JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x278F JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x27CC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x27DA PUSH2 0x26A1 DUP3 PUSH2 0x4491 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 0x27FF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x26F7 JUMPI DUP2 PUSH2 0x2815 DUP9 DUP3 PUSH2 0x2836 JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x2802 JUMP JUMPDEST DUP1 MLOAD PUSH2 0x1B28 DUP2 PUSH2 0x45B9 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x1B28 DUP2 PUSH2 0x45C2 JUMP JUMPDEST DUP1 MLOAD PUSH2 0x1B28 DUP2 PUSH2 0x45C2 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x285D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x286B PUSH2 0x26A1 DUP3 PUSH2 0x44B2 JUMP JUMPDEST SWAP2 POP DUP1 DUP3 MSTORE PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP4 ADD DUP6 DUP4 DUP4 ADD GT ISZERO PUSH2 0x2887 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2892 DUP4 DUP3 DUP5 PUSH2 0x4559 JUMP JUMPDEST POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x28AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x28BA PUSH2 0x26A1 DUP3 PUSH2 0x44B2 JUMP JUMPDEST SWAP2 POP DUP1 DUP3 MSTORE PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP4 ADD DUP6 DUP4 DUP4 ADD GT ISZERO PUSH2 0x28D6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2892 DUP4 DUP3 DUP5 PUSH2 0x4565 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x28F3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x290B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x2923 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x1B28 DUP2 PUSH2 0x45CB JUMP JUMPDEST DUP1 MLOAD PUSH2 0x1B28 DUP2 PUSH2 0x45D4 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2952 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x295E DUP5 DUP5 PUSH2 0x2677 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xC0 DUP8 DUP10 SUB SLT ISZERO PUSH2 0x297F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x298B DUP10 DUP10 PUSH2 0x2677 JUMP JUMPDEST SWAP7 POP POP PUSH1 0x20 PUSH2 0x299C DUP10 DUP3 DUP11 ADD PUSH2 0x2677 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x40 PUSH2 0x29AD DUP10 DUP3 DUP11 ADD PUSH2 0x2836 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x60 PUSH2 0x29BE DUP10 DUP3 DUP11 ADD PUSH2 0x2836 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x80 PUSH2 0x29CF DUP10 DUP3 DUP11 ADD PUSH2 0x2836 JUMP JUMPDEST SWAP3 POP POP PUSH1 0xA0 PUSH2 0x29E0 DUP10 DUP3 DUP11 ADD PUSH2 0x2677 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 POP SWAP3 SWAP6 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x2A05 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP6 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2A1C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2A28 DUP9 DUP3 DUP10 ADD PUSH2 0x2682 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2A45 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2A51 DUP9 DUP3 DUP10 ADD PUSH2 0x27BB JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2A6E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2A7A DUP9 DUP3 DUP10 ADD PUSH2 0x275E JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2A97 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2AA3 DUP9 DUP3 DUP10 ADD PUSH2 0x2701 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x80 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2AC0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2ACC DUP9 DUP3 DUP10 ADD PUSH2 0x284C 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 0x2AEB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x295E DUP5 DUP5 PUSH2 0x282B JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2B09 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x295E DUP5 DUP5 PUSH2 0x2841 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2B27 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2B3E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x295E DUP5 DUP3 DUP6 ADD PUSH2 0x289B JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2B5C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x295E DUP5 DUP5 PUSH2 0x2836 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2B7B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2B87 DUP6 DUP6 PUSH2 0x2836 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x2B98 DUP6 DUP3 DUP7 ADD PUSH2 0x2677 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2BB5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2BC1 DUP6 DUP6 PUSH2 0x2836 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x2B98 DUP6 DUP3 DUP7 ADD PUSH2 0x292A JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x60 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x2BE8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2BF4 DUP8 DUP8 PUSH2 0x2836 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 PUSH2 0x2C05 DUP8 DUP3 DUP9 ADD PUSH2 0x292A JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2C22 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2C2E DUP8 DUP3 DUP9 ADD PUSH2 0x28E1 JUMP JUMPDEST SWAP6 SWAP9 SWAP5 SWAP8 POP SWAP6 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x2C52 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2C5E DUP9 DUP9 PUSH2 0x2836 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 PUSH2 0x2C6F DUP9 DUP3 DUP10 ADD PUSH2 0x292A JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 PUSH2 0x2C80 DUP9 DUP3 DUP10 ADD PUSH2 0x292A JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 PUSH2 0x2C91 DUP9 DUP3 DUP10 ADD PUSH2 0x2836 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x80 PUSH2 0x2ACC DUP9 DUP3 DUP10 ADD PUSH2 0x2836 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2CB4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x295E DUP5 DUP5 PUSH2 0x2935 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2CCC DUP4 DUP4 PUSH2 0x2CFB JUMP JUMPDEST POP POP PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2192 DUP4 DUP4 PUSH2 0x2E9D JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2CCC DUP4 DUP4 PUSH2 0x2E83 JUMP JUMPDEST PUSH2 0x2CF5 DUP2 PUSH2 0x4531 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x2CF5 DUP2 PUSH2 0x44F9 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2D0F DUP3 PUSH2 0x44EC JUMP JUMPDEST PUSH2 0x2D19 DUP2 DUP6 PUSH2 0x44F0 JUMP JUMPDEST SWAP4 POP PUSH2 0x2D24 DUP4 PUSH2 0x44DA JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2D52 JUMPI DUP2 MLOAD PUSH2 0x2D3C DUP9 DUP3 PUSH2 0x2CC0 JUMP JUMPDEST SWAP8 POP PUSH2 0x2D47 DUP4 PUSH2 0x44DA JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 ADD PUSH2 0x2D28 JUMP JUMPDEST POP SWAP5 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2D68 DUP3 PUSH2 0x44EC JUMP JUMPDEST PUSH2 0x2D72 DUP2 DUP6 PUSH2 0x44F0 JUMP JUMPDEST SWAP4 POP DUP4 PUSH1 0x20 DUP3 MUL DUP6 ADD PUSH2 0x2D84 DUP6 PUSH2 0x44DA JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP6 DUP2 LT ISZERO PUSH2 0x2DBE JUMPI DUP5 DUP5 SUB DUP10 MSTORE DUP2 MLOAD PUSH2 0x2DA1 DUP6 DUP3 PUSH2 0x2CD4 JUMP JUMPDEST SWAP5 POP PUSH2 0x2DAC DUP4 PUSH2 0x44DA JUMP JUMPDEST PUSH1 0x20 SWAP11 SWAP1 SWAP11 ADD SWAP10 SWAP3 POP POP PUSH1 0x1 ADD PUSH2 0x2D88 JUMP JUMPDEST POP SWAP2 SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2DD6 DUP3 PUSH2 0x44EC JUMP JUMPDEST PUSH2 0x2DE0 DUP2 DUP6 PUSH2 0x44F0 JUMP JUMPDEST SWAP4 POP DUP4 PUSH1 0x20 DUP3 MUL DUP6 ADD PUSH2 0x2DF2 DUP6 PUSH2 0x44DA JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP6 DUP2 LT ISZERO PUSH2 0x2DBE JUMPI DUP5 DUP5 SUB DUP10 MSTORE DUP2 MLOAD PUSH2 0x2E0F DUP6 DUP3 PUSH2 0x2CD4 JUMP JUMPDEST SWAP5 POP PUSH2 0x2E1A DUP4 PUSH2 0x44DA JUMP JUMPDEST PUSH1 0x20 SWAP11 SWAP1 SWAP11 ADD SWAP10 SWAP3 POP POP PUSH1 0x1 ADD PUSH2 0x2DF6 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2E37 DUP3 PUSH2 0x44EC JUMP JUMPDEST PUSH2 0x2E41 DUP2 DUP6 PUSH2 0x44F0 JUMP JUMPDEST SWAP4 POP PUSH2 0x2E4C DUP4 PUSH2 0x44DA JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2D52 JUMPI DUP2 MLOAD PUSH2 0x2E64 DUP9 DUP3 PUSH2 0x2CE0 JUMP JUMPDEST SWAP8 POP PUSH2 0x2E6F DUP4 PUSH2 0x44DA JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 ADD PUSH2 0x2E50 JUMP JUMPDEST PUSH2 0x2CF5 DUP2 PUSH2 0x4504 JUMP JUMPDEST PUSH2 0x2CF5 DUP2 PUSH2 0x1FA5 JUMP JUMPDEST PUSH2 0x2CF5 PUSH2 0x2E98 DUP3 PUSH2 0x1FA5 JUMP JUMPDEST PUSH2 0x1FA5 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2EA8 DUP3 PUSH2 0x44EC JUMP JUMPDEST PUSH2 0x2EB2 DUP2 DUP6 PUSH2 0x44F0 JUMP JUMPDEST SWAP4 POP PUSH2 0x2EC2 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x4565 JUMP JUMPDEST PUSH2 0x2ECB DUP2 PUSH2 0x4591 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 0x2EF2 JUMPI PUSH1 0x1 DUP2 EQ PUSH2 0x2F18 JUMPI PUSH2 0x2F57 JUMP JUMPDEST PUSH1 0x7F PUSH1 0x2 DUP4 DIV AND PUSH2 0x2F03 DUP2 DUP8 PUSH2 0x44F0 JUMP JUMPDEST PUSH1 0xFF NOT DUP5 AND DUP2 MSTORE SWAP6 POP POP PUSH1 0x20 DUP6 ADD SWAP3 POP PUSH2 0x2F57 JUMP JUMPDEST PUSH1 0x2 DUP3 DIV PUSH2 0x2F26 DUP2 DUP8 PUSH2 0x44F0 JUMP JUMPDEST SWAP6 POP PUSH2 0x2F31 DUP6 PUSH2 0x44E0 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x2F50 JUMPI DUP2 SLOAD DUP9 DUP3 ADD MSTORE PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x20 ADD PUSH2 0x2F34 JUMP JUMPDEST DUP8 ADD SWAP5 POP POP POP JUMPDEST POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x2CF5 DUP2 PUSH2 0x4538 JUMP JUMPDEST PUSH2 0x2CF5 DUP2 PUSH2 0x4543 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2F7D DUP4 DUP6 PUSH2 0x44F0 JUMP JUMPDEST SWAP4 POP PUSH2 0x2F8A DUP4 DUP6 DUP5 PUSH2 0x4559 JUMP JUMPDEST PUSH2 0x2ECB DUP4 PUSH2 0x4591 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2FA0 PUSH1 0x32 DUP4 PUSH2 0x44F0 JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A63617374566F7465496E7465726E616C3A DUP2 MSTORE PUSH18 0x20696E76616C696420766F74652074797065 PUSH1 0x70 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2FF4 PUSH1 0x28 DUP4 PUSH2 0xE57 JUMP JUMPDEST PUSH32 0x42616C6C6F742875696E743235362070726F706F73616C49642C75696E743820 DUP2 MSTORE PUSH8 0x737570706F727429 PUSH1 0xC0 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x28 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x303E PUSH1 0x33 DUP4 PUSH2 0x44F0 JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A696E697469616C697A653A2063616E206F DUP2 MSTORE PUSH19 0x6E6C7920696E697469616C697A65206F6E6365 PUSH1 0x68 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3093 PUSH1 0x2A DUP4 PUSH2 0x44F0 JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A5F73657450656E64696E6741646D696E3A20 DUP2 MSTORE PUSH10 0x61646D696E206F6E6C79 PUSH1 0xB0 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x30DF PUSH1 0x55 DUP4 PUSH2 0x44F0 JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A71756575654F72526576657274496E7465 DUP2 MSTORE PUSH32 0x726E616C3A206964656E746963616C2070726F706F73616C20616374696F6E20 PUSH1 0x20 DUP3 ADD MSTORE PUSH21 0x616C72656164792071756575656420617420657461 PUSH1 0x58 SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x315C PUSH1 0x2B DUP4 PUSH2 0x44F0 JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A5F736574566F74696E67506572696F643A DUP2 MSTORE PUSH11 0x2061646D696E206F6E6C79 PUSH1 0xA8 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x31A9 PUSH1 0x33 DUP4 PUSH2 0x44F0 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x45DE DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP2 MSTORE PUSH19 0x69642074696D656C6F636B2061646472657373 PUSH1 0x68 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x31EC PUSH1 0x2A DUP4 PUSH2 0x44F0 JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A5F736574566F74696E6744656C61793A20 DUP2 MSTORE PUSH10 0x61646D696E206F6E6C79 PUSH1 0xB0 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3238 PUSH1 0x31 DUP4 PUSH2 0x44F0 JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A70726F706F73653A20476F7665726E6F72 DUP2 MSTORE PUSH17 0x20427261766F206E6F7420616374697665 PUSH1 0x78 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x328B PUSH1 0x2 DUP4 PUSH2 0xE57 JUMP JUMPDEST PUSH2 0x1901 PUSH1 0xF0 SHL DUP2 MSTORE PUSH1 0x2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x32A9 PUSH1 0x36 DUP4 PUSH2 0x44F0 JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A5F736574566F74696E67506572696F643A DUP2 MSTORE PUSH22 0x81A5B9D985B1A59081D9BDD1A5B99C81C195C9A5BD9 PUSH1 0x52 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3301 PUSH1 0x31 DUP4 PUSH2 0x44F0 JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A63617374566F7465496E7465726E616C3A DUP2 MSTORE PUSH17 0x81D9BDD1A5B99C81A5CC818DB1BDCD959 PUSH1 0x7A SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3354 PUSH1 0x34 DUP4 PUSH2 0x44F0 JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A63617374566F7465496E7465726E616C3A DUP2 MSTORE PUSH20 0x81D9BDD195C88185B1C9958591E481D9BDD1959 PUSH1 0x62 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x33AA PUSH1 0x2E DUP4 PUSH2 0x44F0 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x45DE DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP2 MSTORE PUSH14 0x6964207876732061646472657373 PUSH1 0x90 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x33E8 PUSH1 0x34 DUP4 PUSH2 0x44F0 JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A5F736574566F74696E6744656C61793A20 DUP2 MSTORE PUSH20 0x696E76616C696420766F74696E672064656C6179 PUSH1 0x60 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x343E PUSH1 0x35 DUP4 PUSH2 0x44F0 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x45DE DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP2 MSTORE PUSH21 0x1A59081C1C9BDC1BDCD85B081D1A1C995CDA1BDB19 PUSH1 0x5A SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3483 PUSH1 0x45 DUP4 PUSH2 0x44F0 JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A657865637574653A2070726F706F73616C 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 0x34F0 PUSH1 0x2F DUP4 PUSH2 0x44F0 JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A63617374566F746542795369673A20696E DUP2 MSTORE PUSH15 0x76616C6964207369676E6174757265 PUSH1 0x88 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3541 PUSH1 0x2F DUP4 PUSH2 0x44F0 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x45DE DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP2 MSTORE PUSH15 0x696420766F74696E672064656C6179 PUSH1 0x88 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3580 PUSH1 0x44 DUP4 PUSH2 0x44F0 JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A70726F706F73653A2070726F706F73616C 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 0x35EC PUSH1 0x25 DUP4 PUSH2 0x44F0 JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A696E697469616C697A653A2061646D696E DUP2 MSTORE PUSH5 0x206F6E6C79 PUSH1 0xD8 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3633 PUSH1 0x40 DUP4 PUSH2 0x44F0 JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A5F73657450726F706F73616C5468726573 DUP2 MSTORE PUSH32 0x686F6C643A20696E76616C69642070726F706F73616C207468726573686F6C64 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3692 PUSH1 0x44 DUP4 PUSH2 0x44F0 JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A71756575653A2070726F706F73616C2063 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 0x36FE PUSH1 0x11 DUP4 PUSH2 0x44F0 JUMP JUMPDEST PUSH17 0x6164646974696F6E206F766572666C6F77 PUSH1 0x78 SHL DUP2 MSTORE PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x372B PUSH1 0x43 DUP4 PUSH2 0xE57 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 0x3796 PUSH1 0x30 DUP4 PUSH2 0x44F0 JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A5F696E6974696174653A2063616E206F6E DUP2 MSTORE PUSH16 0x6C7920696E697469617465206F6E6365 PUSH1 0x80 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x37E8 PUSH1 0x2C DUP4 PUSH2 0x44F0 JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A70726F706F73653A206D7573742070726F DUP2 MSTORE PUSH12 0x7669646520616374696F6E73 PUSH1 0xA0 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3836 PUSH1 0x2E DUP4 PUSH2 0x44F0 JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A5F61636365707441646D696E3A2070656E64 DUP2 MSTORE PUSH14 0x696E672061646D696E206F6E6C79 PUSH1 0x90 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3886 PUSH1 0x2F DUP4 PUSH2 0x44F0 JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A63616E63656C3A2070726F706F73657220 DUP2 MSTORE PUSH15 0x18589BDD99481D1A1C995CDA1BDB19 PUSH1 0x8A SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x38D7 PUSH1 0x2B DUP4 PUSH2 0x44F0 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x45DE DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP2 MSTORE PUSH11 0x34B21033BAB0B93234B0B7 PUSH1 0xA9 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3912 PUSH1 0x28 DUP4 PUSH2 0x44F0 JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A70726F706F73653A20746F6F206D616E79 DUP2 MSTORE PUSH8 0x20616374696F6E73 PUSH1 0xC0 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x395C PUSH1 0x59 DUP4 PUSH2 0x44F0 JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A70726F706F73653A206F6E65206C697665 DUP2 MSTORE PUSH32 0x2070726F706F73616C207065722070726F706F7365722C20666F756E6420616E PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x20616C72656164792070656E64696E672070726F706F73616C00000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x39E1 PUSH1 0x34 DUP4 PUSH2 0x44F0 JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A5F73657450726F706F73616C4D61784F70 DUP2 MSTORE PUSH20 0x65726174696F6E733A2061646D696E206F6E6C79 PUSH1 0x60 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3A37 PUSH1 0x58 DUP4 PUSH2 0x44F0 JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A70726F706F73653A206F6E65206C697665 DUP2 MSTORE PUSH32 0x2070726F706F73616C207065722070726F706F7365722C20666F756E6420616E PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x20616C7265616479206163746976652070726F706F73616C0000000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1B28 PUSH1 0x0 DUP4 PUSH2 0x44F0 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3AC9 PUSH1 0x24 DUP4 PUSH2 0x44F0 JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A5F696E6974696174653A2061646D696E20 DUP2 MSTORE PUSH4 0x6F6E6C79 PUSH1 0xE0 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3B0F PUSH1 0x3F DUP4 PUSH2 0x44F0 JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A70726F706F73653A2070726F706F736572 DUP2 MSTORE PUSH32 0x20766F7465732062656C6F772070726F706F73616C207468726573686F6C6400 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3B6E PUSH1 0x36 DUP4 PUSH2 0x44F0 JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A63616E63656C3A2063616E6E6F74206361 DUP2 MSTORE PUSH22 0x1B98D95B08195E1958DD5D1959081C1C9BDC1BDCD85B PUSH1 0x52 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3BC6 PUSH1 0x30 DUP4 PUSH2 0x44F0 JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A5F73657450726F706F73616C5468726573 DUP2 MSTORE PUSH16 0x686F6C643A2061646D696E206F6E6C79 PUSH1 0x80 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3C18 PUSH1 0x29 DUP4 PUSH2 0x44F0 JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A73746174653A20696E76616C6964207072 DUP2 MSTORE PUSH9 0x1BDC1BDCD85B081A59 PUSH1 0xBA SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3C63 PUSH1 0x30 DUP4 PUSH2 0x44F0 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x45DE DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP2 MSTORE PUSH16 0x1A59081D9BDD1A5B99C81C195C9A5BD9 PUSH1 0x82 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3CA3 PUSH1 0x3B DUP4 PUSH2 0x44F0 JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A5F736574477561726469616E3A2063616E DUP2 MSTORE PUSH32 0x6E6F74206C69766520776974686F7574206120677561726469616E0000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3D02 PUSH1 0x33 DUP4 PUSH2 0x44F0 JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A5F736574477561726469616E3A2061646D DUP2 MSTORE PUSH19 0x696E206F7220677561726469616E206F6E6C79 PUSH1 0x68 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3D57 PUSH1 0x15 DUP4 PUSH2 0x44F0 JUMP JUMPDEST PUSH21 0x7375627472616374696F6E20756E646572666C6F77 PUSH1 0x58 SHL DUP2 MSTORE PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 MLOAD PUSH1 0x60 DUP4 ADD SWAP1 PUSH2 0x3D8C DUP5 DUP3 PUSH2 0x2E7A JUMP JUMPDEST POP PUSH1 0x20 DUP3 ADD MLOAD PUSH2 0x3D9F PUSH1 0x20 DUP6 ADD DUP3 PUSH2 0x3DB8 JUMP JUMPDEST POP PUSH1 0x40 DUP3 ADD MLOAD PUSH2 0x3DB2 PUSH1 0x40 DUP6 ADD DUP3 PUSH2 0x3DCA JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0x2CF5 DUP2 PUSH2 0x451F JUMP JUMPDEST PUSH2 0x2CF5 DUP2 PUSH2 0x454E JUMP JUMPDEST PUSH2 0x2CF5 DUP2 PUSH2 0x4525 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1B28 DUP3 PUSH2 0x2FE7 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3DE9 DUP3 PUSH2 0x327E JUMP JUMPDEST SWAP2 POP PUSH2 0x3DF5 DUP3 DUP6 PUSH2 0x2E8C JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH2 0x3E05 DUP3 DUP5 PUSH2 0x2E8C JUMP JUMPDEST POP PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1B28 DUP3 PUSH2 0x371E JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x1B28 DUP3 DUP5 PUSH2 0x2CFB JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0x3E36 DUP3 DUP6 PUSH2 0x2CEC JUMP JUMPDEST PUSH2 0x2192 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x2E83 JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0x3E51 DUP3 DUP6 PUSH2 0x2CFB JUMP JUMPDEST PUSH2 0x2192 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x2CFB JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0x3E36 DUP3 DUP6 PUSH2 0x2CFB JUMP JUMPDEST PUSH1 0xA0 DUP2 ADD PUSH2 0x3E7A DUP3 DUP9 PUSH2 0x2CFB JUMP JUMPDEST PUSH2 0x3E87 PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x2E83 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x3E99 DUP2 DUP7 PUSH2 0x2E9D JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x3EAD DUP2 DUP6 PUSH2 0x2E9D JUMP JUMPDEST SWAP1 POP PUSH2 0x3EBC PUSH1 0x80 DUP4 ADD DUP5 PUSH2 0x2E83 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0xA0 DUP2 ADD PUSH2 0x3ED4 DUP3 DUP9 PUSH2 0x2CFB JUMP JUMPDEST PUSH2 0x3EE1 PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x2E83 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x3EF3 DUP2 DUP7 PUSH2 0x2ED5 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x3EAD DUP2 DUP6 PUSH2 0x2ED5 JUMP JUMPDEST PUSH1 0x80 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x3F18 DUP2 DUP8 PUSH2 0x2D04 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x3F2C DUP2 DUP7 PUSH2 0x2E2C JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x3F40 DUP2 DUP6 PUSH2 0x2DCB JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x3EBC DUP2 DUP5 PUSH2 0x2D5D JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x1B28 DUP3 DUP5 PUSH2 0x2E83 JUMP JUMPDEST PUSH1 0x80 DUP2 ADD PUSH2 0x3F70 DUP3 DUP8 PUSH2 0x2E83 JUMP JUMPDEST PUSH2 0x3F7D PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x2E83 JUMP JUMPDEST PUSH2 0x3F8A PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x2E83 JUMP JUMPDEST PUSH2 0x1830 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x2CFB JUMP JUMPDEST PUSH1 0x60 DUP2 ADD PUSH2 0x3FA5 DUP3 DUP7 PUSH2 0x2E83 JUMP JUMPDEST PUSH2 0x3FB2 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x2E83 JUMP JUMPDEST PUSH2 0x295E PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x3DB8 JUMP JUMPDEST PUSH1 0x80 DUP2 ADD PUSH2 0x3FCD DUP3 DUP8 PUSH2 0x2E83 JUMP JUMPDEST PUSH2 0x3FDA PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x3DB8 JUMP JUMPDEST PUSH2 0x3FE7 PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x2E83 JUMP JUMPDEST PUSH2 0x1830 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x2E83 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x1B28 DUP3 DUP5 PUSH2 0x2F5F JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x1B28 DUP3 DUP5 PUSH2 0x2F68 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x2192 DUP2 DUP5 PUSH2 0x2E9D JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1B28 DUP2 PUSH2 0x2F93 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1B28 DUP2 PUSH2 0x3031 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1B28 DUP2 PUSH2 0x3086 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1B28 DUP2 PUSH2 0x30D2 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1B28 DUP2 PUSH2 0x314F JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1B28 DUP2 PUSH2 0x319C JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1B28 DUP2 PUSH2 0x31DF JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1B28 DUP2 PUSH2 0x322B JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1B28 DUP2 PUSH2 0x329C JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1B28 DUP2 PUSH2 0x32F4 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1B28 DUP2 PUSH2 0x3347 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1B28 DUP2 PUSH2 0x339D JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1B28 DUP2 PUSH2 0x33DB JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1B28 DUP2 PUSH2 0x3431 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1B28 DUP2 PUSH2 0x3476 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1B28 DUP2 PUSH2 0x34E3 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1B28 DUP2 PUSH2 0x3534 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1B28 DUP2 PUSH2 0x3573 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1B28 DUP2 PUSH2 0x35DF JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1B28 DUP2 PUSH2 0x3626 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1B28 DUP2 PUSH2 0x3685 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1B28 DUP2 PUSH2 0x36F1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1B28 DUP2 PUSH2 0x3789 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1B28 DUP2 PUSH2 0x37DB JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1B28 DUP2 PUSH2 0x3829 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1B28 DUP2 PUSH2 0x3879 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1B28 DUP2 PUSH2 0x38CA JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1B28 DUP2 PUSH2 0x3905 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1B28 DUP2 PUSH2 0x394F JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1B28 DUP2 PUSH2 0x39D4 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1B28 DUP2 PUSH2 0x3A2A JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1B28 DUP2 PUSH2 0x3ABC JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1B28 DUP2 PUSH2 0x3B02 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1B28 DUP2 PUSH2 0x3B61 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1B28 DUP2 PUSH2 0x3BB9 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1B28 DUP2 PUSH2 0x3C0B JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1B28 DUP2 PUSH2 0x3C56 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1B28 DUP2 PUSH2 0x3C96 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1B28 DUP2 PUSH2 0x3CF5 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1B28 DUP2 PUSH2 0x3D4A JUMP JUMPDEST PUSH1 0x60 DUP2 ADD PUSH2 0x1B28 DUP3 DUP5 PUSH2 0x3D7B JUMP JUMPDEST PUSH2 0x120 DUP2 ADD PUSH2 0x42BE DUP3 DUP13 PUSH2 0x2E83 JUMP JUMPDEST PUSH2 0x42CB PUSH1 0x20 DUP4 ADD DUP12 PUSH2 0x2CEC JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x42DD DUP2 DUP11 PUSH2 0x2D04 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x42F1 DUP2 DUP10 PUSH2 0x2E2C JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x80 DUP4 ADD MSTORE PUSH2 0x4305 DUP2 DUP9 PUSH2 0x2DCB JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0xA0 DUP4 ADD MSTORE PUSH2 0x4319 DUP2 DUP8 PUSH2 0x2D5D JUMP JUMPDEST SWAP1 POP PUSH2 0x4328 PUSH1 0xC0 DUP4 ADD DUP7 PUSH2 0x2E83 JUMP JUMPDEST PUSH2 0x4335 PUSH1 0xE0 DUP4 ADD DUP6 PUSH2 0x2E83 JUMP JUMPDEST DUP2 DUP2 SUB PUSH2 0x100 DUP4 ADD MSTORE PUSH2 0x4348 DUP2 DUP5 PUSH2 0x2E9D JUMP JUMPDEST SWAP12 SWAP11 POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x140 DUP2 ADD PUSH2 0x4366 DUP3 DUP14 PUSH2 0x2E83 JUMP JUMPDEST PUSH2 0x4373 PUSH1 0x20 DUP4 ADD DUP13 PUSH2 0x2CFB JUMP JUMPDEST PUSH2 0x4380 PUSH1 0x40 DUP4 ADD DUP12 PUSH2 0x2E83 JUMP JUMPDEST PUSH2 0x438D PUSH1 0x60 DUP4 ADD DUP11 PUSH2 0x2E83 JUMP JUMPDEST PUSH2 0x439A PUSH1 0x80 DUP4 ADD DUP10 PUSH2 0x2E83 JUMP JUMPDEST PUSH2 0x43A7 PUSH1 0xA0 DUP4 ADD DUP9 PUSH2 0x2E83 JUMP JUMPDEST PUSH2 0x43B4 PUSH1 0xC0 DUP4 ADD DUP8 PUSH2 0x2E83 JUMP JUMPDEST PUSH2 0x43C1 PUSH1 0xE0 DUP4 ADD DUP7 PUSH2 0x2E83 JUMP JUMPDEST PUSH2 0x43CF PUSH2 0x100 DUP4 ADD DUP6 PUSH2 0x2E7A JUMP JUMPDEST PUSH2 0x4348 PUSH2 0x120 DUP4 ADD DUP5 PUSH2 0x2E7A JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0x3E36 DUP3 DUP6 PUSH2 0x2E83 JUMP JUMPDEST PUSH1 0x80 DUP2 ADD PUSH2 0x43F9 DUP3 DUP9 PUSH2 0x2E83 JUMP JUMPDEST PUSH2 0x4406 PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x3DB8 JUMP JUMPDEST PUSH2 0x4413 PUSH1 0x40 DUP4 ADD DUP7 PUSH2 0x3DC1 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x4426 DUP2 DUP5 DUP7 PUSH2 0x2F71 JUMP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x80 DUP2 ADD PUSH2 0x443F DUP3 DUP7 PUSH2 0x2E83 JUMP JUMPDEST PUSH2 0x444C PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x3DB8 JUMP JUMPDEST PUSH2 0x4459 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x3DC1 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x1830 DUP2 PUSH2 0x3AAF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP2 DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x4489 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x44A8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x20 SWAP1 DUP2 MUL ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x44C9 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 0x1B28 DUP3 PUSH2 0x4513 JUMP JUMPDEST ISZERO ISZERO SWAP1 JUMP JUMPDEST DUP1 PUSH2 0xE57 DUP2 PUSH2 0x459B 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 0x1B28 DUP3 JUMPDEST PUSH1 0x0 PUSH2 0x1B28 DUP3 PUSH2 0x44F9 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1B28 DUP3 PUSH2 0x4509 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1B28 DUP3 PUSH2 0x4525 JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x4580 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x4568 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x3DB2 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 0x2674 JUMPI INVALID JUMPDEST PUSH2 0x45AE DUP2 PUSH2 0x44F9 JUMP JUMPDEST DUP2 EQ PUSH2 0x2674 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x45AE DUP2 PUSH2 0x4504 JUMP JUMPDEST PUSH2 0x45AE DUP2 PUSH2 0x1FA5 JUMP JUMPDEST PUSH2 0x45AE DUP2 PUSH2 0x451F JUMP JUMPDEST PUSH2 0x45AE DUP2 PUSH2 0x4525 JUMP INVALID SELFBALANCE PUSH16 0x7665726E6F72427261766F3A3A696E69 PUSH21 0x69616C697A653A20696E76616CA365627A7A723158 KECCAK256 0xB9 0xA6 0xB9 0xC6 ADDMOD DIFFICULTY 0xB6 0xC8 0xBA 0x29 CALLCODE SWAP8 0x4F 0xE7 COINBASE 0xC3 0x25 0x21 PUSH26 0xB2D9F635206A558EC5F97598566C6578706572696D656E74616C CREATE2 PUSH5 0x736F6C6343 STOP SDIV LT STOP BLOCKHASH ","sourceMap":"348:20943:5:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;348:20943:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4306:42:7;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;3713:24;;;:::i;:::-;;;;;;;;486:52:5;;;:::i;:::-;;;;;;;;16648:483;;;;;;;;;:::i;:::-;;4409:49:7;;;;;;;;;:::i;17348:563:5:-;;;;;;;;;:::i;4199:33:7:-;;;:::i;:::-;;;;;;;;16040:467:5;;;;;;;;;:::i;18732:387::-;;;;;;;;;:::i;1602:130::-;;;:::i;858:52::-;;;:::i;1465:44::-;;;:::i;732:55::-;;;:::i;3119:27:7:-;;;:::i;:::-;;;;;;;;10346:328:5;;;;;;;;;:::i;:::-;;;;;;;;;;;3608:23:7;;;:::i;13296:702:5:-;;;;;;;;;:::i;11179:1073::-;;;;;;;;;:::i;:::-;;;;;;;;9254:898;;;;;;;;;:::i;6815:23:7:-;;;:::i;12457:177:5:-;;;;;;;;;:::i;3195:29:7:-;;;:::i;600:55:5:-;;;:::i;12917:215::-;;;;;;;;;:::i;6712:33:7:-;;;:::i;998:58:5:-;;;:::i;1236:56::-;;;:::i;2286:1509::-;;;;;;;;;:::i;3842:29:7:-;;;:::i;19433:521:5:-;;;;;;;;;:::i;4101:33:7:-;;;:::i;4010:25::-;;;:::i;4259:2673:5:-;;;;;;;;;:::i;7063:705::-;;;;;;;;;:::i;1819:95::-;;;:::i;10883:152::-;;;;;;;;;:::i;:::-;;;;;;;;15492:410;;;;;;;;;:::i;1143:41::-;;;:::i;20134:655::-;;;:::i;3036:20:7:-;;;:::i;18199:383:5:-;;;;;;;;;:::i;3928:29:7:-;;;:::i;8392:661:5:-;;;;;;;;;:::i;4306:42:7:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4306:42:7;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3713:24::-;;;;:::o;486:52:5:-;;;;;;;;;;;;;;-1:-1:-1;;;486:52:5;;;;:::o;16648:483::-;16737:5;;-1:-1:-1;;;;;16737:5:5;16723:10;:19;16715:75;;;;-1:-1:-1;;;16715:75:5;;;;;;;;;;;;;;;;;899:11;16821:15;:36;;:76;;;;;1039:17;16861:15;:36;;16821:76;16800:177;;;;-1:-1:-1;;;16800:177:5;;;;;;;;;17010:12;;;17032:30;;;;17078:46;;;;;;17010:12;;17047:15;;17078:46;;;;;;;;;;16648:483;;:::o;4409:49:7:-;;;;;;;;;;;;;:::o;17348:563:5:-;17447:5;;-1:-1:-1;;;;;17447:5:5;17433:10;:19;17425:80;;;;-1:-1:-1;;;17425:80:5;;;;;;;;;646:9;17536:20;:46;;:96;;;;;778:9;17586:20;:46;;17536:96;17515:207;;;;-1:-1:-1;;;17515:207:5;;;;;;;;;17760:17;;;17787:40;;;;17843:61;;;;;;17760:17;;17807:20;;17843:61;;4199:33:7;;;-1:-1:-1;;;;;4199:33:7;;:::o;16040:467:5:-;16127:5;;-1:-1:-1;;;;;16127:5:5;16113:10;:19;16105:74;;;;-1:-1:-1;;;16105:74:5;;;;;;;;;1183:1;16210:14;:34;;:72;;;;;1276:16;16248:14;:34;;16210:72;16189:171;;;;-1:-1:-1;;;16189:171:5;;;;;;;;;16392:11;;;16413:28;;;;16457:43;;;;;;16392:11;;16427:14;;16457:43;;18732:387;18837:5;;-1:-1:-1;;;;;18837:5:5;18823:10;:19;18815:84;;;;-1:-1:-1;;;18815:84:5;;;;;;;;;18941:21;;;18972:46;;;;19034:78;;;;;;18941:21;;18996:22;;19034:78;;1602:130;1652:80;;;;;;;;;;;;;;1602:130;:::o;858:52::-;899:11;858:52;:::o;1465:44::-;1500:9;1465:44;:::o;732:55::-;778:9;732:55;:::o;3119:27:7:-;;;-1:-1:-1;;;;;3119:27:7;;:::o;10346:328:5:-;10444:24;10470:20;10492:26;10520:24;10560:18;10581:9;:21;10591:10;10581:21;;;;;;;;;;;10560:42;;10620:1;:9;;10631:1;:8;;10641:1;:12;;10655:1;:11;;10612:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10612:55:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;10612:55:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;10612:55:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10346:328;;;;;:::o;3608:23:7:-;;;;:::o;13296:702:5:-;13401:23;1652:80;;;;;;;;;;;;;;;;13494:4;;;;;;;;;-1:-1:-1;;;13494:4:5;;;;;;;;13478:22;13502:20;:18;:20::i;:::-;13532:4;13450:88;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;13450:88:5;;;13427:121;;;;;;13401:147;;13558:18;1861:53;;;;;;;;;;;;;;;13589:48;;13617:10;;13629:7;;13589:48;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;13589:48:5;;;13579:59;;;;;;13558:80;;13648:14;13704:15;13721:10;13675:57;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;13675:57:5;;;13665:68;;;;;;13648:85;;13743:17;13763:26;13773:6;13781:1;13784;13787;13763:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;13763:26:5;;-1:-1:-1;;13763:26:5;;;-1:-1:-1;;;;;;;13807:23:5;;13799:83;;;;-1:-1:-1;;;13799:83:5;;;;;;;;;13906:9;-1:-1:-1;;;;;13897:94:5;;13917:10;13929:7;13938:48;13955:9;13966:10;13978:7;13938:16;:48::i;:::-;13897:94;;;;;;;;;;;;;;;;;13296:702;;;;;;;;;:::o;11179:1073::-;11232:13;11295:10;11278:13;;:27;;:61;;;;;11322:17;;11309:10;:30;11278:61;11257:149;;;;-1:-1:-1;;;11257:149:5;;;;;;;;;11416:25;11444:21;;;:9;:21;;;;;11479:17;;;;;;11475:771;;;11519:22;11512:29;;;;;11475:771;11578:8;:19;;;11562:12;:35;11558:688;;11620:21;11613:28;;;;;11558:688;11678:8;:17;;;11662:12;:33;11658:588;;11718:20;11711:27;;;;;11658:588;11780:8;:21;;;11759:8;:17;;;:42;;:77;;;;1500:9;11805:8;:17;;;:31;11759:77;11755:491;;;11859:22;11852:29;;;;;11755:491;11902:12;;;;11898:348;;11942:23;11935:30;;;;;11898:348;11986:17;;;;;;;;;11982:264;;;12026:22;12019:29;;;;;11982:264;12095:12;;;;12109:8;;:23;;;-1:-1:-1;;;12109:23:5;;;;12088:45;;12095:12;-1:-1:-1;;;;;12109:8:5;;:21;;:23;;;;;;;;;;;;;;:8;:23;;;5:2:-1;;;;30:1;27;20:12;5:2;12109:23:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12109:23:5;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;12109:23:5;;;;;;;;;12088:6;:45::i;:::-;12069:15;:64;12065:181;;12156:21;12149:28;;;;;12065:181;12215:20;12208:27;;;11179:1073;;;;:::o;9254:898::-;9335:22;9314:17;9320:10;9314:5;:17::i;:::-;:43;;;;;;;;;;9306:110;;;;-1:-1:-1;;;9306:110:5;;;;;;;;;9427:25;9455:21;;;:9;:21;;;;;9521:8;;-1:-1:-1;;;;;9521:8:5;9507:10;:22;;:73;;-1:-1:-1;9563:17:5;;;;-1:-1:-1;;;;;9563:17:5;9549:10;:31;9507:73;:179;;;-1:-1:-1;9669:17:5;;9600:8;;;9623:17;;;;-1:-1:-1;;;;;9600:8:5;;;;:22;;9623:17;;;9642:23;;9649:12;;9642:6;:23::i;:::-;9600:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9600:66:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9600:66:5;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;9600:66:5;;;;;;;;;-1:-1:-1;;;;;9600:86:5;;9507:179;9486:273;;;;-1:-1:-1;;;9486:273:5;;;;;;;;;9770:17;;;:24;;-1:-1:-1;;9770:24:5;9790:4;9770:24;;;:17;9804:298;9825:16;;;:23;9821:27;;9804:298;;;9869:8;;9913:16;;;:19;;-1:-1:-1;;;;;9869:8:5;;;;:26;;9913:16;9930:1;;9913:19;;;;;;;;;;;;;;;;9950:15;;;:18;;-1:-1:-1;;;;;9913:19:5;;;;9966:1;;9950:18;;;;;;;;;;;;;;9986:8;:19;;10006:1;9986:22;;;;;;;;;;;;;;;10026:8;:18;;10045:1;10026:21;;;;;;;;;;;;;;;10065:8;:12;;;9869:222;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9869:222:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;9850:3:5;;;;;-1:-1:-1;9804:298:5;;-1:-1:-1;9804:298:5;;;10117:28;10134:10;10117:28;;;;;;;6815:23:7;;;-1:-1:-1;;;;;6815:23:7;;:::o;12457:177:5:-;12540:10;12531:96;12552:10;12564:7;12573:49;12540:10;12552;12564:7;12573:16;:49::i;:::-;12531:96;;;;;;;;;;;;;;;;;12457:177;;:::o;3195:29:7:-;;;-1:-1:-1;;;;;3195:29:7;;:::o;600:55:5:-;646:9;600:55;:::o;12917:215::-;13034:10;13025:100;13046:10;13058:7;13067:49;13034:10;13046;13058:7;13067:16;:49::i;:::-;13118:6;;13025:100;;;;;;;;;;;;;;;;;;;12917:215;;;;:::o;6712:33:7:-;;;;:::o;998:58:5:-;1039:17;998:58;:::o;1236:56::-;1276:16;1236:56;:::o;2286:1509::-;2514:8;;-1:-1:-1;;;;;2514:8:5;2506:31;2498:95;;;;-1:-1:-1;;;2498:95:5;;;;;;;;;2625:5;;-1:-1:-1;;;;;2625:5:5;2611:10;:19;2603:69;;;;-1:-1:-1;;;2603:69:5;;;;;;;;;-1:-1:-1;;;;;2690:23:5;;2682:87;;;;-1:-1:-1;;;2682:87:5;;;;;;;;;-1:-1:-1;;;;;2787:23:5;;2779:82;;;;-1:-1:-1;;;2779:82:5;;;;;;;;;899:11;2892:13;:34;;:72;;;;;1039:17;2930:13;:34;;2892:72;2871:167;;;;-1:-1:-1;;;2871:167:5;;;;;;;;;1183:1;3069:12;:32;;:68;;;;;1276:16;3105:12;:32;;3069:68;3048:162;;;;-1:-1:-1;;;3048:162:5;;;;;;;;;646:9;3241:18;:44;;:92;;;;;778:9;3289:18;:44;;3241:92;3220:192;;;;-1:-1:-1;;;3220:192:5;;;;;;;;;-1:-1:-1;;;;;3430:23:5;;3422:79;;;;-1:-1:-1;;;3422:79:5;;;;;;;;;3512:8;:39;;-1:-1:-1;;;;;3512:39:5;;;-1:-1:-1;;;;;;3512:39:5;;;;;;;3561:8;:39;;;;;;;;;;;;;;;3610:12;:28;;;;3648:11;:26;;;;-1:-1:-1;3684:38:5;3756:2;3732:21;:26;3768:8;:20;;;;;;;;;;;2286:1509::o;3842:29:7:-;;;;:::o;19433:521:5:-;19557:5;;-1:-1:-1;;;;;19557:5:5;19543:10;:19;19535:74;;;;-1:-1:-1;;;19535:74:5;;;;;;;;;19706:12;;;-1:-1:-1;;;;;19786:30:5;;;-1:-1:-1;;;;;;19786:30:5;;;;;;19898:49;;19706:12;;;19898:49;;;;19706:12;;19801:15;;19898:49;;4101:33:7;;;-1:-1:-1;;;;;4101:33:7;;:::o;4010:25::-;;;;:::o;4259:2673:5:-;4467:4;4549:17;;4570:1;4549:22;;4541:84;;;;-1:-1:-1;;;4541:84:5;;;;;;;;;4718:17;;4656:8;;-1:-1:-1;;;;;4656:8:5;:22;4679:10;4691:23;4698:12;4656:8;4691:6;:23::i;:::-;4656:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4656:59:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4656:59:5;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;4656:59:5;;;;;;;;;-1:-1:-1;;;;;4656:79:5;;4635:189;;;;-1:-1:-1;;;4635:189:5;;;;;;;;;4873:6;:13;4855:7;:14;:31;:86;;;;;4924:10;:17;4906:7;:14;:35;4855:86;:140;;;;;4979:9;:16;4961:7;:14;:34;4855:140;4834:255;;;;-1:-1:-1;;;4834:255:5;;;;;;;;;5107:14;;5099:76;;;;-1:-1:-1;;;5099:76:5;;;;;;;;;5211:21;;5193:7;:14;:39;;5185:92;;;;-1:-1:-1;;;5185:92:5;;;;;;;;;5330:10;5288:21;5312:29;;;:17;:29;;;;;;5355:21;;5351:548;;5392:42;5437:23;5443:16;5437:5;:23::i;:::-;5392:68;-1:-1:-1;5531:20:5;5499:28;:52;;;;;;;;;;5474:199;;;;-1:-1:-1;;;5474:199:5;;;;;;;;;5744:21;5712:28;:53;;;;;;;;;;5687:201;;;;-1:-1:-1;;;5687:201:5;;;;;;;;;5351:548;;5909:15;5927:33;5934:12;5948:11;;5927:6;:33::i;:::-;5909:51;;5970:13;5986:32;5993:10;6005:12;;5986:6;:32::i;:::-;6029:13;:15;;;;;;5970:48;-1:-1:-1;6054:27:5;;:::i;:::-;6084:442;;;;;;;;6111:13;;6084:442;;;;6148:10;-1:-1:-1;;;;;6084:442:5;;;;;6177:1;6084:442;;;;6201:7;6084:442;;;;6230:6;6084:442;;;;6262:10;6084:442;;;;6297:9;6084:442;;;;6332:10;6084:442;;;;6366:8;6084:442;;;;6398:1;6084:442;;;;6427:1;6084:442;;;;6456:1;6084:442;;;;6481:5;6084:442;;;;;;6510:5;6084:442;;;;;6054:472;;6565:11;6537:9;:25;6547:11;:14;;;6537:25;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6537:39:5;;;;;-1:-1:-1;;;;;6537:39:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;6537:39:5;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;6537:39:5;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;6537:39:5;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6628:11;:14;;;6586:17;:39;6604:11;:20;;;-1:-1:-1;;;;;6586:39:5;-1:-1:-1;;;;;6586:39:5;;;;;;;;;;;;:56;;;;6658:236;6687:11;:14;;;6715:10;6739:7;6760:6;6780:10;6804:9;6827:10;6851:8;6873:11;6658:236;;;;;;;;;;;;;;;;;;;;;;;6911:14;;-1:-1:-1;;;;4259:2673:5;;;;;;;;:::o;7063:705::-;7156:23;7135:17;7141:10;7135:5;:17::i;:::-;:44;;;;;;;;;7114:159;;;;-1:-1:-1;;;7114:159:5;;;;;;;;;7283:25;7311:21;;;:9;:21;;;;;;;;7377:8;;:16;;-1:-1:-1;;;7377:16:5;;;;7311:21;;7283:25;7353:41;;7360:15;;-1:-1:-1;;;;;7377:8:5;;;;:14;;:16;;;;;7311:21;;7377:16;;;;;;:8;:16;;;5:2:-1;;;;30:1;27;20:12;7353:41:5;7342:52;-1:-1:-1;7409:6:5;7404:284;7425:16;;;:23;7421:27;;7404:284;;;7469:208;7508:8;:16;;7525:1;7508:19;;;;;;;;;;;;;;;;;;7545:15;;;:18;;-1:-1:-1;;;;;7508:19:5;;;;7561:1;;7545:18;;;;;;;;;;;;;;7581:8;:19;;7601:1;7581:22;;;;;;;;;;;;;;;;;;7469:208;;;;;;;-1:-1:-1;;7469:208:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7581:22;7469:208;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7621:8;:18;;7640:1;7621:21;;;;;;;;;;;;;;;;;;7469:208;;;;;;;-1:-1:-1;;7469:208:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7621:21;7469:208;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7660:3;7469:21;:208::i;:::-;7450:3;;7404:284;;;-1:-1:-1;7697:12:5;;;:18;;;7730:31;;;;;;7745:10;;7712:3;;7730:31;;;;;;;;;;7063:705;;;:::o;1819:95::-;1861:53;;;;;;10883:152;10958:14;;:::i;:::-;-1:-1:-1;10991:21:5;;;;:9;:21;;;;;;;;-1:-1:-1;;;;;10991:37:5;;;;:30;;:37;;;;;;10984:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10984:44:5;;;;;;;;10883:152;;;;;:::o;15492:410::-;15576:8;;-1:-1:-1;;;;;15576:8:5;15562:10;:22;;:45;;-1:-1:-1;15602:5:5;;-1:-1:-1;;;;;15602:5:5;15588:10;:19;15562:45;15554:109;;;;-1:-1:-1;;;15554:109:5;;;;;;;;;-1:-1:-1;;;;;15681:25:5;;15673:97;;;;-1:-1:-1;;;15673:97:5;;;;;;;;;15802:8;;;-1:-1:-1;;;;;15820:22:5;;;-1:-1:-1;;;;;;15820:22:5;;;;;;15858:37;;15802:8;;;15858:37;;;;15802:8;;15831:11;;15858:37;;1143:41;1183:1;1143:41;:::o;20134:655::-;20284:12;;-1:-1:-1;;;;;20284:12:5;20270:10;:26;:54;;;;-1:-1:-1;20300:10:5;:24;;20270:54;20249:147;;;;-1:-1:-1;;;20249:147:5;;;;;;;;;20459:16;20478:5;;;20519:12;;-1:-1:-1;;;;;20519:12:5;;;-1:-1:-1;;;;;;20589:20:5;;;;;;;;;20655:25;;;;;;20696;;20478:5;;;;20519:12;;20696:25;;;;20478:5;;20715;;;20696:25;;;;;;;;;;20769:12;;20736:46;;;;;;20752:15;;-1:-1:-1;;;;;20769:12:5;;20736:46;;3036:20:7;;;-1:-1:-1;;;;;3036:20:7;;:::o;18199:383:5:-;18282:5;;-1:-1:-1;;;;;18282:5:5;18268:10;:19;18260:68;;;;-1:-1:-1;;;18260:68:5;;;;;;;;;18346:17;;:22;18338:83;;;;-1:-1:-1;;;18338:83:5;;;;;;;;;18470:13;-1:-1:-1;;;;;18447:51:5;;:53;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18447:53:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18447:53:5;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;18447:53:5;;;;;;;;;18431:13;:69;;;18510:17;:33;18553:8;;:22;;;-1:-1:-1;;;18553:22:5;;;;-1:-1:-1;;;;;18553:8:5;;;;:20;;:22;;;;;-1:-1:-1;;18553:22:5;;;;;;;;-1:-1:-1;18553:8:5;:22;;;5:2:-1;;;;30:1;27;20:12;5:2;18553:22:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18553:22:5;;;;18199:383;:::o;3928:29:7:-;;;;:::o;8392:661:5:-;8487:20;8466:17;8472:10;8466:5;:17::i;:::-;:41;;;;;;;;;8445:157;;;;-1:-1:-1;;;8445:157:5;;;;;;;;;8612:25;8640:21;;;:9;:21;;;;;8671:17;;;:24;;-1:-1:-1;;8671:24:5;;;;;8640:21;8705:299;8726:16;;;:23;8722:27;;8705:299;;;8770:8;;8815:16;;;:19;;-1:-1:-1;;;;;8770:8:5;;;;:27;;8815:16;8832:1;;8815:19;;;;;;;;;;;;;;;;8852:15;;;:18;;-1:-1:-1;;;;;8815:19:5;;;;8868:1;;8852:18;;;;;;;;;;;;;;8888:8;:19;;8908:1;8888:22;;;;;;;;;;;;;;;8928:8;:18;;8947:1;8928:21;;;;;;;;;;;;;;;8967:8;:12;;;8770:223;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8770:223:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8770:223:5;;;;;;39:16:-1;36:1;17:17;2:54;101:4;8770:223:5;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;8770:223:5;;;;;;;;;-1:-1:-1;8751:3:5;;8705:299;;;;9018:28;9035:10;9018:28;;;;;;;21115:174;21240:9;21115:174;;:::o;14320:1044::-;14411:6;14458:20;14437:17;14443:10;14437:5;:17::i;:::-;:41;;;;;;;;;14429:103;;;;-1:-1:-1;;;14429:103:5;;;;;;;;;14561:1;14550:7;:12;;;;14542:75;;;;-1:-1:-1;;;14542:75:5;;;;;;;;;14627:25;14655:21;;;:9;:21;;;;;;;;-1:-1:-1;;;;;14712:24:5;;;;:17;;;:24;;;;;;14754:16;;;;:25;14746:90;;;;-1:-1:-1;;;14746:90:5;;;;;;;;;14861:8;;14891:19;;;;14861:50;;-1:-1:-1;;;14861:50:5;;14846:12;;-1:-1:-1;;;;;14861:8:5;;:22;;:50;;14884:5;;14861:50;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14861:50:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14861:50:5;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;14861:50:5;;;;;;;;;14846:65;-1:-1:-1;14926:12:5;;;14922:313;;14978:36;14985:8;:21;;;15008:5;-1:-1:-1;;;;;14978:36:5;:6;:36::i;:::-;14954:21;;;:60;14922:313;;;15035:7;:12;;15046:1;15035:12;15031:204;;;15083:32;15090:8;:17;;;15109:5;-1:-1:-1;;;;;15083:32:5;:6;:32::i;:::-;15063:17;;;:52;15031:204;;;15136:7;:12;;15147:1;15136:12;15132:103;;;15188:36;15195:8;:21;;;15218:5;-1:-1:-1;;;;;15188:36:5;:6;:36::i;:::-;15164:21;;;:60;15132:103;15245:23;;15264:4;-1:-1:-1;;15245:23:5;;;;-1:-1:-1;;15278:25:5;15245:23;;15278:25;;;;-1:-1:-1;;15313:21:5;;-1:-1:-1;;;;;15313:21:5;;;;;;;;-1:-1:-1;;14320:1044:5;;;;;;:::o;20795:162::-;20856:4;20881:5;;;20904:6;;;;20896:36;;;;-1:-1:-1;;;20896:36:5;;;;;;;;20963:146;21024:4;21053:1;21048;:6;;21040:40;;;;-1:-1:-1;;;21040:40:5;;;;;;;;;-1:-1:-1;21097:5:5;;;20963:146::o;7774:477::-;7974:8;;8012:47;;-1:-1:-1;;;;;7974:8:5;;;;:27;;8012:47;;8023:6;;8031:5;;8038:9;;8049:4;;8055:3;;8012:47;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;8012:47:5;;;8002:58;;;;;;7974:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7974:87:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7974:87:5;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;7974:87:5;;;;;;;;;7973:88;7952:220;;;;-1:-1:-1;;;7952:220:5;;;;;;;;;8182:8;;:62;;-1:-1:-1;;;8182:62:5;;-1:-1:-1;;;;;8182:8:5;;;;:25;;:62;;8208:6;;8216:5;;8223:9;;8234:4;;8240:3;;8182:62;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8182:62:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8182:62:5;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;8182:62:5;;;;;;;;;;7774:477;;;;;:::o;348:20943::-;;;;;;;;;;;;;;;-1:-1:-1;;;;;348:20943:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;348:20943:5;-1:-1:-1;;;;;348:20943:5;;;;;;;;;;;-1:-1:-1;348:20943:5;;;;;;;-1:-1:-1;348:20943:5;;;-1:-1:-1;348:20943:5;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;348:20943:5;;;-1:-1:-1;348:20943:5;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;348:20943:5;;;-1:-1:-1;348:20943:5;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;348:20943:5;;;-1:-1:-1;348:20943:5;:::i;:::-;;;;;;;;;-1:-1:-1;348:20943:5;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;;348:20943:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::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:128;3121:13;;3139:30;3121:13;3139:30;;3181:130;3248:20;;3273:33;3248:20;3273:33;;3318:134;3396:13;;3414:33;3396:13;3414:33;;3460:432;;3557:3;3550:4;3542:6;3538:17;3534:27;3524:2;;3575:1;3572;3565:12;3524:2;3612:6;3599:20;3634:60;3649:44;3686:6;3649:44;;3634:60;3625:69;;3714:6;3707:5;3700:21;3750:4;3742:6;3738:17;3783:4;3776:5;3772:16;3818:3;3809:6;3804:3;3800:16;3797:25;3794:2;;;3835:1;3832;3825:12;3794:2;3845:41;3879:6;3874:3;3869;3845:41;;;3517:375;;;;;;;;3901:442;;4013:3;4006:4;3998:6;3994:17;3990:27;3980:2;;4031:1;4028;4021:12;3980:2;4061:6;4055:13;4083:64;4098:48;4139:6;4098:48;;4083:64;4074:73;;4167:6;4160:5;4153:21;4203:4;4195:6;4191:17;4236:4;4229:5;4225:16;4271:3;4262:6;4257:3;4253:16;4250:25;4247:2;;;4288:1;4285;4278:12;4247:2;4298:39;4330:6;4325:3;4320;4298:39;;4366:337;;;4481:3;4474:4;4466:6;4462:17;4458:27;4448:2;;4499:1;4496;4489:12;4448:2;-1:-1;4519:20;;4559:18;4548:30;;4545:2;;;4591:1;4588;4581:12;4545:2;4625:4;4617:6;4613:17;4601:29;;4676:3;4668:4;4660:6;4656:17;4646:8;4642:32;4639:41;4636:2;;;4693:1;4690;4683:12;4636:2;4441:262;;;;;;5883:126;5948:20;;5973:31;5948:20;5973:31;;6016:132;6093:13;;6111:32;6093:13;6111:32;;6155:241;;6259:2;6247:9;6238:7;6234:23;6230:32;6227:2;;;6275:1;6272;6265:12;6227:2;6310:1;6327:53;6372:7;6352:9;6327:53;;;6317:63;6221:175;-1:-1;;;;6221:175;6403:869;;;;;;;6592:3;6580:9;6571:7;6567:23;6563:33;6560:2;;;6609:1;6606;6599:12;6560:2;6644:1;6661:53;6706:7;6686:9;6661:53;;;6651:63;;6623:97;6751:2;6769:53;6814:7;6805:6;6794:9;6790:22;6769:53;;;6759:63;;6730:98;6859:2;6877:53;6922:7;6913:6;6902:9;6898:22;6877:53;;;6867:63;;6838:98;6967:2;6985:53;7030:7;7021:6;7010:9;7006:22;6985:53;;;6975:63;;6946:98;7075:3;7094:53;7139:7;7130:6;7119:9;7115:22;7094:53;;;7084:63;;7054:99;7184:3;7203:53;7248:7;7239:6;7228:9;7224:22;7203:53;;;7193:63;;7163:99;6554:718;;;;;;;;;7279:1415;;;;;;7572:3;7560:9;7551:7;7547:23;7543:33;7540:2;;;7589:1;7586;7579:12;7540:2;7624:31;;7675:18;7664:30;;7661:2;;;7707:1;7704;7697:12;7661:2;7727:78;7797:7;7788:6;7777:9;7773:22;7727:78;;;7717:88;;7603:208;7870:2;7859:9;7855:18;7842:32;7894:18;7886:6;7883:30;7880:2;;;7926:1;7923;7916:12;7880:2;7946:78;8016:7;8007:6;7996:9;7992:22;7946:78;;;7936:88;;7821:209;8089:2;8078:9;8074:18;8061:32;8113:18;8105:6;8102:30;8099:2;;;8145:1;8142;8135:12;8099:2;8165:84;8241:7;8232:6;8221:9;8217:22;8165:84;;;8155:94;;8040:215;8314:2;8303:9;8299:18;8286:32;8338:18;8330:6;8327:30;8324:2;;;8370:1;8367;8360:12;8324:2;8390:83;8465:7;8456:6;8445:9;8441:22;8390:83;;;8380:93;;8265:214;8538:3;8527:9;8523:19;8510:33;8563:18;8555:6;8552:30;8549:2;;;8595:1;8592;8585:12;8549:2;8615:63;8670:7;8661:6;8650:9;8646:22;8615:63;;;8605:73;;8489:195;7534:1160;;;;;;;;;8701:257;;8813:2;8801:9;8792:7;8788:23;8784:32;8781:2;;;8829:1;8826;8819:12;8781:2;8864:1;8881:61;8934:7;8914:9;8881:61;;8965:263;;9080:2;9068:9;9059:7;9055:23;9051:32;9048:2;;;9096:1;9093;9086:12;9048:2;9131:1;9148:64;9204:7;9184:9;9148:64;;9235:360;;9359:2;9347:9;9338:7;9334:23;9330:32;9327:2;;;9375:1;9372;9365:12;9327:2;9410:24;;9454:18;9443:30;;9440:2;;;9486:1;9483;9476:12;9440:2;9506:73;9571:7;9562:6;9551:9;9547:22;9506:73;;9602:241;;9706:2;9694:9;9685:7;9681:23;9677:32;9674:2;;;9722:1;9719;9712:12;9674:2;9757:1;9774:53;9819:7;9799:9;9774:53;;10120:366;;;10241:2;10229:9;10220:7;10216:23;10212:32;10209:2;;;10257:1;10254;10247:12;10209:2;10292:1;10309:53;10354:7;10334:9;10309:53;;;10299:63;;10271:97;10399:2;10417:53;10462:7;10453:6;10442:9;10438:22;10417:53;;;10407:63;;10378:98;10203:283;;;;;;10493:362;;;10612:2;10600:9;10591:7;10587:23;10583:32;10580:2;;;10628:1;10625;10618:12;10580:2;10663:1;10680:53;10725:7;10705:9;10680:53;;;10670:63;;10642:97;10770:2;10788:51;10831:7;10822:6;10811:9;10807:22;10788:51;;10862:613;;;;;11018:2;11006:9;10997:7;10993:23;10989:32;10986:2;;;11034:1;11031;11024:12;10986:2;11069:1;11086:53;11131:7;11111:9;11086:53;;;11076:63;;11048:97;11176:2;11194:51;11237:7;11228:6;11217:9;11213:22;11194:51;;;11184:61;;11155:96;11310:2;11299:9;11295:18;11282:32;11334:18;11326:6;11323:30;11320:2;;;11366:1;11363;11356:12;11320:2;11394:65;11451:7;11442:6;11431:9;11427:22;11394:65;;;10980:495;;;;-1:-1;11384:75;-1:-1;;;;10980:495;11482:735;;;;;;11650:3;11638:9;11629:7;11625:23;11621:33;11618:2;;;11667:1;11664;11657:12;11618:2;11702:1;11719:53;11764:7;11744:9;11719:53;;;11709:63;;11681:97;11809:2;11827:51;11870:7;11861:6;11850:9;11846:22;11827:51;;;11817:61;;11788:96;11915:2;11933:51;11976:7;11967:6;11956:9;11952:22;11933:51;;;11923:61;;11894:96;12021:2;12039:53;12084:7;12075:6;12064:9;12060:22;12039:53;;;12029:63;;12000:98;12129:3;12148:53;12193:7;12184:6;12173:9;12169:22;12148:53;;12224:261;;12338:2;12326:9;12317:7;12313:23;12309:32;12306:2;;;12354:1;12351;12344:12;12306:2;12389:1;12406:63;12461:7;12441:9;12406:63;;12493:173;;12580:46;12622:3;12614:6;12580:46;;;-1:-1;;12655:4;12646:14;;12573:93;12675:177;;12786:60;12842:3;12834:6;12786:60;;13051:173;;13138:46;13180:3;13172:6;13138:46;;13232:142;13323:45;13362:5;13323:45;;;13318:3;13311:58;13305:69;;;13381:103;13454:24;13472:5;13454:24;;13642:690;;13787:54;13835:5;13787:54;;;13854:86;13933:6;13928:3;13854:86;;;13847:93;;13961:56;14011:5;13961:56;;;14037:7;14065:1;14050:260;14075:6;14072:1;14069:13;14050:260;;;14142:6;14136:13;14163:63;14222:3;14207:13;14163:63;;;14156:70;;14243:60;14296:6;14243:60;;;14233:70;-1:-1;;14097:1;14090:9;14050:260;;;-1:-1;14323:3;;13766:566;-1:-1;;;;;13766:566;14367:888;;14522:59;14575:5;14522:59;;;14594:91;14678:6;14673:3;14594:91;;;14587:98;;14708:3;14750:4;14742:6;14738:17;14733:3;14729:27;14777:61;14832:5;14777:61;;;14858:7;14886:1;14871:345;14896:6;14893:1;14890:13;14871:345;;;14958:9;14952:4;14948:20;14943:3;14936:33;15003:6;14997:13;15025:74;15094:4;15079:13;15025:74;;;15017:82;;15116:65;15174:6;15116:65;;;15204:4;15195:14;;;;;15106:75;-1:-1;;14918:1;14911:9;14871:345;;;-1:-1;15229:4;;14501:754;-1:-1;;;;;;;14501:754;15292:896;;15449:60;15503:5;15449:60;;;15522:92;15607:6;15602:3;15522:92;;;15515:99;;15637:3;15679:4;15671:6;15667:17;15662:3;15658:27;15706:62;15762:5;15706:62;;;15788:7;15816:1;15801:348;15826:6;15823:1;15820:13;15801:348;;;15888:9;15882:4;15878:20;15873:3;15866:33;15933:6;15927:13;15955:76;16026:4;16011:13;15955:76;;;15947:84;;16048:66;16107:6;16048:66;;;16137:4;16128:14;;;;;16038:76;-1:-1;;15848:1;15841:9;15801:348;;16227:690;;16372:54;16420:5;16372:54;;;16439:86;16518:6;16513:3;16439:86;;;16432:93;;16546:56;16596:5;16546:56;;;16622:7;16650:1;16635:260;16660:6;16657:1;16654:13;16635:260;;;16727:6;16721:13;16748:63;16807:3;16792:13;16748:63;;;16741:70;;16828:60;16881:6;16828:60;;;16818:70;-1:-1;;16682:1;16675:9;16635:260;;16925:94;16992:21;17007:5;16992:21;;17137:113;17220:24;17238:5;17220:24;;17257:152;17358:45;17378:24;17396:5;17378:24;;;17358:45;;17416:343;;17526:38;17558:5;17526:38;;;17576:70;17639:6;17634:3;17576:70;;;17569:77;;17651:52;17696:6;17691:3;17684:4;17677:5;17673:16;17651:52;;;17724:29;17746:6;17724:29;;;17715:39;;;;17506:253;-1:-1;;;17506:253;18111:818;;18228:5;18222:12;18262:1;18251:9;18247:17;18275:1;18270:247;;;;18528:1;18523:400;;;;18240:683;;18270:247;18348:4;18344:1;18333:9;18329:17;18325:28;18367:70;18430:6;18425:3;18367:70;;;-1:-1;;18456:25;;18444:38;;18360:77;-1:-1;;18505:4;18496:14;;;-1:-1;18270:247;;18523:400;18592:1;18581:9;18577:17;18608:70;18671:6;18666:3;18608:70;;;18601:77;;18700:37;18731:5;18700:37;;;18753:1;18761:130;18775:6;18772:1;18769:13;18761:130;;;18834:14;;18821:11;;;18814:35;18881:1;18868:15;;;;18797:4;18790:12;18761:130;;;18905:11;;;-1:-1;;;18240:683;;18198:731;;;;;;18937:178;19046:63;19103:5;19046:63;;19307:158;19406:53;19453:5;19406:53;;19497:300;;19613:71;19677:6;19672:3;19613:71;;;19606:78;;19696:43;19732:6;19727:3;19720:5;19696:43;;;19761:29;19783:6;19761:29;;21688:387;;21848:67;21912:2;21907:3;21848:67;;;21948:34;21928:55;;-1:-1;;;22012:2;22003:12;;21996:42;22066:2;22057:12;;21834:241;-1:-1;;21834:241;22084:413;;22262:85;22344:2;22339:3;22262:85;;;22380:34;22360:55;;-1:-1;;;22444:2;22435:12;;22428:32;22488:2;22479:12;;22248:249;-1:-1;;22248:249;22506:388;;22666:67;22730:2;22725:3;22666:67;;;22766:34;22746:55;;-1:-1;;;22830:2;22821:12;;22814:43;22885:2;22876:12;;22652:242;-1:-1;;22652:242;22903:379;;23063:67;23127:2;23122:3;23063:67;;;23163:34;23143:55;;-1:-1;;;23227:2;23218:12;;23211:34;23273:2;23264:12;;23049:233;-1:-1;;23049:233;23291:459;;23451:67;23515:2;23510:3;23451:67;;;23551:34;23531:55;;23620:34;23615:2;23606:12;;23599:56;-1:-1;;;23684:2;23675:12;;23668:45;23741:2;23732:12;;23437:313;-1:-1;;23437:313;23759:380;;23919:67;23983:2;23978:3;23919:67;;;24019:34;23999:55;;-1:-1;;;24083:2;24074:12;;24067:35;24130:2;24121:12;;23905:234;-1:-1;;23905:234;24148:388;;24308:67;24372:2;24367:3;24308:67;;;-1:-1;;;;;;;;;;;24388:55;;-1:-1;;;24472:2;24463:12;;24456:43;24527:2;24518:12;;24294:242;-1:-1;;24294:242;24545:379;;24705:67;24769:2;24764:3;24705:67;;;24805:34;24785:55;;-1:-1;;;24869:2;24860:12;;24853:34;24915:2;24906:12;;24691:233;-1:-1;;24691:233;24933:386;;25093:67;25157:2;25152:3;25093:67;;;25193:34;25173:55;;-1:-1;;;25257:2;25248:12;;25241:41;25310:2;25301:12;;25079:240;-1:-1;;25079:240;25328:398;;25506:84;25588:1;25583:3;25506:84;;;-1:-1;;;25603:87;;25718:1;25709:11;;25492:234;-1:-1;;25492:234;25735:391;;25895:67;25959:2;25954:3;25895:67;;;25995:34;25975:55;;-1:-1;;;26059:2;26050:12;;26043:46;26117:2;26108:12;;25881:245;-1:-1;;25881:245;26135:386;;26295:67;26359:2;26354:3;26295:67;;;26395:34;26375:55;;-1:-1;;;26459:2;26450:12;;26443:41;26512:2;26503:12;;26281:240;-1:-1;;26281:240;26530:389;;26690:67;26754:2;26749:3;26690:67;;;26790:34;26770:55;;-1:-1;;;26854:2;26845:12;;26838:44;26910:2;26901:12;;26676:243;-1:-1;;26676:243;26928:383;;27088:67;27152:2;27147:3;27088:67;;;-1:-1;;;;;;;;;;;27168:55;;-1:-1;;;27252:2;27243:12;;27236:38;27302:2;27293:12;;27074:237;-1:-1;;27074:237;27320:389;;27480:67;27544:2;27539:3;27480:67;;;27580:34;27560:55;;-1:-1;;;27644:2;27635:12;;27628:44;27700:2;27691:12;;27466:243;-1:-1;;27466:243;27718:390;;27878:67;27942:2;27937:3;27878:67;;;-1:-1;;;;;;;;;;;27958:55;;-1:-1;;;28042:2;28033:12;;28026:45;28099:2;28090:12;;27864:244;-1:-1;;27864:244;28117:443;;28277:67;28341:2;28336:3;28277:67;;;28377:34;28357:55;;28446:34;28441:2;28432:12;;28425:56;-1:-1;;;28510:2;28501:12;;28494:29;28551:2;28542:12;;28263:297;-1:-1;;28263:297;28569:384;;28729:67;28793:2;28788:3;28729:67;;;28829:34;28809:55;;-1:-1;;;28893:2;28884:12;;28877:39;28944:2;28935:12;;28715:238;-1:-1;;28715:238;28962:384;;29122:67;29186:2;29181:3;29122:67;;;-1:-1;;;;;;;;;;;29202:55;;-1:-1;;;29286:2;29277:12;;29270:39;29337:2;29328:12;;29108:238;-1:-1;;29108:238;29355:442;;29515:67;29579:2;29574:3;29515:67;;;29615:34;29595:55;;29684:34;29679:2;29670:12;;29663:56;-1:-1;;;29748:2;29739:12;;29732:28;29788:2;29779:12;;29501:296;-1:-1;;29501:296;29806:374;;29966:67;30030:2;30025:3;29966:67;;;30066:34;30046:55;;-1:-1;;;30130:2;30121:12;;30114:29;30171:2;30162:12;;29952:228;-1:-1;;29952:228;30189:401;;30349:67;30413:2;30408:3;30349:67;;;30449:34;30429:55;;30518:34;30513:2;30504:12;;30497:56;30581:2;30572:12;;30335:255;-1:-1;;30335:255;30599:442;;30759:67;30823:2;30818:3;30759:67;;;30859:34;30839:55;;30928:34;30923:2;30914:12;;30907:56;-1:-1;;;30992:2;30983:12;;30976:28;31032:2;31023:12;;30745:296;-1:-1;;30745:296;31050:317;;31210:67;31274:2;31269:3;31210:67;;;-1:-1;;;31290:40;;31358:2;31349:12;;31196:171;-1:-1;;31196:171;31376:477;;31554:85;31636:2;31631:3;31554:85;;;31672:34;31652:55;;31741:34;31736:2;31727:12;;31720:56;-1:-1;;;31805:2;31796:12;;31789:27;31844:2;31835:12;;31540:313;-1:-1;;31540:313;31862:385;;32022:67;32086:2;32081:3;32022:67;;;32122:34;32102:55;;-1:-1;;;32186:2;32177:12;;32170:40;32238:2;32229:12;;32008:239;-1:-1;;32008:239;32256:381;;32416:67;32480:2;32475:3;32416:67;;;32516:34;32496:55;;-1:-1;;;32580:2;32571:12;;32564:36;32628:2;32619:12;;32402:235;-1:-1;;32402:235;32646:383;;32806:67;32870:2;32865:3;32806:67;;;32906:34;32886:55;;-1:-1;;;32970:2;32961:12;;32954:38;33020:2;33011:12;;32792:237;-1:-1;;32792:237;33038:384;;33198:67;33262:2;33257:3;33198:67;;;33298:34;33278:55;;-1:-1;;;33362:2;33353:12;;33346:39;33413:2;33404:12;;33184:238;-1:-1;;33184:238;33431:380;;33591:67;33655:2;33650:3;33591:67;;;-1:-1;;;;;;;;;;;33671:55;;-1:-1;;;33755:2;33746:12;;33739:35;33802:2;33793:12;;33577:234;-1:-1;;33577:234;33820:377;;33980:67;34044:2;34039:3;33980:67;;;34080:34;34060:55;;-1:-1;;;34144:2;34135:12;;34128:32;34188:2;34179:12;;33966:231;-1:-1;;33966:231;34206:463;;34366:67;34430:2;34425:3;34366:67;;;34466:34;34446:55;;34535:34;34530:2;34521:12;;34514:56;34604:27;34599:2;34590:12;;34583:49;34660:2;34651:12;;34352:317;-1:-1;;34352:317;34678:389;;34838:67;34902:2;34897:3;34838:67;;;34938:34;34918:55;;-1:-1;;;35002:2;34993:12;;34986:44;35058:2;35049:12;;34824:243;-1:-1;;34824:243;35076:462;;35236:67;35300:2;35295:3;35236:67;;;35336:34;35316:55;;35405:34;35400:2;35391:12;;35384:56;35474:26;35469:2;35460:12;;35453:48;35529:2;35520:12;;35222:316;-1:-1;;35222:316;35547:262;;35707:66;35771:1;35766:3;35707:66;;35818:373;;35978:67;36042:2;36037:3;35978:67;;;36078:34;36058:55;;-1:-1;;;36142:2;36133:12;;36126:28;36182:2;36173:12;;35964:227;-1:-1;;35964:227;36200:400;;36360:67;36424:2;36419:3;36360:67;;;36460:34;36440:55;;36529:33;36524:2;36515:12;;36508:55;36591:2;36582:12;;36346:254;-1:-1;;36346:254;36609:391;;36769:67;36833:2;36828:3;36769:67;;;36869:34;36849:55;;-1:-1;;;36933:2;36924:12;;36917:46;36991:2;36982:12;;36755:245;-1:-1;;36755:245;37009:385;;37169:67;37233:2;37228:3;37169:67;;;37269:34;37249:55;;-1:-1;;;37333:2;37324:12;;37317:40;37385:2;37376:12;;37155:239;-1:-1;;37155:239;37403:378;;37563:67;37627:2;37622:3;37563:67;;;37663:34;37643:55;;-1:-1;;;37727:2;37718:12;;37711:33;37772:2;37763:12;;37549:232;-1:-1;;37549:232;37790:385;;37950:67;38014:2;38009:3;37950:67;;;-1:-1;;;;;;;;;;;38030:55;;-1:-1;;;38114:2;38105:12;;38098:40;38166:2;38157:12;;37936:239;-1:-1;;37936:239;38184:396;;38344:67;38408:2;38403:3;38344:67;;;38444:34;38424:55;;38513:29;38508:2;38499:12;;38492:51;38571:2;38562:12;;38330:250;-1:-1;;38330:250;38589:388;;38749:67;38813:2;38808:3;38749:67;;;38849:34;38829:55;;-1:-1;;;38913:2;38904:12;;38897:43;38968:2;38959:12;;38735:242;-1:-1;;38735:242;38986:321;;39146:67;39210:2;39205:3;39146:67;;;-1:-1;;;39226:44;;39298:2;39289:12;;39132:175;-1:-1;;39132:175;39416:626;39629:23;;39559:4;39550:14;;;39658:57;39554:3;39629:23;39658:57;;;39579:142;39797:4;39790:5;39786:16;39780:23;39809:59;39862:4;39857:3;39853:14;39839:12;39809:59;;;39731:143;39948:4;39941:5;39937:16;39931:23;39960:61;40015:4;40010:3;40006:14;39992:12;39960:61;;;39884:143;39532:510;;;;40279:97;40348:22;40364:5;40348:22;;40497:124;40579:36;40609:5;40579:36;;40628:100;40699:23;40716:5;40699:23;;40735:372;;40934:148;41078:3;40934:148;;41114:650;;41369:148;41513:3;41369:148;;;41362:155;;41528:75;41599:3;41590:6;41528:75;;;41625:2;41620:3;41616:12;41609:19;;41639:75;41710:3;41701:6;41639:75;;;-1:-1;41736:2;41727:12;;41350:414;-1:-1;;41350:414;41771:372;;41970:148;42114:3;41970:148;;42150:213;42268:2;42253:18;;42282:71;42257:9;42326:6;42282:71;;42370:340;42524:2;42509:18;;42538:79;42513:9;42590:6;42538:79;;;42628:72;42696:2;42685:9;42681:18;42672:6;42628:72;;42717:324;42863:2;42848:18;;42877:71;42852:9;42921:6;42877:71;;;42959:72;43027:2;43016:9;43012:18;43003:6;42959:72;;43048:324;43194:2;43179:18;;43208:71;43183:9;43252:6;43208:71;;43379:831;43647:3;43632:19;;43662:71;43636:9;43706:6;43662:71;;;43744:72;43812:2;43801:9;43797:18;43788:6;43744:72;;;43864:9;43858:4;43854:20;43849:2;43838:9;43834:18;43827:48;43889:78;43962:4;43953:6;43889:78;;;43881:86;;44015:9;44009:4;44005:20;44000:2;43989:9;43985:18;43978:48;44040:76;44111:4;44102:6;44040:76;;;44032:84;;44127:73;44195:3;44184:9;44180:19;44171:6;44127:73;;;43618:592;;;;;;;;;44217:819;44479:3;44464:19;;44494:71;44468:9;44538:6;44494:71;;;44576:72;44644:2;44633:9;44629:18;44620:6;44576:72;;;44696:9;44690:4;44686:20;44681:2;44670:9;44666:18;44659:48;44721:75;44791:4;44782:6;44721:75;;;44713:83;;44844:9;44838:4;44834:20;44829:2;44818:9;44814:18;44807:48;44869:73;44937:4;44928:6;44869:73;;45043:1183;45467:3;45482:47;;;45452:19;;45543:108;45452:19;45637:6;45543:108;;;45535:116;;45699:9;45693:4;45689:20;45684:2;45673:9;45669:18;45662:48;45724:108;45827:4;45818:6;45724:108;;;45716:116;;45880:9;45874:4;45870:20;45865:2;45854:9;45850:18;45843:48;45905:120;46020:4;46011:6;45905:120;;;45897:128;;46073:9;46067:4;46063:20;46058:2;46047:9;46043:18;46036:48;46098:118;46211:4;46202:6;46098:118;;46233:213;46351:2;46336:18;;46365:71;46340:9;46409:6;46365:71;;46453:547;46655:3;46640:19;;46670:71;46644:9;46714:6;46670:71;;;46752:72;46820:2;46809:9;46805:18;46796:6;46752:72;;;46835;46903:2;46892:9;46888:18;46879:6;46835:72;;;46918;46986:2;46975:9;46971:18;46962:6;46918:72;;47007:427;47177:2;47162:18;;47191:71;47166:9;47235:6;47191:71;;;47273:72;47341:2;47330:9;47326:18;47317:6;47273:72;;;47356:68;47420:2;47409:9;47405:18;47396:6;47356:68;;47441:539;47639:3;47624:19;;47654:71;47628:9;47698:6;47654:71;;;47736:68;47800:2;47789:9;47785:18;47776:6;47736:68;;;47815:72;47883:2;47872:9;47868:18;47859:6;47815:72;;;47898;47966:2;47955:9;47951:18;47942:6;47898:72;;47987:265;48131:2;48116:18;;48145:97;48120:9;48215:6;48145:97;;48531:245;48665:2;48650:18;;48679:87;48654:9;48739:6;48679:87;;48783:293;48917:2;48931:47;;;48902:18;;48992:74;48902:18;49052:6;48992:74;;49083:407;49274:2;49288:47;;;49259:18;;49349:131;49259:18;49349:131;;49497:407;49688:2;49702:47;;;49673:18;;49763:131;49673:18;49763:131;;49911:407;50102:2;50116:47;;;50087:18;;50177:131;50087:18;50177:131;;50325:407;50516:2;50530:47;;;50501:18;;50591:131;50501:18;50591:131;;50739:407;50930:2;50944:47;;;50915:18;;51005:131;50915:18;51005:131;;51153:407;51344:2;51358:47;;;51329:18;;51419:131;51329:18;51419:131;;51567:407;51758:2;51772:47;;;51743:18;;51833:131;51743:18;51833:131;;51981:407;52172:2;52186:47;;;52157:18;;52247:131;52157:18;52247:131;;52395:407;52586:2;52600:47;;;52571:18;;52661:131;52571:18;52661:131;;52809:407;53000:2;53014:47;;;52985:18;;53075:131;52985:18;53075:131;;53223:407;53414:2;53428:47;;;53399:18;;53489:131;53399:18;53489:131;;53637:407;53828:2;53842:47;;;53813:18;;53903:131;53813:18;53903:131;;54051:407;54242:2;54256:47;;;54227:18;;54317:131;54227:18;54317:131;;54465:407;54656:2;54670:47;;;54641:18;;54731:131;54641:18;54731:131;;54879:407;55070:2;55084:47;;;55055:18;;55145:131;55055:18;55145:131;;55293:407;55484:2;55498:47;;;55469:18;;55559:131;55469:18;55559:131;;55707:407;55898:2;55912:47;;;55883:18;;55973:131;55883:18;55973:131;;56121:407;56312:2;56326:47;;;56297:18;;56387:131;56297:18;56387:131;;56535:407;56726:2;56740:47;;;56711:18;;56801:131;56711:18;56801:131;;56949:407;57140:2;57154:47;;;57125:18;;57215:131;57125:18;57215:131;;57363:407;57554:2;57568:47;;;57539:18;;57629:131;57539:18;57629:131;;57777:407;57968:2;57982:47;;;57953:18;;58043:131;57953:18;58043:131;;58191:407;58382:2;58396:47;;;58367:18;;58457:131;58367:18;58457:131;;58605:407;58796:2;58810:47;;;58781:18;;58871:131;58781:18;58871:131;;59019:407;59210:2;59224:47;;;59195:18;;59285:131;59195:18;59285:131;;59433:407;59624:2;59638:47;;;59609:18;;59699:131;59609:18;59699:131;;59847:407;60038:2;60052:47;;;60023:18;;60113:131;60023:18;60113:131;;60261:407;60452:2;60466:47;;;60437:18;;60527:131;60437:18;60527:131;;60675:407;60866:2;60880:47;;;60851:18;;60941:131;60851:18;60941:131;;61089:407;61280:2;61294:47;;;61265:18;;61355:131;61265:18;61355:131;;61503:407;61694:2;61708:47;;;61679:18;;61769:131;61679:18;61769:131;;61917:407;62108:2;62122:47;;;62093:18;;62183:131;62093:18;62183:131;;62331:407;62522:2;62536:47;;;62507:18;;62597:131;62507:18;62597:131;;62745:407;62936:2;62950:47;;;62921:18;;63011:131;62921:18;63011:131;;63159:407;63350:2;63364:47;;;63335:18;;63425:131;63335:18;63425:131;;63573:407;63764:2;63778:47;;;63749:18;;63839:131;63749:18;63839:131;;63987:407;64178:2;64192:47;;;64163:18;;64253:131;64163:18;64253:131;;64401:407;64592:2;64606:47;;;64577:18;;64667:131;64577:18;64667:131;;64815:407;65006:2;65020:47;;;64991:18;;65081:131;64991:18;65081:131;;65229:407;65420:2;65434:47;;;65405:18;;65495:131;65405:18;65495:131;;65643:313;65811:2;65796:18;;65825:121;65800:9;65919:6;65825:121;;66183:1847;66775:3;66760:19;;66790:71;66764:9;66834:6;66790:71;;;66872:80;66948:2;66937:9;66933:18;66924:6;66872:80;;;67000:9;66994:4;66990:20;66985:2;66974:9;66970:18;66963:48;67025:108;67128:4;67119:6;67025:108;;;67017:116;;67181:9;67175:4;67171:20;67166:2;67155:9;67151:18;67144:48;67206:108;67309:4;67300:6;67206:108;;;67198:116;;67363:9;67357:4;67353:20;67347:3;67336:9;67332:19;67325:49;67388:120;67503:4;67494:6;67388:120;;;67380:128;;67557:9;67551:4;67547:20;67541:3;67530:9;67526:19;67519:49;67582:118;67695:4;67686:6;67582:118;;;67574:126;;67711:73;67779:3;67768:9;67764:19;67755:6;67711:73;;;67795;67863:3;67852:9;67848:19;67839:6;67795:73;;;67917:9;67911:4;67907:20;67901:3;67890:9;67886:19;67879:49;67942:78;68015:4;68006:6;67942:78;;;67934:86;66746:1284;-1:-1;;;;;;;;;;;66746:1284;68037:1195;68395:3;68380:19;;68410:71;68384:9;68454:6;68410:71;;;68492:72;68560:2;68549:9;68545:18;68536:6;68492:72;;;68575;68643:2;68632:9;68628:18;68619:6;68575:72;;;68658;68726:2;68715:9;68711:18;68702:6;68658:72;;;68741:73;68809:3;68798:9;68794:19;68785:6;68741:73;;;68825;68893:3;68882:9;68878:19;68869:6;68825:73;;;68909;68977:3;68966:9;68962:19;68953:6;68909:73;;;68993;69061:3;69050:9;69046:19;69037:6;68993:73;;;69077:67;69139:3;69128:9;69124:19;69115:6;69077:67;;;69155;69217:3;69206:9;69202:19;69193:6;69155:67;;69239:324;69385:2;69370:18;;69399:71;69374:9;69443:6;69399:71;;69570:645;69797:3;69782:19;;69812:71;69786:9;69856:6;69812:71;;;69894:68;69958:2;69947:9;69943:18;69934:6;69894:68;;;69973:71;70040:2;70029:9;70025:18;70016:6;69973:71;;;70092:9;70086:4;70082:20;70077:2;70066:9;70062:18;70055:48;70117:88;70200:4;70191:6;70183;70117:88;;;70109:96;69768:447;-1:-1;;;;;;;69768:447;70222:731;70492:3;70477:19;;70507:71;70481:9;70551:6;70507:71;;;70589:68;70653:2;70642:9;70638:18;70629:6;70589:68;;;70668:71;70735:2;70724:9;70720:18;70711:6;70668:71;;;70787:9;70781:4;70777:20;70772:2;70761:9;70757:18;70750:48;70812:131;70938:4;70812:131;;70960:256;71022:2;71016:9;71048:17;;;71123:18;71108:34;;71144:22;;;71105:62;71102:2;;;71180:1;71177;71170:12;71102:2;71196;71189:22;71000:216;;-1:-1;71000:216;71223:304;;71382:18;71374:6;71371:30;71368:2;;;71414:1;71411;71404:12;71368:2;-1:-1;71449:4;71437:17;;;71502:15;;71305:222;72478:317;;72617:18;72609:6;72606:30;72603:2;;;72649:1;72646;72639:12;72603:2;-1:-1;72780:4;72716;72693:17;;;;-1:-1;;72689:33;72770:15;;72540:255;73784:151;73908:4;73899:14;;73856:79;74427:157;;74521:14;;;74563:4;74550:18;;;74480:104;74756:137;74859:12;;74830:63;76321:178;76439:19;;;76488:4;76479:14;;76432:67;77899:91;;77961:24;77979:5;77961:24;;77997:85;78063:13;78056:21;;78039:43;78168:142;78248:5;78254:51;78248:5;78254:51;;78317:121;-1:-1;;;;;78379:54;;78362:76;78524:81;78595:4;78584:16;;78567:38;78612:104;-1:-1;;;;;78673:38;;78656:60;78723:129;;78810:37;78841:5;78859:173;;78964:63;79021:5;78964:63;;79501:142;;79596:42;79632:5;79596:42;;79893:106;;79971:23;79988:5;79971:23;;80007:145;80088:6;80083:3;80078;80065:30;-1:-1;80144:1;80126:16;;80119:27;80058:94;80161:268;80226:1;80233:101;80247:6;80244:1;80241:13;80233:101;;;80314:11;;;80308:18;80295:11;;;80288:39;80269:2;80262:10;80233:101;;;80349:6;80346:1;80343:13;80340:2;;;-1:-1;;80414:1;80396:16;;80389:27;80210:219;80518:97;80606:2;80586:14;-1:-1;;80582:28;;80566:49;80623:109;80710:1;80703:5;80700:12;80690:2;;80716:9;80739:117;80808:24;80826:5;80808:24;;;80801:5;80798:35;80788:2;;80847:1;80844;80837:12;80863:111;80929:21;80944:5;80929:21;;80981:117;81050:24;81068:5;81050:24;;81229:113;81296:22;81312:5;81296:22;;81349:115;81417:23;81434:5;81417:23;"},"gasEstimates":{"creation":{"codeDepositCost":"3596800","executionCost":"4039","totalCost":"3600839"},"external":{"BALLOT_TYPEHASH()":"infinite","DOMAIN_TYPEHASH()":"infinite","MAX_PROPOSAL_THRESHOLD()":"389","MAX_VOTING_DELAY()":"344","MAX_VOTING_PERIOD()":"433","MIN_PROPOSAL_THRESHOLD()":"367","MIN_VOTING_DELAY()":"343","MIN_VOTING_PERIOD()":"345","_acceptAdmin()":"infinite","_initiate(address)":"infinite","_setGuardian(address)":"infinite","_setPendingAdmin(address)":"infinite","_setProposalMaxOperations(uint256)":"infinite","_setProposalThreshold(uint256)":"infinite","_setVotingDelay(uint256)":"infinite","_setVotingPeriod(uint256)":"infinite","admin()":"infinite","cancel(uint256)":"infinite","castVote(uint256,uint8)":"infinite","castVoteBySig(uint256,uint8,uint8,bytes32,bytes32)":"infinite","castVoteWithReason(uint256,uint8,string)":"infinite","execute(uint256)":"infinite","getActions(uint256)":"infinite","getReceipt(uint256,address)":"infinite","guardian()":"infinite","implementation()":"infinite","initialProposalId()":"1231","initialize(address,address,uint256,uint256,uint256,address)":"infinite","latestProposalIds(address)":"infinite","name()":"infinite","pendingAdmin()":"infinite","proposalCount()":"1254","proposalMaxOperations()":"1211","proposalThreshold()":"1188","proposals(uint256)":"infinite","propose(address[],uint256[],string[],bytes[],string)":"infinite","queue(uint256)":"infinite","quorumVotes()":"367","state(uint256)":"infinite","timelock()":"infinite","votingDelay()":"1144","votingPeriod()":"1168","xvsVault()":"infinite"},"internal":{"add256(uint256,uint256)":"infinite","castVoteInternal(address,uint256,uint8)":"infinite","getChainIdInternal()":"15","queueOrRevertInternal(address,uint256,string memory,bytes memory,uint256)":"infinite","sub256(uint256,uint256)":"infinite"}},"methodIdentifiers":{"BALLOT_TYPEHASH()":"deaaa7cc","DOMAIN_TYPEHASH()":"20606b70","MAX_PROPOSAL_THRESHOLD()":"25fd935a","MAX_VOTING_DELAY()":"b1126263","MAX_VOTING_PERIOD()":"a64e024a","MIN_PROPOSAL_THRESHOLD()":"791f5d23","MIN_VOTING_DELAY()":"e48083fe","MIN_VOTING_PERIOD()":"215809ca","_acceptAdmin()":"e9c714f2","_initiate(address)":"f9d28b80","_setGuardian(address)":"e38e8c0f","_setPendingAdmin(address)":"b71d1a0c","_setProposalMaxOperations(uint256)":"1ebcfefd","_setProposalThreshold(uint256)":"17ba1b8b","_setVotingDelay(uint256)":"1dfb1b5a","_setVotingPeriod(uint256)":"0ea2d98c","admin()":"f851a440","cancel(uint256)":"40e58ee5","castVote(uint256,uint8)":"56781388","castVoteBySig(uint256,uint8,uint8,bytes32,bytes32)":"3bccf4fd","castVoteWithReason(uint256,uint8,string)":"7b3c71d3","execute(uint256)":"fe0d94c1","getActions(uint256)":"328dd982","getReceipt(uint256,address)":"e23a9a52","guardian()":"452a9320","implementation()":"5c60da1b","initialProposalId()":"fc4eee42","initialize(address,address,uint256,uint256,uint256,address)":"b1a5d12d","latestProposalIds(address)":"17977c61","name()":"06fdde03","pendingAdmin()":"26782247","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","xvsVault()":"1b9ce575"}},"metadata":"{\"compiler\":{\"version\":\"0.5.16+commit.9c3226ce\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"oldAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"NewAdmin\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"oldGuardian\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newGuardian\",\"type\":\"address\"}],\"name\":\"NewGuardian\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"oldImplementation\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"}],\"name\":\"NewImplementation\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"oldPendingAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newPendingAdmin\",\"type\":\"address\"}],\"name\":\"NewPendingAdmin\",\"type\":\"event\"},{\"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\":\"oldMaxOperations\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newMaxOperations\",\"type\":\"uint256\"}],\"name\":\"ProposalMaxOperationsUpdated\",\"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\":\"uint256\",\"name\":\"oldProposalThreshold\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newProposalThreshold\",\"type\":\"uint256\"}],\"name\":\"ProposalThresholdSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"voter\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"votes\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"VoteCast\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldVotingDelay\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newVotingDelay\",\"type\":\"uint256\"}],\"name\":\"VotingDelaySet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldVotingPeriod\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newVotingPeriod\",\"type\":\"uint256\"}],\"name\":\"VotingPeriodSet\",\"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\":true,\"inputs\":[],\"name\":\"MAX_PROPOSAL_THRESHOLD\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"MAX_VOTING_DELAY\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"MAX_VOTING_PERIOD\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"MIN_PROPOSAL_THRESHOLD\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"MIN_VOTING_DELAY\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"MIN_VOTING_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\":\"governorAlpha\",\"type\":\"address\"}],\"name\":\"_initiate\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"newGuardian\",\"type\":\"address\"}],\"name\":\"_setGuardian\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"newPendingAdmin\",\"type\":\"address\"}],\"name\":\"_setPendingAdmin\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalMaxOperations_\",\"type\":\"uint256\"}],\"name\":\"_setProposalMaxOperations\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newProposalThreshold\",\"type\":\"uint256\"}],\"name\":\"_setProposalThreshold\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newVotingDelay\",\"type\":\"uint256\"}],\"name\":\"_setVotingDelay\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newVotingPeriod\",\"type\":\"uint256\"}],\"name\":\"_setVotingPeriod\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"admin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"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\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"}],\"name\":\"castVote\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"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\"},{\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"castVoteWithReason\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"execute\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"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\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"internalType\":\"uint96\",\"name\":\"votes\",\"type\":\"uint96\"}],\"internalType\":\"struct GovernorBravoDelegateStorageV1.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\":[],\"name\":\"implementation\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"initialProposalId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"timelock_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"xvsVault_\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"votingPeriod_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"votingDelay_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"proposalThreshold_\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"guardian_\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"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\":\"pendingAdmin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"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\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"proposalThreshold\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"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\":\"uint256\",\"name\":\"abstainVotes\",\"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\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"state\",\"outputs\":[{\"internalType\":\"enum GovernorBravoDelegateStorageV1.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\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"votingPeriod\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"xvsVault\",\"outputs\":[{\"internalType\":\"contract XvsVaultInterface\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"This contract is the first deployed implementation GovernorBravo. It is included here for testing purposes because it has a different signature for the ProposalCreated event and Proposal struct\",\"methods\":{\"_acceptAdmin()\":{\"details\":\"Admin function for pending admin to accept role and update admin\"},\"_initiate(address)\":{\"details\":\"Admin only. Sets initial proposal id which initiates the contract, ensuring a continuous proposal id count\",\"params\":{\"governorAlpha\":\"The address for the Governor to continue the proposal id count from\"}},\"_setGuardian(address)\":{\"params\":{\"newGuardian\":\"the address of the new guardian\"}},\"_setPendingAdmin(address)\":{\"details\":\"Admin function to begin change of admin. The newPendingAdmin must call `_acceptAdmin` to finalize the transfer.\",\"params\":{\"newPendingAdmin\":\"New pending admin.\"}},\"_setProposalMaxOperations(uint256)\":{\"details\":\"Admin only.\",\"params\":{\"proposalMaxOperations_\":\"Max proposal operations\"}},\"_setProposalThreshold(uint256)\":{\"details\":\"newProposalThreshold must be greater than the hardcoded min\",\"params\":{\"newProposalThreshold\":\"new proposal threshold\"}},\"_setVotingDelay(uint256)\":{\"params\":{\"newVotingDelay\":\"new voting delay, in blocks\"}},\"_setVotingPeriod(uint256)\":{\"params\":{\"newVotingPeriod\":\"new voting period, in blocks\"}},\"cancel(uint256)\":{\"params\":{\"proposalId\":\"The id of the proposal to cancel\"}},\"castVote(uint256,uint8)\":{\"params\":{\"proposalId\":\"The id of the proposal to vote on\",\"support\":\"The support value for the vote. 0=against, 1=for, 2=abstain\"}},\"castVoteBySig(uint256,uint8,uint8,bytes32,bytes32)\":{\"details\":\"External function that accepts EIP-712 signatures for voting on proposals.\"},\"castVoteWithReason(uint256,uint8,string)\":{\"params\":{\"proposalId\":\"The id of the proposal to vote on\",\"reason\":\"The reason given for the vote by the voter\",\"support\":\"The support value for the vote. 0=against, 1=for, 2=abstain\"}},\"execute(uint256)\":{\"params\":{\"proposalId\":\"The id of the proposal to execute\"}},\"getActions(uint256)\":{\"params\":{\"proposalId\":\"the id of the proposal\"},\"return\":\"targets, values, signatures, and calldatas of the proposal actions\"},\"getReceipt(uint256,address)\":{\"params\":{\"proposalId\":\"the id of proposal\",\"voter\":\"The address of the voter\"},\"return\":\"The voting receipt\"},\"initialize(address,address,uint256,uint256,uint256,address)\":{\"params\":{\"proposalThreshold_\":\"The initial proposal threshold\",\"timelock_\":\"The address of the Timelock\",\"votingDelay_\":\"The initial voting delay\",\"votingPeriod_\":\"The initial voting period\",\"xvsVault_\":\"The address of the XvsVault\"}},\"propose(address[],uint256[],string[],bytes[],string)\":{\"params\":{\"calldatas\":\"Calldatas for proposal calls\",\"description\":\"String description of the proposal\",\"signatures\":\"Function signatures for proposal calls\",\"targets\":\"Target addresses for proposal calls\",\"values\":\"Eth values for proposal calls\"},\"return\":\"Proposal id of new proposal\"},\"queue(uint256)\":{\"params\":{\"proposalId\":\"The id of the proposal to queue\"}},\"state(uint256)\":{\"params\":{\"proposalId\":\"The id of the proposal\"},\"return\":\"Proposal state\"}},\"title\":\"GovernorBravoDelegateV1\"},\"userdoc\":{\"methods\":{\"_acceptAdmin()\":{\"notice\":\"Accepts transfer of admin rights. msg.sender must be pendingAdmin\"},\"_initiate(address)\":{\"notice\":\"Initiate the GovernorBravo contract\"},\"_setGuardian(address)\":{\"notice\":\"Sets the new governance guardian\"},\"_setPendingAdmin(address)\":{\"notice\":\"Begins transfer of admin rights. The newPendingAdmin must call `_acceptAdmin` to finalize the transfer.\"},\"_setProposalMaxOperations(uint256)\":{\"notice\":\"Set max proposal operations\"},\"_setProposalThreshold(uint256)\":{\"notice\":\"Admin function for setting the proposal threshold\"},\"_setVotingDelay(uint256)\":{\"notice\":\"Admin function for setting the voting delay\"},\"_setVotingPeriod(uint256)\":{\"notice\":\"Admin function for setting the voting period\"},\"cancel(uint256)\":{\"notice\":\"Cancels a proposal only if sender is the proposer, or proposer delegates dropped below proposal threshold\"},\"castVote(uint256,uint8)\":{\"notice\":\"Cast a vote for a proposal\"},\"castVoteBySig(uint256,uint8,uint8,bytes32,bytes32)\":{\"notice\":\"Cast a vote for a proposal by signature\"},\"castVoteWithReason(uint256,uint8,string)\":{\"notice\":\"Cast a vote for a proposal with a reason\"},\"execute(uint256)\":{\"notice\":\"Executes a queued proposal if eta has passed\"},\"getActions(uint256)\":{\"notice\":\"Gets actions of a proposal\"},\"getReceipt(uint256,address)\":{\"notice\":\"Gets the receipt for a voter on a given proposal\"},\"initialize(address,address,uint256,uint256,uint256,address)\":{\"notice\":\"Used to initialize the contract during delegator contructor\"},\"propose(address[],uint256[],string[],bytes[],string)\":{\"notice\":\"Function used to propose a new proposal. Sender must have delegates above the proposal threshold\"},\"queue(uint256)\":{\"notice\":\"Queues a proposal of state succeeded\"},\"state(uint256)\":{\"notice\":\"Gets the state of a proposal\"}}}},\"settings\":{\"compilationTarget\":{\"contracts/legacy/GovernorBravoDelegateV1.sol\":\"GovernorBravoDelegateV1\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/Governance/GovernorBravoInterfaces.sol\":{\"content\":\"pragma solidity ^0.5.16;\\npragma experimental ABIEncoderV2;\\n\\n/**\\n * @title GovernorBravoEvents\\n * @author Venus\\n * @notice Set of events emitted by the GovernorBravo contracts.\\n */\\ncontract GovernorBravoEvents {\\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        uint8 proposalType\\n    );\\n\\n    /// @notice An event emitted when a vote has been cast on a proposal\\n    /// @param voter The address which casted a vote\\n    /// @param proposalId The proposal id which was voted on\\n    /// @param support Support value for the vote. 0=against, 1=for, 2=abstain\\n    /// @param votes Number of votes which were cast by the voter\\n    /// @param reason The reason given for the vote by the voter\\n    event VoteCast(address indexed voter, uint proposalId, uint8 support, uint votes, string reason);\\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    /// @notice An event emitted when the voting delay is set\\n    event VotingDelaySet(uint oldVotingDelay, uint newVotingDelay);\\n\\n    /// @notice An event emitted when the voting period is set\\n    event VotingPeriodSet(uint oldVotingPeriod, uint newVotingPeriod);\\n\\n    /// @notice Emitted when implementation is changed\\n    event NewImplementation(address oldImplementation, address newImplementation);\\n\\n    /// @notice Emitted when proposal threshold is set\\n    event ProposalThresholdSet(uint oldProposalThreshold, uint newProposalThreshold);\\n\\n    /// @notice Emitted when pendingAdmin is changed\\n    event NewPendingAdmin(address oldPendingAdmin, address newPendingAdmin);\\n\\n    /// @notice Emitted when pendingAdmin is accepted, which means admin is updated\\n    event NewAdmin(address oldAdmin, address newAdmin);\\n\\n    /// @notice Emitted when the new guardian address is set\\n    event NewGuardian(address oldGuardian, address newGuardian);\\n\\n    /// @notice Emitted when the maximum number of operations in one proposal is updated\\n    event ProposalMaxOperationsUpdated(uint oldMaxOperations, uint newMaxOperations);\\n\\n    /// @notice Emitted when the new validation params are set\\n    event SetValidationParams(\\n        uint256 oldMinVotingPeriod,\\n        uint256 newMinVotingPeriod,\\n        uint256 oldmaxVotingPeriod,\\n        uint256 newmaxVotingPeriod,\\n        uint256 oldminVotingDelay,\\n        uint256 newminVotingDelay,\\n        uint256 oldmaxVotingDelay,\\n        uint256 newmaxVotingDelay\\n    );\\n\\n    /// @notice Emitted when new Proposal configs added\\n    event SetProposalConfigs(uint256 votingPeriod, uint256 votingDelay, uint256 proposalThreshold);\\n}\\n\\n/**\\n * @title GovernorBravoDelegatorStorage\\n * @author Venus\\n * @notice Storage layout of the `GovernorBravoDelegator` contract\\n */\\ncontract GovernorBravoDelegatorStorage {\\n    /// @notice Administrator for this contract\\n    address public admin;\\n\\n    /// @notice Pending administrator for this contract\\n    address public pendingAdmin;\\n\\n    /// @notice Active brains of Governor\\n    address public implementation;\\n}\\n\\n/**\\n * @title GovernorBravoDelegateStorageV1\\n * @dev For future upgrades, do not change GovernorBravoDelegateStorageV1. Create a new\\n * contract which implements GovernorBravoDelegateStorageV1 and following the naming convention\\n * GovernorBravoDelegateStorageVX.\\n */\\ncontract GovernorBravoDelegateStorageV1 is GovernorBravoDelegatorStorage {\\n    /// @notice DEPRECATED The delay before voting on a proposal may take place, once proposed, in blocks\\n    uint public votingDelay;\\n\\n    /// @notice DEPRECATED The duration of voting on a proposal, in blocks\\n    uint public votingPeriod;\\n\\n    /// @notice DEPRECATED The number of votes required in order for a voter to become a proposer\\n    uint public proposalThreshold;\\n\\n    /// @notice Initial proposal id set at become\\n    uint public initialProposalId;\\n\\n    /// @notice The total number of proposals\\n    uint public proposalCount;\\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    XvsVaultInterface public xvsVault;\\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    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 Current number of votes for abstaining for this proposal\\n        uint abstainVotes;\\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        /// @notice The type of the proposal\\n        uint8 proposalType;\\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 or abstains\\n        uint8 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 maximum number of actions that can be included in a proposal\\n    uint public proposalMaxOperations;\\n\\n    /// @notice A privileged role that can cancel any proposal\\n    address public guardian;\\n}\\n\\n/**\\n * @title GovernorBravoDelegateStorageV2\\n * @dev For future upgrades, do not change GovernorBravoDelegateStorageV2. Create a new\\n * contract which implements GovernorBravoDelegateStorageV2 and following the naming convention\\n * GovernorBravoDelegateStorageVX.\\n */\\ncontract GovernorBravoDelegateStorageV2 is GovernorBravoDelegateStorageV1 {\\n    enum ProposalType {\\n        NORMAL,\\n        FASTTRACK,\\n        CRITICAL\\n    }\\n\\n    struct ProposalConfig {\\n        /// @notice The delay before voting on a proposal may take place, once proposed, in blocks\\n        uint256 votingDelay;\\n        /// @notice The duration of voting on a proposal, in blocks\\n        uint256 votingPeriod;\\n        /// @notice The number of votes required in order for a voter to become a proposer\\n        uint256 proposalThreshold;\\n    }\\n\\n    /// @notice mapping containing configuration for each proposal type\\n    mapping(uint => ProposalConfig) public proposalConfigs;\\n\\n    /// @notice mapping containing Timelock addresses for each proposal type\\n    mapping(uint => TimelockInterface) public proposalTimelocks;\\n}\\n\\n/**\\n * @title GovernorBravoDelegateStorageV3\\n * @dev For future upgrades, do not change GovernorBravoDelegateStorageV3. Create a new\\n * contract which implements GovernorBravoDelegateStorageV3 and following the naming convention\\n * GovernorBravoDelegateStorageVX.\\n */\\ncontract GovernorBravoDelegateStorageV3 is GovernorBravoDelegateStorageV2 {\\n    struct ValidationParams {\\n        uint256 minVotingPeriod;\\n        uint256 maxVotingPeriod;\\n        uint256 minVotingDelay;\\n        uint256 maxVotingDelay;\\n    }\\n    /// @notice Stores the current minimum and maximum values of voting delay and voting period\\n    ValidationParams public validationParams;\\n}\\n\\n/**\\n * @title TimelockInterface\\n * @author Venus\\n * @notice Interface implemented by the Timelock contract.\\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 XvsVaultInterface {\\n    function getPriorVotes(address account, uint blockNumber) external view returns (uint96);\\n}\\n\\ninterface GovernorAlphaInterface {\\n    /// @notice The total number of proposals\\n    function proposalCount() external returns (uint);\\n}\\n\",\"keccak256\":\"0x62c89309d4351dbeb5516465211fab0b566d83d60dc0148377deaad1f1929b85\"},\"contracts/legacy/GovernorBravoDelegateV1.sol\":{\"content\":\"pragma solidity ^0.5.16;\\npragma experimental ABIEncoderV2;\\n\\nimport \\\"./GovernorBravoInterfaces.sol\\\";\\n\\n/**\\n * @title GovernorBravoDelegateV1\\n * @dev This contract is the first deployed implementation GovernorBravo.\\n * It is included here for testing purposes because it has a different signature for the ProposalCreated event and Proposal struct\\n */\\ncontract GovernorBravoDelegateV1 is GovernorBravoDelegateStorageV1, GovernorBravoEventsV1 {\\n    /// @notice The name of this contract\\n    string public constant name = \\\"Venus Governor Bravo\\\";\\n\\n    /// @notice The minimum setable proposal threshold\\n    uint public constant MIN_PROPOSAL_THRESHOLD = 150000e18; // 150,000 Xvs\\n\\n    /// @notice The maximum setable proposal threshold\\n    uint public constant MAX_PROPOSAL_THRESHOLD = 300000e18; //300,000 Xvs\\n\\n    /// @notice The minimum setable voting period\\n    uint public constant MIN_VOTING_PERIOD = 20 * 60 * 3; // About 3 hours, 3 secs per block\\n\\n    /// @notice The max setable voting period\\n    uint public constant MAX_VOTING_PERIOD = 20 * 60 * 24 * 14; // About 2 weeks, 3 secs per block\\n\\n    /// @notice The min setable voting delay\\n    uint public constant MIN_VOTING_DELAY = 1;\\n\\n    /// @notice The max setable voting delay\\n    uint public constant MAX_VOTING_DELAY = 20 * 60 * 24 * 7; // About 1 week, 3 secs per block\\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    uint public constant quorumVotes = 600000e18; // 600,000 = 2% of Xvs\\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,uint8 support)\\\");\\n\\n    /**\\n     * @notice Used to initialize the contract during delegator contructor\\n     * @param timelock_ The address of the Timelock\\n     * @param xvsVault_ The address of the XvsVault\\n     * @param votingPeriod_ The initial voting period\\n     * @param votingDelay_ The initial voting delay\\n     * @param proposalThreshold_ The initial proposal threshold\\n     */\\n    function initialize(\\n        address timelock_,\\n        address xvsVault_,\\n        uint votingPeriod_,\\n        uint votingDelay_,\\n        uint proposalThreshold_,\\n        address guardian_\\n    ) public {\\n        require(address(timelock) == address(0), \\\"GovernorBravo::initialize: can only initialize once\\\");\\n        require(msg.sender == admin, \\\"GovernorBravo::initialize: admin only\\\");\\n        require(timelock_ != address(0), \\\"GovernorBravo::initialize: invalid timelock address\\\");\\n        require(xvsVault_ != address(0), \\\"GovernorBravo::initialize: invalid xvs address\\\");\\n        require(\\n            votingPeriod_ >= MIN_VOTING_PERIOD && votingPeriod_ <= MAX_VOTING_PERIOD,\\n            \\\"GovernorBravo::initialize: invalid voting period\\\"\\n        );\\n        require(\\n            votingDelay_ >= MIN_VOTING_DELAY && votingDelay_ <= MAX_VOTING_DELAY,\\n            \\\"GovernorBravo::initialize: invalid voting delay\\\"\\n        );\\n        require(\\n            proposalThreshold_ >= MIN_PROPOSAL_THRESHOLD && proposalThreshold_ <= MAX_PROPOSAL_THRESHOLD,\\n            \\\"GovernorBravo::initialize: invalid proposal threshold\\\"\\n        );\\n        require(guardian_ != address(0), \\\"GovernorBravo::initialize: invalid guardian\\\");\\n\\n        timelock = TimelockInterface(timelock_);\\n        xvsVault = XvsVaultInterface(xvsVault_);\\n        votingPeriod = votingPeriod_;\\n        votingDelay = votingDelay_;\\n        proposalThreshold = proposalThreshold_;\\n        proposalMaxOperations = 10;\\n        guardian = guardian_;\\n    }\\n\\n    /**\\n     * @notice Function used to propose a new proposal. Sender must have delegates above the proposal threshold\\n     * @param targets Target addresses for proposal calls\\n     * @param values Eth values for proposal calls\\n     * @param signatures Function signatures for proposal calls\\n     * @param calldatas Calldatas for proposal calls\\n     * @param description String description of the proposal\\n     * @return Proposal id of new proposal\\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        // Reject proposals before initiating as Governor\\n        require(initialProposalId != 0, \\\"GovernorBravo::propose: Governor Bravo not active\\\");\\n        require(\\n            xvsVault.getPriorVotes(msg.sender, sub256(block.number, 1)) > proposalThreshold,\\n            \\\"GovernorBravo::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            \\\"GovernorBravo::propose: proposal function information arity mismatch\\\"\\n        );\\n        require(targets.length != 0, \\\"GovernorBravo::propose: must provide actions\\\");\\n        require(targets.length <= proposalMaxOperations, \\\"GovernorBravo::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                \\\"GovernorBravo::propose: one live proposal per proposer, found an already active proposal\\\"\\n            );\\n            require(\\n                proposersLatestProposalState != ProposalState.Pending,\\n                \\\"GovernorBravo::propose: one live proposal per proposer, 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            abstainVotes: 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    /**\\n     * @notice Queues a proposal of state succeeded\\n     * @param proposalId The id of the proposal to queue\\n     */\\n    function queue(uint proposalId) external {\\n        require(\\n            state(proposalId) == ProposalState.Succeeded,\\n            \\\"GovernorBravo::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            queueOrRevertInternal(\\n                proposal.targets[i],\\n                proposal.values[i],\\n                proposal.signatures[i],\\n                proposal.calldatas[i],\\n                eta\\n            );\\n        }\\n        proposal.eta = eta;\\n        emit ProposalQueued(proposalId, eta);\\n    }\\n\\n    function queueOrRevertInternal(\\n        address target,\\n        uint value,\\n        string memory signature,\\n        bytes memory data,\\n        uint eta\\n    ) internal {\\n        require(\\n            !timelock.queuedTransactions(keccak256(abi.encode(target, value, signature, data, eta))),\\n            \\\"GovernorBravo::queueOrRevertInternal: identical proposal action already queued at eta\\\"\\n        );\\n        timelock.queueTransaction(target, value, signature, data, eta);\\n    }\\n\\n    /**\\n     * @notice Executes a queued proposal if eta has passed\\n     * @param proposalId The id of the proposal to execute\\n     */\\n    function execute(uint proposalId) external {\\n        require(\\n            state(proposalId) == ProposalState.Queued,\\n            \\\"GovernorBravo::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(\\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    /**\\n     * @notice Cancels a proposal only if sender is the proposer, or proposer delegates dropped below proposal threshold\\n     * @param proposalId The id of the proposal to cancel\\n     */\\n    function cancel(uint proposalId) external {\\n        require(state(proposalId) != ProposalState.Executed, \\\"GovernorBravo::cancel: cannot cancel executed proposal\\\");\\n\\n        Proposal storage proposal = proposals[proposalId];\\n        require(\\n            msg.sender == guardian ||\\n                msg.sender == proposal.proposer ||\\n                xvsVault.getPriorVotes(proposal.proposer, sub256(block.number, 1)) < proposalThreshold,\\n            \\\"GovernorBravo::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    /**\\n     * @notice Gets actions of a proposal\\n     * @param proposalId the id of the proposal\\n     * @return targets, values, signatures, and calldatas of the proposal actions\\n     */\\n    function getActions(\\n        uint proposalId\\n    )\\n        external\\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    /**\\n     * @notice Gets the receipt for a voter on a given proposal\\n     * @param proposalId the id of proposal\\n     * @param voter The address of the voter\\n     * @return The voting receipt\\n     */\\n    function getReceipt(uint proposalId, address voter) external view returns (Receipt memory) {\\n        return proposals[proposalId].receipts[voter];\\n    }\\n\\n    /**\\n     * @notice Gets the state of a proposal\\n     * @param proposalId The id of the proposal\\n     * @return Proposal state\\n     */\\n    function state(uint proposalId) public view returns (ProposalState) {\\n        require(\\n            proposalCount >= proposalId && proposalId > initialProposalId,\\n            \\\"GovernorBravo::state: invalid proposal id\\\"\\n        );\\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    /**\\n     * @notice Cast a vote for a proposal\\n     * @param proposalId The id of the proposal to vote on\\n     * @param support The support value for the vote. 0=against, 1=for, 2=abstain\\n     */\\n    function castVote(uint proposalId, uint8 support) external {\\n        emit VoteCast(msg.sender, proposalId, support, castVoteInternal(msg.sender, proposalId, support), \\\"\\\");\\n    }\\n\\n    /**\\n     * @notice Cast a vote for a proposal with a reason\\n     * @param proposalId The id of the proposal to vote on\\n     * @param support The support value for the vote. 0=against, 1=for, 2=abstain\\n     * @param reason The reason given for the vote by the voter\\n     */\\n    function castVoteWithReason(uint proposalId, uint8 support, string calldata reason) external {\\n        emit VoteCast(msg.sender, proposalId, support, castVoteInternal(msg.sender, proposalId, support), reason);\\n    }\\n\\n    /**\\n     * @notice Cast a vote for a proposal by signature\\n     * @dev External function that accepts EIP-712 signatures for voting on proposals.\\n     */\\n    function castVoteBySig(uint proposalId, uint8 support, uint8 v, bytes32 r, bytes32 s) external {\\n        bytes32 domainSeparator = keccak256(\\n            abi.encode(DOMAIN_TYPEHASH, keccak256(bytes(name)), getChainIdInternal(), 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), \\\"GovernorBravo::castVoteBySig: invalid signature\\\");\\n        emit VoteCast(signatory, proposalId, support, castVoteInternal(signatory, proposalId, support), \\\"\\\");\\n    }\\n\\n    /**\\n     * @notice Internal function that caries out voting logic\\n     * @param voter The voter that is casting their vote\\n     * @param proposalId The id of the proposal to vote on\\n     * @param support The support value for the vote. 0=against, 1=for, 2=abstain\\n     * @return The number of votes cast\\n     */\\n    function castVoteInternal(address voter, uint proposalId, uint8 support) internal returns (uint96) {\\n        require(state(proposalId) == ProposalState.Active, \\\"GovernorBravo::castVoteInternal: voting is closed\\\");\\n        require(support <= 2, \\\"GovernorBravo::castVoteInternal: invalid vote type\\\");\\n        Proposal storage proposal = proposals[proposalId];\\n        Receipt storage receipt = proposal.receipts[voter];\\n        require(receipt.hasVoted == false, \\\"GovernorBravo::castVoteInternal: voter already voted\\\");\\n        uint96 votes = xvsVault.getPriorVotes(voter, proposal.startBlock);\\n\\n        if (support == 0) {\\n            proposal.againstVotes = add256(proposal.againstVotes, votes);\\n        } else if (support == 1) {\\n            proposal.forVotes = add256(proposal.forVotes, votes);\\n        } else if (support == 2) {\\n            proposal.abstainVotes = add256(proposal.abstainVotes, votes);\\n        }\\n\\n        receipt.hasVoted = true;\\n        receipt.support = support;\\n        receipt.votes = votes;\\n\\n        return votes;\\n    }\\n\\n    /**\\n     * @notice Sets the new governance guardian\\n     * @param newGuardian the address of the new guardian\\n     */\\n    function _setGuardian(address newGuardian) external {\\n        require(msg.sender == guardian || msg.sender == admin, \\\"GovernorBravo::_setGuardian: admin or guardian only\\\");\\n        require(newGuardian != address(0), \\\"GovernorBravo::_setGuardian: cannot live without a guardian\\\");\\n        address oldGuardian = guardian;\\n        guardian = newGuardian;\\n\\n        emit NewGuardian(oldGuardian, newGuardian);\\n    }\\n\\n    /**\\n     * @notice Admin function for setting the voting delay\\n     * @param newVotingDelay new voting delay, in blocks\\n     */\\n    function _setVotingDelay(uint newVotingDelay) external {\\n        require(msg.sender == admin, \\\"GovernorBravo::_setVotingDelay: admin only\\\");\\n        require(\\n            newVotingDelay >= MIN_VOTING_DELAY && newVotingDelay <= MAX_VOTING_DELAY,\\n            \\\"GovernorBravo::_setVotingDelay: invalid voting delay\\\"\\n        );\\n        uint oldVotingDelay = votingDelay;\\n        votingDelay = newVotingDelay;\\n\\n        emit VotingDelaySet(oldVotingDelay, votingDelay);\\n    }\\n\\n    /**\\n     * @notice Admin function for setting the voting period\\n     * @param newVotingPeriod new voting period, in blocks\\n     */\\n    function _setVotingPeriod(uint newVotingPeriod) external {\\n        require(msg.sender == admin, \\\"GovernorBravo::_setVotingPeriod: admin only\\\");\\n        require(\\n            newVotingPeriod >= MIN_VOTING_PERIOD && newVotingPeriod <= MAX_VOTING_PERIOD,\\n            \\\"GovernorBravo::_setVotingPeriod: invalid voting period\\\"\\n        );\\n        uint oldVotingPeriod = votingPeriod;\\n        votingPeriod = newVotingPeriod;\\n\\n        emit VotingPeriodSet(oldVotingPeriod, votingPeriod);\\n    }\\n\\n    /**\\n     * @notice Admin function for setting the proposal threshold\\n     * @dev newProposalThreshold must be greater than the hardcoded min\\n     * @param newProposalThreshold new proposal threshold\\n     */\\n    function _setProposalThreshold(uint newProposalThreshold) external {\\n        require(msg.sender == admin, \\\"GovernorBravo::_setProposalThreshold: admin only\\\");\\n        require(\\n            newProposalThreshold >= MIN_PROPOSAL_THRESHOLD && newProposalThreshold <= MAX_PROPOSAL_THRESHOLD,\\n            \\\"GovernorBravo::_setProposalThreshold: invalid proposal threshold\\\"\\n        );\\n        uint oldProposalThreshold = proposalThreshold;\\n        proposalThreshold = newProposalThreshold;\\n\\n        emit ProposalThresholdSet(oldProposalThreshold, proposalThreshold);\\n    }\\n\\n    /**\\n     * @notice Initiate the GovernorBravo contract\\n     * @dev Admin only. Sets initial proposal id which initiates the contract, ensuring a continuous proposal id count\\n     * @param governorAlpha The address for the Governor to continue the proposal id count from\\n     */\\n    function _initiate(address governorAlpha) external {\\n        require(msg.sender == admin, \\\"GovernorBravo::_initiate: admin only\\\");\\n        require(initialProposalId == 0, \\\"GovernorBravo::_initiate: can only initiate once\\\");\\n        proposalCount = GovernorAlphaInterface(governorAlpha).proposalCount();\\n        initialProposalId = proposalCount;\\n        timelock.acceptAdmin();\\n    }\\n\\n    /**\\n     * @notice Set max proposal operations\\n     * @dev Admin only.\\n     * @param proposalMaxOperations_ Max proposal operations\\n     */\\n    function _setProposalMaxOperations(uint proposalMaxOperations_) external {\\n        require(msg.sender == admin, \\\"GovernorBravo::_setProposalMaxOperations: admin only\\\");\\n        uint oldProposalMaxOperations = proposalMaxOperations;\\n        proposalMaxOperations = proposalMaxOperations_;\\n\\n        emit ProposalMaxOperationsUpdated(oldProposalMaxOperations, proposalMaxOperations_);\\n    }\\n\\n    /**\\n     * @notice Begins transfer of admin rights. The newPendingAdmin must call `_acceptAdmin` to finalize the transfer.\\n     * @dev Admin function to begin change of admin. The newPendingAdmin must call `_acceptAdmin` to finalize the transfer.\\n     * @param newPendingAdmin New pending admin.\\n     */\\n    function _setPendingAdmin(address newPendingAdmin) external {\\n        // Check caller = admin\\n        require(msg.sender == admin, \\\"GovernorBravo:_setPendingAdmin: admin only\\\");\\n\\n        // Save current value, if any, for inclusion in log\\n        address oldPendingAdmin = pendingAdmin;\\n\\n        // Store pendingAdmin with value newPendingAdmin\\n        pendingAdmin = newPendingAdmin;\\n\\n        // Emit NewPendingAdmin(oldPendingAdmin, newPendingAdmin)\\n        emit NewPendingAdmin(oldPendingAdmin, newPendingAdmin);\\n    }\\n\\n    /**\\n     * @notice Accepts transfer of admin rights. msg.sender must be pendingAdmin\\n     * @dev Admin function for pending admin to accept role and update admin\\n     */\\n    function _acceptAdmin() external {\\n        // Check caller is pendingAdmin and pendingAdmin \\u2260 address(0)\\n        require(\\n            msg.sender == pendingAdmin && msg.sender != address(0),\\n            \\\"GovernorBravo:_acceptAdmin: pending admin only\\\"\\n        );\\n\\n        // Save current values for inclusion in log\\n        address oldAdmin = admin;\\n        address oldPendingAdmin = pendingAdmin;\\n\\n        // Store admin with value pendingAdmin\\n        admin = pendingAdmin;\\n\\n        // Clear the pending value\\n        pendingAdmin = address(0);\\n\\n        emit NewAdmin(oldAdmin, admin);\\n        emit NewPendingAdmin(oldPendingAdmin, pendingAdmin);\\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 getChainIdInternal() internal pure returns (uint) {\\n        uint chainId;\\n        assembly {\\n            chainId := chainid()\\n        }\\n        return chainId;\\n    }\\n}\\n\",\"keccak256\":\"0x3e94a5972a43811a39d1ab68f0ac26fa6d572275fc6eb910545f78bd3ed37fbc\"},\"contracts/legacy/GovernorBravoInterfaces.sol\":{\"content\":\"pragma solidity ^0.5.16;\\npragma experimental ABIEncoderV2;\\n\\nimport { XvsVaultInterface, TimelockInterface, GovernorAlphaInterface } from \\\"../Governance/GovernorBravoInterfaces.sol\\\";\\n\\n/**\\n * @title GovernorBravoEvents\\n * @author Venus\\n * @notice Set of events emitted by the first GovernorBravo implementation contract.\\n * @dev This contract is included for archival and testing purposes as the ProposalCreated event has a different signature than the latest implementation.\\n */\\ncontract GovernorBravoEventsV1 {\\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    /// @param voter The address which casted a vote\\n    /// @param proposalId The proposal id which was voted on\\n    /// @param support Support value for the vote. 0=against, 1=for, 2=abstain\\n    /// @param votes Number of votes which were cast by the voter\\n    /// @param reason The reason given for the vote by the voter\\n    event VoteCast(address indexed voter, uint proposalId, uint8 support, uint votes, string reason);\\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    /// @notice An event emitted when the voting delay is set\\n    event VotingDelaySet(uint oldVotingDelay, uint newVotingDelay);\\n\\n    /// @notice An event emitted when the voting period is set\\n    event VotingPeriodSet(uint oldVotingPeriod, uint newVotingPeriod);\\n\\n    /// @notice Emitted when implementation is changed\\n    event NewImplementation(address oldImplementation, address newImplementation);\\n\\n    /// @notice Emitted when proposal threshold is set\\n    event ProposalThresholdSet(uint oldProposalThreshold, uint newProposalThreshold);\\n\\n    /// @notice Emitted when pendingAdmin is changed\\n    event NewPendingAdmin(address oldPendingAdmin, address newPendingAdmin);\\n\\n    /// @notice Emitted when pendingAdmin is accepted, which means admin is updated\\n    event NewAdmin(address oldAdmin, address newAdmin);\\n\\n    /// @notice Emitted when the new guardian address is set\\n    event NewGuardian(address oldGuardian, address newGuardian);\\n\\n    /// @notice Emitted when the maximum number of operations in one proposal is updated\\n    event ProposalMaxOperationsUpdated(uint oldMaxOperations, uint newMaxOperations);\\n}\\n\\n/**\\n * @title GovernorBravoDelegatorStorage\\n * @author Venus\\n * @notice Storage layout of the `GovernorBravoDelegator` contract\\n */\\ncontract GovernorBravoDelegatorStorage {\\n    /// @notice Administrator for this contract\\n    address public admin;\\n\\n    /// @notice Pending administrator for this contract\\n    address public pendingAdmin;\\n\\n    /// @notice Active brains of Governor\\n    address public implementation;\\n}\\n\\n/**\\n * @title GovernorBravoDelegateStorageV1\\n * @dev This contract is included for archival and testing purposes as the Proposal struct has a different shape than the latest implementation.\\n */\\ncontract GovernorBravoDelegateStorageV1 is GovernorBravoDelegatorStorage {\\n    /// @notice DEPRECATED The delay before voting on a proposal may take place, once proposed, in blocks\\n    uint public votingDelay;\\n\\n    /// @notice DEPRECATED The duration of voting on a proposal, in blocks\\n    uint public votingPeriod;\\n\\n    /// @notice DEPRECATED The number of votes required in order for a voter to become a proposer\\n    uint public proposalThreshold;\\n\\n    /// @notice Initial proposal id set at become\\n    uint public initialProposalId;\\n\\n    /// @notice The total number of proposals\\n    uint public proposalCount;\\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    XvsVaultInterface public xvsVault;\\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    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 Current number of votes for abstaining for this proposal\\n        uint abstainVotes;\\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 or abstains\\n        uint8 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 maximum number of actions that can be included in a proposal\\n    uint public proposalMaxOperations;\\n\\n    /// @notice A privileged role that can cancel any proposal\\n    address public guardian;\\n}\\n\",\"keccak256\":\"0x4f3e79420754567fb02452f7ded7a13796204e360ca1b4033009745cfda4a813\"}},\"version\":1}","storageLayout":{"storage":[{"astId":5229,"contract":"contracts/legacy/GovernorBravoDelegateV1.sol:GovernorBravoDelegateV1","label":"admin","offset":0,"slot":"0","type":"t_address"},{"astId":5231,"contract":"contracts/legacy/GovernorBravoDelegateV1.sol:GovernorBravoDelegateV1","label":"pendingAdmin","offset":0,"slot":"1","type":"t_address"},{"astId":5233,"contract":"contracts/legacy/GovernorBravoDelegateV1.sol:GovernorBravoDelegateV1","label":"implementation","offset":0,"slot":"2","type":"t_address"},{"astId":5238,"contract":"contracts/legacy/GovernorBravoDelegateV1.sol:GovernorBravoDelegateV1","label":"votingDelay","offset":0,"slot":"3","type":"t_uint256"},{"astId":5240,"contract":"contracts/legacy/GovernorBravoDelegateV1.sol:GovernorBravoDelegateV1","label":"votingPeriod","offset":0,"slot":"4","type":"t_uint256"},{"astId":5242,"contract":"contracts/legacy/GovernorBravoDelegateV1.sol:GovernorBravoDelegateV1","label":"proposalThreshold","offset":0,"slot":"5","type":"t_uint256"},{"astId":5244,"contract":"contracts/legacy/GovernorBravoDelegateV1.sol:GovernorBravoDelegateV1","label":"initialProposalId","offset":0,"slot":"6","type":"t_uint256"},{"astId":5246,"contract":"contracts/legacy/GovernorBravoDelegateV1.sol:GovernorBravoDelegateV1","label":"proposalCount","offset":0,"slot":"7","type":"t_uint256"},{"astId":5248,"contract":"contracts/legacy/GovernorBravoDelegateV1.sol:GovernorBravoDelegateV1","label":"timelock","offset":0,"slot":"8","type":"t_contract(TimelockInterface)2007"},{"astId":5250,"contract":"contracts/legacy/GovernorBravoDelegateV1.sol:GovernorBravoDelegateV1","label":"xvsVault","offset":0,"slot":"9","type":"t_contract(XvsVaultInterface)2017"},{"astId":5254,"contract":"contracts/legacy/GovernorBravoDelegateV1.sol:GovernorBravoDelegateV1","label":"proposals","offset":0,"slot":"10","type":"t_mapping(t_uint256,t_struct(Proposal)5295_storage)"},{"astId":5258,"contract":"contracts/legacy/GovernorBravoDelegateV1.sol:GovernorBravoDelegateV1","label":"latestProposalIds","offset":0,"slot":"11","type":"t_mapping(t_address,t_uint256)"},{"astId":5313,"contract":"contracts/legacy/GovernorBravoDelegateV1.sol:GovernorBravoDelegateV1","label":"proposalMaxOperations","offset":0,"slot":"12","type":"t_uint256"},{"astId":5315,"contract":"contracts/legacy/GovernorBravoDelegateV1.sol:GovernorBravoDelegateV1","label":"guardian","offset":0,"slot":"13","type":"t_address"}],"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)2007":{"encoding":"inplace","label":"contract TimelockInterface","numberOfBytes":"20"},"t_contract(XvsVaultInterface)2017":{"encoding":"inplace","label":"contract XvsVaultInterface","numberOfBytes":"20"},"t_mapping(t_address,t_struct(Receipt)5302_storage)":{"encoding":"mapping","key":"t_address","label":"mapping(address => struct GovernorBravoDelegateStorageV1.Receipt)","numberOfBytes":"32","value":"t_struct(Receipt)5302_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)5295_storage)":{"encoding":"mapping","key":"t_uint256","label":"mapping(uint256 => struct GovernorBravoDelegateStorageV1.Proposal)","numberOfBytes":"32","value":"t_struct(Proposal)5295_storage"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_struct(Proposal)5295_storage":{"encoding":"inplace","label":"struct GovernorBravoDelegateStorageV1.Proposal","members":[{"astId":5260,"contract":"contracts/legacy/GovernorBravoDelegateV1.sol:GovernorBravoDelegateV1","label":"id","offset":0,"slot":"0","type":"t_uint256"},{"astId":5262,"contract":"contracts/legacy/GovernorBravoDelegateV1.sol:GovernorBravoDelegateV1","label":"proposer","offset":0,"slot":"1","type":"t_address"},{"astId":5264,"contract":"contracts/legacy/GovernorBravoDelegateV1.sol:GovernorBravoDelegateV1","label":"eta","offset":0,"slot":"2","type":"t_uint256"},{"astId":5267,"contract":"contracts/legacy/GovernorBravoDelegateV1.sol:GovernorBravoDelegateV1","label":"targets","offset":0,"slot":"3","type":"t_array(t_address)dyn_storage"},{"astId":5270,"contract":"contracts/legacy/GovernorBravoDelegateV1.sol:GovernorBravoDelegateV1","label":"values","offset":0,"slot":"4","type":"t_array(t_uint256)dyn_storage"},{"astId":5273,"contract":"contracts/legacy/GovernorBravoDelegateV1.sol:GovernorBravoDelegateV1","label":"signatures","offset":0,"slot":"5","type":"t_array(t_string_storage)dyn_storage"},{"astId":5276,"contract":"contracts/legacy/GovernorBravoDelegateV1.sol:GovernorBravoDelegateV1","label":"calldatas","offset":0,"slot":"6","type":"t_array(t_bytes_storage)dyn_storage"},{"astId":5278,"contract":"contracts/legacy/GovernorBravoDelegateV1.sol:GovernorBravoDelegateV1","label":"startBlock","offset":0,"slot":"7","type":"t_uint256"},{"astId":5280,"contract":"contracts/legacy/GovernorBravoDelegateV1.sol:GovernorBravoDelegateV1","label":"endBlock","offset":0,"slot":"8","type":"t_uint256"},{"astId":5282,"contract":"contracts/legacy/GovernorBravoDelegateV1.sol:GovernorBravoDelegateV1","label":"forVotes","offset":0,"slot":"9","type":"t_uint256"},{"astId":5284,"contract":"contracts/legacy/GovernorBravoDelegateV1.sol:GovernorBravoDelegateV1","label":"againstVotes","offset":0,"slot":"10","type":"t_uint256"},{"astId":5286,"contract":"contracts/legacy/GovernorBravoDelegateV1.sol:GovernorBravoDelegateV1","label":"abstainVotes","offset":0,"slot":"11","type":"t_uint256"},{"astId":5288,"contract":"contracts/legacy/GovernorBravoDelegateV1.sol:GovernorBravoDelegateV1","label":"canceled","offset":0,"slot":"12","type":"t_bool"},{"astId":5290,"contract":"contracts/legacy/GovernorBravoDelegateV1.sol:GovernorBravoDelegateV1","label":"executed","offset":1,"slot":"12","type":"t_bool"},{"astId":5294,"contract":"contracts/legacy/GovernorBravoDelegateV1.sol:GovernorBravoDelegateV1","label":"receipts","offset":0,"slot":"13","type":"t_mapping(t_address,t_struct(Receipt)5302_storage)"}],"numberOfBytes":"448"},"t_struct(Receipt)5302_storage":{"encoding":"inplace","label":"struct GovernorBravoDelegateStorageV1.Receipt","members":[{"astId":5297,"contract":"contracts/legacy/GovernorBravoDelegateV1.sol:GovernorBravoDelegateV1","label":"hasVoted","offset":0,"slot":"0","type":"t_bool"},{"astId":5299,"contract":"contracts/legacy/GovernorBravoDelegateV1.sol:GovernorBravoDelegateV1","label":"support","offset":1,"slot":"0","type":"t_uint8"},{"astId":5301,"contract":"contracts/legacy/GovernorBravoDelegateV1.sol:GovernorBravoDelegateV1","label":"votes","offset":2,"slot":"0","type":"t_uint96"}],"numberOfBytes":"32"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"},"t_uint96":{"encoding":"inplace","label":"uint96","numberOfBytes":"12"}}},"userdoc":{"methods":{"_acceptAdmin()":{"notice":"Accepts transfer of admin rights. msg.sender must be pendingAdmin"},"_initiate(address)":{"notice":"Initiate the GovernorBravo contract"},"_setGuardian(address)":{"notice":"Sets the new governance guardian"},"_setPendingAdmin(address)":{"notice":"Begins transfer of admin rights. The newPendingAdmin must call `_acceptAdmin` to finalize the transfer."},"_setProposalMaxOperations(uint256)":{"notice":"Set max proposal operations"},"_setProposalThreshold(uint256)":{"notice":"Admin function for setting the proposal threshold"},"_setVotingDelay(uint256)":{"notice":"Admin function for setting the voting delay"},"_setVotingPeriod(uint256)":{"notice":"Admin function for setting the voting period"},"cancel(uint256)":{"notice":"Cancels a proposal only if sender is the proposer, or proposer delegates dropped below proposal threshold"},"castVote(uint256,uint8)":{"notice":"Cast a vote for a proposal"},"castVoteBySig(uint256,uint8,uint8,bytes32,bytes32)":{"notice":"Cast a vote for a proposal by signature"},"castVoteWithReason(uint256,uint8,string)":{"notice":"Cast a vote for a proposal with a reason"},"execute(uint256)":{"notice":"Executes a queued proposal if eta has passed"},"getActions(uint256)":{"notice":"Gets actions of a proposal"},"getReceipt(uint256,address)":{"notice":"Gets the receipt for a voter on a given proposal"},"initialize(address,address,uint256,uint256,uint256,address)":{"notice":"Used to initialize the contract during delegator contructor"},"propose(address[],uint256[],string[],bytes[],string)":{"notice":"Function used to propose a new proposal. Sender must have delegates above the proposal threshold"},"queue(uint256)":{"notice":"Queues a proposal of state succeeded"},"state(uint256)":{"notice":"Gets the state of a proposal"}}}}},"contracts/legacy/GovernorBravoDelegateV2.sol":{"GovernorBravoDelegateV2":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldAdmin","type":"address"},{"indexed":false,"internalType":"address","name":"newAdmin","type":"address"}],"name":"NewAdmin","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldGuardian","type":"address"},{"indexed":false,"internalType":"address","name":"newGuardian","type":"address"}],"name":"NewGuardian","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldImplementation","type":"address"},{"indexed":false,"internalType":"address","name":"newImplementation","type":"address"}],"name":"NewImplementation","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldPendingAdmin","type":"address"},{"indexed":false,"internalType":"address","name":"newPendingAdmin","type":"address"}],"name":"NewPendingAdmin","type":"event"},{"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"},{"indexed":false,"internalType":"uint8","name":"proposalType","type":"uint8"}],"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":"oldMaxOperations","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newMaxOperations","type":"uint256"}],"name":"ProposalMaxOperationsUpdated","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":"uint256","name":"oldProposalThreshold","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newProposalThreshold","type":"uint256"}],"name":"ProposalThresholdSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"voter","type":"address"},{"indexed":false,"internalType":"uint256","name":"proposalId","type":"uint256"},{"indexed":false,"internalType":"uint8","name":"support","type":"uint8"},{"indexed":false,"internalType":"uint256","name":"votes","type":"uint256"},{"indexed":false,"internalType":"string","name":"reason","type":"string"}],"name":"VoteCast","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"oldVotingDelay","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newVotingDelay","type":"uint256"}],"name":"VotingDelaySet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"oldVotingPeriod","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newVotingPeriod","type":"uint256"}],"name":"VotingPeriodSet","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":true,"inputs":[],"name":"MAX_PROPOSAL_THRESHOLD","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"MAX_VOTING_DELAY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"MAX_VOTING_PERIOD","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"MIN_PROPOSAL_THRESHOLD","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"MIN_VOTING_DELAY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"MIN_VOTING_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":"governorAlpha","type":"address"}],"name":"_initiate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"newGuardian","type":"address"}],"name":"_setGuardian","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"newPendingAdmin","type":"address"}],"name":"_setPendingAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"proposalMaxOperations_","type":"uint256"}],"name":"_setProposalMaxOperations","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"admin","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","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":"uint8","name":"support","type":"uint8"}],"name":"castVote","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"uint8","name":"support","type":"uint8"},{"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"},{"internalType":"uint8","name":"support","type":"uint8"},{"internalType":"string","name":"reason","type":"string"}],"name":"castVoteWithReason","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"}],"name":"execute","outputs":[],"payable":false,"stateMutability":"nonpayable","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":"uint8","name":"support","type":"uint8"},{"internalType":"uint96","name":"votes","type":"uint96"}],"internalType":"struct GovernorBravoDelegateStorageV1.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":[],"name":"implementation","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"initialProposalId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"xvsVault_","type":"address"},{"components":[{"internalType":"uint256","name":"votingDelay","type":"uint256"},{"internalType":"uint256","name":"votingPeriod","type":"uint256"},{"internalType":"uint256","name":"proposalThreshold","type":"uint256"}],"internalType":"struct GovernorBravoDelegateStorageV2.ProposalConfig[]","name":"proposalConfigs_","type":"tuple[]"},{"internalType":"contract TimelockInterface[]","name":"timelocks","type":"address[]"},{"internalType":"address","name":"guardian_","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","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":"pendingAdmin","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"proposalConfigs","outputs":[{"internalType":"uint256","name":"votingDelay","type":"uint256"},{"internalType":"uint256","name":"votingPeriod","type":"uint256"},{"internalType":"uint256","name":"proposalThreshold","type":"uint256"}],"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":"view","type":"function"},{"constant":true,"inputs":[],"name":"proposalThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"proposalTimelocks","outputs":[{"internalType":"contract TimelockInterface","name":"","type":"address"}],"payable":false,"stateMutability":"view","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":"uint256","name":"abstainVotes","type":"uint256"},{"internalType":"bool","name":"canceled","type":"bool"},{"internalType":"bool","name":"executed","type":"bool"},{"internalType":"uint8","name":"proposalType","type":"uint8"}],"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"},{"internalType":"enum GovernorBravoDelegateStorageV2.ProposalType","name":"proposalType","type":"uint8"}],"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":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"}],"name":"state","outputs":[{"internalType":"enum GovernorBravoDelegateStorageV1.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":"view","type":"function"},{"constant":true,"inputs":[],"name":"votingPeriod","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"xvsVault","outputs":[{"internalType":"contract XvsVaultInterface","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}],"devdoc":{"details":"This contract is the second deployed implementation GovernorBravo. It is included here for testing purposes because it is not completely compatible with new block rate of BSC.","methods":{"_acceptAdmin()":{"details":"Admin function for pending admin to accept role and update admin"},"_initiate(address)":{"details":"Admin only. Sets initial proposal id which initiates the contract, ensuring a continuous proposal id count","params":{"governorAlpha":"The address for the Governor to continue the proposal id count from"}},"_setGuardian(address)":{"params":{"newGuardian":"the address of the new guardian"}},"_setPendingAdmin(address)":{"details":"Admin function to begin change of admin. The newPendingAdmin must call `_acceptAdmin` to finalize the transfer.","params":{"newPendingAdmin":"New pending admin."}},"_setProposalMaxOperations(uint256)":{"details":"Admin only.","params":{"proposalMaxOperations_":"Max proposal operations"}},"cancel(uint256)":{"params":{"proposalId":"The id of the proposal to cancel"}},"castVote(uint256,uint8)":{"params":{"proposalId":"The id of the proposal to vote on","support":"The support value for the vote. 0=against, 1=for, 2=abstain"}},"castVoteBySig(uint256,uint8,uint8,bytes32,bytes32)":{"details":"External function that accepts EIP-712 signatures for voting on proposals.","params":{"proposalId":"The id of the proposal to vote on","r":"part of the ECDSA sig output","s":"part of the ECDSA sig output","support":"The support value for the vote. 0=against, 1=for, 2=abstain","v":"recovery id of ECDSA signature"}},"castVoteWithReason(uint256,uint8,string)":{"params":{"proposalId":"The id of the proposal to vote on","reason":"The reason given for the vote by the voter","support":"The support value for the vote. 0=against, 1=for, 2=abstain"}},"execute(uint256)":{"params":{"proposalId":"The id of the proposal to execute"}},"getActions(uint256)":{"params":{"proposalId":"the id of the proposal"},"return":"targets, values, signatures, and calldatas of the proposal actions"},"getReceipt(uint256,address)":{"params":{"proposalId":"the id of proposal","voter":"The address of the voter"},"return":"The voting receipt"},"initialize(address,(uint256,uint256,uint256)[],address[],address)":{"params":{"proposalConfigs_":"Governance configs for each governance route","timelocks":"Timelock addresses for each governance route","xvsVault_":"The address of the XvsVault"}},"propose(address[],uint256[],string[],bytes[],string,uint8)":{"details":"NOTE: Proposals with duplicate set of actions can not be queued for execution. If the proposals consists of duplicate actions, it's recommended to split those actions into separate proposals","params":{"calldatas":"Calldatas for proposal calls","description":"String description of the proposal","proposalType":"the type of the proposal (e.g NORMAL, FASTTRACK, CRITICAL)","signatures":"Function signatures for proposal calls","targets":"Target addresses for proposal calls","values":"BNB values for proposal calls"},"return":"Proposal id of new proposal"},"queue(uint256)":{"params":{"proposalId":"The id of the proposal to queue"}},"state(uint256)":{"params":{"proposalId":"The id of the proposal"},"return":"Proposal state"}},"title":"GovernorBravoDelegateV2"},"evm":{"bytecode":{"linkReferences":{},"object":"608060405234801561001057600080fd5b50614972806100206000396000f3fe608060405234801561001057600080fd5b506004361061025e5760003560e01c8063791f5d2311610146578063ddf0b009116100c3578063e9c714f211610087578063e9c714f2146104c2578063ee9799ee146104ca578063f851a440146104dd578063f9d28b80146104e5578063fc4eee42146104f8578063fe0d94c1146105005761025e565b8063ddf0b0091461046c578063deaaa7cc1461047f578063e23a9a5214610487578063e38e8c0f146104a7578063e48083fe146104ba5761025e565b8063b11262631161010a578063b112626314610439578063b58131b014610441578063b71d1a0c14610449578063d33219b41461045c578063da35c664146104645761025e565b8063791f5d23146103fb5780637b3c71d3146104035780637bdbe4d0146104165780639e6f26261461041e578063a64e024a146104315761025e565b806325fd935a116101df5780633bccf4fd116101a35780633bccf4fd146103925780633e4f49e6146103a557806340e58ee5146103c5578063452a9320146103d857806356781388146103e05780635c60da1b146103f35761025e565b806325fd935a146103285780632678224714610330578063328dd9821461034557806335a87de2146103685780633932abb11461038a5761025e565b80631b9ce575116102265780631b9ce575146102e65780631ebcfefd146102fb57806320606b7014610310578063215809ca1461031857806324bc1a64146103205761025e565b8063013cf08b1461026357806302a251a31461029657806306fdde03146102ab578063164a1ab1146102c057806317977c61146102d3575b600080fd5b610276610271366004612e15565b610513565b60405161028d9b9a9998979695949392919061462c565b60405180910390f35b61029e61057f565b60405161028d9190614220565b6102b3610585565b60405161028d91906142e5565b61029e6102ce366004612cac565b6105b5565b61029e6102e1366004612bf7565b610a73565b6102ee610a85565b60405161028d91906142c9565b61030e610309366004612e15565b610a94565b005b61029e610b04565b61029e610b1b565b61029e610b21565b61029e610b2f565b610338610b3d565b60405161028d91906140f0565b610358610353366004612e15565b610b4c565b60405161028d94939291906141d3565b61037b610376366004612e15565b610ddb565b60405161028d939291906146de565b61029e610dfc565b61030e6103a0366004612f04565b610e02565b6103b86103b3366004612e15565b610fda565b60405161028d91906142d7565b61030e6103d3366004612e15565b611174565b61033861140a565b61030e6103ee366004612e6d565b611419565b610338611463565b61029e611472565b61030e610411366004612e9d565b611480565b61029e6114d0565b61030e61042c366004612c1d565b6114d6565b61029e611860565b61029e611867565b61029e61186e565b61030e610457366004612bf7565b611874565b6102ee6118f1565b61029e611900565b61030e61047a366004612e15565b611906565b61029e611b9a565b61049a610495366004612e33565b611ba6565b60405161028d9190614566565b61030e6104b5366004612bf7565b611c13565b61029e611ccb565b61030e611cd0565b6102ee6104d8366004612e15565b611dae565b610338611dc9565b61030e6104f3366004612bf7565b611dd8565b61029e611f1c565b61030e61050e366004612e15565b611f22565b600a60208190526000918252604090912080546001820154600283015460078401546008850154600986015496860154600b870154600c880154600e9098015496986001600160a01b039096169794969395929492939192909160ff808316926101009004811691168b565b60045481565b6040518060400160405280601481526020017356656e757320476f7665726e6f7220427261766f60601b81525081565b6000600654600014156105e35760405162461bcd60e51b81526004016105da90614336565b60405180910390fd5b600e60008360028111156105f357fe5b60ff1681526020810191909152604001600020600201546009546001600160a01b031663782d6fe1336106274360016120d5565b6040518363ffffffff1660e01b81526004016106449291906140fe565b60206040518083038186803b15801561065c57600080fd5b505afa158015610670573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506106949190810190612f79565b6001600160601b031610156106bb5760405162461bcd60e51b81526004016105da906144d6565b855187511480156106cd575084518751145b80156106da575083518751145b6106f65760405162461bcd60e51b81526004016105da906143b6565b86516107145760405162461bcd60e51b81526004016105da90614416565b600c54875111156107375760405162461bcd60e51b81526004016105da90614466565b336000908152600b602052604090205480156107b457600061075882610fda565b9050600181600781111561076857fe5b14156107865760405162461bcd60e51b81526004016105da906144b6565b600081600781111561079457fe5b14156107b25760405162461bcd60e51b81526004016105da90614476565b505b60006107e443600e60008760028111156107ca57fe5b60ff168152602001908152602001600020600001546120fd565b9050600061081682600e60008860028111156107fc57fe5b60ff168152602001908152602001600020600101546120fd565b60078054600101905590506108296124a0565b604051806101e001604052806007548152602001336001600160a01b03168152602001600081526020018c81526020018b81526020018a81526020018981526020018481526020018381526020016000815260200160008152602001600081526020016000151581526020016000151581526020018760028111156108aa57fe5b60ff16905280516000908152600a602090815260409182902083518155818401516001820180546001600160a01b0319166001600160a01b039092169190911790559183015160028301556060830151805193945084936109119260038501920190612526565b506080820151805161092d91600484019160209091019061258b565b5060a082015180516109499160058401916020909101906125d2565b5060c0820151805161096591600684019160209091019061262b565b5060e082015160078201556101008083015160088301556101208301516009830155610140830151600a830155610160830151600b80840191909155610180840151600c840180546101a087015160ff199182169315159390931761ff0019169215159094029190911790556101c090930151600e909201805490911660ff90921691909117905581516020808401516001600160a01b0316600090815292905260409091205580517fc8df7ff219f3c0358e14500814d8b62b443a4bebf3a596baa60b9295b1cf1bde90338d8d8d8d89898f8f6002811115610a4457fe5b604051610a5a9a99989796959493929190614574565b60405180910390a15193505050505b9695505050505050565b600b6020526000908152604090205481565b6009546001600160a01b031681565b6000546001600160a01b03163314610abe5760405162461bcd60e51b81526004016105da90614486565b600c8054908290556040517fd03b3c3c5c1446bcdd31423061041c94ca3bc5450fe7ccfb0f636f4c420de87e90610af890839085906146d0565b60405180910390a15050565b604051610b10906140e5565b604051809103902081565b610e1081565b697f0e10af47c1c700000081565b693f870857a3e0e380000081565b6001546001600160a01b031681565b6060806060806000600a600087815260200190815260200160002090508060030181600401826005018360060183805480602002602001604051908101604052809291908181526020018280548015610bce57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610bb0575b5050505050935082805480602002602001604051908101604052809291908181526020018280548015610c2057602002820191906000526020600020905b815481526020019060010190808311610c0c575b5050505050925081805480602002602001604051908101604052809291908181526020016000905b82821015610cf35760008481526020908190208301805460408051601f6002600019610100600187161502019094169390930492830185900485028101850190915281815292830182828015610cdf5780601f10610cb457610100808354040283529160200191610cdf565b820191906000526020600020905b815481529060010190602001808311610cc257829003601f168201915b505050505081526020019060010190610c48565b50505050915080805480602002602001604051908101604052809291908181526020016000905b82821015610dc55760008481526020908190208301805460408051601f6002600019610100600187161502019094169390930492830185900485028101850190915281815292830182828015610db15780601f10610d8657610100808354040283529160200191610db1565b820191906000526020600020905b815481529060010190602001808311610d9457829003601f168201915b505050505081526020019060010190610d1a565b5050505090509450945094509450509193509193565b600e6020526000908152604090208054600182015460029092015490919083565b60035481565b6000604051610e10906140e5565b60408051918290038220828201909152601482527356656e757320476f7665726e6f7220427261766f60601b6020909201919091527f157d76627a3b71c0167806f5879f7a61d3e301322f3a3b9f900315f15937671a610e6e612129565b30604051602001610e82949392919061422e565b6040516020818303038152906040528051906020012090506000604051610ea8906140a9565b604051908190038120610ec1918990899060200161426c565b60405160208183030381529060405280519060200120905060008282604051602001610eee9291906140b4565b604051602081830303815290604052805190602001209050600060018288888860405160008152602001604052604051610f2b9493929190614294565b6020604051602081039080840390855afa158015610f4d573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116610f805760405162461bcd60e51b81526004016105da906143a6565b806001600160a01b03167fb8e138887d0aa13bab447e82de9d5c1777041ecd21ca36ba824ff1e6c07ddda48a8a610fb8858e8e61212e565b604051610fc79392919061474c565b60405180910390a2505050505050505050565b60008160075410158015610fef575060065482115b61100b5760405162461bcd60e51b81526004016105da906144f6565b6000828152600a60205260409020600c81015460ff161561103057600291505061116f565b8060070154431161104557600091505061116f565b8060080154431161105a57600191505061116f565b80600a0154816009015411158061107e5750697f0e10af47c1c70000008160090154105b1561108d57600391505061116f565b60028101546110a057600491505061116f565b600c810154610100900460ff16156110bc57600791505061116f565b6002810154600e82015460ff166000908152600f60209081526040918290205482516360d143f160e11b8152925161115994936001600160a01b039092169263c1a287e29260048082019391829003018186803b15801561111c57600080fd5b505afa158015611130573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506111549190810190612dc3565b6120fd565b421061116957600691505061116f565b60059150505b919050565b600761117f82610fda565b600781111561118a57fe5b14156111a85760405162461bcd60e51b81526004016105da906144e6565b6000818152600a60205260409020600d546001600160a01b03163314806111db575060018101546001600160a01b031633145b8061129e5750600e8181015460ff16600090815260209190915260409020600201546009546001808401546001600160a01b039283169263782d6fe1929116906112269043906120d5565b6040518363ffffffff1660e01b8152600401611243929190614134565b60206040518083038186803b15801561125b57600080fd5b505afa15801561126f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506112939190810190612f79565b6001600160601b0316105b6112ba5760405162461bcd60e51b81526004016105da90614446565b600c8101805460ff1916600117905560005b60038201548110156113da57600e82015460ff166000908152600f60205260409020546003830180546001600160a01b039092169163591fcdfe91908490811061131257fe5b6000918252602090912001546004850180546001600160a01b03909216918590811061133a57fe5b906000526020600020015485600501858154811061135457fe5b9060005260206000200186600601868154811061136d57fe5b9060005260206000200187600201546040518663ffffffff1660e01b815260040161139c959493929190614192565b600060405180830381600087803b1580156113b657600080fd5b505af11580156113ca573d6000803e3d6000fd5b5050600190920191506112cc9050565b507f789cf55be980739dad1d0699b93b58e806b51c9d96619bfa8fe0a28abaa7b30c82604051610af89190614220565b600d546001600160a01b031681565b337fb8e138887d0aa13bab447e82de9d5c1777041ecd21ca36ba824ff1e6c07ddda4838361144884838361212e565b6040516114579392919061474c565b60405180910390a25050565b6002546001600160a01b031681565b691fc3842bd1f071c0000081565b337fb8e138887d0aa13bab447e82de9d5c1777041ecd21ca36ba824ff1e6c07ddda485856114af84838361212e565b86866040516114c2959493929190614706565b60405180910390a250505050565b600c5481565b60008052600f6020527ff4803e074bd026baaf6ed2e288c9515f68c72fb7216eebdd7cae1718a53ec375546001600160a01b0316156115275760405162461bcd60e51b81526004016105da906143d6565b6000546001600160a01b031633146115515760405162461bcd60e51b81526004016105da906143c6565b6001600160a01b0384166115775760405162461bcd60e51b81526004016105da90614386565b6001600160a01b03811661159d5760405162461bcd60e51b81526004016105da90614456565b81516003146115be5760405162461bcd60e51b81526004016105da90614326565b82516003146115df5760405162461bcd60e51b81526004016105da90614506565b600980546001600160a01b038087166001600160a01b031992831617909255600a600c55600d805492841692909116919091179055825160005b8181101561185857610e1085828151811061163057fe5b602002602001015160200151101561165a5760405162461bcd60e51b81526004016105da90614376565b6206270085828151811061166a57fe5b60200260200101516020015111156116945760405162461bcd60e51b81526004016105da90614546565b60018582815181106116a257fe5b60200260200101516000015110156116cc5760405162461bcd60e51b81526004016105da90614436565b620313808582815181106116dc57fe5b60200260200101516000015111156117065760405162461bcd60e51b81526004016105da906144a6565b691fc3842bd1f071c0000085828151811061171d57fe5b60200260200101516040015110156117475760405162461bcd60e51b81526004016105da90614346565b693f870857a3e0e380000085828151811061175e57fe5b60200260200101516040015111156117885760405162461bcd60e51b81526004016105da90614556565b60006001600160a01b031684828151811061179f57fe5b60200260200101516001600160a01b031614156117ce5760405162461bcd60e51b81526004016105da90614496565b8481815181106117da57fe5b6020908102919091018101516000838152600e8352604090819020825181559282015160018401550151600290910155835184908290811061181857fe5b6020908102919091018101516000838152600f909252604090912080546001600160a01b0319166001600160a01b03909216919091179055600101611619565b505050505050565b6206270081565b6203138081565b60055481565b6000546001600160a01b0316331461189e5760405162461bcd60e51b81526004016105da90614306565b600180546001600160a01b038381166001600160a01b03198316179092556040519116907fca4f2f25d0898edd99413412fb94012f9e54ec8142f9b093e7720646a95b16a990610af89083908590614119565b6008546001600160a01b031681565b60075481565b600461191182610fda565b600781111561191c57fe5b146119395760405162461bcd60e51b81526004016105da906143e6565b6000818152600a60209081526040808320600e81015460ff168452600f8352818420548251630d48571f60e31b815292519194936119a29342936001600160a01b0390931692636a42b8f892600480840193919291829003018186803b15801561111c57600080fd5b905060005b6003830154811015611b5357611b4b8360030182815481106119c557fe5b6000918252602090912001546004850180546001600160a01b0390921691849081106119ed57fe5b9060005260206000200154856005018481548110611a0757fe5b600091825260209182902001805460408051601f6002600019610100600187161502019094169390930492830185900485028101850190915281815292830182828015611a955780601f10611a6a57610100808354040283529160200191611a95565b820191906000526020600020905b815481529060010190602001808311611a7857829003601f168201915b5050505050866006018581548110611aa957fe5b600091825260209182902001805460408051601f6002600019610100600187161502019094169390930492830185900485028101850190915281815292830182828015611b375780601f10611b0c57610100808354040283529160200191611b37565b820191906000526020600020905b815481529060010190602001808311611b1a57829003601f168201915b50505050600e89015488915060ff1661231e565b6001016119a7565b50600282018190556040517f9a2e42fd6722813d69113e7d0079d3d940171428df7373df9c7f7617cfda289290611b8d90859084906146d0565b60405180910390a1505050565b604051610b10906140a9565b611bae612684565b506000828152600a602090815260408083206001600160a01b0385168452600d018252918290208251606081018452905460ff8082161515835261010082041692820192909252620100009091046001600160601b0316918101919091525b92915050565b600d546001600160a01b0316331480611c3657506000546001600160a01b031633145b611c525760405162461bcd60e51b81526004016105da90614526565b6001600160a01b038116611c785760405162461bcd60e51b81526004016105da90614516565b600d80546001600160a01b038381166001600160a01b03198316179092556040519116907f08fdaf06427a2010e5958f4329b566993472d14ce81d3f16ce7f2a2660da98e390610af89083908590614119565b600181565b6001546001600160a01b031633148015611ce957503315155b611d055760405162461bcd60e51b81526004016105da90614426565b60008054600180546001600160a01b038082166001600160a01b03198086168217968790559092169092556040519282169390927ff9ffabca9c8276e99321725bcb43fb076a6c66a54b7f21c4e8146d8519b417dc92611d69928692911690614119565b60405180910390a16001546040517fca4f2f25d0898edd99413412fb94012f9e54ec8142f9b093e7720646a95b16a991610af89184916001600160a01b031690614119565b600f602052600090815260409020546001600160a01b031681565b6000546001600160a01b031681565b6000546001600160a01b03163314611e025760405162461bcd60e51b81526004016105da906144c6565b60065415611e225760405162461bcd60e51b81526004016105da90614406565b806001600160a01b031663da35c6646040518163ffffffff1660e01b8152600401602060405180830381600087803b158015611e5d57600080fd5b505af1158015611e71573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611e959190810190612dc3565b600781905560065560005b6003811015611f18576000818152600f6020526040808220548151630e18b68160e01b815291516001600160a01b0390911692630e18b681926004808201939182900301818387803b158015611ef557600080fd5b505af1158015611f09573d6000803e3d6000fd5b50505050806001019050611ea0565b5050565b60065481565b6005611f2d82610fda565b6007811115611f3857fe5b14611f555760405162461bcd60e51b81526004016105da90614396565b6000818152600a60205260408120600c8101805461ff001916610100179055905b60038201548110156120a557600e82015460ff166000908152600f60205260409020546003830180546001600160a01b0390921691630825f38f919084908110611fbc57fe5b6000918252602090912001546004850180546001600160a01b039092169185908110611fe457fe5b9060005260206000200154856005018581548110611ffe57fe5b9060005260206000200186600601868154811061201757fe5b9060005260206000200187600201546040518663ffffffff1660e01b8152600401612046959493929190614192565b600060405180830381600087803b15801561206057600080fd5b505af1158015612074573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261209c9190810190612de1565b50600101611f76565b507f712ae1383f79ac853f8d882153778e0260ef8f03b504e2866e0593e04d2b291f82604051610af89190614220565b6000828211156120f75760405162461bcd60e51b81526004016105da90614536565b50900390565b6000828201838110156121225760405162461bcd60e51b81526004016105da906143f6565b9392505050565b465b90565b6000600161213b84610fda565b600781111561214657fe5b146121635760405162461bcd60e51b81526004016105da90614356565b60028260ff1611156121875760405162461bcd60e51b81526004016105da906142f6565b6000838152600a602090815260408083206001600160a01b0388168452600d8101909252909120805460ff16156121d05760405162461bcd60e51b81526004016105da90614366565b600954600783015460405163782d6fe160e01b81526000926001600160a01b03169163782d6fe191612206918b91600401614134565b60206040518083038186803b15801561221e57600080fd5b505afa158015612232573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506122569190810190612f79565b905060ff85166122815761227783600a0154826001600160601b03166120fd565b600a8401556122d7565b8460ff16600114156122ae576122a48360090154826001600160601b03166120fd565b60098401556122d7565b8460ff16600214156122d7576122d183600b0154826001600160601b03166120fd565b600b8401555b8154600160ff199091161761ff00191661010060ff871602176dffffffffffffffffffffffff00001916620100006001600160601b03831602179091559150509392505050565b60ff81166000908152600f60209081526040918290205491516001600160a01b039092169163f2b065379161235d918a918a918a918a918a9101614142565b604051602081830303815290604052805190602001206040518263ffffffff1660e01b815260040161238f9190614220565b60206040518083038186803b1580156123a757600080fd5b505afa1580156123bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506123df9190810190612da5565b156123fc5760405162461bcd60e51b81526004016105da90614316565b60ff81166000908152600f602052604090819020549051633a66f90160e01b81526001600160a01b0390911690633a66f901906124459089908990899089908990600401614142565b602060405180830381600087803b15801561245f57600080fd5b505af1158015612473573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506124979190810190612dc3565b50505050505050565b604051806101e001604052806000815260200160006001600160a01b0316815260200160008152602001606081526020016060815260200160608152602001606081526020016000815260200160008152602001600081526020016000815260200160008152602001600015158152602001600015158152602001600060ff1681525090565b82805482825590600052602060002090810192821561257b579160200282015b8281111561257b57825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190612546565b506125879291506126a4565b5090565b8280548282559060005260206000209081019282156125c6579160200282015b828111156125c65782518255916020019190600101906125ab565b506125879291506126c8565b82805482825590600052602060002090810192821561261f579160200282015b8281111561261f578251805161260f9184916020909101906126e2565b50916020019190600101906125f2565b5061258792915061274f565b828054828255906000526020600020908101928215612678579160200282015b8281111561267857825180516126689184916020909101906126e2565b509160200191906001019061264b565b50612587929150612772565b604080516060810182526000808252602082018190529181019190915290565b61212b91905b808211156125875780546001600160a01b03191681556001016126aa565b61212b91905b8082111561258757600081556001016126ce565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061272357805160ff19168380011785556125c6565b828001600101855582156125c657918201828111156125c65782518255916020019190600101906125ab565b61212b91905b808211156125875760006127698282612795565b50600101612755565b61212b91905b8082111561258757600061278c8282612795565b50600101612778565b50805460018160011615610100020316600290046000825580601f106127bb57506127d9565b601f0160209004906000526020600020908101906127d991906126c8565b50565b8035611c0d816148c1565b600082601f8301126127f857600080fd5b813561280b612806826147ab565b614785565b9150818183526020840193506020810190508385602084028201111561283057600080fd5b60005b8381101561285c578161284688826127dc565b8452506020928301929190910190600101612833565b5050505092915050565b600082601f83011261287757600080fd5b8135612885612806826147ab565b81815260209384019390925082018360005b8381101561285c57813586016128ad8882612a93565b8452506020928301929190910190600101612897565b600082601f8301126128d457600080fd5b81356128e2612806826147ab565b9150818183526020840193506020810190508385602084028201111561290757600080fd5b60005b8381101561285c578161291d8882612b28565b845250602092830192919091019060010161290a565b600082601f83011261294457600080fd5b8135612952612806826147ab565b81815260209384019390925082018360005b8381101561285c578135860161297a8882612a93565b8452506020928301929190910190600101612964565b600082601f8301126129a157600080fd5b81356129af612806826147ab565b915081818352602084019350602081019050838560608402820111156129d457600080fd5b60005b8381101561285c57816129ea8882612b86565b845250602090920191606091909101906001016129d7565b600082601f830112612a1357600080fd5b8135612a21612806826147ab565b91508181835260208401935060208101905083856020840282011115612a4657600080fd5b60005b8381101561285c5781612a5c8882612a7d565b8452506020928301929190910190600101612a49565b8051611c0d816148d5565b8035611c0d816148de565b8051611c0d816148de565b600082601f830112612aa457600080fd5b8135612ab2612806826147cb565b91508082526020830160208301858383011115612ace57600080fd5b612ad9838284614875565b50505092915050565b600082601f830112612af357600080fd5b8151612b01612806826147cb565b91508082526020830160208301858383011115612b1d57600080fd5b612ad9838284614881565b8035611c0d816148e7565b8035611c0d816148f0565b60008083601f840112612b5057600080fd5b5081356001600160401b03811115612b6757600080fd5b602083019150836001820283011115612b7f57600080fd5b9250929050565b600060608284031215612b9857600080fd5b612ba26060614785565b90506000612bb08484612a7d565b8252506020612bc184848301612a7d565b6020830152506040612bd584828501612a7d565b60408301525092915050565b8035611c0d816148fd565b8051611c0d81614906565b600060208284031215612c0957600080fd5b6000612c1584846127dc565b949350505050565b60008060008060808587031215612c3357600080fd5b6000612c3f87876127dc565b94505060208501356001600160401b03811115612c5b57600080fd5b612c6787828801612990565b93505060408501356001600160401b03811115612c8357600080fd5b612c8f878288016128c3565b9250506060612ca0878288016127dc565b91505092959194509250565b60008060008060008060c08789031215612cc557600080fd5b86356001600160401b03811115612cdb57600080fd5b612ce789828a016127e7565b96505060208701356001600160401b03811115612d0357600080fd5b612d0f89828a01612a02565b95505060408701356001600160401b03811115612d2b57600080fd5b612d3789828a01612933565b94505060608701356001600160401b03811115612d5357600080fd5b612d5f89828a01612866565b93505060808701356001600160401b03811115612d7b57600080fd5b612d8789828a01612a93565b92505060a0612d9889828a01612b33565b9150509295509295509295565b600060208284031215612db757600080fd5b6000612c158484612a72565b600060208284031215612dd557600080fd5b6000612c158484612a88565b600060208284031215612df357600080fd5b81516001600160401b03811115612e0957600080fd5b612c1584828501612ae2565b600060208284031215612e2757600080fd5b6000612c158484612a7d565b60008060408385031215612e4657600080fd5b6000612e528585612a7d565b9250506020612e63858286016127dc565b9150509250929050565b60008060408385031215612e8057600080fd5b6000612e8c8585612a7d565b9250506020612e6385828601612be1565b60008060008060608587031215612eb357600080fd5b6000612ebf8787612a7d565b9450506020612ed087828801612be1565b93505060408501356001600160401b03811115612eec57600080fd5b612ef887828801612b3e565b95989497509550505050565b600080600080600060a08688031215612f1c57600080fd5b6000612f288888612a7d565b9550506020612f3988828901612be1565b9450506040612f4a88828901612be1565b9350506060612f5b88828901612a7d565b9250506080612f6c88828901612a7d565b9150509295509295909350565b600060208284031215612f8b57600080fd5b6000612c158484612bec565b6000612fa38383612fd2565b505060200190565b60006121228383613174565b6000612fa3838361315a565b612fcc81614854565b82525050565b612fcc81614811565b6000612fe682614804565b612ff08185614808565b9350612ffb836147f2565b8060005b838110156130295781516130138882612f97565b975061301e836147f2565b925050600101612fff565b509495945050505050565b600061303f82614804565b6130498185614808565b93508360208202850161305b856147f2565b8060005b8581101561309557848403895281516130788582612fab565b9450613083836147f2565b60209a909a019992505060010161305f565b5091979650505050505050565b60006130ad82614804565b6130b78185614808565b9350836020820285016130c9856147f2565b8060005b8581101561309557848403895281516130e68582612fab565b94506130f1836147f2565b60209a909a01999250506001016130cd565b600061310e82614804565b6131188185614808565b9350613123836147f2565b8060005b8381101561302957815161313b8882612fb7565b9750613146836147f2565b925050600101613127565b612fcc8161481c565b612fcc8161212b565b612fcc61316f8261212b565b61212b565b600061317f82614804565b6131898185614808565b9350613199818560208601614881565b6131a2816148ad565b9093019392505050565b6000815460018116600081146131c957600181146131ef5761322e565b607f60028304166131da8187614808565b60ff198416815295505060208501925061322e565b600282046131fd8187614808565b9550613208856147f8565b60005b828110156132275781548882015260019091019060200161320b565b8701945050505b505092915050565b612fcc81614821565b612fcc8161485f565b60006132548385614808565b9350613261838584614875565b6131a2836148ad565b6000613277603283614808565b7f476f7665726e6f72427261766f3a3a63617374566f7465496e7465726e616c3a81527120696e76616c696420766f7465207479706560701b602082015260400192915050565b60006132cb60288361116f565b7f42616c6c6f742875696e743235362070726f706f73616c49642c75696e743820815267737570706f72742960c01b602082015260280192915050565b6000613315602a83614808565b7f476f7665726e6f72427261766f3a5f73657450656e64696e6741646d696e3a2081526961646d696e206f6e6c7960b01b602082015260400192915050565b6000613361605583614808565b7f476f7665726e6f72427261766f3a3a71756575654f72526576657274496e746581527f726e616c3a206964656e746963616c2070726f706f73616c20616374696f6e20602082015274616c7265616479207175657565642061742065746160581b604082015260600192915050565b60006133de605683614808565b7f476f7665726e6f72427261766f3a3a696e697469616c697a653a6e756d62657281527f206f662074696d656c6f636b732073686f756c64206d61746368206e756d626560208201527572206f6620676f7665726e616e636520726f7574657360501b604082015260600192915050565b600061345c603183614808565b7f476f7665726e6f72427261766f3a3a70726f706f73653a20476f7665726e6f7281527020427261766f206e6f742061637469766560781b602082015260400192915050565b60006134af60028361116f565b61190160f01b815260020192915050565b60006134cd603983614808565b60008051602061491083398151915281527f6964206d696e2070726f706f73616c207468726573686f6c6400000000000000602082015260400192915050565b600061351a603183614808565b7f476f7665726e6f72427261766f3a3a63617374566f7465496e7465726e616c3a815270081d9bdd1a5b99c81a5cc818db1bdcd959607a1b602082015260400192915050565b600061356d603483614808565b7f476f7665726e6f72427261766f3a3a63617374566f7465496e7465726e616c3a815273081d9bdd195c88185b1c9958591e481d9bdd195960621b602082015260400192915050565b60006135c3603483614808565b6000805160206149108339815191528152731a59081b5a5b881d9bdd1a5b99c81c195c9a5bd960621b602082015260400192915050565b6000613607602e83614808565b60008051602061491083398151915281526d696420787673206164647265737360901b602082015260400192915050565b6000613645604583614808565b7f476f7665726e6f72427261766f3a3a657865637574653a2070726f706f73616c81527f2063616e206f6e6c7920626520657865637574656420696620697420697320716020820152641d595d595960da1b604082015260600192915050565b60006136b2602f83614808565b7f476f7665726e6f72427261766f3a3a63617374566f746542795369673a20696e81526e76616c6964207369676e617475726560881b602082015260400192915050565b6000613703604483614808565b7f476f7665726e6f72427261766f3a3a70726f706f73653a2070726f706f73616c81527f2066756e6374696f6e20696e666f726d6174696f6e206172697479206d69736d6020820152630c2e8c6d60e31b604082015260600192915050565b600061376f602583614808565b7f476f7665726e6f72427261766f3a3a696e697469616c697a653a2061646d696e815264206f6e6c7960d81b602082015260400192915050565b60006137b6603283614808565b7f476f7665726e6f72427261766f3a3a696e697469616c697a653a2063616e6e6f8152717420696e697469616c697a6520747769636560701b602082015260400192915050565b600061380a604483614808565b7f476f7665726e6f72427261766f3a3a71756575653a2070726f706f73616c206381527f616e206f6e6c79206265207175657565642069662069742069732073756363656020820152631959195960e21b604082015260600192915050565b6000613876601183614808565b706164646974696f6e206f766572666c6f7760781b815260200192915050565b60006138a360438361116f565b7f454950373132446f6d61696e28737472696e67206e616d652c75696e7432353681527f20636861696e49642c6164647265737320766572696679696e67436f6e74726160208201526263742960e81b604082015260430192915050565b600061390e603083614808565b7f476f7665726e6f72427261766f3a3a5f696e6974696174653a2063616e206f6e81526f6c7920696e697469617465206f6e636560801b602082015260400192915050565b6000613960602c83614808565b7f476f7665726e6f72427261766f3a3a70726f706f73653a206d7573742070726f81526b7669646520616374696f6e7360a01b602082015260400192915050565b60006139ae602e83614808565b7f476f7665726e6f72427261766f3a5f61636365707441646d696e3a2070656e6481526d696e672061646d696e206f6e6c7960901b602082015260400192915050565b60006139fe603383614808565b6000805160206149108339815191528152726964206d696e20766f74696e672064656c617960681b602082015260400192915050565b6000613a41602f83614808565b7f476f7665726e6f72427261766f3a3a63616e63656c3a2070726f706f7365722081526e18589bdd99481d1a1c995cda1bdb19608a1b602082015260400192915050565b6000613a92602b83614808565b60008051602061491083398151915281526a34b21033bab0b93234b0b760a91b602082015260400192915050565b6000613acd602883614808565b7f476f7665726e6f72427261766f3a3a70726f706f73653a20746f6f206d616e7981526720616374696f6e7360c01b602082015260400192915050565b6000613b17605983614808565b7f476f7665726e6f72427261766f3a3a70726f706f73653a206f6e65206c69766581527f2070726f706f73616c207065722070726f706f7365722c20666f756e6420616e60208201527f20616c72656164792070656e64696e672070726f706f73616c00000000000000604082015260600192915050565b6000613b9c603483614808565b7f476f7665726e6f72427261766f3a3a5f73657450726f706f73616c4d61784f7081527365726174696f6e733a2061646d696e206f6e6c7960601b602082015260400192915050565b6000613bf2603283614808565b7f476f7665726e6f72427261766f3a3a696e697469616c697a653a696e76616c69815271642074696d656c6f636b206164647265737360701b602082015260400192915050565b6000613c46603383614808565b6000805160206149108339815191528152726964206d617820766f74696e672064656c617960681b602082015260400192915050565b6000613c89605883614808565b7f476f7665726e6f72427261766f3a3a70726f706f73653a206f6e65206c69766581527f2070726f706f73616c207065722070726f706f7365722c20666f756e6420616e60208201527f20616c7265616479206163746976652070726f706f73616c0000000000000000604082015260600192915050565b6000611c0d600083614808565b6000613d1b602483614808565b7f476f7665726e6f72427261766f3a3a5f696e6974696174653a2061646d696e208152636f6e6c7960e01b602082015260400192915050565b6000613d61603f83614808565b7f476f7665726e6f72427261766f3a3a70726f706f73653a2070726f706f73657281527f20766f7465732062656c6f772070726f706f73616c207468726573686f6c6400602082015260400192915050565b6000613dc0603683614808565b7f476f7665726e6f72427261766f3a3a63616e63656c3a2063616e6e6f742063618152751b98d95b08195e1958dd5d1959081c1c9bdc1bdcd85b60521b602082015260400192915050565b6000613e18602983614808565b7f476f7665726e6f72427261766f3a3a73746174653a20696e76616c69642070728152681bdc1bdcd85b081a5960ba1b602082015260400192915050565b6000613e63605d83614808565b7f476f7665726e6f72427261766f3a3a696e697469616c697a653a6e756d62657281527f206f662070726f706f73616c20636f6e666967732073686f756c64206d61746360208201527f68206e756d626572206f6620676f7665726e616e636520726f75746573000000604082015260600192915050565b6000613ee8603b83614808565b7f476f7665726e6f72427261766f3a3a5f736574477561726469616e3a2063616e81527f6e6f74206c69766520776974686f7574206120677561726469616e0000000000602082015260400192915050565b6000613f47603383614808565b7f476f7665726e6f72427261766f3a3a5f736574477561726469616e3a2061646d815272696e206f7220677561726469616e206f6e6c7960681b602082015260400192915050565b6000613f9c601583614808565b747375627472616374696f6e20756e646572666c6f7760581b815260200192915050565b6000613fcd603483614808565b6000805160206149108339815191528152731a59081b585e081d9bdd1a5b99c81c195c9a5bd960621b602082015260400192915050565b6000614011603983614808565b60008051602061491083398151915281527f6964206d61782070726f706f73616c207468726573686f6c6400000000000000602082015260400192915050565b805160608301906140628482613151565b506020820151614075602085018261408e565b50604082015161408860408501826140a0565b50505050565b612fcc81614842565b612fcc8161486a565b612fcc81614848565b6000611c0d826132be565b60006140bf826134a2565b91506140cb8285613163565b6020820191506140db8284613163565b5060200192915050565b6000611c0d82613896565b60208101611c0d8284612fd2565b6040810161410c8285612fc3565b612122602083018461315a565b604081016141278285612fd2565b6121226020830184612fd2565b6040810161410c8285612fd2565b60a081016141508288612fd2565b61415d602083018761315a565b818103604083015261416f8186613174565b905081810360608301526141838185613174565b9050610a69608083018461315a565b60a081016141a08288612fd2565b6141ad602083018761315a565b81810360408301526141bf81866131ac565b9050818103606083015261418381856131ac565b608080825281016141e48187612fdb565b905081810360208301526141f88186613103565b9050818103604083015261420c81856130a2565b90508181036060830152610a698184613034565b60208101611c0d828461315a565b6080810161423c828761315a565b614249602083018661315a565b614256604083018561315a565b6142636060830184612fd2565b95945050505050565b6060810161427a828661315a565b614287602083018561315a565b612c15604083018461408e565b608081016142a2828761315a565b6142af602083018661408e565b6142bc604083018561315a565b614263606083018461315a565b60208101611c0d8284613236565b60208101611c0d828461323f565b602080825281016121228184613174565b60208082528101611c0d8161326a565b60208082528101611c0d81613308565b60208082528101611c0d81613354565b60208082528101611c0d816133d1565b60208082528101611c0d8161344f565b60208082528101611c0d816134c0565b60208082528101611c0d8161350d565b60208082528101611c0d81613560565b60208082528101611c0d816135b6565b60208082528101611c0d816135fa565b60208082528101611c0d81613638565b60208082528101611c0d816136a5565b60208082528101611c0d816136f6565b60208082528101611c0d81613762565b60208082528101611c0d816137a9565b60208082528101611c0d816137fd565b60208082528101611c0d81613869565b60208082528101611c0d81613901565b60208082528101611c0d81613953565b60208082528101611c0d816139a1565b60208082528101611c0d816139f1565b60208082528101611c0d81613a34565b60208082528101611c0d81613a85565b60208082528101611c0d81613ac0565b60208082528101611c0d81613b0a565b60208082528101611c0d81613b8f565b60208082528101611c0d81613be5565b60208082528101611c0d81613c39565b60208082528101611c0d81613c7c565b60208082528101611c0d81613d0e565b60208082528101611c0d81613d54565b60208082528101611c0d81613db3565b60208082528101611c0d81613e0b565b60208082528101611c0d81613e56565b60208082528101611c0d81613edb565b60208082528101611c0d81613f3a565b60208082528101611c0d81613f8f565b60208082528101611c0d81613fc0565b60208082528101611c0d81614004565b60608101611c0d8284614051565b6101408101614583828d61315a565b614590602083018c612fc3565b81810360408301526145a2818b612fdb565b905081810360608301526145b6818a613103565b905081810360808301526145ca81896130a2565b905081810360a08301526145de8188613034565b90506145ed60c083018761315a565b6145fa60e083018661315a565b81810361010083015261460d8185613174565b905061461d61012083018461408e565b9b9a5050505050505050505050565b610160810161463b828e61315a565b614648602083018d612fd2565b614655604083018c61315a565b614662606083018b61315a565b61466f608083018a61315a565b61467c60a083018961315a565b61468960c083018861315a565b61469660e083018761315a565b6146a4610100830186613151565b6146b2610120830185613151565b6146c061014083018461408e565b9c9b505050505050505050505050565b6040810161410c828561315a565b606081016146ec828661315a565b6146f9602083018561315a565b612c15604083018461315a565b60808101614714828861315a565b614721602083018761408e565b61472e6040830186614097565b8181036060830152614741818486613248565b979650505050505050565b6080810161475a828661315a565b614767602083018561408e565b6147746040830184614097565b818103606083015261426381613d01565b6040518181016001600160401b03811182821017156147a357600080fd5b604052919050565b60006001600160401b038211156147c157600080fd5b5060209081020190565b60006001600160401b038211156147e157600080fd5b506020601f91909101601f19160190565b60200190565b60009081526020902090565b5190565b90815260200190565b6000611c0d82614836565b151590565b6000611c0d82614811565b8061116f816148b7565b6001600160a01b031690565b60ff1690565b6001600160601b031690565b6000611c0d82614821565b6000611c0d8261482c565b6000611c0d82614848565b82818337506000910152565b60005b8381101561489c578181015183820152602001614884565b838111156140885750506000910152565b601f01601f191690565b600881106127d957fe5b6148ca81614811565b81146127d957600080fd5b6148ca8161481c565b6148ca8161212b565b6148ca81614821565b600381106127d957600080fd5b6148ca81614842565b6148ca8161484856fe476f7665726e6f72427261766f3a3a696e697469616c697a653a20696e76616ca365627a7a723158204d943fcb48db20a7edf5ffa7d4e2f99f344ff728f5b207bc2c5826f2e5dc87516c6578706572696d656e74616cf564736f6c63430005100040","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4972 DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x25E JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x791F5D23 GT PUSH2 0x146 JUMPI DUP1 PUSH4 0xDDF0B009 GT PUSH2 0xC3 JUMPI DUP1 PUSH4 0xE9C714F2 GT PUSH2 0x87 JUMPI DUP1 PUSH4 0xE9C714F2 EQ PUSH2 0x4C2 JUMPI DUP1 PUSH4 0xEE9799EE EQ PUSH2 0x4CA JUMPI DUP1 PUSH4 0xF851A440 EQ PUSH2 0x4DD JUMPI DUP1 PUSH4 0xF9D28B80 EQ PUSH2 0x4E5 JUMPI DUP1 PUSH4 0xFC4EEE42 EQ PUSH2 0x4F8 JUMPI DUP1 PUSH4 0xFE0D94C1 EQ PUSH2 0x500 JUMPI PUSH2 0x25E JUMP JUMPDEST DUP1 PUSH4 0xDDF0B009 EQ PUSH2 0x46C JUMPI DUP1 PUSH4 0xDEAAA7CC EQ PUSH2 0x47F JUMPI DUP1 PUSH4 0xE23A9A52 EQ PUSH2 0x487 JUMPI DUP1 PUSH4 0xE38E8C0F EQ PUSH2 0x4A7 JUMPI DUP1 PUSH4 0xE48083FE EQ PUSH2 0x4BA JUMPI PUSH2 0x25E JUMP JUMPDEST DUP1 PUSH4 0xB1126263 GT PUSH2 0x10A JUMPI DUP1 PUSH4 0xB1126263 EQ PUSH2 0x439 JUMPI DUP1 PUSH4 0xB58131B0 EQ PUSH2 0x441 JUMPI DUP1 PUSH4 0xB71D1A0C EQ PUSH2 0x449 JUMPI DUP1 PUSH4 0xD33219B4 EQ PUSH2 0x45C JUMPI DUP1 PUSH4 0xDA35C664 EQ PUSH2 0x464 JUMPI PUSH2 0x25E JUMP JUMPDEST DUP1 PUSH4 0x791F5D23 EQ PUSH2 0x3FB JUMPI DUP1 PUSH4 0x7B3C71D3 EQ PUSH2 0x403 JUMPI DUP1 PUSH4 0x7BDBE4D0 EQ PUSH2 0x416 JUMPI DUP1 PUSH4 0x9E6F2626 EQ PUSH2 0x41E JUMPI DUP1 PUSH4 0xA64E024A EQ PUSH2 0x431 JUMPI PUSH2 0x25E JUMP JUMPDEST DUP1 PUSH4 0x25FD935A GT PUSH2 0x1DF JUMPI DUP1 PUSH4 0x3BCCF4FD GT PUSH2 0x1A3 JUMPI DUP1 PUSH4 0x3BCCF4FD EQ PUSH2 0x392 JUMPI DUP1 PUSH4 0x3E4F49E6 EQ PUSH2 0x3A5 JUMPI DUP1 PUSH4 0x40E58EE5 EQ PUSH2 0x3C5 JUMPI DUP1 PUSH4 0x452A9320 EQ PUSH2 0x3D8 JUMPI DUP1 PUSH4 0x56781388 EQ PUSH2 0x3E0 JUMPI DUP1 PUSH4 0x5C60DA1B EQ PUSH2 0x3F3 JUMPI PUSH2 0x25E JUMP JUMPDEST DUP1 PUSH4 0x25FD935A EQ PUSH2 0x328 JUMPI DUP1 PUSH4 0x26782247 EQ PUSH2 0x330 JUMPI DUP1 PUSH4 0x328DD982 EQ PUSH2 0x345 JUMPI DUP1 PUSH4 0x35A87DE2 EQ PUSH2 0x368 JUMPI DUP1 PUSH4 0x3932ABB1 EQ PUSH2 0x38A JUMPI PUSH2 0x25E JUMP JUMPDEST DUP1 PUSH4 0x1B9CE575 GT PUSH2 0x226 JUMPI DUP1 PUSH4 0x1B9CE575 EQ PUSH2 0x2E6 JUMPI DUP1 PUSH4 0x1EBCFEFD EQ PUSH2 0x2FB JUMPI DUP1 PUSH4 0x20606B70 EQ PUSH2 0x310 JUMPI DUP1 PUSH4 0x215809CA EQ PUSH2 0x318 JUMPI DUP1 PUSH4 0x24BC1A64 EQ PUSH2 0x320 JUMPI PUSH2 0x25E JUMP JUMPDEST DUP1 PUSH4 0x13CF08B EQ PUSH2 0x263 JUMPI DUP1 PUSH4 0x2A251A3 EQ PUSH2 0x296 JUMPI DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x2AB JUMPI DUP1 PUSH4 0x164A1AB1 EQ PUSH2 0x2C0 JUMPI DUP1 PUSH4 0x17977C61 EQ PUSH2 0x2D3 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x276 PUSH2 0x271 CALLDATASIZE PUSH1 0x4 PUSH2 0x2E15 JUMP JUMPDEST PUSH2 0x513 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x28D SWAP12 SWAP11 SWAP10 SWAP9 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x462C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x29E PUSH2 0x57F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x28D SWAP2 SWAP1 PUSH2 0x4220 JUMP JUMPDEST PUSH2 0x2B3 PUSH2 0x585 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x28D SWAP2 SWAP1 PUSH2 0x42E5 JUMP JUMPDEST PUSH2 0x29E PUSH2 0x2CE CALLDATASIZE PUSH1 0x4 PUSH2 0x2CAC JUMP JUMPDEST PUSH2 0x5B5 JUMP JUMPDEST PUSH2 0x29E PUSH2 0x2E1 CALLDATASIZE PUSH1 0x4 PUSH2 0x2BF7 JUMP JUMPDEST PUSH2 0xA73 JUMP JUMPDEST PUSH2 0x2EE PUSH2 0xA85 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x28D SWAP2 SWAP1 PUSH2 0x42C9 JUMP JUMPDEST PUSH2 0x30E PUSH2 0x309 CALLDATASIZE PUSH1 0x4 PUSH2 0x2E15 JUMP JUMPDEST PUSH2 0xA94 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x29E PUSH2 0xB04 JUMP JUMPDEST PUSH2 0x29E PUSH2 0xB1B JUMP JUMPDEST PUSH2 0x29E PUSH2 0xB21 JUMP JUMPDEST PUSH2 0x29E PUSH2 0xB2F JUMP JUMPDEST PUSH2 0x338 PUSH2 0xB3D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x28D SWAP2 SWAP1 PUSH2 0x40F0 JUMP JUMPDEST PUSH2 0x358 PUSH2 0x353 CALLDATASIZE PUSH1 0x4 PUSH2 0x2E15 JUMP JUMPDEST PUSH2 0xB4C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x28D SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x41D3 JUMP JUMPDEST PUSH2 0x37B PUSH2 0x376 CALLDATASIZE PUSH1 0x4 PUSH2 0x2E15 JUMP JUMPDEST PUSH2 0xDDB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x28D SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x46DE JUMP JUMPDEST PUSH2 0x29E PUSH2 0xDFC JUMP JUMPDEST PUSH2 0x30E PUSH2 0x3A0 CALLDATASIZE PUSH1 0x4 PUSH2 0x2F04 JUMP JUMPDEST PUSH2 0xE02 JUMP JUMPDEST PUSH2 0x3B8 PUSH2 0x3B3 CALLDATASIZE PUSH1 0x4 PUSH2 0x2E15 JUMP JUMPDEST PUSH2 0xFDA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x28D SWAP2 SWAP1 PUSH2 0x42D7 JUMP JUMPDEST PUSH2 0x30E PUSH2 0x3D3 CALLDATASIZE PUSH1 0x4 PUSH2 0x2E15 JUMP JUMPDEST PUSH2 0x1174 JUMP JUMPDEST PUSH2 0x338 PUSH2 0x140A JUMP JUMPDEST PUSH2 0x30E PUSH2 0x3EE CALLDATASIZE PUSH1 0x4 PUSH2 0x2E6D JUMP JUMPDEST PUSH2 0x1419 JUMP JUMPDEST PUSH2 0x338 PUSH2 0x1463 JUMP JUMPDEST PUSH2 0x29E PUSH2 0x1472 JUMP JUMPDEST PUSH2 0x30E PUSH2 0x411 CALLDATASIZE PUSH1 0x4 PUSH2 0x2E9D JUMP JUMPDEST PUSH2 0x1480 JUMP JUMPDEST PUSH2 0x29E PUSH2 0x14D0 JUMP JUMPDEST PUSH2 0x30E PUSH2 0x42C CALLDATASIZE PUSH1 0x4 PUSH2 0x2C1D JUMP JUMPDEST PUSH2 0x14D6 JUMP JUMPDEST PUSH2 0x29E PUSH2 0x1860 JUMP JUMPDEST PUSH2 0x29E PUSH2 0x1867 JUMP JUMPDEST PUSH2 0x29E PUSH2 0x186E JUMP JUMPDEST PUSH2 0x30E PUSH2 0x457 CALLDATASIZE PUSH1 0x4 PUSH2 0x2BF7 JUMP JUMPDEST PUSH2 0x1874 JUMP JUMPDEST PUSH2 0x2EE PUSH2 0x18F1 JUMP JUMPDEST PUSH2 0x29E PUSH2 0x1900 JUMP JUMPDEST PUSH2 0x30E PUSH2 0x47A CALLDATASIZE PUSH1 0x4 PUSH2 0x2E15 JUMP JUMPDEST PUSH2 0x1906 JUMP JUMPDEST PUSH2 0x29E PUSH2 0x1B9A JUMP JUMPDEST PUSH2 0x49A PUSH2 0x495 CALLDATASIZE PUSH1 0x4 PUSH2 0x2E33 JUMP JUMPDEST PUSH2 0x1BA6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x28D SWAP2 SWAP1 PUSH2 0x4566 JUMP JUMPDEST PUSH2 0x30E PUSH2 0x4B5 CALLDATASIZE PUSH1 0x4 PUSH2 0x2BF7 JUMP JUMPDEST PUSH2 0x1C13 JUMP JUMPDEST PUSH2 0x29E PUSH2 0x1CCB JUMP JUMPDEST PUSH2 0x30E PUSH2 0x1CD0 JUMP JUMPDEST PUSH2 0x2EE PUSH2 0x4D8 CALLDATASIZE PUSH1 0x4 PUSH2 0x2E15 JUMP JUMPDEST PUSH2 0x1DAE JUMP JUMPDEST PUSH2 0x338 PUSH2 0x1DC9 JUMP JUMPDEST PUSH2 0x30E PUSH2 0x4F3 CALLDATASIZE PUSH1 0x4 PUSH2 0x2BF7 JUMP JUMPDEST PUSH2 0x1DD8 JUMP JUMPDEST PUSH2 0x29E PUSH2 0x1F1C JUMP JUMPDEST PUSH2 0x30E PUSH2 0x50E CALLDATASIZE PUSH1 0x4 PUSH2 0x2E15 JUMP JUMPDEST PUSH2 0x1F22 JUMP JUMPDEST PUSH1 0xA PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x40 SWAP1 SWAP2 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 SWAP7 DUP7 ADD SLOAD PUSH1 0xB DUP8 ADD SLOAD PUSH1 0xC DUP9 ADD SLOAD PUSH1 0xE SWAP1 SWAP9 ADD SLOAD SWAP7 SWAP9 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP7 AND SWAP8 SWAP5 SWAP7 SWAP4 SWAP6 SWAP3 SWAP5 SWAP3 SWAP4 SWAP2 SWAP3 SWAP1 SWAP2 PUSH1 0xFF DUP1 DUP4 AND SWAP3 PUSH2 0x100 SWAP1 DIV DUP2 AND SWAP2 AND DUP12 JUMP JUMPDEST PUSH1 0x4 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x14 DUP2 MSTORE PUSH1 0x20 ADD PUSH20 0x56656E757320476F7665726E6F7220427261766F PUSH1 0x60 SHL DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x6 SLOAD PUSH1 0x0 EQ ISZERO PUSH2 0x5E3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5DA SWAP1 PUSH2 0x4336 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0xE PUSH1 0x0 DUP4 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x5F3 JUMPI INVALID JUMPDEST PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 PUSH1 0x2 ADD SLOAD PUSH1 0x9 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x782D6FE1 CALLER PUSH2 0x627 NUMBER PUSH1 0x1 PUSH2 0x20D5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x644 SWAP3 SWAP2 SWAP1 PUSH2 0x40FE JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x65C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x670 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 0x694 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2F79 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB AND LT ISZERO PUSH2 0x6BB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5DA SWAP1 PUSH2 0x44D6 JUMP JUMPDEST DUP6 MLOAD DUP8 MLOAD EQ DUP1 ISZERO PUSH2 0x6CD JUMPI POP DUP5 MLOAD DUP8 MLOAD EQ JUMPDEST DUP1 ISZERO PUSH2 0x6DA JUMPI POP DUP4 MLOAD DUP8 MLOAD EQ JUMPDEST PUSH2 0x6F6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5DA SWAP1 PUSH2 0x43B6 JUMP JUMPDEST DUP7 MLOAD PUSH2 0x714 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5DA SWAP1 PUSH2 0x4416 JUMP JUMPDEST PUSH1 0xC SLOAD DUP8 MLOAD GT ISZERO PUSH2 0x737 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5DA SWAP1 PUSH2 0x4466 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP1 ISZERO PUSH2 0x7B4 JUMPI PUSH1 0x0 PUSH2 0x758 DUP3 PUSH2 0xFDA JUMP JUMPDEST SWAP1 POP PUSH1 0x1 DUP2 PUSH1 0x7 DUP2 GT ISZERO PUSH2 0x768 JUMPI INVALID JUMPDEST EQ ISZERO PUSH2 0x786 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5DA SWAP1 PUSH2 0x44B6 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x7 DUP2 GT ISZERO PUSH2 0x794 JUMPI INVALID JUMPDEST EQ ISZERO PUSH2 0x7B2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5DA SWAP1 PUSH2 0x4476 JUMP JUMPDEST POP JUMPDEST PUSH1 0x0 PUSH2 0x7E4 NUMBER PUSH1 0xE PUSH1 0x0 DUP8 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x7CA JUMPI INVALID JUMPDEST PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD PUSH2 0x20FD JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x816 DUP3 PUSH1 0xE PUSH1 0x0 DUP9 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x7FC JUMPI INVALID JUMPDEST PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH2 0x20FD JUMP JUMPDEST PUSH1 0x7 DUP1 SLOAD PUSH1 0x1 ADD SWAP1 SSTORE SWAP1 POP PUSH2 0x829 PUSH2 0x24A0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH2 0x1E0 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x7 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 DUP13 DUP2 MSTORE PUSH1 0x20 ADD DUP12 DUP2 MSTORE PUSH1 0x20 ADD DUP11 DUP2 MSTORE PUSH1 0x20 ADD DUP10 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 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD DUP8 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x8AA JUMPI INVALID JUMPDEST PUSH1 0xFF AND SWAP1 MSTORE DUP1 MLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP4 MLOAD DUP2 SSTORE DUP2 DUP5 ADD MLOAD PUSH1 0x1 DUP3 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE SWAP2 DUP4 ADD MLOAD PUSH1 0x2 DUP4 ADD SSTORE PUSH1 0x60 DUP4 ADD MLOAD DUP1 MLOAD SWAP4 SWAP5 POP DUP5 SWAP4 PUSH2 0x911 SWAP3 PUSH1 0x3 DUP6 ADD SWAP3 ADD SWAP1 PUSH2 0x2526 JUMP JUMPDEST POP PUSH1 0x80 DUP3 ADD MLOAD DUP1 MLOAD PUSH2 0x92D SWAP2 PUSH1 0x4 DUP5 ADD SWAP2 PUSH1 0x20 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x258B JUMP JUMPDEST POP PUSH1 0xA0 DUP3 ADD MLOAD DUP1 MLOAD PUSH2 0x949 SWAP2 PUSH1 0x5 DUP5 ADD SWAP2 PUSH1 0x20 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x25D2 JUMP JUMPDEST POP PUSH1 0xC0 DUP3 ADD MLOAD DUP1 MLOAD PUSH2 0x965 SWAP2 PUSH1 0x6 DUP5 ADD SWAP2 PUSH1 0x20 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x262B JUMP JUMPDEST POP PUSH1 0xE0 DUP3 ADD MLOAD PUSH1 0x7 DUP3 ADD SSTORE PUSH2 0x100 DUP1 DUP4 ADD MLOAD PUSH1 0x8 DUP4 ADD SSTORE PUSH2 0x120 DUP4 ADD MLOAD PUSH1 0x9 DUP4 ADD SSTORE PUSH2 0x140 DUP4 ADD MLOAD PUSH1 0xA DUP4 ADD SSTORE PUSH2 0x160 DUP4 ADD MLOAD PUSH1 0xB DUP1 DUP5 ADD SWAP2 SWAP1 SWAP2 SSTORE PUSH2 0x180 DUP5 ADD MLOAD PUSH1 0xC DUP5 ADD DUP1 SLOAD PUSH2 0x1A0 DUP8 ADD MLOAD PUSH1 0xFF NOT SWAP2 DUP3 AND SWAP4 ISZERO ISZERO SWAP4 SWAP1 SWAP4 OR PUSH2 0xFF00 NOT AND SWAP3 ISZERO ISZERO SWAP1 SWAP5 MUL SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x1C0 SWAP1 SWAP4 ADD MLOAD PUSH1 0xE SWAP1 SWAP3 ADD DUP1 SLOAD SWAP1 SWAP2 AND PUSH1 0xFF SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE DUP2 MLOAD PUSH1 0x20 DUP1 DUP5 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE SWAP3 SWAP1 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 SSTORE DUP1 MLOAD PUSH32 0xC8DF7FF219F3C0358E14500814D8B62B443A4BEBF3A596BAA60B9295B1CF1BDE SWAP1 CALLER DUP14 DUP14 DUP14 DUP14 DUP10 DUP10 DUP16 DUP16 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xA44 JUMPI INVALID JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xA5A SWAP11 SWAP10 SWAP9 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4574 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 MLOAD SWAP4 POP POP POP POP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xABE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5DA SWAP1 PUSH2 0x4486 JUMP JUMPDEST PUSH1 0xC DUP1 SLOAD SWAP1 DUP3 SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH32 0xD03B3C3C5C1446BCDD31423061041C94CA3BC5450FE7CCFB0F636F4C420DE87E SWAP1 PUSH2 0xAF8 SWAP1 DUP4 SWAP1 DUP6 SWAP1 PUSH2 0x46D0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xB10 SWAP1 PUSH2 0x40E5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 DUP2 JUMP JUMPDEST PUSH2 0xE10 DUP2 JUMP JUMPDEST PUSH10 0x7F0E10AF47C1C7000000 DUP2 JUMP JUMPDEST PUSH10 0x3F870857A3E0E3800000 DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x60 DUP1 PUSH1 0x60 DUP1 PUSH1 0x0 PUSH1 0xA 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 0xBCE 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 0xBB0 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 0xC20 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 0xC0C 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 0xCF3 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 0xCDF JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xCB4 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xCDF 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 0xCC2 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 0xC48 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 0xDC5 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 0xDB1 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xD86 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xDB1 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 0xD94 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 0xD1A 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 0xE PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0x2 SWAP1 SWAP3 ADD SLOAD SWAP1 SWAP2 SWAP1 DUP4 JUMP JUMPDEST PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD PUSH2 0xE10 SWAP1 PUSH2 0x40E5 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB DUP3 KECCAK256 DUP3 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x14 DUP3 MSTORE PUSH20 0x56656E757320476F7665726E6F7220427261766F PUSH1 0x60 SHL PUSH1 0x20 SWAP1 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0x157D76627A3B71C0167806F5879F7A61D3E301322F3A3B9F900315F15937671A PUSH2 0xE6E PUSH2 0x2129 JUMP JUMPDEST ADDRESS PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xE82 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x422E 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 0xEA8 SWAP1 PUSH2 0x40A9 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB DUP2 KECCAK256 PUSH2 0xEC1 SWAP2 DUP10 SWAP1 DUP10 SWAP1 PUSH1 0x20 ADD PUSH2 0x426C 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 0xEEE SWAP3 SWAP2 SWAP1 PUSH2 0x40B4 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 0xF2B SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4294 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xF4D 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 0xF80 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5DA SWAP1 PUSH2 0x43A6 JUMP JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xB8E138887D0AA13BAB447E82DE9D5C1777041ECD21CA36BA824FF1E6C07DDDA4 DUP11 DUP11 PUSH2 0xFB8 DUP6 DUP15 DUP15 PUSH2 0x212E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xFC7 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x474C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x7 SLOAD LT ISZERO DUP1 ISZERO PUSH2 0xFEF JUMPI POP PUSH1 0x6 SLOAD DUP3 GT JUMPDEST PUSH2 0x100B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5DA SWAP1 PUSH2 0x44F6 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0xC DUP2 ADD SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x1030 JUMPI PUSH1 0x2 SWAP2 POP POP PUSH2 0x116F JUMP JUMPDEST DUP1 PUSH1 0x7 ADD SLOAD NUMBER GT PUSH2 0x1045 JUMPI PUSH1 0x0 SWAP2 POP POP PUSH2 0x116F JUMP JUMPDEST DUP1 PUSH1 0x8 ADD SLOAD NUMBER GT PUSH2 0x105A JUMPI PUSH1 0x1 SWAP2 POP POP PUSH2 0x116F JUMP JUMPDEST DUP1 PUSH1 0xA ADD SLOAD DUP2 PUSH1 0x9 ADD SLOAD GT ISZERO DUP1 PUSH2 0x107E JUMPI POP PUSH10 0x7F0E10AF47C1C7000000 DUP2 PUSH1 0x9 ADD SLOAD LT JUMPDEST ISZERO PUSH2 0x108D JUMPI PUSH1 0x3 SWAP2 POP POP PUSH2 0x116F JUMP JUMPDEST PUSH1 0x2 DUP2 ADD SLOAD PUSH2 0x10A0 JUMPI PUSH1 0x4 SWAP2 POP POP PUSH2 0x116F JUMP JUMPDEST PUSH1 0xC DUP2 ADD SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x10BC JUMPI PUSH1 0x7 SWAP2 POP POP PUSH2 0x116F JUMP JUMPDEST PUSH1 0x2 DUP2 ADD SLOAD PUSH1 0xE DUP3 ADD SLOAD PUSH1 0xFF AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SLOAD DUP3 MLOAD PUSH4 0x60D143F1 PUSH1 0xE1 SHL DUP2 MSTORE SWAP3 MLOAD PUSH2 0x1159 SWAP5 SWAP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP3 PUSH4 0xC1A287E2 SWAP3 PUSH1 0x4 DUP1 DUP3 ADD SWAP4 SWAP2 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x111C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1130 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 0x1154 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2DC3 JUMP JUMPDEST PUSH2 0x20FD JUMP JUMPDEST TIMESTAMP LT PUSH2 0x1169 JUMPI PUSH1 0x6 SWAP2 POP POP PUSH2 0x116F JUMP JUMPDEST PUSH1 0x5 SWAP2 POP POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x7 PUSH2 0x117F DUP3 PUSH2 0xFDA JUMP JUMPDEST PUSH1 0x7 DUP2 GT ISZERO PUSH2 0x118A JUMPI INVALID JUMPDEST EQ ISZERO PUSH2 0x11A8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5DA SWAP1 PUSH2 0x44E6 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0xD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ DUP1 PUSH2 0x11DB JUMPI POP PUSH1 0x1 DUP2 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ JUMPDEST DUP1 PUSH2 0x129E JUMPI POP PUSH1 0xE DUP2 DUP2 ADD SLOAD PUSH1 0xFF AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x2 ADD SLOAD PUSH1 0x9 SLOAD PUSH1 0x1 DUP1 DUP5 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 AND SWAP3 PUSH4 0x782D6FE1 SWAP3 SWAP2 AND SWAP1 PUSH2 0x1226 SWAP1 NUMBER SWAP1 PUSH2 0x20D5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1243 SWAP3 SWAP2 SWAP1 PUSH2 0x4134 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x125B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x126F 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 0x1293 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2F79 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB AND LT JUMPDEST PUSH2 0x12BA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5DA SWAP1 PUSH2 0x4446 JUMP JUMPDEST PUSH1 0xC 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 0x13DA JUMPI PUSH1 0xE DUP3 ADD SLOAD PUSH1 0xFF AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 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 0x1312 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 0x133A JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD DUP6 PUSH1 0x5 ADD DUP6 DUP2 SLOAD DUP2 LT PUSH2 0x1354 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD DUP7 PUSH1 0x6 ADD DUP7 DUP2 SLOAD DUP2 LT PUSH2 0x136D 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 0x139C SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4192 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x13B6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x13CA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 POP PUSH2 0x12CC SWAP1 POP JUMP JUMPDEST POP PUSH32 0x789CF55BE980739DAD1D0699B93B58E806B51C9D96619BFA8FE0A28ABAA7B30C DUP3 PUSH1 0x40 MLOAD PUSH2 0xAF8 SWAP2 SWAP1 PUSH2 0x4220 JUMP JUMPDEST PUSH1 0xD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST CALLER PUSH32 0xB8E138887D0AA13BAB447E82DE9D5C1777041ECD21CA36BA824FF1E6C07DDDA4 DUP4 DUP4 PUSH2 0x1448 DUP5 DUP4 DUP4 PUSH2 0x212E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1457 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x474C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH10 0x1FC3842BD1F071C00000 DUP2 JUMP JUMPDEST CALLER PUSH32 0xB8E138887D0AA13BAB447E82DE9D5C1777041ECD21CA36BA824FF1E6C07DDDA4 DUP6 DUP6 PUSH2 0x14AF DUP5 DUP4 DUP4 PUSH2 0x212E JUMP JUMPDEST DUP7 DUP7 PUSH1 0x40 MLOAD PUSH2 0x14C2 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4706 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP POP JUMP JUMPDEST PUSH1 0xC SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 MSTORE PUSH1 0xF PUSH1 0x20 MSTORE PUSH32 0xF4803E074BD026BAAF6ED2E288C9515F68C72FB7216EEBDD7CAE1718A53EC375 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ISZERO PUSH2 0x1527 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5DA SWAP1 PUSH2 0x43D6 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x1551 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5DA SWAP1 PUSH2 0x43C6 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH2 0x1577 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5DA SWAP1 PUSH2 0x4386 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x159D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5DA SWAP1 PUSH2 0x4456 JUMP JUMPDEST DUP2 MLOAD PUSH1 0x3 EQ PUSH2 0x15BE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5DA SWAP1 PUSH2 0x4326 JUMP JUMPDEST DUP3 MLOAD PUSH1 0x3 EQ PUSH2 0x15DF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5DA SWAP1 PUSH2 0x4506 JUMP JUMPDEST PUSH1 0x9 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP8 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP3 DUP4 AND OR SWAP1 SWAP3 SSTORE PUSH1 0xA PUSH1 0xC SSTORE PUSH1 0xD DUP1 SLOAD SWAP3 DUP5 AND SWAP3 SWAP1 SWAP2 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE DUP3 MLOAD PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1858 JUMPI PUSH2 0xE10 DUP6 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x1630 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x20 ADD MLOAD LT ISZERO PUSH2 0x165A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5DA SWAP1 PUSH2 0x4376 JUMP JUMPDEST PUSH3 0x62700 DUP6 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x166A JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x20 ADD MLOAD GT ISZERO PUSH2 0x1694 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5DA SWAP1 PUSH2 0x4546 JUMP JUMPDEST PUSH1 0x1 DUP6 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x16A2 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x0 ADD MLOAD LT ISZERO PUSH2 0x16CC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5DA SWAP1 PUSH2 0x4436 JUMP JUMPDEST PUSH3 0x31380 DUP6 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x16DC JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x0 ADD MLOAD GT ISZERO PUSH2 0x1706 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5DA SWAP1 PUSH2 0x44A6 JUMP JUMPDEST PUSH10 0x1FC3842BD1F071C00000 DUP6 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x171D JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x40 ADD MLOAD LT ISZERO PUSH2 0x1747 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5DA SWAP1 PUSH2 0x4346 JUMP JUMPDEST PUSH10 0x3F870857A3E0E3800000 DUP6 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x175E JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x40 ADD MLOAD GT ISZERO PUSH2 0x1788 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5DA SWAP1 PUSH2 0x4556 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x179F JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO PUSH2 0x17CE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5DA SWAP1 PUSH2 0x4496 JUMP JUMPDEST DUP5 DUP2 DUP2 MLOAD DUP2 LT PUSH2 0x17DA JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0xE DUP4 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 DUP3 MLOAD DUP2 SSTORE SWAP3 DUP3 ADD MLOAD PUSH1 0x1 DUP5 ADD SSTORE ADD MLOAD PUSH1 0x2 SWAP1 SWAP2 ADD SSTORE DUP4 MLOAD DUP5 SWAP1 DUP3 SWAP1 DUP2 LT PUSH2 0x1818 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0xF SWAP1 SWAP3 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH1 0x1 ADD PUSH2 0x1619 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH3 0x62700 DUP2 JUMP JUMPDEST PUSH3 0x31380 DUP2 JUMP JUMPDEST PUSH1 0x5 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x189E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5DA SWAP1 PUSH2 0x4306 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND OR SWAP1 SWAP3 SSTORE PUSH1 0x40 MLOAD SWAP2 AND SWAP1 PUSH32 0xCA4F2F25D0898EDD99413412FB94012F9E54EC8142F9B093E7720646A95B16A9 SWAP1 PUSH2 0xAF8 SWAP1 DUP4 SWAP1 DUP6 SWAP1 PUSH2 0x4119 JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x7 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x4 PUSH2 0x1911 DUP3 PUSH2 0xFDA JUMP JUMPDEST PUSH1 0x7 DUP2 GT ISZERO PUSH2 0x191C JUMPI INVALID JUMPDEST EQ PUSH2 0x1939 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5DA SWAP1 PUSH2 0x43E6 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0xE DUP2 ADD SLOAD PUSH1 0xFF AND DUP5 MSTORE PUSH1 0xF DUP4 MSTORE DUP2 DUP5 KECCAK256 SLOAD DUP3 MLOAD PUSH4 0xD48571F PUSH1 0xE3 SHL DUP2 MSTORE SWAP3 MLOAD SWAP2 SWAP5 SWAP4 PUSH2 0x19A2 SWAP4 TIMESTAMP SWAP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP4 AND SWAP3 PUSH4 0x6A42B8F8 SWAP3 PUSH1 0x4 DUP1 DUP5 ADD SWAP4 SWAP2 SWAP3 SWAP2 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x111C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 POP PUSH1 0x0 JUMPDEST PUSH1 0x3 DUP4 ADD SLOAD DUP2 LT ISZERO PUSH2 0x1B53 JUMPI PUSH2 0x1B4B DUP4 PUSH1 0x3 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x19C5 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 0x19ED JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD DUP6 PUSH1 0x5 ADD DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x1A07 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 0x1A95 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1A6A JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1A95 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 0x1A78 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 0x1AA9 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 0x1B37 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1B0C JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1B37 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 0x1B1A JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP PUSH1 0xE DUP10 ADD SLOAD DUP9 SWAP2 POP PUSH1 0xFF AND PUSH2 0x231E JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0x19A7 JUMP JUMPDEST POP PUSH1 0x2 DUP3 ADD DUP2 SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH32 0x9A2E42FD6722813D69113E7D0079D3D940171428DF7373DF9C7F7617CFDA2892 SWAP1 PUSH2 0x1B8D SWAP1 DUP6 SWAP1 DUP5 SWAP1 PUSH2 0x46D0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xB10 SWAP1 PUSH2 0x40A9 JUMP JUMPDEST PUSH2 0x1BAE PUSH2 0x2684 JUMP JUMPDEST POP PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP5 MSTORE PUSH1 0xD 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 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 0xD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ DUP1 PUSH2 0x1C36 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ JUMPDEST PUSH2 0x1C52 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5DA SWAP1 PUSH2 0x4526 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x1C78 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5DA SWAP1 PUSH2 0x4516 JUMP JUMPDEST PUSH1 0xD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND OR SWAP1 SWAP3 SSTORE PUSH1 0x40 MLOAD SWAP2 AND SWAP1 PUSH32 0x8FDAF06427A2010E5958F4329B566993472D14CE81D3F16CE7F2A2660DA98E3 SWAP1 PUSH2 0xAF8 SWAP1 DUP4 SWAP1 DUP6 SWAP1 PUSH2 0x4119 JUMP JUMPDEST PUSH1 0x1 DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ DUP1 ISZERO PUSH2 0x1CE9 JUMPI POP CALLER ISZERO ISZERO JUMPDEST PUSH2 0x1D05 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5DA SWAP1 PUSH2 0x4426 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP3 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP1 DUP7 AND DUP3 OR SWAP7 DUP8 SWAP1 SSTORE SWAP1 SWAP3 AND SWAP1 SWAP3 SSTORE PUSH1 0x40 MLOAD SWAP3 DUP3 AND SWAP4 SWAP1 SWAP3 PUSH32 0xF9FFABCA9C8276E99321725BCB43FB076A6C66A54B7F21C4E8146D8519B417DC SWAP3 PUSH2 0x1D69 SWAP3 DUP7 SWAP3 SWAP2 AND SWAP1 PUSH2 0x4119 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD PUSH32 0xCA4F2F25D0898EDD99413412FB94012F9E54EC8142F9B093E7720646A95B16A9 SWAP2 PUSH2 0xAF8 SWAP2 DUP5 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH2 0x4119 JUMP JUMPDEST PUSH1 0xF PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x1E02 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5DA SWAP1 PUSH2 0x44C6 JUMP JUMPDEST PUSH1 0x6 SLOAD ISZERO PUSH2 0x1E22 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5DA SWAP1 PUSH2 0x4406 JUMP JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xDA35C664 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1E5D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1E71 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 0x1E95 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2DC3 JUMP JUMPDEST PUSH1 0x7 DUP2 SWAP1 SSTORE PUSH1 0x6 SSTORE PUSH1 0x0 JUMPDEST PUSH1 0x3 DUP2 LT ISZERO PUSH2 0x1F18 JUMPI PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SLOAD DUP2 MLOAD PUSH4 0xE18B681 PUSH1 0xE0 SHL DUP2 MSTORE SWAP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP3 PUSH4 0xE18B681 SWAP3 PUSH1 0x4 DUP1 DUP3 ADD SWAP4 SWAP2 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1EF5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1F09 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP DUP1 PUSH1 0x1 ADD SWAP1 POP PUSH2 0x1EA0 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x6 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x5 PUSH2 0x1F2D DUP3 PUSH2 0xFDA JUMP JUMPDEST PUSH1 0x7 DUP2 GT ISZERO PUSH2 0x1F38 JUMPI INVALID JUMPDEST EQ PUSH2 0x1F55 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5DA SWAP1 PUSH2 0x4396 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH1 0xC DUP2 ADD DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE SWAP1 JUMPDEST PUSH1 0x3 DUP3 ADD SLOAD DUP2 LT ISZERO PUSH2 0x20A5 JUMPI PUSH1 0xE DUP3 ADD SLOAD PUSH1 0xFF AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x3 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 0x1FBC 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 0x1FE4 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD DUP6 PUSH1 0x5 ADD DUP6 DUP2 SLOAD DUP2 LT PUSH2 0x1FFE JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD DUP7 PUSH1 0x6 ADD DUP7 DUP2 SLOAD DUP2 LT PUSH2 0x2017 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 0x2046 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4192 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2060 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2074 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 0x209C SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2DE1 JUMP JUMPDEST POP PUSH1 0x1 ADD PUSH2 0x1F76 JUMP JUMPDEST POP PUSH32 0x712AE1383F79AC853F8D882153778E0260EF8F03B504E2866E0593E04D2B291F DUP3 PUSH1 0x40 MLOAD PUSH2 0xAF8 SWAP2 SWAP1 PUSH2 0x4220 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 GT ISZERO PUSH2 0x20F7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5DA SWAP1 PUSH2 0x4536 JUMP JUMPDEST POP SWAP1 SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 ADD DUP4 DUP2 LT ISZERO PUSH2 0x2122 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5DA SWAP1 PUSH2 0x43F6 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST CHAINID JUMPDEST SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH2 0x213B DUP5 PUSH2 0xFDA JUMP JUMPDEST PUSH1 0x7 DUP2 GT ISZERO PUSH2 0x2146 JUMPI INVALID JUMPDEST EQ PUSH2 0x2163 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5DA SWAP1 PUSH2 0x4356 JUMP JUMPDEST PUSH1 0x2 DUP3 PUSH1 0xFF AND GT ISZERO PUSH2 0x2187 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5DA SWAP1 PUSH2 0x42F6 JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND DUP5 MSTORE PUSH1 0xD DUP2 ADD SWAP1 SWAP3 MSTORE SWAP1 SWAP2 KECCAK256 DUP1 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x21D0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5DA SWAP1 PUSH2 0x4366 JUMP JUMPDEST PUSH1 0x9 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 0x2206 SWAP2 DUP12 SWAP2 PUSH1 0x4 ADD PUSH2 0x4134 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x221E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2232 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 0x2256 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2F79 JUMP JUMPDEST SWAP1 POP PUSH1 0xFF DUP6 AND PUSH2 0x2281 JUMPI PUSH2 0x2277 DUP4 PUSH1 0xA ADD SLOAD DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB AND PUSH2 0x20FD JUMP JUMPDEST PUSH1 0xA DUP5 ADD SSTORE PUSH2 0x22D7 JUMP JUMPDEST DUP5 PUSH1 0xFF AND PUSH1 0x1 EQ ISZERO PUSH2 0x22AE JUMPI PUSH2 0x22A4 DUP4 PUSH1 0x9 ADD SLOAD DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB AND PUSH2 0x20FD JUMP JUMPDEST PUSH1 0x9 DUP5 ADD SSTORE PUSH2 0x22D7 JUMP JUMPDEST DUP5 PUSH1 0xFF AND PUSH1 0x2 EQ ISZERO PUSH2 0x22D7 JUMPI PUSH2 0x22D1 DUP4 PUSH1 0xB ADD SLOAD DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB AND PUSH2 0x20FD JUMP JUMPDEST PUSH1 0xB DUP5 ADD SSTORE JUMPDEST DUP2 SLOAD PUSH1 0x1 PUSH1 0xFF NOT SWAP1 SWAP2 AND OR PUSH2 0xFF00 NOT AND PUSH2 0x100 PUSH1 0xFF DUP8 AND MUL OR PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFF0000 NOT AND PUSH3 0x10000 PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB DUP4 AND MUL OR SWAP1 SWAP2 SSTORE SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0xFF DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SLOAD SWAP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 PUSH4 0xF2B06537 SWAP2 PUSH2 0x235D SWAP2 DUP11 SWAP2 DUP11 SWAP2 DUP11 SWAP2 DUP11 SWAP2 DUP11 SWAP2 ADD PUSH2 0x4142 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 0x238F SWAP2 SWAP1 PUSH2 0x4220 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x23A7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x23BB 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 0x23DF SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2DA5 JUMP JUMPDEST ISZERO PUSH2 0x23FC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5DA SWAP1 PUSH2 0x4316 JUMP JUMPDEST PUSH1 0xFF DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 SLOAD SWAP1 MLOAD PUSH4 0x3A66F901 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x3A66F901 SWAP1 PUSH2 0x2445 SWAP1 DUP10 SWAP1 DUP10 SWAP1 DUP10 SWAP1 DUP10 SWAP1 DUP10 SWAP1 PUSH1 0x4 ADD PUSH2 0x4142 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x245F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2473 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 0x2497 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2DC3 JUMP JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH2 0x1E0 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 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH1 0xFF AND 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 0x257B JUMPI SWAP2 PUSH1 0x20 MUL DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x257B 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 0x2546 JUMP JUMPDEST POP PUSH2 0x2587 SWAP3 SWAP2 POP PUSH2 0x26A4 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 0x25C6 JUMPI SWAP2 PUSH1 0x20 MUL DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x25C6 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x25AB JUMP JUMPDEST POP PUSH2 0x2587 SWAP3 SWAP2 POP PUSH2 0x26C8 JUMP JUMPDEST DUP3 DUP1 SLOAD DUP3 DUP3 SSTORE SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP3 DUP3 ISZERO PUSH2 0x261F JUMPI SWAP2 PUSH1 0x20 MUL DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x261F JUMPI DUP3 MLOAD DUP1 MLOAD PUSH2 0x260F SWAP2 DUP5 SWAP2 PUSH1 0x20 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x26E2 JUMP JUMPDEST POP SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x25F2 JUMP JUMPDEST POP PUSH2 0x2587 SWAP3 SWAP2 POP PUSH2 0x274F JUMP JUMPDEST DUP3 DUP1 SLOAD DUP3 DUP3 SSTORE SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP3 DUP3 ISZERO PUSH2 0x2678 JUMPI SWAP2 PUSH1 0x20 MUL DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x2678 JUMPI DUP3 MLOAD DUP1 MLOAD PUSH2 0x2668 SWAP2 DUP5 SWAP2 PUSH1 0x20 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x26E2 JUMP JUMPDEST POP SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x264B JUMP JUMPDEST POP PUSH2 0x2587 SWAP3 SWAP2 POP PUSH2 0x2772 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 0x212B SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x2587 JUMPI DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x26AA JUMP JUMPDEST PUSH2 0x212B SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x2587 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x26CE 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 0x2723 JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH2 0x25C6 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x25C6 JUMPI SWAP2 DUP3 ADD DUP3 DUP2 GT ISZERO PUSH2 0x25C6 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x25AB JUMP JUMPDEST PUSH2 0x212B SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x2587 JUMPI PUSH1 0x0 PUSH2 0x2769 DUP3 DUP3 PUSH2 0x2795 JUMP JUMPDEST POP PUSH1 0x1 ADD PUSH2 0x2755 JUMP JUMPDEST PUSH2 0x212B SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x2587 JUMPI PUSH1 0x0 PUSH2 0x278C DUP3 DUP3 PUSH2 0x2795 JUMP JUMPDEST POP PUSH1 0x1 ADD PUSH2 0x2778 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 0x27BB JUMPI POP PUSH2 0x27D9 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP1 PUSH2 0x27D9 SWAP2 SWAP1 PUSH2 0x26C8 JUMP JUMPDEST POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x1C0D DUP2 PUSH2 0x48C1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x27F8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x280B PUSH2 0x2806 DUP3 PUSH2 0x47AB JUMP JUMPDEST PUSH2 0x4785 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 0x2830 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x285C JUMPI DUP2 PUSH2 0x2846 DUP9 DUP3 PUSH2 0x27DC JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x2833 JUMP JUMPDEST POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2877 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x2885 PUSH2 0x2806 DUP3 PUSH2 0x47AB 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 0x285C JUMPI DUP2 CALLDATALOAD DUP7 ADD PUSH2 0x28AD DUP9 DUP3 PUSH2 0x2A93 JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x2897 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x28D4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x28E2 PUSH2 0x2806 DUP3 PUSH2 0x47AB 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 0x2907 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x285C JUMPI DUP2 PUSH2 0x291D DUP9 DUP3 PUSH2 0x2B28 JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x290A JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2944 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x2952 PUSH2 0x2806 DUP3 PUSH2 0x47AB 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 0x285C JUMPI DUP2 CALLDATALOAD DUP7 ADD PUSH2 0x297A DUP9 DUP3 PUSH2 0x2A93 JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x2964 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x29A1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x29AF PUSH2 0x2806 DUP3 PUSH2 0x47AB JUMP JUMPDEST SWAP2 POP DUP2 DUP2 DUP4 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH1 0x20 DUP2 ADD SWAP1 POP DUP4 DUP6 PUSH1 0x60 DUP5 MUL DUP3 ADD GT ISZERO PUSH2 0x29D4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x285C JUMPI DUP2 PUSH2 0x29EA DUP9 DUP3 PUSH2 0x2B86 JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP1 SWAP3 ADD SWAP2 PUSH1 0x60 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x29D7 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2A13 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x2A21 PUSH2 0x2806 DUP3 PUSH2 0x47AB 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 0x2A46 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x285C JUMPI DUP2 PUSH2 0x2A5C DUP9 DUP3 PUSH2 0x2A7D JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x2A49 JUMP JUMPDEST DUP1 MLOAD PUSH2 0x1C0D DUP2 PUSH2 0x48D5 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x1C0D DUP2 PUSH2 0x48DE JUMP JUMPDEST DUP1 MLOAD PUSH2 0x1C0D DUP2 PUSH2 0x48DE JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2AA4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x2AB2 PUSH2 0x2806 DUP3 PUSH2 0x47CB JUMP JUMPDEST SWAP2 POP DUP1 DUP3 MSTORE PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP4 ADD DUP6 DUP4 DUP4 ADD GT ISZERO PUSH2 0x2ACE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2AD9 DUP4 DUP3 DUP5 PUSH2 0x4875 JUMP JUMPDEST POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2AF3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x2B01 PUSH2 0x2806 DUP3 PUSH2 0x47CB JUMP JUMPDEST SWAP2 POP DUP1 DUP3 MSTORE PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP4 ADD DUP6 DUP4 DUP4 ADD GT ISZERO PUSH2 0x2B1D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2AD9 DUP4 DUP3 DUP5 PUSH2 0x4881 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x1C0D DUP2 PUSH2 0x48E7 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x1C0D DUP2 PUSH2 0x48F0 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x2B50 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2B67 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x2B7F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2B98 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2BA2 PUSH1 0x60 PUSH2 0x4785 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x2BB0 DUP5 DUP5 PUSH2 0x2A7D JUMP JUMPDEST DUP3 MSTORE POP PUSH1 0x20 PUSH2 0x2BC1 DUP5 DUP5 DUP4 ADD PUSH2 0x2A7D JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x2BD5 DUP5 DUP3 DUP6 ADD PUSH2 0x2A7D JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x1C0D DUP2 PUSH2 0x48FD JUMP JUMPDEST DUP1 MLOAD PUSH2 0x1C0D DUP2 PUSH2 0x4906 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2C09 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2C15 DUP5 DUP5 PUSH2 0x27DC JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x2C33 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2C3F DUP8 DUP8 PUSH2 0x27DC JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2C5B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2C67 DUP8 DUP3 DUP9 ADD PUSH2 0x2990 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2C83 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2C8F DUP8 DUP3 DUP9 ADD PUSH2 0x28C3 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x60 PUSH2 0x2CA0 DUP8 DUP3 DUP9 ADD PUSH2 0x27DC JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xC0 DUP8 DUP10 SUB SLT ISZERO PUSH2 0x2CC5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP7 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2CDB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2CE7 DUP10 DUP3 DUP11 ADD PUSH2 0x27E7 JUMP JUMPDEST SWAP7 POP POP PUSH1 0x20 DUP8 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2D03 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2D0F DUP10 DUP3 DUP11 ADD PUSH2 0x2A02 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x40 DUP8 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2D2B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2D37 DUP10 DUP3 DUP11 ADD PUSH2 0x2933 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x60 DUP8 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2D53 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2D5F DUP10 DUP3 DUP11 ADD PUSH2 0x2866 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x80 DUP8 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2D7B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2D87 DUP10 DUP3 DUP11 ADD PUSH2 0x2A93 JUMP JUMPDEST SWAP3 POP POP PUSH1 0xA0 PUSH2 0x2D98 DUP10 DUP3 DUP11 ADD PUSH2 0x2B33 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 POP SWAP3 SWAP6 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2DB7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2C15 DUP5 DUP5 PUSH2 0x2A72 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2DD5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2C15 DUP5 DUP5 PUSH2 0x2A88 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2DF3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2E09 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2C15 DUP5 DUP3 DUP6 ADD PUSH2 0x2AE2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2E27 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2C15 DUP5 DUP5 PUSH2 0x2A7D JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2E46 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2E52 DUP6 DUP6 PUSH2 0x2A7D JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x2E63 DUP6 DUP3 DUP7 ADD PUSH2 0x27DC JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2E80 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2E8C DUP6 DUP6 PUSH2 0x2A7D JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x2E63 DUP6 DUP3 DUP7 ADD PUSH2 0x2BE1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x60 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x2EB3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2EBF DUP8 DUP8 PUSH2 0x2A7D JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 PUSH2 0x2ED0 DUP8 DUP3 DUP9 ADD PUSH2 0x2BE1 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2EEC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2EF8 DUP8 DUP3 DUP9 ADD PUSH2 0x2B3E JUMP JUMPDEST SWAP6 SWAP9 SWAP5 SWAP8 POP SWAP6 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x2F1C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2F28 DUP9 DUP9 PUSH2 0x2A7D JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 PUSH2 0x2F39 DUP9 DUP3 DUP10 ADD PUSH2 0x2BE1 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 PUSH2 0x2F4A DUP9 DUP3 DUP10 ADD PUSH2 0x2BE1 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 PUSH2 0x2F5B DUP9 DUP3 DUP10 ADD PUSH2 0x2A7D JUMP JUMPDEST SWAP3 POP POP PUSH1 0x80 PUSH2 0x2F6C DUP9 DUP3 DUP10 ADD PUSH2 0x2A7D 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 0x2F8B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2C15 DUP5 DUP5 PUSH2 0x2BEC JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2FA3 DUP4 DUP4 PUSH2 0x2FD2 JUMP JUMPDEST POP POP PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2122 DUP4 DUP4 PUSH2 0x3174 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2FA3 DUP4 DUP4 PUSH2 0x315A JUMP JUMPDEST PUSH2 0x2FCC DUP2 PUSH2 0x4854 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x2FCC DUP2 PUSH2 0x4811 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2FE6 DUP3 PUSH2 0x4804 JUMP JUMPDEST PUSH2 0x2FF0 DUP2 DUP6 PUSH2 0x4808 JUMP JUMPDEST SWAP4 POP PUSH2 0x2FFB DUP4 PUSH2 0x47F2 JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x3029 JUMPI DUP2 MLOAD PUSH2 0x3013 DUP9 DUP3 PUSH2 0x2F97 JUMP JUMPDEST SWAP8 POP PUSH2 0x301E DUP4 PUSH2 0x47F2 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 ADD PUSH2 0x2FFF JUMP JUMPDEST POP SWAP5 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x303F DUP3 PUSH2 0x4804 JUMP JUMPDEST PUSH2 0x3049 DUP2 DUP6 PUSH2 0x4808 JUMP JUMPDEST SWAP4 POP DUP4 PUSH1 0x20 DUP3 MUL DUP6 ADD PUSH2 0x305B DUP6 PUSH2 0x47F2 JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP6 DUP2 LT ISZERO PUSH2 0x3095 JUMPI DUP5 DUP5 SUB DUP10 MSTORE DUP2 MLOAD PUSH2 0x3078 DUP6 DUP3 PUSH2 0x2FAB JUMP JUMPDEST SWAP5 POP PUSH2 0x3083 DUP4 PUSH2 0x47F2 JUMP JUMPDEST PUSH1 0x20 SWAP11 SWAP1 SWAP11 ADD SWAP10 SWAP3 POP POP PUSH1 0x1 ADD PUSH2 0x305F JUMP JUMPDEST POP SWAP2 SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x30AD DUP3 PUSH2 0x4804 JUMP JUMPDEST PUSH2 0x30B7 DUP2 DUP6 PUSH2 0x4808 JUMP JUMPDEST SWAP4 POP DUP4 PUSH1 0x20 DUP3 MUL DUP6 ADD PUSH2 0x30C9 DUP6 PUSH2 0x47F2 JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP6 DUP2 LT ISZERO PUSH2 0x3095 JUMPI DUP5 DUP5 SUB DUP10 MSTORE DUP2 MLOAD PUSH2 0x30E6 DUP6 DUP3 PUSH2 0x2FAB JUMP JUMPDEST SWAP5 POP PUSH2 0x30F1 DUP4 PUSH2 0x47F2 JUMP JUMPDEST PUSH1 0x20 SWAP11 SWAP1 SWAP11 ADD SWAP10 SWAP3 POP POP PUSH1 0x1 ADD PUSH2 0x30CD JUMP JUMPDEST PUSH1 0x0 PUSH2 0x310E DUP3 PUSH2 0x4804 JUMP JUMPDEST PUSH2 0x3118 DUP2 DUP6 PUSH2 0x4808 JUMP JUMPDEST SWAP4 POP PUSH2 0x3123 DUP4 PUSH2 0x47F2 JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x3029 JUMPI DUP2 MLOAD PUSH2 0x313B DUP9 DUP3 PUSH2 0x2FB7 JUMP JUMPDEST SWAP8 POP PUSH2 0x3146 DUP4 PUSH2 0x47F2 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 ADD PUSH2 0x3127 JUMP JUMPDEST PUSH2 0x2FCC DUP2 PUSH2 0x481C JUMP JUMPDEST PUSH2 0x2FCC DUP2 PUSH2 0x212B JUMP JUMPDEST PUSH2 0x2FCC PUSH2 0x316F DUP3 PUSH2 0x212B JUMP JUMPDEST PUSH2 0x212B JUMP JUMPDEST PUSH1 0x0 PUSH2 0x317F DUP3 PUSH2 0x4804 JUMP JUMPDEST PUSH2 0x3189 DUP2 DUP6 PUSH2 0x4808 JUMP JUMPDEST SWAP4 POP PUSH2 0x3199 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x4881 JUMP JUMPDEST PUSH2 0x31A2 DUP2 PUSH2 0x48AD 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 0x31C9 JUMPI PUSH1 0x1 DUP2 EQ PUSH2 0x31EF JUMPI PUSH2 0x322E JUMP JUMPDEST PUSH1 0x7F PUSH1 0x2 DUP4 DIV AND PUSH2 0x31DA DUP2 DUP8 PUSH2 0x4808 JUMP JUMPDEST PUSH1 0xFF NOT DUP5 AND DUP2 MSTORE SWAP6 POP POP PUSH1 0x20 DUP6 ADD SWAP3 POP PUSH2 0x322E JUMP JUMPDEST PUSH1 0x2 DUP3 DIV PUSH2 0x31FD DUP2 DUP8 PUSH2 0x4808 JUMP JUMPDEST SWAP6 POP PUSH2 0x3208 DUP6 PUSH2 0x47F8 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x3227 JUMPI DUP2 SLOAD DUP9 DUP3 ADD MSTORE PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x20 ADD PUSH2 0x320B JUMP JUMPDEST DUP8 ADD SWAP5 POP POP POP JUMPDEST POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x2FCC DUP2 PUSH2 0x4821 JUMP JUMPDEST PUSH2 0x2FCC DUP2 PUSH2 0x485F JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3254 DUP4 DUP6 PUSH2 0x4808 JUMP JUMPDEST SWAP4 POP PUSH2 0x3261 DUP4 DUP6 DUP5 PUSH2 0x4875 JUMP JUMPDEST PUSH2 0x31A2 DUP4 PUSH2 0x48AD JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3277 PUSH1 0x32 DUP4 PUSH2 0x4808 JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A63617374566F7465496E7465726E616C3A DUP2 MSTORE PUSH18 0x20696E76616C696420766F74652074797065 PUSH1 0x70 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x32CB PUSH1 0x28 DUP4 PUSH2 0x116F JUMP JUMPDEST PUSH32 0x42616C6C6F742875696E743235362070726F706F73616C49642C75696E743820 DUP2 MSTORE PUSH8 0x737570706F727429 PUSH1 0xC0 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x28 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3315 PUSH1 0x2A DUP4 PUSH2 0x4808 JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A5F73657450656E64696E6741646D696E3A20 DUP2 MSTORE PUSH10 0x61646D696E206F6E6C79 PUSH1 0xB0 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3361 PUSH1 0x55 DUP4 PUSH2 0x4808 JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A71756575654F72526576657274496E7465 DUP2 MSTORE PUSH32 0x726E616C3A206964656E746963616C2070726F706F73616C20616374696F6E20 PUSH1 0x20 DUP3 ADD MSTORE PUSH21 0x616C72656164792071756575656420617420657461 PUSH1 0x58 SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x33DE PUSH1 0x56 DUP4 PUSH2 0x4808 JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A696E697469616C697A653A6E756D626572 DUP2 MSTORE PUSH32 0x206F662074696D656C6F636B732073686F756C64206D61746368206E756D6265 PUSH1 0x20 DUP3 ADD MSTORE PUSH22 0x72206F6620676F7665726E616E636520726F75746573 PUSH1 0x50 SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x345C PUSH1 0x31 DUP4 PUSH2 0x4808 JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A70726F706F73653A20476F7665726E6F72 DUP2 MSTORE PUSH17 0x20427261766F206E6F7420616374697665 PUSH1 0x78 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x34AF PUSH1 0x2 DUP4 PUSH2 0x116F JUMP JUMPDEST PUSH2 0x1901 PUSH1 0xF0 SHL DUP2 MSTORE PUSH1 0x2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x34CD PUSH1 0x39 DUP4 PUSH2 0x4808 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4910 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP2 MSTORE PUSH32 0x6964206D696E2070726F706F73616C207468726573686F6C6400000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x351A PUSH1 0x31 DUP4 PUSH2 0x4808 JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A63617374566F7465496E7465726E616C3A DUP2 MSTORE PUSH17 0x81D9BDD1A5B99C81A5CC818DB1BDCD959 PUSH1 0x7A SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x356D PUSH1 0x34 DUP4 PUSH2 0x4808 JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A63617374566F7465496E7465726E616C3A DUP2 MSTORE PUSH20 0x81D9BDD195C88185B1C9958591E481D9BDD1959 PUSH1 0x62 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x35C3 PUSH1 0x34 DUP4 PUSH2 0x4808 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4910 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP2 MSTORE PUSH20 0x1A59081B5A5B881D9BDD1A5B99C81C195C9A5BD9 PUSH1 0x62 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3607 PUSH1 0x2E DUP4 PUSH2 0x4808 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4910 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP2 MSTORE PUSH14 0x6964207876732061646472657373 PUSH1 0x90 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3645 PUSH1 0x45 DUP4 PUSH2 0x4808 JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A657865637574653A2070726F706F73616C 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 0x36B2 PUSH1 0x2F DUP4 PUSH2 0x4808 JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A63617374566F746542795369673A20696E DUP2 MSTORE PUSH15 0x76616C6964207369676E6174757265 PUSH1 0x88 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3703 PUSH1 0x44 DUP4 PUSH2 0x4808 JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A70726F706F73653A2070726F706F73616C 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 0x376F PUSH1 0x25 DUP4 PUSH2 0x4808 JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A696E697469616C697A653A2061646D696E DUP2 MSTORE PUSH5 0x206F6E6C79 PUSH1 0xD8 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x37B6 PUSH1 0x32 DUP4 PUSH2 0x4808 JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A696E697469616C697A653A2063616E6E6F DUP2 MSTORE PUSH18 0x7420696E697469616C697A65207477696365 PUSH1 0x70 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x380A PUSH1 0x44 DUP4 PUSH2 0x4808 JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A71756575653A2070726F706F73616C2063 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 0x3876 PUSH1 0x11 DUP4 PUSH2 0x4808 JUMP JUMPDEST PUSH17 0x6164646974696F6E206F766572666C6F77 PUSH1 0x78 SHL DUP2 MSTORE PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x38A3 PUSH1 0x43 DUP4 PUSH2 0x116F 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 0x390E PUSH1 0x30 DUP4 PUSH2 0x4808 JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A5F696E6974696174653A2063616E206F6E DUP2 MSTORE PUSH16 0x6C7920696E697469617465206F6E6365 PUSH1 0x80 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3960 PUSH1 0x2C DUP4 PUSH2 0x4808 JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A70726F706F73653A206D7573742070726F DUP2 MSTORE PUSH12 0x7669646520616374696F6E73 PUSH1 0xA0 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x39AE PUSH1 0x2E DUP4 PUSH2 0x4808 JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A5F61636365707441646D696E3A2070656E64 DUP2 MSTORE PUSH14 0x696E672061646D696E206F6E6C79 PUSH1 0x90 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x39FE PUSH1 0x33 DUP4 PUSH2 0x4808 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4910 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP2 MSTORE PUSH19 0x6964206D696E20766F74696E672064656C6179 PUSH1 0x68 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3A41 PUSH1 0x2F DUP4 PUSH2 0x4808 JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A63616E63656C3A2070726F706F73657220 DUP2 MSTORE PUSH15 0x18589BDD99481D1A1C995CDA1BDB19 PUSH1 0x8A SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3A92 PUSH1 0x2B DUP4 PUSH2 0x4808 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4910 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP2 MSTORE PUSH11 0x34B21033BAB0B93234B0B7 PUSH1 0xA9 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3ACD PUSH1 0x28 DUP4 PUSH2 0x4808 JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A70726F706F73653A20746F6F206D616E79 DUP2 MSTORE PUSH8 0x20616374696F6E73 PUSH1 0xC0 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3B17 PUSH1 0x59 DUP4 PUSH2 0x4808 JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A70726F706F73653A206F6E65206C697665 DUP2 MSTORE PUSH32 0x2070726F706F73616C207065722070726F706F7365722C20666F756E6420616E PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x20616C72656164792070656E64696E672070726F706F73616C00000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3B9C PUSH1 0x34 DUP4 PUSH2 0x4808 JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A5F73657450726F706F73616C4D61784F70 DUP2 MSTORE PUSH20 0x65726174696F6E733A2061646D696E206F6E6C79 PUSH1 0x60 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3BF2 PUSH1 0x32 DUP4 PUSH2 0x4808 JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A696E697469616C697A653A696E76616C69 DUP2 MSTORE PUSH18 0x642074696D656C6F636B2061646472657373 PUSH1 0x70 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3C46 PUSH1 0x33 DUP4 PUSH2 0x4808 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4910 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP2 MSTORE PUSH19 0x6964206D617820766F74696E672064656C6179 PUSH1 0x68 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3C89 PUSH1 0x58 DUP4 PUSH2 0x4808 JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A70726F706F73653A206F6E65206C697665 DUP2 MSTORE PUSH32 0x2070726F706F73616C207065722070726F706F7365722C20666F756E6420616E PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x20616C7265616479206163746976652070726F706F73616C0000000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1C0D PUSH1 0x0 DUP4 PUSH2 0x4808 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3D1B PUSH1 0x24 DUP4 PUSH2 0x4808 JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A5F696E6974696174653A2061646D696E20 DUP2 MSTORE PUSH4 0x6F6E6C79 PUSH1 0xE0 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3D61 PUSH1 0x3F DUP4 PUSH2 0x4808 JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A70726F706F73653A2070726F706F736572 DUP2 MSTORE PUSH32 0x20766F7465732062656C6F772070726F706F73616C207468726573686F6C6400 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3DC0 PUSH1 0x36 DUP4 PUSH2 0x4808 JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A63616E63656C3A2063616E6E6F74206361 DUP2 MSTORE PUSH22 0x1B98D95B08195E1958DD5D1959081C1C9BDC1BDCD85B PUSH1 0x52 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3E18 PUSH1 0x29 DUP4 PUSH2 0x4808 JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A73746174653A20696E76616C6964207072 DUP2 MSTORE PUSH9 0x1BDC1BDCD85B081A59 PUSH1 0xBA SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3E63 PUSH1 0x5D DUP4 PUSH2 0x4808 JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A696E697469616C697A653A6E756D626572 DUP2 MSTORE PUSH32 0x206F662070726F706F73616C20636F6E666967732073686F756C64206D617463 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x68206E756D626572206F6620676F7665726E616E636520726F75746573000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3EE8 PUSH1 0x3B DUP4 PUSH2 0x4808 JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A5F736574477561726469616E3A2063616E DUP2 MSTORE PUSH32 0x6E6F74206C69766520776974686F7574206120677561726469616E0000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3F47 PUSH1 0x33 DUP4 PUSH2 0x4808 JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A5F736574477561726469616E3A2061646D DUP2 MSTORE PUSH19 0x696E206F7220677561726469616E206F6E6C79 PUSH1 0x68 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3F9C PUSH1 0x15 DUP4 PUSH2 0x4808 JUMP JUMPDEST PUSH21 0x7375627472616374696F6E20756E646572666C6F77 PUSH1 0x58 SHL DUP2 MSTORE PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3FCD PUSH1 0x34 DUP4 PUSH2 0x4808 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4910 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP2 MSTORE PUSH20 0x1A59081B585E081D9BDD1A5B99C81C195C9A5BD9 PUSH1 0x62 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4011 PUSH1 0x39 DUP4 PUSH2 0x4808 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4910 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP2 MSTORE PUSH32 0x6964206D61782070726F706F73616C207468726573686F6C6400000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 MLOAD PUSH1 0x60 DUP4 ADD SWAP1 PUSH2 0x4062 DUP5 DUP3 PUSH2 0x3151 JUMP JUMPDEST POP PUSH1 0x20 DUP3 ADD MLOAD PUSH2 0x4075 PUSH1 0x20 DUP6 ADD DUP3 PUSH2 0x408E JUMP JUMPDEST POP PUSH1 0x40 DUP3 ADD MLOAD PUSH2 0x4088 PUSH1 0x40 DUP6 ADD DUP3 PUSH2 0x40A0 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0x2FCC DUP2 PUSH2 0x4842 JUMP JUMPDEST PUSH2 0x2FCC DUP2 PUSH2 0x486A JUMP JUMPDEST PUSH2 0x2FCC DUP2 PUSH2 0x4848 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1C0D DUP3 PUSH2 0x32BE JUMP JUMPDEST PUSH1 0x0 PUSH2 0x40BF DUP3 PUSH2 0x34A2 JUMP JUMPDEST SWAP2 POP PUSH2 0x40CB DUP3 DUP6 PUSH2 0x3163 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH2 0x40DB DUP3 DUP5 PUSH2 0x3163 JUMP JUMPDEST POP PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1C0D DUP3 PUSH2 0x3896 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x1C0D DUP3 DUP5 PUSH2 0x2FD2 JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0x410C DUP3 DUP6 PUSH2 0x2FC3 JUMP JUMPDEST PUSH2 0x2122 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x315A JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0x4127 DUP3 DUP6 PUSH2 0x2FD2 JUMP JUMPDEST PUSH2 0x2122 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x2FD2 JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0x410C DUP3 DUP6 PUSH2 0x2FD2 JUMP JUMPDEST PUSH1 0xA0 DUP2 ADD PUSH2 0x4150 DUP3 DUP9 PUSH2 0x2FD2 JUMP JUMPDEST PUSH2 0x415D PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x315A JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x416F DUP2 DUP7 PUSH2 0x3174 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x4183 DUP2 DUP6 PUSH2 0x3174 JUMP JUMPDEST SWAP1 POP PUSH2 0xA69 PUSH1 0x80 DUP4 ADD DUP5 PUSH2 0x315A JUMP JUMPDEST PUSH1 0xA0 DUP2 ADD PUSH2 0x41A0 DUP3 DUP9 PUSH2 0x2FD2 JUMP JUMPDEST PUSH2 0x41AD PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x315A JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x41BF DUP2 DUP7 PUSH2 0x31AC JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x4183 DUP2 DUP6 PUSH2 0x31AC JUMP JUMPDEST PUSH1 0x80 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x41E4 DUP2 DUP8 PUSH2 0x2FDB JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x41F8 DUP2 DUP7 PUSH2 0x3103 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x420C DUP2 DUP6 PUSH2 0x30A2 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0xA69 DUP2 DUP5 PUSH2 0x3034 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x1C0D DUP3 DUP5 PUSH2 0x315A JUMP JUMPDEST PUSH1 0x80 DUP2 ADD PUSH2 0x423C DUP3 DUP8 PUSH2 0x315A JUMP JUMPDEST PUSH2 0x4249 PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x315A JUMP JUMPDEST PUSH2 0x4256 PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x315A JUMP JUMPDEST PUSH2 0x4263 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x2FD2 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP2 ADD PUSH2 0x427A DUP3 DUP7 PUSH2 0x315A JUMP JUMPDEST PUSH2 0x4287 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x315A JUMP JUMPDEST PUSH2 0x2C15 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x408E JUMP JUMPDEST PUSH1 0x80 DUP2 ADD PUSH2 0x42A2 DUP3 DUP8 PUSH2 0x315A JUMP JUMPDEST PUSH2 0x42AF PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x408E JUMP JUMPDEST PUSH2 0x42BC PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x315A JUMP JUMPDEST PUSH2 0x4263 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x315A JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x1C0D DUP3 DUP5 PUSH2 0x3236 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x1C0D DUP3 DUP5 PUSH2 0x323F JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x2122 DUP2 DUP5 PUSH2 0x3174 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1C0D DUP2 PUSH2 0x326A JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1C0D DUP2 PUSH2 0x3308 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1C0D DUP2 PUSH2 0x3354 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1C0D DUP2 PUSH2 0x33D1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1C0D DUP2 PUSH2 0x344F JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1C0D DUP2 PUSH2 0x34C0 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1C0D DUP2 PUSH2 0x350D JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1C0D DUP2 PUSH2 0x3560 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1C0D DUP2 PUSH2 0x35B6 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1C0D DUP2 PUSH2 0x35FA JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1C0D DUP2 PUSH2 0x3638 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1C0D DUP2 PUSH2 0x36A5 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1C0D DUP2 PUSH2 0x36F6 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1C0D DUP2 PUSH2 0x3762 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1C0D DUP2 PUSH2 0x37A9 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1C0D DUP2 PUSH2 0x37FD JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1C0D DUP2 PUSH2 0x3869 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1C0D DUP2 PUSH2 0x3901 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1C0D DUP2 PUSH2 0x3953 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1C0D DUP2 PUSH2 0x39A1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1C0D DUP2 PUSH2 0x39F1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1C0D DUP2 PUSH2 0x3A34 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1C0D DUP2 PUSH2 0x3A85 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1C0D DUP2 PUSH2 0x3AC0 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1C0D DUP2 PUSH2 0x3B0A JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1C0D DUP2 PUSH2 0x3B8F JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1C0D DUP2 PUSH2 0x3BE5 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1C0D DUP2 PUSH2 0x3C39 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1C0D DUP2 PUSH2 0x3C7C JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1C0D DUP2 PUSH2 0x3D0E JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1C0D DUP2 PUSH2 0x3D54 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1C0D DUP2 PUSH2 0x3DB3 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1C0D DUP2 PUSH2 0x3E0B JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1C0D DUP2 PUSH2 0x3E56 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1C0D DUP2 PUSH2 0x3EDB JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1C0D DUP2 PUSH2 0x3F3A JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1C0D DUP2 PUSH2 0x3F8F JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1C0D DUP2 PUSH2 0x3FC0 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1C0D DUP2 PUSH2 0x4004 JUMP JUMPDEST PUSH1 0x60 DUP2 ADD PUSH2 0x1C0D DUP3 DUP5 PUSH2 0x4051 JUMP JUMPDEST PUSH2 0x140 DUP2 ADD PUSH2 0x4583 DUP3 DUP14 PUSH2 0x315A JUMP JUMPDEST PUSH2 0x4590 PUSH1 0x20 DUP4 ADD DUP13 PUSH2 0x2FC3 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x45A2 DUP2 DUP12 PUSH2 0x2FDB JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x45B6 DUP2 DUP11 PUSH2 0x3103 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x80 DUP4 ADD MSTORE PUSH2 0x45CA DUP2 DUP10 PUSH2 0x30A2 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0xA0 DUP4 ADD MSTORE PUSH2 0x45DE DUP2 DUP9 PUSH2 0x3034 JUMP JUMPDEST SWAP1 POP PUSH2 0x45ED PUSH1 0xC0 DUP4 ADD DUP8 PUSH2 0x315A JUMP JUMPDEST PUSH2 0x45FA PUSH1 0xE0 DUP4 ADD DUP7 PUSH2 0x315A JUMP JUMPDEST DUP2 DUP2 SUB PUSH2 0x100 DUP4 ADD MSTORE PUSH2 0x460D DUP2 DUP6 PUSH2 0x3174 JUMP JUMPDEST SWAP1 POP PUSH2 0x461D PUSH2 0x120 DUP4 ADD DUP5 PUSH2 0x408E JUMP JUMPDEST SWAP12 SWAP11 POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x160 DUP2 ADD PUSH2 0x463B DUP3 DUP15 PUSH2 0x315A JUMP JUMPDEST PUSH2 0x4648 PUSH1 0x20 DUP4 ADD DUP14 PUSH2 0x2FD2 JUMP JUMPDEST PUSH2 0x4655 PUSH1 0x40 DUP4 ADD DUP13 PUSH2 0x315A JUMP JUMPDEST PUSH2 0x4662 PUSH1 0x60 DUP4 ADD DUP12 PUSH2 0x315A JUMP JUMPDEST PUSH2 0x466F PUSH1 0x80 DUP4 ADD DUP11 PUSH2 0x315A JUMP JUMPDEST PUSH2 0x467C PUSH1 0xA0 DUP4 ADD DUP10 PUSH2 0x315A JUMP JUMPDEST PUSH2 0x4689 PUSH1 0xC0 DUP4 ADD DUP9 PUSH2 0x315A JUMP JUMPDEST PUSH2 0x4696 PUSH1 0xE0 DUP4 ADD DUP8 PUSH2 0x315A JUMP JUMPDEST PUSH2 0x46A4 PUSH2 0x100 DUP4 ADD DUP7 PUSH2 0x3151 JUMP JUMPDEST PUSH2 0x46B2 PUSH2 0x120 DUP4 ADD DUP6 PUSH2 0x3151 JUMP JUMPDEST PUSH2 0x46C0 PUSH2 0x140 DUP4 ADD DUP5 PUSH2 0x408E JUMP JUMPDEST SWAP13 SWAP12 POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0x410C DUP3 DUP6 PUSH2 0x315A JUMP JUMPDEST PUSH1 0x60 DUP2 ADD PUSH2 0x46EC DUP3 DUP7 PUSH2 0x315A JUMP JUMPDEST PUSH2 0x46F9 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x315A JUMP JUMPDEST PUSH2 0x2C15 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x315A JUMP JUMPDEST PUSH1 0x80 DUP2 ADD PUSH2 0x4714 DUP3 DUP9 PUSH2 0x315A JUMP JUMPDEST PUSH2 0x4721 PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x408E JUMP JUMPDEST PUSH2 0x472E PUSH1 0x40 DUP4 ADD DUP7 PUSH2 0x4097 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x4741 DUP2 DUP5 DUP7 PUSH2 0x3248 JUMP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x80 DUP2 ADD PUSH2 0x475A DUP3 DUP7 PUSH2 0x315A JUMP JUMPDEST PUSH2 0x4767 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x408E JUMP JUMPDEST PUSH2 0x4774 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x4097 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x4263 DUP2 PUSH2 0x3D01 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP2 DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x47A3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH2 0x47C1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x20 SWAP1 DUP2 MUL ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH2 0x47E1 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 0x1C0D DUP3 PUSH2 0x4836 JUMP JUMPDEST ISZERO ISZERO SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1C0D DUP3 PUSH2 0x4811 JUMP JUMPDEST DUP1 PUSH2 0x116F DUP2 PUSH2 0x48B7 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 0x1C0D DUP3 PUSH2 0x4821 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1C0D DUP3 PUSH2 0x482C JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1C0D DUP3 PUSH2 0x4848 JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x489C JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x4884 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x4088 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 0x27D9 JUMPI INVALID JUMPDEST PUSH2 0x48CA DUP2 PUSH2 0x4811 JUMP JUMPDEST DUP2 EQ PUSH2 0x27D9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x48CA DUP2 PUSH2 0x481C JUMP JUMPDEST PUSH2 0x48CA DUP2 PUSH2 0x212B JUMP JUMPDEST PUSH2 0x48CA DUP2 PUSH2 0x4821 JUMP JUMPDEST PUSH1 0x3 DUP2 LT PUSH2 0x27D9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x48CA DUP2 PUSH2 0x4842 JUMP JUMPDEST PUSH2 0x48CA DUP2 PUSH2 0x4848 JUMP INVALID SELFBALANCE PUSH16 0x7665726E6F72427261766F3A3A696E69 PUSH21 0x69616C697A653A20696E76616CA365627A7A723158 KECCAK256 0x4D SWAP5 EXTCODEHASH 0xCB 0x48 0xDB KECCAK256 0xA7 0xED CREATE2 SELFDESTRUCT 0xA7 0xD4 0xE2 0xF9 SWAP16 CALLVALUE 0x4F 0xF7 0x28 CREATE2 0xB2 SMOD 0xBC 0x2C PC 0x26 CALLCODE 0xE5 0xDC DUP8 MLOAD PUSH13 0x6578706572696D656E74616CF5 PUSH5 0x736F6C6343 STOP SDIV LT STOP BLOCKHASH ","sourceMap":"332:21259:6:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;332:21259:6;;;;;;;"},"deployedBytecode":{"linkReferences":{},"object":"608060405234801561001057600080fd5b506004361061025e5760003560e01c8063791f5d2311610146578063ddf0b009116100c3578063e9c714f211610087578063e9c714f2146104c2578063ee9799ee146104ca578063f851a440146104dd578063f9d28b80146104e5578063fc4eee42146104f8578063fe0d94c1146105005761025e565b8063ddf0b0091461046c578063deaaa7cc1461047f578063e23a9a5214610487578063e38e8c0f146104a7578063e48083fe146104ba5761025e565b8063b11262631161010a578063b112626314610439578063b58131b014610441578063b71d1a0c14610449578063d33219b41461045c578063da35c664146104645761025e565b8063791f5d23146103fb5780637b3c71d3146104035780637bdbe4d0146104165780639e6f26261461041e578063a64e024a146104315761025e565b806325fd935a116101df5780633bccf4fd116101a35780633bccf4fd146103925780633e4f49e6146103a557806340e58ee5146103c5578063452a9320146103d857806356781388146103e05780635c60da1b146103f35761025e565b806325fd935a146103285780632678224714610330578063328dd9821461034557806335a87de2146103685780633932abb11461038a5761025e565b80631b9ce575116102265780631b9ce575146102e65780631ebcfefd146102fb57806320606b7014610310578063215809ca1461031857806324bc1a64146103205761025e565b8063013cf08b1461026357806302a251a31461029657806306fdde03146102ab578063164a1ab1146102c057806317977c61146102d3575b600080fd5b610276610271366004612e15565b610513565b60405161028d9b9a9998979695949392919061462c565b60405180910390f35b61029e61057f565b60405161028d9190614220565b6102b3610585565b60405161028d91906142e5565b61029e6102ce366004612cac565b6105b5565b61029e6102e1366004612bf7565b610a73565b6102ee610a85565b60405161028d91906142c9565b61030e610309366004612e15565b610a94565b005b61029e610b04565b61029e610b1b565b61029e610b21565b61029e610b2f565b610338610b3d565b60405161028d91906140f0565b610358610353366004612e15565b610b4c565b60405161028d94939291906141d3565b61037b610376366004612e15565b610ddb565b60405161028d939291906146de565b61029e610dfc565b61030e6103a0366004612f04565b610e02565b6103b86103b3366004612e15565b610fda565b60405161028d91906142d7565b61030e6103d3366004612e15565b611174565b61033861140a565b61030e6103ee366004612e6d565b611419565b610338611463565b61029e611472565b61030e610411366004612e9d565b611480565b61029e6114d0565b61030e61042c366004612c1d565b6114d6565b61029e611860565b61029e611867565b61029e61186e565b61030e610457366004612bf7565b611874565b6102ee6118f1565b61029e611900565b61030e61047a366004612e15565b611906565b61029e611b9a565b61049a610495366004612e33565b611ba6565b60405161028d9190614566565b61030e6104b5366004612bf7565b611c13565b61029e611ccb565b61030e611cd0565b6102ee6104d8366004612e15565b611dae565b610338611dc9565b61030e6104f3366004612bf7565b611dd8565b61029e611f1c565b61030e61050e366004612e15565b611f22565b600a60208190526000918252604090912080546001820154600283015460078401546008850154600986015496860154600b870154600c880154600e9098015496986001600160a01b039096169794969395929492939192909160ff808316926101009004811691168b565b60045481565b6040518060400160405280601481526020017356656e757320476f7665726e6f7220427261766f60601b81525081565b6000600654600014156105e35760405162461bcd60e51b81526004016105da90614336565b60405180910390fd5b600e60008360028111156105f357fe5b60ff1681526020810191909152604001600020600201546009546001600160a01b031663782d6fe1336106274360016120d5565b6040518363ffffffff1660e01b81526004016106449291906140fe565b60206040518083038186803b15801561065c57600080fd5b505afa158015610670573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506106949190810190612f79565b6001600160601b031610156106bb5760405162461bcd60e51b81526004016105da906144d6565b855187511480156106cd575084518751145b80156106da575083518751145b6106f65760405162461bcd60e51b81526004016105da906143b6565b86516107145760405162461bcd60e51b81526004016105da90614416565b600c54875111156107375760405162461bcd60e51b81526004016105da90614466565b336000908152600b602052604090205480156107b457600061075882610fda565b9050600181600781111561076857fe5b14156107865760405162461bcd60e51b81526004016105da906144b6565b600081600781111561079457fe5b14156107b25760405162461bcd60e51b81526004016105da90614476565b505b60006107e443600e60008760028111156107ca57fe5b60ff168152602001908152602001600020600001546120fd565b9050600061081682600e60008860028111156107fc57fe5b60ff168152602001908152602001600020600101546120fd565b60078054600101905590506108296124a0565b604051806101e001604052806007548152602001336001600160a01b03168152602001600081526020018c81526020018b81526020018a81526020018981526020018481526020018381526020016000815260200160008152602001600081526020016000151581526020016000151581526020018760028111156108aa57fe5b60ff16905280516000908152600a602090815260409182902083518155818401516001820180546001600160a01b0319166001600160a01b039092169190911790559183015160028301556060830151805193945084936109119260038501920190612526565b506080820151805161092d91600484019160209091019061258b565b5060a082015180516109499160058401916020909101906125d2565b5060c0820151805161096591600684019160209091019061262b565b5060e082015160078201556101008083015160088301556101208301516009830155610140830151600a830155610160830151600b80840191909155610180840151600c840180546101a087015160ff199182169315159390931761ff0019169215159094029190911790556101c090930151600e909201805490911660ff90921691909117905581516020808401516001600160a01b0316600090815292905260409091205580517fc8df7ff219f3c0358e14500814d8b62b443a4bebf3a596baa60b9295b1cf1bde90338d8d8d8d89898f8f6002811115610a4457fe5b604051610a5a9a99989796959493929190614574565b60405180910390a15193505050505b9695505050505050565b600b6020526000908152604090205481565b6009546001600160a01b031681565b6000546001600160a01b03163314610abe5760405162461bcd60e51b81526004016105da90614486565b600c8054908290556040517fd03b3c3c5c1446bcdd31423061041c94ca3bc5450fe7ccfb0f636f4c420de87e90610af890839085906146d0565b60405180910390a15050565b604051610b10906140e5565b604051809103902081565b610e1081565b697f0e10af47c1c700000081565b693f870857a3e0e380000081565b6001546001600160a01b031681565b6060806060806000600a600087815260200190815260200160002090508060030181600401826005018360060183805480602002602001604051908101604052809291908181526020018280548015610bce57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610bb0575b5050505050935082805480602002602001604051908101604052809291908181526020018280548015610c2057602002820191906000526020600020905b815481526020019060010190808311610c0c575b5050505050925081805480602002602001604051908101604052809291908181526020016000905b82821015610cf35760008481526020908190208301805460408051601f6002600019610100600187161502019094169390930492830185900485028101850190915281815292830182828015610cdf5780601f10610cb457610100808354040283529160200191610cdf565b820191906000526020600020905b815481529060010190602001808311610cc257829003601f168201915b505050505081526020019060010190610c48565b50505050915080805480602002602001604051908101604052809291908181526020016000905b82821015610dc55760008481526020908190208301805460408051601f6002600019610100600187161502019094169390930492830185900485028101850190915281815292830182828015610db15780601f10610d8657610100808354040283529160200191610db1565b820191906000526020600020905b815481529060010190602001808311610d9457829003601f168201915b505050505081526020019060010190610d1a565b5050505090509450945094509450509193509193565b600e6020526000908152604090208054600182015460029092015490919083565b60035481565b6000604051610e10906140e5565b60408051918290038220828201909152601482527356656e757320476f7665726e6f7220427261766f60601b6020909201919091527f157d76627a3b71c0167806f5879f7a61d3e301322f3a3b9f900315f15937671a610e6e612129565b30604051602001610e82949392919061422e565b6040516020818303038152906040528051906020012090506000604051610ea8906140a9565b604051908190038120610ec1918990899060200161426c565b60405160208183030381529060405280519060200120905060008282604051602001610eee9291906140b4565b604051602081830303815290604052805190602001209050600060018288888860405160008152602001604052604051610f2b9493929190614294565b6020604051602081039080840390855afa158015610f4d573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116610f805760405162461bcd60e51b81526004016105da906143a6565b806001600160a01b03167fb8e138887d0aa13bab447e82de9d5c1777041ecd21ca36ba824ff1e6c07ddda48a8a610fb8858e8e61212e565b604051610fc79392919061474c565b60405180910390a2505050505050505050565b60008160075410158015610fef575060065482115b61100b5760405162461bcd60e51b81526004016105da906144f6565b6000828152600a60205260409020600c81015460ff161561103057600291505061116f565b8060070154431161104557600091505061116f565b8060080154431161105a57600191505061116f565b80600a0154816009015411158061107e5750697f0e10af47c1c70000008160090154105b1561108d57600391505061116f565b60028101546110a057600491505061116f565b600c810154610100900460ff16156110bc57600791505061116f565b6002810154600e82015460ff166000908152600f60209081526040918290205482516360d143f160e11b8152925161115994936001600160a01b039092169263c1a287e29260048082019391829003018186803b15801561111c57600080fd5b505afa158015611130573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506111549190810190612dc3565b6120fd565b421061116957600691505061116f565b60059150505b919050565b600761117f82610fda565b600781111561118a57fe5b14156111a85760405162461bcd60e51b81526004016105da906144e6565b6000818152600a60205260409020600d546001600160a01b03163314806111db575060018101546001600160a01b031633145b8061129e5750600e8181015460ff16600090815260209190915260409020600201546009546001808401546001600160a01b039283169263782d6fe1929116906112269043906120d5565b6040518363ffffffff1660e01b8152600401611243929190614134565b60206040518083038186803b15801561125b57600080fd5b505afa15801561126f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506112939190810190612f79565b6001600160601b0316105b6112ba5760405162461bcd60e51b81526004016105da90614446565b600c8101805460ff1916600117905560005b60038201548110156113da57600e82015460ff166000908152600f60205260409020546003830180546001600160a01b039092169163591fcdfe91908490811061131257fe5b6000918252602090912001546004850180546001600160a01b03909216918590811061133a57fe5b906000526020600020015485600501858154811061135457fe5b9060005260206000200186600601868154811061136d57fe5b9060005260206000200187600201546040518663ffffffff1660e01b815260040161139c959493929190614192565b600060405180830381600087803b1580156113b657600080fd5b505af11580156113ca573d6000803e3d6000fd5b5050600190920191506112cc9050565b507f789cf55be980739dad1d0699b93b58e806b51c9d96619bfa8fe0a28abaa7b30c82604051610af89190614220565b600d546001600160a01b031681565b337fb8e138887d0aa13bab447e82de9d5c1777041ecd21ca36ba824ff1e6c07ddda4838361144884838361212e565b6040516114579392919061474c565b60405180910390a25050565b6002546001600160a01b031681565b691fc3842bd1f071c0000081565b337fb8e138887d0aa13bab447e82de9d5c1777041ecd21ca36ba824ff1e6c07ddda485856114af84838361212e565b86866040516114c2959493929190614706565b60405180910390a250505050565b600c5481565b60008052600f6020527ff4803e074bd026baaf6ed2e288c9515f68c72fb7216eebdd7cae1718a53ec375546001600160a01b0316156115275760405162461bcd60e51b81526004016105da906143d6565b6000546001600160a01b031633146115515760405162461bcd60e51b81526004016105da906143c6565b6001600160a01b0384166115775760405162461bcd60e51b81526004016105da90614386565b6001600160a01b03811661159d5760405162461bcd60e51b81526004016105da90614456565b81516003146115be5760405162461bcd60e51b81526004016105da90614326565b82516003146115df5760405162461bcd60e51b81526004016105da90614506565b600980546001600160a01b038087166001600160a01b031992831617909255600a600c55600d805492841692909116919091179055825160005b8181101561185857610e1085828151811061163057fe5b602002602001015160200151101561165a5760405162461bcd60e51b81526004016105da90614376565b6206270085828151811061166a57fe5b60200260200101516020015111156116945760405162461bcd60e51b81526004016105da90614546565b60018582815181106116a257fe5b60200260200101516000015110156116cc5760405162461bcd60e51b81526004016105da90614436565b620313808582815181106116dc57fe5b60200260200101516000015111156117065760405162461bcd60e51b81526004016105da906144a6565b691fc3842bd1f071c0000085828151811061171d57fe5b60200260200101516040015110156117475760405162461bcd60e51b81526004016105da90614346565b693f870857a3e0e380000085828151811061175e57fe5b60200260200101516040015111156117885760405162461bcd60e51b81526004016105da90614556565b60006001600160a01b031684828151811061179f57fe5b60200260200101516001600160a01b031614156117ce5760405162461bcd60e51b81526004016105da90614496565b8481815181106117da57fe5b6020908102919091018101516000838152600e8352604090819020825181559282015160018401550151600290910155835184908290811061181857fe5b6020908102919091018101516000838152600f909252604090912080546001600160a01b0319166001600160a01b03909216919091179055600101611619565b505050505050565b6206270081565b6203138081565b60055481565b6000546001600160a01b0316331461189e5760405162461bcd60e51b81526004016105da90614306565b600180546001600160a01b038381166001600160a01b03198316179092556040519116907fca4f2f25d0898edd99413412fb94012f9e54ec8142f9b093e7720646a95b16a990610af89083908590614119565b6008546001600160a01b031681565b60075481565b600461191182610fda565b600781111561191c57fe5b146119395760405162461bcd60e51b81526004016105da906143e6565b6000818152600a60209081526040808320600e81015460ff168452600f8352818420548251630d48571f60e31b815292519194936119a29342936001600160a01b0390931692636a42b8f892600480840193919291829003018186803b15801561111c57600080fd5b905060005b6003830154811015611b5357611b4b8360030182815481106119c557fe5b6000918252602090912001546004850180546001600160a01b0390921691849081106119ed57fe5b9060005260206000200154856005018481548110611a0757fe5b600091825260209182902001805460408051601f6002600019610100600187161502019094169390930492830185900485028101850190915281815292830182828015611a955780601f10611a6a57610100808354040283529160200191611a95565b820191906000526020600020905b815481529060010190602001808311611a7857829003601f168201915b5050505050866006018581548110611aa957fe5b600091825260209182902001805460408051601f6002600019610100600187161502019094169390930492830185900485028101850190915281815292830182828015611b375780601f10611b0c57610100808354040283529160200191611b37565b820191906000526020600020905b815481529060010190602001808311611b1a57829003601f168201915b50505050600e89015488915060ff1661231e565b6001016119a7565b50600282018190556040517f9a2e42fd6722813d69113e7d0079d3d940171428df7373df9c7f7617cfda289290611b8d90859084906146d0565b60405180910390a1505050565b604051610b10906140a9565b611bae612684565b506000828152600a602090815260408083206001600160a01b0385168452600d018252918290208251606081018452905460ff8082161515835261010082041692820192909252620100009091046001600160601b0316918101919091525b92915050565b600d546001600160a01b0316331480611c3657506000546001600160a01b031633145b611c525760405162461bcd60e51b81526004016105da90614526565b6001600160a01b038116611c785760405162461bcd60e51b81526004016105da90614516565b600d80546001600160a01b038381166001600160a01b03198316179092556040519116907f08fdaf06427a2010e5958f4329b566993472d14ce81d3f16ce7f2a2660da98e390610af89083908590614119565b600181565b6001546001600160a01b031633148015611ce957503315155b611d055760405162461bcd60e51b81526004016105da90614426565b60008054600180546001600160a01b038082166001600160a01b03198086168217968790559092169092556040519282169390927ff9ffabca9c8276e99321725bcb43fb076a6c66a54b7f21c4e8146d8519b417dc92611d69928692911690614119565b60405180910390a16001546040517fca4f2f25d0898edd99413412fb94012f9e54ec8142f9b093e7720646a95b16a991610af89184916001600160a01b031690614119565b600f602052600090815260409020546001600160a01b031681565b6000546001600160a01b031681565b6000546001600160a01b03163314611e025760405162461bcd60e51b81526004016105da906144c6565b60065415611e225760405162461bcd60e51b81526004016105da90614406565b806001600160a01b031663da35c6646040518163ffffffff1660e01b8152600401602060405180830381600087803b158015611e5d57600080fd5b505af1158015611e71573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611e959190810190612dc3565b600781905560065560005b6003811015611f18576000818152600f6020526040808220548151630e18b68160e01b815291516001600160a01b0390911692630e18b681926004808201939182900301818387803b158015611ef557600080fd5b505af1158015611f09573d6000803e3d6000fd5b50505050806001019050611ea0565b5050565b60065481565b6005611f2d82610fda565b6007811115611f3857fe5b14611f555760405162461bcd60e51b81526004016105da90614396565b6000818152600a60205260408120600c8101805461ff001916610100179055905b60038201548110156120a557600e82015460ff166000908152600f60205260409020546003830180546001600160a01b0390921691630825f38f919084908110611fbc57fe5b6000918252602090912001546004850180546001600160a01b039092169185908110611fe457fe5b9060005260206000200154856005018581548110611ffe57fe5b9060005260206000200186600601868154811061201757fe5b9060005260206000200187600201546040518663ffffffff1660e01b8152600401612046959493929190614192565b600060405180830381600087803b15801561206057600080fd5b505af1158015612074573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261209c9190810190612de1565b50600101611f76565b507f712ae1383f79ac853f8d882153778e0260ef8f03b504e2866e0593e04d2b291f82604051610af89190614220565b6000828211156120f75760405162461bcd60e51b81526004016105da90614536565b50900390565b6000828201838110156121225760405162461bcd60e51b81526004016105da906143f6565b9392505050565b465b90565b6000600161213b84610fda565b600781111561214657fe5b146121635760405162461bcd60e51b81526004016105da90614356565b60028260ff1611156121875760405162461bcd60e51b81526004016105da906142f6565b6000838152600a602090815260408083206001600160a01b0388168452600d8101909252909120805460ff16156121d05760405162461bcd60e51b81526004016105da90614366565b600954600783015460405163782d6fe160e01b81526000926001600160a01b03169163782d6fe191612206918b91600401614134565b60206040518083038186803b15801561221e57600080fd5b505afa158015612232573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506122569190810190612f79565b905060ff85166122815761227783600a0154826001600160601b03166120fd565b600a8401556122d7565b8460ff16600114156122ae576122a48360090154826001600160601b03166120fd565b60098401556122d7565b8460ff16600214156122d7576122d183600b0154826001600160601b03166120fd565b600b8401555b8154600160ff199091161761ff00191661010060ff871602176dffffffffffffffffffffffff00001916620100006001600160601b03831602179091559150509392505050565b60ff81166000908152600f60209081526040918290205491516001600160a01b039092169163f2b065379161235d918a918a918a918a918a9101614142565b604051602081830303815290604052805190602001206040518263ffffffff1660e01b815260040161238f9190614220565b60206040518083038186803b1580156123a757600080fd5b505afa1580156123bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506123df9190810190612da5565b156123fc5760405162461bcd60e51b81526004016105da90614316565b60ff81166000908152600f602052604090819020549051633a66f90160e01b81526001600160a01b0390911690633a66f901906124459089908990899089908990600401614142565b602060405180830381600087803b15801561245f57600080fd5b505af1158015612473573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506124979190810190612dc3565b50505050505050565b604051806101e001604052806000815260200160006001600160a01b0316815260200160008152602001606081526020016060815260200160608152602001606081526020016000815260200160008152602001600081526020016000815260200160008152602001600015158152602001600015158152602001600060ff1681525090565b82805482825590600052602060002090810192821561257b579160200282015b8281111561257b57825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190612546565b506125879291506126a4565b5090565b8280548282559060005260206000209081019282156125c6579160200282015b828111156125c65782518255916020019190600101906125ab565b506125879291506126c8565b82805482825590600052602060002090810192821561261f579160200282015b8281111561261f578251805161260f9184916020909101906126e2565b50916020019190600101906125f2565b5061258792915061274f565b828054828255906000526020600020908101928215612678579160200282015b8281111561267857825180516126689184916020909101906126e2565b509160200191906001019061264b565b50612587929150612772565b604080516060810182526000808252602082018190529181019190915290565b61212b91905b808211156125875780546001600160a01b03191681556001016126aa565b61212b91905b8082111561258757600081556001016126ce565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061272357805160ff19168380011785556125c6565b828001600101855582156125c657918201828111156125c65782518255916020019190600101906125ab565b61212b91905b808211156125875760006127698282612795565b50600101612755565b61212b91905b8082111561258757600061278c8282612795565b50600101612778565b50805460018160011615610100020316600290046000825580601f106127bb57506127d9565b601f0160209004906000526020600020908101906127d991906126c8565b50565b8035611c0d816148c1565b600082601f8301126127f857600080fd5b813561280b612806826147ab565b614785565b9150818183526020840193506020810190508385602084028201111561283057600080fd5b60005b8381101561285c578161284688826127dc565b8452506020928301929190910190600101612833565b5050505092915050565b600082601f83011261287757600080fd5b8135612885612806826147ab565b81815260209384019390925082018360005b8381101561285c57813586016128ad8882612a93565b8452506020928301929190910190600101612897565b600082601f8301126128d457600080fd5b81356128e2612806826147ab565b9150818183526020840193506020810190508385602084028201111561290757600080fd5b60005b8381101561285c578161291d8882612b28565b845250602092830192919091019060010161290a565b600082601f83011261294457600080fd5b8135612952612806826147ab565b81815260209384019390925082018360005b8381101561285c578135860161297a8882612a93565b8452506020928301929190910190600101612964565b600082601f8301126129a157600080fd5b81356129af612806826147ab565b915081818352602084019350602081019050838560608402820111156129d457600080fd5b60005b8381101561285c57816129ea8882612b86565b845250602090920191606091909101906001016129d7565b600082601f830112612a1357600080fd5b8135612a21612806826147ab565b91508181835260208401935060208101905083856020840282011115612a4657600080fd5b60005b8381101561285c5781612a5c8882612a7d565b8452506020928301929190910190600101612a49565b8051611c0d816148d5565b8035611c0d816148de565b8051611c0d816148de565b600082601f830112612aa457600080fd5b8135612ab2612806826147cb565b91508082526020830160208301858383011115612ace57600080fd5b612ad9838284614875565b50505092915050565b600082601f830112612af357600080fd5b8151612b01612806826147cb565b91508082526020830160208301858383011115612b1d57600080fd5b612ad9838284614881565b8035611c0d816148e7565b8035611c0d816148f0565b60008083601f840112612b5057600080fd5b5081356001600160401b03811115612b6757600080fd5b602083019150836001820283011115612b7f57600080fd5b9250929050565b600060608284031215612b9857600080fd5b612ba26060614785565b90506000612bb08484612a7d565b8252506020612bc184848301612a7d565b6020830152506040612bd584828501612a7d565b60408301525092915050565b8035611c0d816148fd565b8051611c0d81614906565b600060208284031215612c0957600080fd5b6000612c1584846127dc565b949350505050565b60008060008060808587031215612c3357600080fd5b6000612c3f87876127dc565b94505060208501356001600160401b03811115612c5b57600080fd5b612c6787828801612990565b93505060408501356001600160401b03811115612c8357600080fd5b612c8f878288016128c3565b9250506060612ca0878288016127dc565b91505092959194509250565b60008060008060008060c08789031215612cc557600080fd5b86356001600160401b03811115612cdb57600080fd5b612ce789828a016127e7565b96505060208701356001600160401b03811115612d0357600080fd5b612d0f89828a01612a02565b95505060408701356001600160401b03811115612d2b57600080fd5b612d3789828a01612933565b94505060608701356001600160401b03811115612d5357600080fd5b612d5f89828a01612866565b93505060808701356001600160401b03811115612d7b57600080fd5b612d8789828a01612a93565b92505060a0612d9889828a01612b33565b9150509295509295509295565b600060208284031215612db757600080fd5b6000612c158484612a72565b600060208284031215612dd557600080fd5b6000612c158484612a88565b600060208284031215612df357600080fd5b81516001600160401b03811115612e0957600080fd5b612c1584828501612ae2565b600060208284031215612e2757600080fd5b6000612c158484612a7d565b60008060408385031215612e4657600080fd5b6000612e528585612a7d565b9250506020612e63858286016127dc565b9150509250929050565b60008060408385031215612e8057600080fd5b6000612e8c8585612a7d565b9250506020612e6385828601612be1565b60008060008060608587031215612eb357600080fd5b6000612ebf8787612a7d565b9450506020612ed087828801612be1565b93505060408501356001600160401b03811115612eec57600080fd5b612ef887828801612b3e565b95989497509550505050565b600080600080600060a08688031215612f1c57600080fd5b6000612f288888612a7d565b9550506020612f3988828901612be1565b9450506040612f4a88828901612be1565b9350506060612f5b88828901612a7d565b9250506080612f6c88828901612a7d565b9150509295509295909350565b600060208284031215612f8b57600080fd5b6000612c158484612bec565b6000612fa38383612fd2565b505060200190565b60006121228383613174565b6000612fa3838361315a565b612fcc81614854565b82525050565b612fcc81614811565b6000612fe682614804565b612ff08185614808565b9350612ffb836147f2565b8060005b838110156130295781516130138882612f97565b975061301e836147f2565b925050600101612fff565b509495945050505050565b600061303f82614804565b6130498185614808565b93508360208202850161305b856147f2565b8060005b8581101561309557848403895281516130788582612fab565b9450613083836147f2565b60209a909a019992505060010161305f565b5091979650505050505050565b60006130ad82614804565b6130b78185614808565b9350836020820285016130c9856147f2565b8060005b8581101561309557848403895281516130e68582612fab565b94506130f1836147f2565b60209a909a01999250506001016130cd565b600061310e82614804565b6131188185614808565b9350613123836147f2565b8060005b8381101561302957815161313b8882612fb7565b9750613146836147f2565b925050600101613127565b612fcc8161481c565b612fcc8161212b565b612fcc61316f8261212b565b61212b565b600061317f82614804565b6131898185614808565b9350613199818560208601614881565b6131a2816148ad565b9093019392505050565b6000815460018116600081146131c957600181146131ef5761322e565b607f60028304166131da8187614808565b60ff198416815295505060208501925061322e565b600282046131fd8187614808565b9550613208856147f8565b60005b828110156132275781548882015260019091019060200161320b565b8701945050505b505092915050565b612fcc81614821565b612fcc8161485f565b60006132548385614808565b9350613261838584614875565b6131a2836148ad565b6000613277603283614808565b7f476f7665726e6f72427261766f3a3a63617374566f7465496e7465726e616c3a81527120696e76616c696420766f7465207479706560701b602082015260400192915050565b60006132cb60288361116f565b7f42616c6c6f742875696e743235362070726f706f73616c49642c75696e743820815267737570706f72742960c01b602082015260280192915050565b6000613315602a83614808565b7f476f7665726e6f72427261766f3a5f73657450656e64696e6741646d696e3a2081526961646d696e206f6e6c7960b01b602082015260400192915050565b6000613361605583614808565b7f476f7665726e6f72427261766f3a3a71756575654f72526576657274496e746581527f726e616c3a206964656e746963616c2070726f706f73616c20616374696f6e20602082015274616c7265616479207175657565642061742065746160581b604082015260600192915050565b60006133de605683614808565b7f476f7665726e6f72427261766f3a3a696e697469616c697a653a6e756d62657281527f206f662074696d656c6f636b732073686f756c64206d61746368206e756d626560208201527572206f6620676f7665726e616e636520726f7574657360501b604082015260600192915050565b600061345c603183614808565b7f476f7665726e6f72427261766f3a3a70726f706f73653a20476f7665726e6f7281527020427261766f206e6f742061637469766560781b602082015260400192915050565b60006134af60028361116f565b61190160f01b815260020192915050565b60006134cd603983614808565b60008051602061491083398151915281527f6964206d696e2070726f706f73616c207468726573686f6c6400000000000000602082015260400192915050565b600061351a603183614808565b7f476f7665726e6f72427261766f3a3a63617374566f7465496e7465726e616c3a815270081d9bdd1a5b99c81a5cc818db1bdcd959607a1b602082015260400192915050565b600061356d603483614808565b7f476f7665726e6f72427261766f3a3a63617374566f7465496e7465726e616c3a815273081d9bdd195c88185b1c9958591e481d9bdd195960621b602082015260400192915050565b60006135c3603483614808565b6000805160206149108339815191528152731a59081b5a5b881d9bdd1a5b99c81c195c9a5bd960621b602082015260400192915050565b6000613607602e83614808565b60008051602061491083398151915281526d696420787673206164647265737360901b602082015260400192915050565b6000613645604583614808565b7f476f7665726e6f72427261766f3a3a657865637574653a2070726f706f73616c81527f2063616e206f6e6c7920626520657865637574656420696620697420697320716020820152641d595d595960da1b604082015260600192915050565b60006136b2602f83614808565b7f476f7665726e6f72427261766f3a3a63617374566f746542795369673a20696e81526e76616c6964207369676e617475726560881b602082015260400192915050565b6000613703604483614808565b7f476f7665726e6f72427261766f3a3a70726f706f73653a2070726f706f73616c81527f2066756e6374696f6e20696e666f726d6174696f6e206172697479206d69736d6020820152630c2e8c6d60e31b604082015260600192915050565b600061376f602583614808565b7f476f7665726e6f72427261766f3a3a696e697469616c697a653a2061646d696e815264206f6e6c7960d81b602082015260400192915050565b60006137b6603283614808565b7f476f7665726e6f72427261766f3a3a696e697469616c697a653a2063616e6e6f8152717420696e697469616c697a6520747769636560701b602082015260400192915050565b600061380a604483614808565b7f476f7665726e6f72427261766f3a3a71756575653a2070726f706f73616c206381527f616e206f6e6c79206265207175657565642069662069742069732073756363656020820152631959195960e21b604082015260600192915050565b6000613876601183614808565b706164646974696f6e206f766572666c6f7760781b815260200192915050565b60006138a360438361116f565b7f454950373132446f6d61696e28737472696e67206e616d652c75696e7432353681527f20636861696e49642c6164647265737320766572696679696e67436f6e74726160208201526263742960e81b604082015260430192915050565b600061390e603083614808565b7f476f7665726e6f72427261766f3a3a5f696e6974696174653a2063616e206f6e81526f6c7920696e697469617465206f6e636560801b602082015260400192915050565b6000613960602c83614808565b7f476f7665726e6f72427261766f3a3a70726f706f73653a206d7573742070726f81526b7669646520616374696f6e7360a01b602082015260400192915050565b60006139ae602e83614808565b7f476f7665726e6f72427261766f3a5f61636365707441646d696e3a2070656e6481526d696e672061646d696e206f6e6c7960901b602082015260400192915050565b60006139fe603383614808565b6000805160206149108339815191528152726964206d696e20766f74696e672064656c617960681b602082015260400192915050565b6000613a41602f83614808565b7f476f7665726e6f72427261766f3a3a63616e63656c3a2070726f706f7365722081526e18589bdd99481d1a1c995cda1bdb19608a1b602082015260400192915050565b6000613a92602b83614808565b60008051602061491083398151915281526a34b21033bab0b93234b0b760a91b602082015260400192915050565b6000613acd602883614808565b7f476f7665726e6f72427261766f3a3a70726f706f73653a20746f6f206d616e7981526720616374696f6e7360c01b602082015260400192915050565b6000613b17605983614808565b7f476f7665726e6f72427261766f3a3a70726f706f73653a206f6e65206c69766581527f2070726f706f73616c207065722070726f706f7365722c20666f756e6420616e60208201527f20616c72656164792070656e64696e672070726f706f73616c00000000000000604082015260600192915050565b6000613b9c603483614808565b7f476f7665726e6f72427261766f3a3a5f73657450726f706f73616c4d61784f7081527365726174696f6e733a2061646d696e206f6e6c7960601b602082015260400192915050565b6000613bf2603283614808565b7f476f7665726e6f72427261766f3a3a696e697469616c697a653a696e76616c69815271642074696d656c6f636b206164647265737360701b602082015260400192915050565b6000613c46603383614808565b6000805160206149108339815191528152726964206d617820766f74696e672064656c617960681b602082015260400192915050565b6000613c89605883614808565b7f476f7665726e6f72427261766f3a3a70726f706f73653a206f6e65206c69766581527f2070726f706f73616c207065722070726f706f7365722c20666f756e6420616e60208201527f20616c7265616479206163746976652070726f706f73616c0000000000000000604082015260600192915050565b6000611c0d600083614808565b6000613d1b602483614808565b7f476f7665726e6f72427261766f3a3a5f696e6974696174653a2061646d696e208152636f6e6c7960e01b602082015260400192915050565b6000613d61603f83614808565b7f476f7665726e6f72427261766f3a3a70726f706f73653a2070726f706f73657281527f20766f7465732062656c6f772070726f706f73616c207468726573686f6c6400602082015260400192915050565b6000613dc0603683614808565b7f476f7665726e6f72427261766f3a3a63616e63656c3a2063616e6e6f742063618152751b98d95b08195e1958dd5d1959081c1c9bdc1bdcd85b60521b602082015260400192915050565b6000613e18602983614808565b7f476f7665726e6f72427261766f3a3a73746174653a20696e76616c69642070728152681bdc1bdcd85b081a5960ba1b602082015260400192915050565b6000613e63605d83614808565b7f476f7665726e6f72427261766f3a3a696e697469616c697a653a6e756d62657281527f206f662070726f706f73616c20636f6e666967732073686f756c64206d61746360208201527f68206e756d626572206f6620676f7665726e616e636520726f75746573000000604082015260600192915050565b6000613ee8603b83614808565b7f476f7665726e6f72427261766f3a3a5f736574477561726469616e3a2063616e81527f6e6f74206c69766520776974686f7574206120677561726469616e0000000000602082015260400192915050565b6000613f47603383614808565b7f476f7665726e6f72427261766f3a3a5f736574477561726469616e3a2061646d815272696e206f7220677561726469616e206f6e6c7960681b602082015260400192915050565b6000613f9c601583614808565b747375627472616374696f6e20756e646572666c6f7760581b815260200192915050565b6000613fcd603483614808565b6000805160206149108339815191528152731a59081b585e081d9bdd1a5b99c81c195c9a5bd960621b602082015260400192915050565b6000614011603983614808565b60008051602061491083398151915281527f6964206d61782070726f706f73616c207468726573686f6c6400000000000000602082015260400192915050565b805160608301906140628482613151565b506020820151614075602085018261408e565b50604082015161408860408501826140a0565b50505050565b612fcc81614842565b612fcc8161486a565b612fcc81614848565b6000611c0d826132be565b60006140bf826134a2565b91506140cb8285613163565b6020820191506140db8284613163565b5060200192915050565b6000611c0d82613896565b60208101611c0d8284612fd2565b6040810161410c8285612fc3565b612122602083018461315a565b604081016141278285612fd2565b6121226020830184612fd2565b6040810161410c8285612fd2565b60a081016141508288612fd2565b61415d602083018761315a565b818103604083015261416f8186613174565b905081810360608301526141838185613174565b9050610a69608083018461315a565b60a081016141a08288612fd2565b6141ad602083018761315a565b81810360408301526141bf81866131ac565b9050818103606083015261418381856131ac565b608080825281016141e48187612fdb565b905081810360208301526141f88186613103565b9050818103604083015261420c81856130a2565b90508181036060830152610a698184613034565b60208101611c0d828461315a565b6080810161423c828761315a565b614249602083018661315a565b614256604083018561315a565b6142636060830184612fd2565b95945050505050565b6060810161427a828661315a565b614287602083018561315a565b612c15604083018461408e565b608081016142a2828761315a565b6142af602083018661408e565b6142bc604083018561315a565b614263606083018461315a565b60208101611c0d8284613236565b60208101611c0d828461323f565b602080825281016121228184613174565b60208082528101611c0d8161326a565b60208082528101611c0d81613308565b60208082528101611c0d81613354565b60208082528101611c0d816133d1565b60208082528101611c0d8161344f565b60208082528101611c0d816134c0565b60208082528101611c0d8161350d565b60208082528101611c0d81613560565b60208082528101611c0d816135b6565b60208082528101611c0d816135fa565b60208082528101611c0d81613638565b60208082528101611c0d816136a5565b60208082528101611c0d816136f6565b60208082528101611c0d81613762565b60208082528101611c0d816137a9565b60208082528101611c0d816137fd565b60208082528101611c0d81613869565b60208082528101611c0d81613901565b60208082528101611c0d81613953565b60208082528101611c0d816139a1565b60208082528101611c0d816139f1565b60208082528101611c0d81613a34565b60208082528101611c0d81613a85565b60208082528101611c0d81613ac0565b60208082528101611c0d81613b0a565b60208082528101611c0d81613b8f565b60208082528101611c0d81613be5565b60208082528101611c0d81613c39565b60208082528101611c0d81613c7c565b60208082528101611c0d81613d0e565b60208082528101611c0d81613d54565b60208082528101611c0d81613db3565b60208082528101611c0d81613e0b565b60208082528101611c0d81613e56565b60208082528101611c0d81613edb565b60208082528101611c0d81613f3a565b60208082528101611c0d81613f8f565b60208082528101611c0d81613fc0565b60208082528101611c0d81614004565b60608101611c0d8284614051565b6101408101614583828d61315a565b614590602083018c612fc3565b81810360408301526145a2818b612fdb565b905081810360608301526145b6818a613103565b905081810360808301526145ca81896130a2565b905081810360a08301526145de8188613034565b90506145ed60c083018761315a565b6145fa60e083018661315a565b81810361010083015261460d8185613174565b905061461d61012083018461408e565b9b9a5050505050505050505050565b610160810161463b828e61315a565b614648602083018d612fd2565b614655604083018c61315a565b614662606083018b61315a565b61466f608083018a61315a565b61467c60a083018961315a565b61468960c083018861315a565b61469660e083018761315a565b6146a4610100830186613151565b6146b2610120830185613151565b6146c061014083018461408e565b9c9b505050505050505050505050565b6040810161410c828561315a565b606081016146ec828661315a565b6146f9602083018561315a565b612c15604083018461315a565b60808101614714828861315a565b614721602083018761408e565b61472e6040830186614097565b8181036060830152614741818486613248565b979650505050505050565b6080810161475a828661315a565b614767602083018561408e565b6147746040830184614097565b818103606083015261426381613d01565b6040518181016001600160401b03811182821017156147a357600080fd5b604052919050565b60006001600160401b038211156147c157600080fd5b5060209081020190565b60006001600160401b038211156147e157600080fd5b506020601f91909101601f19160190565b60200190565b60009081526020902090565b5190565b90815260200190565b6000611c0d82614836565b151590565b6000611c0d82614811565b8061116f816148b7565b6001600160a01b031690565b60ff1690565b6001600160601b031690565b6000611c0d82614821565b6000611c0d8261482c565b6000611c0d82614848565b82818337506000910152565b60005b8381101561489c578181015183820152602001614884565b838111156140885750506000910152565b601f01601f191690565b600881106127d957fe5b6148ca81614811565b81146127d957600080fd5b6148ca8161481c565b6148ca8161212b565b6148ca81614821565b600381106127d957600080fd5b6148ca81614842565b6148ca8161484856fe476f7665726e6f72427261766f3a3a696e697469616c697a653a20696e76616ca365627a7a723158204d943fcb48db20a7edf5ffa7d4e2f99f344ff728f5b207bc2c5826f2e5dc87516c6578706572696d656e74616cf564736f6c63430005100040","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x25E JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x791F5D23 GT PUSH2 0x146 JUMPI DUP1 PUSH4 0xDDF0B009 GT PUSH2 0xC3 JUMPI DUP1 PUSH4 0xE9C714F2 GT PUSH2 0x87 JUMPI DUP1 PUSH4 0xE9C714F2 EQ PUSH2 0x4C2 JUMPI DUP1 PUSH4 0xEE9799EE EQ PUSH2 0x4CA JUMPI DUP1 PUSH4 0xF851A440 EQ PUSH2 0x4DD JUMPI DUP1 PUSH4 0xF9D28B80 EQ PUSH2 0x4E5 JUMPI DUP1 PUSH4 0xFC4EEE42 EQ PUSH2 0x4F8 JUMPI DUP1 PUSH4 0xFE0D94C1 EQ PUSH2 0x500 JUMPI PUSH2 0x25E JUMP JUMPDEST DUP1 PUSH4 0xDDF0B009 EQ PUSH2 0x46C JUMPI DUP1 PUSH4 0xDEAAA7CC EQ PUSH2 0x47F JUMPI DUP1 PUSH4 0xE23A9A52 EQ PUSH2 0x487 JUMPI DUP1 PUSH4 0xE38E8C0F EQ PUSH2 0x4A7 JUMPI DUP1 PUSH4 0xE48083FE EQ PUSH2 0x4BA JUMPI PUSH2 0x25E JUMP JUMPDEST DUP1 PUSH4 0xB1126263 GT PUSH2 0x10A JUMPI DUP1 PUSH4 0xB1126263 EQ PUSH2 0x439 JUMPI DUP1 PUSH4 0xB58131B0 EQ PUSH2 0x441 JUMPI DUP1 PUSH4 0xB71D1A0C EQ PUSH2 0x449 JUMPI DUP1 PUSH4 0xD33219B4 EQ PUSH2 0x45C JUMPI DUP1 PUSH4 0xDA35C664 EQ PUSH2 0x464 JUMPI PUSH2 0x25E JUMP JUMPDEST DUP1 PUSH4 0x791F5D23 EQ PUSH2 0x3FB JUMPI DUP1 PUSH4 0x7B3C71D3 EQ PUSH2 0x403 JUMPI DUP1 PUSH4 0x7BDBE4D0 EQ PUSH2 0x416 JUMPI DUP1 PUSH4 0x9E6F2626 EQ PUSH2 0x41E JUMPI DUP1 PUSH4 0xA64E024A EQ PUSH2 0x431 JUMPI PUSH2 0x25E JUMP JUMPDEST DUP1 PUSH4 0x25FD935A GT PUSH2 0x1DF JUMPI DUP1 PUSH4 0x3BCCF4FD GT PUSH2 0x1A3 JUMPI DUP1 PUSH4 0x3BCCF4FD EQ PUSH2 0x392 JUMPI DUP1 PUSH4 0x3E4F49E6 EQ PUSH2 0x3A5 JUMPI DUP1 PUSH4 0x40E58EE5 EQ PUSH2 0x3C5 JUMPI DUP1 PUSH4 0x452A9320 EQ PUSH2 0x3D8 JUMPI DUP1 PUSH4 0x56781388 EQ PUSH2 0x3E0 JUMPI DUP1 PUSH4 0x5C60DA1B EQ PUSH2 0x3F3 JUMPI PUSH2 0x25E JUMP JUMPDEST DUP1 PUSH4 0x25FD935A EQ PUSH2 0x328 JUMPI DUP1 PUSH4 0x26782247 EQ PUSH2 0x330 JUMPI DUP1 PUSH4 0x328DD982 EQ PUSH2 0x345 JUMPI DUP1 PUSH4 0x35A87DE2 EQ PUSH2 0x368 JUMPI DUP1 PUSH4 0x3932ABB1 EQ PUSH2 0x38A JUMPI PUSH2 0x25E JUMP JUMPDEST DUP1 PUSH4 0x1B9CE575 GT PUSH2 0x226 JUMPI DUP1 PUSH4 0x1B9CE575 EQ PUSH2 0x2E6 JUMPI DUP1 PUSH4 0x1EBCFEFD EQ PUSH2 0x2FB JUMPI DUP1 PUSH4 0x20606B70 EQ PUSH2 0x310 JUMPI DUP1 PUSH4 0x215809CA EQ PUSH2 0x318 JUMPI DUP1 PUSH4 0x24BC1A64 EQ PUSH2 0x320 JUMPI PUSH2 0x25E JUMP JUMPDEST DUP1 PUSH4 0x13CF08B EQ PUSH2 0x263 JUMPI DUP1 PUSH4 0x2A251A3 EQ PUSH2 0x296 JUMPI DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x2AB JUMPI DUP1 PUSH4 0x164A1AB1 EQ PUSH2 0x2C0 JUMPI DUP1 PUSH4 0x17977C61 EQ PUSH2 0x2D3 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x276 PUSH2 0x271 CALLDATASIZE PUSH1 0x4 PUSH2 0x2E15 JUMP JUMPDEST PUSH2 0x513 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x28D SWAP12 SWAP11 SWAP10 SWAP9 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x462C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x29E PUSH2 0x57F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x28D SWAP2 SWAP1 PUSH2 0x4220 JUMP JUMPDEST PUSH2 0x2B3 PUSH2 0x585 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x28D SWAP2 SWAP1 PUSH2 0x42E5 JUMP JUMPDEST PUSH2 0x29E PUSH2 0x2CE CALLDATASIZE PUSH1 0x4 PUSH2 0x2CAC JUMP JUMPDEST PUSH2 0x5B5 JUMP JUMPDEST PUSH2 0x29E PUSH2 0x2E1 CALLDATASIZE PUSH1 0x4 PUSH2 0x2BF7 JUMP JUMPDEST PUSH2 0xA73 JUMP JUMPDEST PUSH2 0x2EE PUSH2 0xA85 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x28D SWAP2 SWAP1 PUSH2 0x42C9 JUMP JUMPDEST PUSH2 0x30E PUSH2 0x309 CALLDATASIZE PUSH1 0x4 PUSH2 0x2E15 JUMP JUMPDEST PUSH2 0xA94 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x29E PUSH2 0xB04 JUMP JUMPDEST PUSH2 0x29E PUSH2 0xB1B JUMP JUMPDEST PUSH2 0x29E PUSH2 0xB21 JUMP JUMPDEST PUSH2 0x29E PUSH2 0xB2F JUMP JUMPDEST PUSH2 0x338 PUSH2 0xB3D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x28D SWAP2 SWAP1 PUSH2 0x40F0 JUMP JUMPDEST PUSH2 0x358 PUSH2 0x353 CALLDATASIZE PUSH1 0x4 PUSH2 0x2E15 JUMP JUMPDEST PUSH2 0xB4C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x28D SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x41D3 JUMP JUMPDEST PUSH2 0x37B PUSH2 0x376 CALLDATASIZE PUSH1 0x4 PUSH2 0x2E15 JUMP JUMPDEST PUSH2 0xDDB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x28D SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x46DE JUMP JUMPDEST PUSH2 0x29E PUSH2 0xDFC JUMP JUMPDEST PUSH2 0x30E PUSH2 0x3A0 CALLDATASIZE PUSH1 0x4 PUSH2 0x2F04 JUMP JUMPDEST PUSH2 0xE02 JUMP JUMPDEST PUSH2 0x3B8 PUSH2 0x3B3 CALLDATASIZE PUSH1 0x4 PUSH2 0x2E15 JUMP JUMPDEST PUSH2 0xFDA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x28D SWAP2 SWAP1 PUSH2 0x42D7 JUMP JUMPDEST PUSH2 0x30E PUSH2 0x3D3 CALLDATASIZE PUSH1 0x4 PUSH2 0x2E15 JUMP JUMPDEST PUSH2 0x1174 JUMP JUMPDEST PUSH2 0x338 PUSH2 0x140A JUMP JUMPDEST PUSH2 0x30E PUSH2 0x3EE CALLDATASIZE PUSH1 0x4 PUSH2 0x2E6D JUMP JUMPDEST PUSH2 0x1419 JUMP JUMPDEST PUSH2 0x338 PUSH2 0x1463 JUMP JUMPDEST PUSH2 0x29E PUSH2 0x1472 JUMP JUMPDEST PUSH2 0x30E PUSH2 0x411 CALLDATASIZE PUSH1 0x4 PUSH2 0x2E9D JUMP JUMPDEST PUSH2 0x1480 JUMP JUMPDEST PUSH2 0x29E PUSH2 0x14D0 JUMP JUMPDEST PUSH2 0x30E PUSH2 0x42C CALLDATASIZE PUSH1 0x4 PUSH2 0x2C1D JUMP JUMPDEST PUSH2 0x14D6 JUMP JUMPDEST PUSH2 0x29E PUSH2 0x1860 JUMP JUMPDEST PUSH2 0x29E PUSH2 0x1867 JUMP JUMPDEST PUSH2 0x29E PUSH2 0x186E JUMP JUMPDEST PUSH2 0x30E PUSH2 0x457 CALLDATASIZE PUSH1 0x4 PUSH2 0x2BF7 JUMP JUMPDEST PUSH2 0x1874 JUMP JUMPDEST PUSH2 0x2EE PUSH2 0x18F1 JUMP JUMPDEST PUSH2 0x29E PUSH2 0x1900 JUMP JUMPDEST PUSH2 0x30E PUSH2 0x47A CALLDATASIZE PUSH1 0x4 PUSH2 0x2E15 JUMP JUMPDEST PUSH2 0x1906 JUMP JUMPDEST PUSH2 0x29E PUSH2 0x1B9A JUMP JUMPDEST PUSH2 0x49A PUSH2 0x495 CALLDATASIZE PUSH1 0x4 PUSH2 0x2E33 JUMP JUMPDEST PUSH2 0x1BA6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x28D SWAP2 SWAP1 PUSH2 0x4566 JUMP JUMPDEST PUSH2 0x30E PUSH2 0x4B5 CALLDATASIZE PUSH1 0x4 PUSH2 0x2BF7 JUMP JUMPDEST PUSH2 0x1C13 JUMP JUMPDEST PUSH2 0x29E PUSH2 0x1CCB JUMP JUMPDEST PUSH2 0x30E PUSH2 0x1CD0 JUMP JUMPDEST PUSH2 0x2EE PUSH2 0x4D8 CALLDATASIZE PUSH1 0x4 PUSH2 0x2E15 JUMP JUMPDEST PUSH2 0x1DAE JUMP JUMPDEST PUSH2 0x338 PUSH2 0x1DC9 JUMP JUMPDEST PUSH2 0x30E PUSH2 0x4F3 CALLDATASIZE PUSH1 0x4 PUSH2 0x2BF7 JUMP JUMPDEST PUSH2 0x1DD8 JUMP JUMPDEST PUSH2 0x29E PUSH2 0x1F1C JUMP JUMPDEST PUSH2 0x30E PUSH2 0x50E CALLDATASIZE PUSH1 0x4 PUSH2 0x2E15 JUMP JUMPDEST PUSH2 0x1F22 JUMP JUMPDEST PUSH1 0xA PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x40 SWAP1 SWAP2 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 SWAP7 DUP7 ADD SLOAD PUSH1 0xB DUP8 ADD SLOAD PUSH1 0xC DUP9 ADD SLOAD PUSH1 0xE SWAP1 SWAP9 ADD SLOAD SWAP7 SWAP9 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP7 AND SWAP8 SWAP5 SWAP7 SWAP4 SWAP6 SWAP3 SWAP5 SWAP3 SWAP4 SWAP2 SWAP3 SWAP1 SWAP2 PUSH1 0xFF DUP1 DUP4 AND SWAP3 PUSH2 0x100 SWAP1 DIV DUP2 AND SWAP2 AND DUP12 JUMP JUMPDEST PUSH1 0x4 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x14 DUP2 MSTORE PUSH1 0x20 ADD PUSH20 0x56656E757320476F7665726E6F7220427261766F PUSH1 0x60 SHL DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x6 SLOAD PUSH1 0x0 EQ ISZERO PUSH2 0x5E3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5DA SWAP1 PUSH2 0x4336 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0xE PUSH1 0x0 DUP4 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x5F3 JUMPI INVALID JUMPDEST PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 PUSH1 0x2 ADD SLOAD PUSH1 0x9 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x782D6FE1 CALLER PUSH2 0x627 NUMBER PUSH1 0x1 PUSH2 0x20D5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x644 SWAP3 SWAP2 SWAP1 PUSH2 0x40FE JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x65C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x670 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 0x694 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2F79 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB AND LT ISZERO PUSH2 0x6BB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5DA SWAP1 PUSH2 0x44D6 JUMP JUMPDEST DUP6 MLOAD DUP8 MLOAD EQ DUP1 ISZERO PUSH2 0x6CD JUMPI POP DUP5 MLOAD DUP8 MLOAD EQ JUMPDEST DUP1 ISZERO PUSH2 0x6DA JUMPI POP DUP4 MLOAD DUP8 MLOAD EQ JUMPDEST PUSH2 0x6F6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5DA SWAP1 PUSH2 0x43B6 JUMP JUMPDEST DUP7 MLOAD PUSH2 0x714 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5DA SWAP1 PUSH2 0x4416 JUMP JUMPDEST PUSH1 0xC SLOAD DUP8 MLOAD GT ISZERO PUSH2 0x737 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5DA SWAP1 PUSH2 0x4466 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP1 ISZERO PUSH2 0x7B4 JUMPI PUSH1 0x0 PUSH2 0x758 DUP3 PUSH2 0xFDA JUMP JUMPDEST SWAP1 POP PUSH1 0x1 DUP2 PUSH1 0x7 DUP2 GT ISZERO PUSH2 0x768 JUMPI INVALID JUMPDEST EQ ISZERO PUSH2 0x786 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5DA SWAP1 PUSH2 0x44B6 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x7 DUP2 GT ISZERO PUSH2 0x794 JUMPI INVALID JUMPDEST EQ ISZERO PUSH2 0x7B2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5DA SWAP1 PUSH2 0x4476 JUMP JUMPDEST POP JUMPDEST PUSH1 0x0 PUSH2 0x7E4 NUMBER PUSH1 0xE PUSH1 0x0 DUP8 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x7CA JUMPI INVALID JUMPDEST PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD PUSH2 0x20FD JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x816 DUP3 PUSH1 0xE PUSH1 0x0 DUP9 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x7FC JUMPI INVALID JUMPDEST PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH2 0x20FD JUMP JUMPDEST PUSH1 0x7 DUP1 SLOAD PUSH1 0x1 ADD SWAP1 SSTORE SWAP1 POP PUSH2 0x829 PUSH2 0x24A0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH2 0x1E0 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x7 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 DUP13 DUP2 MSTORE PUSH1 0x20 ADD DUP12 DUP2 MSTORE PUSH1 0x20 ADD DUP11 DUP2 MSTORE PUSH1 0x20 ADD DUP10 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 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD DUP8 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x8AA JUMPI INVALID JUMPDEST PUSH1 0xFF AND SWAP1 MSTORE DUP1 MLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP4 MLOAD DUP2 SSTORE DUP2 DUP5 ADD MLOAD PUSH1 0x1 DUP3 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE SWAP2 DUP4 ADD MLOAD PUSH1 0x2 DUP4 ADD SSTORE PUSH1 0x60 DUP4 ADD MLOAD DUP1 MLOAD SWAP4 SWAP5 POP DUP5 SWAP4 PUSH2 0x911 SWAP3 PUSH1 0x3 DUP6 ADD SWAP3 ADD SWAP1 PUSH2 0x2526 JUMP JUMPDEST POP PUSH1 0x80 DUP3 ADD MLOAD DUP1 MLOAD PUSH2 0x92D SWAP2 PUSH1 0x4 DUP5 ADD SWAP2 PUSH1 0x20 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x258B JUMP JUMPDEST POP PUSH1 0xA0 DUP3 ADD MLOAD DUP1 MLOAD PUSH2 0x949 SWAP2 PUSH1 0x5 DUP5 ADD SWAP2 PUSH1 0x20 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x25D2 JUMP JUMPDEST POP PUSH1 0xC0 DUP3 ADD MLOAD DUP1 MLOAD PUSH2 0x965 SWAP2 PUSH1 0x6 DUP5 ADD SWAP2 PUSH1 0x20 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x262B JUMP JUMPDEST POP PUSH1 0xE0 DUP3 ADD MLOAD PUSH1 0x7 DUP3 ADD SSTORE PUSH2 0x100 DUP1 DUP4 ADD MLOAD PUSH1 0x8 DUP4 ADD SSTORE PUSH2 0x120 DUP4 ADD MLOAD PUSH1 0x9 DUP4 ADD SSTORE PUSH2 0x140 DUP4 ADD MLOAD PUSH1 0xA DUP4 ADD SSTORE PUSH2 0x160 DUP4 ADD MLOAD PUSH1 0xB DUP1 DUP5 ADD SWAP2 SWAP1 SWAP2 SSTORE PUSH2 0x180 DUP5 ADD MLOAD PUSH1 0xC DUP5 ADD DUP1 SLOAD PUSH2 0x1A0 DUP8 ADD MLOAD PUSH1 0xFF NOT SWAP2 DUP3 AND SWAP4 ISZERO ISZERO SWAP4 SWAP1 SWAP4 OR PUSH2 0xFF00 NOT AND SWAP3 ISZERO ISZERO SWAP1 SWAP5 MUL SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x1C0 SWAP1 SWAP4 ADD MLOAD PUSH1 0xE SWAP1 SWAP3 ADD DUP1 SLOAD SWAP1 SWAP2 AND PUSH1 0xFF SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE DUP2 MLOAD PUSH1 0x20 DUP1 DUP5 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE SWAP3 SWAP1 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 SSTORE DUP1 MLOAD PUSH32 0xC8DF7FF219F3C0358E14500814D8B62B443A4BEBF3A596BAA60B9295B1CF1BDE SWAP1 CALLER DUP14 DUP14 DUP14 DUP14 DUP10 DUP10 DUP16 DUP16 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xA44 JUMPI INVALID JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xA5A SWAP11 SWAP10 SWAP9 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4574 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 MLOAD SWAP4 POP POP POP POP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xABE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5DA SWAP1 PUSH2 0x4486 JUMP JUMPDEST PUSH1 0xC DUP1 SLOAD SWAP1 DUP3 SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH32 0xD03B3C3C5C1446BCDD31423061041C94CA3BC5450FE7CCFB0F636F4C420DE87E SWAP1 PUSH2 0xAF8 SWAP1 DUP4 SWAP1 DUP6 SWAP1 PUSH2 0x46D0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xB10 SWAP1 PUSH2 0x40E5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 DUP2 JUMP JUMPDEST PUSH2 0xE10 DUP2 JUMP JUMPDEST PUSH10 0x7F0E10AF47C1C7000000 DUP2 JUMP JUMPDEST PUSH10 0x3F870857A3E0E3800000 DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x60 DUP1 PUSH1 0x60 DUP1 PUSH1 0x0 PUSH1 0xA 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 0xBCE 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 0xBB0 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 0xC20 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 0xC0C 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 0xCF3 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 0xCDF JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xCB4 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xCDF 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 0xCC2 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 0xC48 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 0xDC5 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 0xDB1 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xD86 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xDB1 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 0xD94 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 0xD1A 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 0xE PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0x2 SWAP1 SWAP3 ADD SLOAD SWAP1 SWAP2 SWAP1 DUP4 JUMP JUMPDEST PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD PUSH2 0xE10 SWAP1 PUSH2 0x40E5 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB DUP3 KECCAK256 DUP3 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x14 DUP3 MSTORE PUSH20 0x56656E757320476F7665726E6F7220427261766F PUSH1 0x60 SHL PUSH1 0x20 SWAP1 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0x157D76627A3B71C0167806F5879F7A61D3E301322F3A3B9F900315F15937671A PUSH2 0xE6E PUSH2 0x2129 JUMP JUMPDEST ADDRESS PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xE82 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x422E 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 0xEA8 SWAP1 PUSH2 0x40A9 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB DUP2 KECCAK256 PUSH2 0xEC1 SWAP2 DUP10 SWAP1 DUP10 SWAP1 PUSH1 0x20 ADD PUSH2 0x426C 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 0xEEE SWAP3 SWAP2 SWAP1 PUSH2 0x40B4 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 0xF2B SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4294 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xF4D 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 0xF80 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5DA SWAP1 PUSH2 0x43A6 JUMP JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xB8E138887D0AA13BAB447E82DE9D5C1777041ECD21CA36BA824FF1E6C07DDDA4 DUP11 DUP11 PUSH2 0xFB8 DUP6 DUP15 DUP15 PUSH2 0x212E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xFC7 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x474C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x7 SLOAD LT ISZERO DUP1 ISZERO PUSH2 0xFEF JUMPI POP PUSH1 0x6 SLOAD DUP3 GT JUMPDEST PUSH2 0x100B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5DA SWAP1 PUSH2 0x44F6 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0xC DUP2 ADD SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x1030 JUMPI PUSH1 0x2 SWAP2 POP POP PUSH2 0x116F JUMP JUMPDEST DUP1 PUSH1 0x7 ADD SLOAD NUMBER GT PUSH2 0x1045 JUMPI PUSH1 0x0 SWAP2 POP POP PUSH2 0x116F JUMP JUMPDEST DUP1 PUSH1 0x8 ADD SLOAD NUMBER GT PUSH2 0x105A JUMPI PUSH1 0x1 SWAP2 POP POP PUSH2 0x116F JUMP JUMPDEST DUP1 PUSH1 0xA ADD SLOAD DUP2 PUSH1 0x9 ADD SLOAD GT ISZERO DUP1 PUSH2 0x107E JUMPI POP PUSH10 0x7F0E10AF47C1C7000000 DUP2 PUSH1 0x9 ADD SLOAD LT JUMPDEST ISZERO PUSH2 0x108D JUMPI PUSH1 0x3 SWAP2 POP POP PUSH2 0x116F JUMP JUMPDEST PUSH1 0x2 DUP2 ADD SLOAD PUSH2 0x10A0 JUMPI PUSH1 0x4 SWAP2 POP POP PUSH2 0x116F JUMP JUMPDEST PUSH1 0xC DUP2 ADD SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x10BC JUMPI PUSH1 0x7 SWAP2 POP POP PUSH2 0x116F JUMP JUMPDEST PUSH1 0x2 DUP2 ADD SLOAD PUSH1 0xE DUP3 ADD SLOAD PUSH1 0xFF AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SLOAD DUP3 MLOAD PUSH4 0x60D143F1 PUSH1 0xE1 SHL DUP2 MSTORE SWAP3 MLOAD PUSH2 0x1159 SWAP5 SWAP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP3 PUSH4 0xC1A287E2 SWAP3 PUSH1 0x4 DUP1 DUP3 ADD SWAP4 SWAP2 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x111C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1130 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 0x1154 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2DC3 JUMP JUMPDEST PUSH2 0x20FD JUMP JUMPDEST TIMESTAMP LT PUSH2 0x1169 JUMPI PUSH1 0x6 SWAP2 POP POP PUSH2 0x116F JUMP JUMPDEST PUSH1 0x5 SWAP2 POP POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x7 PUSH2 0x117F DUP3 PUSH2 0xFDA JUMP JUMPDEST PUSH1 0x7 DUP2 GT ISZERO PUSH2 0x118A JUMPI INVALID JUMPDEST EQ ISZERO PUSH2 0x11A8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5DA SWAP1 PUSH2 0x44E6 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0xD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ DUP1 PUSH2 0x11DB JUMPI POP PUSH1 0x1 DUP2 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ JUMPDEST DUP1 PUSH2 0x129E JUMPI POP PUSH1 0xE DUP2 DUP2 ADD SLOAD PUSH1 0xFF AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x2 ADD SLOAD PUSH1 0x9 SLOAD PUSH1 0x1 DUP1 DUP5 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 AND SWAP3 PUSH4 0x782D6FE1 SWAP3 SWAP2 AND SWAP1 PUSH2 0x1226 SWAP1 NUMBER SWAP1 PUSH2 0x20D5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1243 SWAP3 SWAP2 SWAP1 PUSH2 0x4134 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x125B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x126F 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 0x1293 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2F79 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB AND LT JUMPDEST PUSH2 0x12BA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5DA SWAP1 PUSH2 0x4446 JUMP JUMPDEST PUSH1 0xC 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 0x13DA JUMPI PUSH1 0xE DUP3 ADD SLOAD PUSH1 0xFF AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 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 0x1312 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 0x133A JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD DUP6 PUSH1 0x5 ADD DUP6 DUP2 SLOAD DUP2 LT PUSH2 0x1354 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD DUP7 PUSH1 0x6 ADD DUP7 DUP2 SLOAD DUP2 LT PUSH2 0x136D 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 0x139C SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4192 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x13B6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x13CA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 POP PUSH2 0x12CC SWAP1 POP JUMP JUMPDEST POP PUSH32 0x789CF55BE980739DAD1D0699B93B58E806B51C9D96619BFA8FE0A28ABAA7B30C DUP3 PUSH1 0x40 MLOAD PUSH2 0xAF8 SWAP2 SWAP1 PUSH2 0x4220 JUMP JUMPDEST PUSH1 0xD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST CALLER PUSH32 0xB8E138887D0AA13BAB447E82DE9D5C1777041ECD21CA36BA824FF1E6C07DDDA4 DUP4 DUP4 PUSH2 0x1448 DUP5 DUP4 DUP4 PUSH2 0x212E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1457 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x474C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH10 0x1FC3842BD1F071C00000 DUP2 JUMP JUMPDEST CALLER PUSH32 0xB8E138887D0AA13BAB447E82DE9D5C1777041ECD21CA36BA824FF1E6C07DDDA4 DUP6 DUP6 PUSH2 0x14AF DUP5 DUP4 DUP4 PUSH2 0x212E JUMP JUMPDEST DUP7 DUP7 PUSH1 0x40 MLOAD PUSH2 0x14C2 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4706 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP POP JUMP JUMPDEST PUSH1 0xC SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 MSTORE PUSH1 0xF PUSH1 0x20 MSTORE PUSH32 0xF4803E074BD026BAAF6ED2E288C9515F68C72FB7216EEBDD7CAE1718A53EC375 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ISZERO PUSH2 0x1527 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5DA SWAP1 PUSH2 0x43D6 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x1551 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5DA SWAP1 PUSH2 0x43C6 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH2 0x1577 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5DA SWAP1 PUSH2 0x4386 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x159D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5DA SWAP1 PUSH2 0x4456 JUMP JUMPDEST DUP2 MLOAD PUSH1 0x3 EQ PUSH2 0x15BE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5DA SWAP1 PUSH2 0x4326 JUMP JUMPDEST DUP3 MLOAD PUSH1 0x3 EQ PUSH2 0x15DF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5DA SWAP1 PUSH2 0x4506 JUMP JUMPDEST PUSH1 0x9 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP8 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP3 DUP4 AND OR SWAP1 SWAP3 SSTORE PUSH1 0xA PUSH1 0xC SSTORE PUSH1 0xD DUP1 SLOAD SWAP3 DUP5 AND SWAP3 SWAP1 SWAP2 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE DUP3 MLOAD PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1858 JUMPI PUSH2 0xE10 DUP6 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x1630 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x20 ADD MLOAD LT ISZERO PUSH2 0x165A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5DA SWAP1 PUSH2 0x4376 JUMP JUMPDEST PUSH3 0x62700 DUP6 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x166A JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x20 ADD MLOAD GT ISZERO PUSH2 0x1694 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5DA SWAP1 PUSH2 0x4546 JUMP JUMPDEST PUSH1 0x1 DUP6 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x16A2 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x0 ADD MLOAD LT ISZERO PUSH2 0x16CC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5DA SWAP1 PUSH2 0x4436 JUMP JUMPDEST PUSH3 0x31380 DUP6 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x16DC JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x0 ADD MLOAD GT ISZERO PUSH2 0x1706 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5DA SWAP1 PUSH2 0x44A6 JUMP JUMPDEST PUSH10 0x1FC3842BD1F071C00000 DUP6 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x171D JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x40 ADD MLOAD LT ISZERO PUSH2 0x1747 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5DA SWAP1 PUSH2 0x4346 JUMP JUMPDEST PUSH10 0x3F870857A3E0E3800000 DUP6 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x175E JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x40 ADD MLOAD GT ISZERO PUSH2 0x1788 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5DA SWAP1 PUSH2 0x4556 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x179F JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO PUSH2 0x17CE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5DA SWAP1 PUSH2 0x4496 JUMP JUMPDEST DUP5 DUP2 DUP2 MLOAD DUP2 LT PUSH2 0x17DA JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0xE DUP4 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 DUP3 MLOAD DUP2 SSTORE SWAP3 DUP3 ADD MLOAD PUSH1 0x1 DUP5 ADD SSTORE ADD MLOAD PUSH1 0x2 SWAP1 SWAP2 ADD SSTORE DUP4 MLOAD DUP5 SWAP1 DUP3 SWAP1 DUP2 LT PUSH2 0x1818 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD DUP2 ADD MLOAD PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0xF SWAP1 SWAP3 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH1 0x1 ADD PUSH2 0x1619 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH3 0x62700 DUP2 JUMP JUMPDEST PUSH3 0x31380 DUP2 JUMP JUMPDEST PUSH1 0x5 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x189E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5DA SWAP1 PUSH2 0x4306 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND OR SWAP1 SWAP3 SSTORE PUSH1 0x40 MLOAD SWAP2 AND SWAP1 PUSH32 0xCA4F2F25D0898EDD99413412FB94012F9E54EC8142F9B093E7720646A95B16A9 SWAP1 PUSH2 0xAF8 SWAP1 DUP4 SWAP1 DUP6 SWAP1 PUSH2 0x4119 JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x7 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x4 PUSH2 0x1911 DUP3 PUSH2 0xFDA JUMP JUMPDEST PUSH1 0x7 DUP2 GT ISZERO PUSH2 0x191C JUMPI INVALID JUMPDEST EQ PUSH2 0x1939 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5DA SWAP1 PUSH2 0x43E6 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0xE DUP2 ADD SLOAD PUSH1 0xFF AND DUP5 MSTORE PUSH1 0xF DUP4 MSTORE DUP2 DUP5 KECCAK256 SLOAD DUP3 MLOAD PUSH4 0xD48571F PUSH1 0xE3 SHL DUP2 MSTORE SWAP3 MLOAD SWAP2 SWAP5 SWAP4 PUSH2 0x19A2 SWAP4 TIMESTAMP SWAP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP4 AND SWAP3 PUSH4 0x6A42B8F8 SWAP3 PUSH1 0x4 DUP1 DUP5 ADD SWAP4 SWAP2 SWAP3 SWAP2 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x111C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 POP PUSH1 0x0 JUMPDEST PUSH1 0x3 DUP4 ADD SLOAD DUP2 LT ISZERO PUSH2 0x1B53 JUMPI PUSH2 0x1B4B DUP4 PUSH1 0x3 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x19C5 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 0x19ED JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD DUP6 PUSH1 0x5 ADD DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x1A07 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 0x1A95 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1A6A JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1A95 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 0x1A78 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 0x1AA9 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 0x1B37 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1B0C JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1B37 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 0x1B1A JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP PUSH1 0xE DUP10 ADD SLOAD DUP9 SWAP2 POP PUSH1 0xFF AND PUSH2 0x231E JUMP JUMPDEST PUSH1 0x1 ADD PUSH2 0x19A7 JUMP JUMPDEST POP PUSH1 0x2 DUP3 ADD DUP2 SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH32 0x9A2E42FD6722813D69113E7D0079D3D940171428DF7373DF9C7F7617CFDA2892 SWAP1 PUSH2 0x1B8D SWAP1 DUP6 SWAP1 DUP5 SWAP1 PUSH2 0x46D0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xB10 SWAP1 PUSH2 0x40A9 JUMP JUMPDEST PUSH2 0x1BAE PUSH2 0x2684 JUMP JUMPDEST POP PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP5 MSTORE PUSH1 0xD 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 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 0xD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ DUP1 PUSH2 0x1C36 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ JUMPDEST PUSH2 0x1C52 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5DA SWAP1 PUSH2 0x4526 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x1C78 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5DA SWAP1 PUSH2 0x4516 JUMP JUMPDEST PUSH1 0xD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND OR SWAP1 SWAP3 SSTORE PUSH1 0x40 MLOAD SWAP2 AND SWAP1 PUSH32 0x8FDAF06427A2010E5958F4329B566993472D14CE81D3F16CE7F2A2660DA98E3 SWAP1 PUSH2 0xAF8 SWAP1 DUP4 SWAP1 DUP6 SWAP1 PUSH2 0x4119 JUMP JUMPDEST PUSH1 0x1 DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ DUP1 ISZERO PUSH2 0x1CE9 JUMPI POP CALLER ISZERO ISZERO JUMPDEST PUSH2 0x1D05 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5DA SWAP1 PUSH2 0x4426 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP3 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP1 DUP7 AND DUP3 OR SWAP7 DUP8 SWAP1 SSTORE SWAP1 SWAP3 AND SWAP1 SWAP3 SSTORE PUSH1 0x40 MLOAD SWAP3 DUP3 AND SWAP4 SWAP1 SWAP3 PUSH32 0xF9FFABCA9C8276E99321725BCB43FB076A6C66A54B7F21C4E8146D8519B417DC SWAP3 PUSH2 0x1D69 SWAP3 DUP7 SWAP3 SWAP2 AND SWAP1 PUSH2 0x4119 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD PUSH32 0xCA4F2F25D0898EDD99413412FB94012F9E54EC8142F9B093E7720646A95B16A9 SWAP2 PUSH2 0xAF8 SWAP2 DUP5 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH2 0x4119 JUMP JUMPDEST PUSH1 0xF PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x1E02 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5DA SWAP1 PUSH2 0x44C6 JUMP JUMPDEST PUSH1 0x6 SLOAD ISZERO PUSH2 0x1E22 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5DA SWAP1 PUSH2 0x4406 JUMP JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xDA35C664 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1E5D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1E71 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 0x1E95 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2DC3 JUMP JUMPDEST PUSH1 0x7 DUP2 SWAP1 SSTORE PUSH1 0x6 SSTORE PUSH1 0x0 JUMPDEST PUSH1 0x3 DUP2 LT ISZERO PUSH2 0x1F18 JUMPI PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SLOAD DUP2 MLOAD PUSH4 0xE18B681 PUSH1 0xE0 SHL DUP2 MSTORE SWAP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP3 PUSH4 0xE18B681 SWAP3 PUSH1 0x4 DUP1 DUP3 ADD SWAP4 SWAP2 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1EF5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1F09 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP DUP1 PUSH1 0x1 ADD SWAP1 POP PUSH2 0x1EA0 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x6 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x5 PUSH2 0x1F2D DUP3 PUSH2 0xFDA JUMP JUMPDEST PUSH1 0x7 DUP2 GT ISZERO PUSH2 0x1F38 JUMPI INVALID JUMPDEST EQ PUSH2 0x1F55 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5DA SWAP1 PUSH2 0x4396 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH1 0xC DUP2 ADD DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE SWAP1 JUMPDEST PUSH1 0x3 DUP3 ADD SLOAD DUP2 LT ISZERO PUSH2 0x20A5 JUMPI PUSH1 0xE DUP3 ADD SLOAD PUSH1 0xFF AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x3 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 0x1FBC 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 0x1FE4 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD DUP6 PUSH1 0x5 ADD DUP6 DUP2 SLOAD DUP2 LT PUSH2 0x1FFE JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD DUP7 PUSH1 0x6 ADD DUP7 DUP2 SLOAD DUP2 LT PUSH2 0x2017 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 0x2046 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4192 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2060 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2074 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 0x209C SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2DE1 JUMP JUMPDEST POP PUSH1 0x1 ADD PUSH2 0x1F76 JUMP JUMPDEST POP PUSH32 0x712AE1383F79AC853F8D882153778E0260EF8F03B504E2866E0593E04D2B291F DUP3 PUSH1 0x40 MLOAD PUSH2 0xAF8 SWAP2 SWAP1 PUSH2 0x4220 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 GT ISZERO PUSH2 0x20F7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5DA SWAP1 PUSH2 0x4536 JUMP JUMPDEST POP SWAP1 SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 ADD DUP4 DUP2 LT ISZERO PUSH2 0x2122 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5DA SWAP1 PUSH2 0x43F6 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST CHAINID JUMPDEST SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH2 0x213B DUP5 PUSH2 0xFDA JUMP JUMPDEST PUSH1 0x7 DUP2 GT ISZERO PUSH2 0x2146 JUMPI INVALID JUMPDEST EQ PUSH2 0x2163 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5DA SWAP1 PUSH2 0x4356 JUMP JUMPDEST PUSH1 0x2 DUP3 PUSH1 0xFF AND GT ISZERO PUSH2 0x2187 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5DA SWAP1 PUSH2 0x42F6 JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND DUP5 MSTORE PUSH1 0xD DUP2 ADD SWAP1 SWAP3 MSTORE SWAP1 SWAP2 KECCAK256 DUP1 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x21D0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5DA SWAP1 PUSH2 0x4366 JUMP JUMPDEST PUSH1 0x9 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 0x2206 SWAP2 DUP12 SWAP2 PUSH1 0x4 ADD PUSH2 0x4134 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x221E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2232 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 0x2256 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2F79 JUMP JUMPDEST SWAP1 POP PUSH1 0xFF DUP6 AND PUSH2 0x2281 JUMPI PUSH2 0x2277 DUP4 PUSH1 0xA ADD SLOAD DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB AND PUSH2 0x20FD JUMP JUMPDEST PUSH1 0xA DUP5 ADD SSTORE PUSH2 0x22D7 JUMP JUMPDEST DUP5 PUSH1 0xFF AND PUSH1 0x1 EQ ISZERO PUSH2 0x22AE JUMPI PUSH2 0x22A4 DUP4 PUSH1 0x9 ADD SLOAD DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB AND PUSH2 0x20FD JUMP JUMPDEST PUSH1 0x9 DUP5 ADD SSTORE PUSH2 0x22D7 JUMP JUMPDEST DUP5 PUSH1 0xFF AND PUSH1 0x2 EQ ISZERO PUSH2 0x22D7 JUMPI PUSH2 0x22D1 DUP4 PUSH1 0xB ADD SLOAD DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB AND PUSH2 0x20FD JUMP JUMPDEST PUSH1 0xB DUP5 ADD SSTORE JUMPDEST DUP2 SLOAD PUSH1 0x1 PUSH1 0xFF NOT SWAP1 SWAP2 AND OR PUSH2 0xFF00 NOT AND PUSH2 0x100 PUSH1 0xFF DUP8 AND MUL OR PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFF0000 NOT AND PUSH3 0x10000 PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB DUP4 AND MUL OR SWAP1 SWAP2 SSTORE SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0xFF DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SLOAD SWAP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 PUSH4 0xF2B06537 SWAP2 PUSH2 0x235D SWAP2 DUP11 SWAP2 DUP11 SWAP2 DUP11 SWAP2 DUP11 SWAP2 DUP11 SWAP2 ADD PUSH2 0x4142 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 0x238F SWAP2 SWAP1 PUSH2 0x4220 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x23A7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x23BB 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 0x23DF SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2DA5 JUMP JUMPDEST ISZERO PUSH2 0x23FC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5DA SWAP1 PUSH2 0x4316 JUMP JUMPDEST PUSH1 0xFF DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xF PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 SLOAD SWAP1 MLOAD PUSH4 0x3A66F901 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x3A66F901 SWAP1 PUSH2 0x2445 SWAP1 DUP10 SWAP1 DUP10 SWAP1 DUP10 SWAP1 DUP10 SWAP1 DUP10 SWAP1 PUSH1 0x4 ADD PUSH2 0x4142 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x245F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2473 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 0x2497 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2DC3 JUMP JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH2 0x1E0 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 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH1 0xFF AND 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 0x257B JUMPI SWAP2 PUSH1 0x20 MUL DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x257B 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 0x2546 JUMP JUMPDEST POP PUSH2 0x2587 SWAP3 SWAP2 POP PUSH2 0x26A4 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 0x25C6 JUMPI SWAP2 PUSH1 0x20 MUL DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x25C6 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x25AB JUMP JUMPDEST POP PUSH2 0x2587 SWAP3 SWAP2 POP PUSH2 0x26C8 JUMP JUMPDEST DUP3 DUP1 SLOAD DUP3 DUP3 SSTORE SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP3 DUP3 ISZERO PUSH2 0x261F JUMPI SWAP2 PUSH1 0x20 MUL DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x261F JUMPI DUP3 MLOAD DUP1 MLOAD PUSH2 0x260F SWAP2 DUP5 SWAP2 PUSH1 0x20 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x26E2 JUMP JUMPDEST POP SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x25F2 JUMP JUMPDEST POP PUSH2 0x2587 SWAP3 SWAP2 POP PUSH2 0x274F JUMP JUMPDEST DUP3 DUP1 SLOAD DUP3 DUP3 SSTORE SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP3 DUP3 ISZERO PUSH2 0x2678 JUMPI SWAP2 PUSH1 0x20 MUL DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x2678 JUMPI DUP3 MLOAD DUP1 MLOAD PUSH2 0x2668 SWAP2 DUP5 SWAP2 PUSH1 0x20 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x26E2 JUMP JUMPDEST POP SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x264B JUMP JUMPDEST POP PUSH2 0x2587 SWAP3 SWAP2 POP PUSH2 0x2772 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 0x212B SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x2587 JUMPI DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x26AA JUMP JUMPDEST PUSH2 0x212B SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x2587 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x26CE 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 0x2723 JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH2 0x25C6 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x25C6 JUMPI SWAP2 DUP3 ADD DUP3 DUP2 GT ISZERO PUSH2 0x25C6 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x25AB JUMP JUMPDEST PUSH2 0x212B SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x2587 JUMPI PUSH1 0x0 PUSH2 0x2769 DUP3 DUP3 PUSH2 0x2795 JUMP JUMPDEST POP PUSH1 0x1 ADD PUSH2 0x2755 JUMP JUMPDEST PUSH2 0x212B SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x2587 JUMPI PUSH1 0x0 PUSH2 0x278C DUP3 DUP3 PUSH2 0x2795 JUMP JUMPDEST POP PUSH1 0x1 ADD PUSH2 0x2778 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 0x27BB JUMPI POP PUSH2 0x27D9 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP1 PUSH2 0x27D9 SWAP2 SWAP1 PUSH2 0x26C8 JUMP JUMPDEST POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x1C0D DUP2 PUSH2 0x48C1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x27F8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x280B PUSH2 0x2806 DUP3 PUSH2 0x47AB JUMP JUMPDEST PUSH2 0x4785 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 0x2830 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x285C JUMPI DUP2 PUSH2 0x2846 DUP9 DUP3 PUSH2 0x27DC JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x2833 JUMP JUMPDEST POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2877 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x2885 PUSH2 0x2806 DUP3 PUSH2 0x47AB 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 0x285C JUMPI DUP2 CALLDATALOAD DUP7 ADD PUSH2 0x28AD DUP9 DUP3 PUSH2 0x2A93 JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x2897 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x28D4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x28E2 PUSH2 0x2806 DUP3 PUSH2 0x47AB 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 0x2907 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x285C JUMPI DUP2 PUSH2 0x291D DUP9 DUP3 PUSH2 0x2B28 JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x290A JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2944 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x2952 PUSH2 0x2806 DUP3 PUSH2 0x47AB 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 0x285C JUMPI DUP2 CALLDATALOAD DUP7 ADD PUSH2 0x297A DUP9 DUP3 PUSH2 0x2A93 JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x2964 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x29A1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x29AF PUSH2 0x2806 DUP3 PUSH2 0x47AB JUMP JUMPDEST SWAP2 POP DUP2 DUP2 DUP4 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH1 0x20 DUP2 ADD SWAP1 POP DUP4 DUP6 PUSH1 0x60 DUP5 MUL DUP3 ADD GT ISZERO PUSH2 0x29D4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x285C JUMPI DUP2 PUSH2 0x29EA DUP9 DUP3 PUSH2 0x2B86 JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP1 SWAP3 ADD SWAP2 PUSH1 0x60 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x29D7 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2A13 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x2A21 PUSH2 0x2806 DUP3 PUSH2 0x47AB 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 0x2A46 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x285C JUMPI DUP2 PUSH2 0x2A5C DUP9 DUP3 PUSH2 0x2A7D JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x2A49 JUMP JUMPDEST DUP1 MLOAD PUSH2 0x1C0D DUP2 PUSH2 0x48D5 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x1C0D DUP2 PUSH2 0x48DE JUMP JUMPDEST DUP1 MLOAD PUSH2 0x1C0D DUP2 PUSH2 0x48DE JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2AA4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x2AB2 PUSH2 0x2806 DUP3 PUSH2 0x47CB JUMP JUMPDEST SWAP2 POP DUP1 DUP3 MSTORE PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP4 ADD DUP6 DUP4 DUP4 ADD GT ISZERO PUSH2 0x2ACE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2AD9 DUP4 DUP3 DUP5 PUSH2 0x4875 JUMP JUMPDEST POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2AF3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x2B01 PUSH2 0x2806 DUP3 PUSH2 0x47CB JUMP JUMPDEST SWAP2 POP DUP1 DUP3 MSTORE PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP4 ADD DUP6 DUP4 DUP4 ADD GT ISZERO PUSH2 0x2B1D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2AD9 DUP4 DUP3 DUP5 PUSH2 0x4881 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x1C0D DUP2 PUSH2 0x48E7 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x1C0D DUP2 PUSH2 0x48F0 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x2B50 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2B67 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x2B7F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2B98 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2BA2 PUSH1 0x60 PUSH2 0x4785 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x2BB0 DUP5 DUP5 PUSH2 0x2A7D JUMP JUMPDEST DUP3 MSTORE POP PUSH1 0x20 PUSH2 0x2BC1 DUP5 DUP5 DUP4 ADD PUSH2 0x2A7D JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x2BD5 DUP5 DUP3 DUP6 ADD PUSH2 0x2A7D JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x1C0D DUP2 PUSH2 0x48FD JUMP JUMPDEST DUP1 MLOAD PUSH2 0x1C0D DUP2 PUSH2 0x4906 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2C09 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2C15 DUP5 DUP5 PUSH2 0x27DC JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x2C33 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2C3F DUP8 DUP8 PUSH2 0x27DC JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2C5B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2C67 DUP8 DUP3 DUP9 ADD PUSH2 0x2990 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2C83 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2C8F DUP8 DUP3 DUP9 ADD PUSH2 0x28C3 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x60 PUSH2 0x2CA0 DUP8 DUP3 DUP9 ADD PUSH2 0x27DC JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xC0 DUP8 DUP10 SUB SLT ISZERO PUSH2 0x2CC5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP7 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2CDB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2CE7 DUP10 DUP3 DUP11 ADD PUSH2 0x27E7 JUMP JUMPDEST SWAP7 POP POP PUSH1 0x20 DUP8 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2D03 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2D0F DUP10 DUP3 DUP11 ADD PUSH2 0x2A02 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x40 DUP8 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2D2B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2D37 DUP10 DUP3 DUP11 ADD PUSH2 0x2933 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x60 DUP8 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2D53 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2D5F DUP10 DUP3 DUP11 ADD PUSH2 0x2866 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x80 DUP8 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2D7B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2D87 DUP10 DUP3 DUP11 ADD PUSH2 0x2A93 JUMP JUMPDEST SWAP3 POP POP PUSH1 0xA0 PUSH2 0x2D98 DUP10 DUP3 DUP11 ADD PUSH2 0x2B33 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 POP SWAP3 SWAP6 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2DB7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2C15 DUP5 DUP5 PUSH2 0x2A72 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2DD5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2C15 DUP5 DUP5 PUSH2 0x2A88 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2DF3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2E09 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2C15 DUP5 DUP3 DUP6 ADD PUSH2 0x2AE2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2E27 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2C15 DUP5 DUP5 PUSH2 0x2A7D JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2E46 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2E52 DUP6 DUP6 PUSH2 0x2A7D JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x2E63 DUP6 DUP3 DUP7 ADD PUSH2 0x27DC JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2E80 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2E8C DUP6 DUP6 PUSH2 0x2A7D JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x2E63 DUP6 DUP3 DUP7 ADD PUSH2 0x2BE1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x60 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x2EB3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2EBF DUP8 DUP8 PUSH2 0x2A7D JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 PUSH2 0x2ED0 DUP8 DUP3 DUP9 ADD PUSH2 0x2BE1 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2EEC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2EF8 DUP8 DUP3 DUP9 ADD PUSH2 0x2B3E JUMP JUMPDEST SWAP6 SWAP9 SWAP5 SWAP8 POP SWAP6 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x2F1C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2F28 DUP9 DUP9 PUSH2 0x2A7D JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 PUSH2 0x2F39 DUP9 DUP3 DUP10 ADD PUSH2 0x2BE1 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 PUSH2 0x2F4A DUP9 DUP3 DUP10 ADD PUSH2 0x2BE1 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 PUSH2 0x2F5B DUP9 DUP3 DUP10 ADD PUSH2 0x2A7D JUMP JUMPDEST SWAP3 POP POP PUSH1 0x80 PUSH2 0x2F6C DUP9 DUP3 DUP10 ADD PUSH2 0x2A7D 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 0x2F8B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2C15 DUP5 DUP5 PUSH2 0x2BEC JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2FA3 DUP4 DUP4 PUSH2 0x2FD2 JUMP JUMPDEST POP POP PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2122 DUP4 DUP4 PUSH2 0x3174 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2FA3 DUP4 DUP4 PUSH2 0x315A JUMP JUMPDEST PUSH2 0x2FCC DUP2 PUSH2 0x4854 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x2FCC DUP2 PUSH2 0x4811 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2FE6 DUP3 PUSH2 0x4804 JUMP JUMPDEST PUSH2 0x2FF0 DUP2 DUP6 PUSH2 0x4808 JUMP JUMPDEST SWAP4 POP PUSH2 0x2FFB DUP4 PUSH2 0x47F2 JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x3029 JUMPI DUP2 MLOAD PUSH2 0x3013 DUP9 DUP3 PUSH2 0x2F97 JUMP JUMPDEST SWAP8 POP PUSH2 0x301E DUP4 PUSH2 0x47F2 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 ADD PUSH2 0x2FFF JUMP JUMPDEST POP SWAP5 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x303F DUP3 PUSH2 0x4804 JUMP JUMPDEST PUSH2 0x3049 DUP2 DUP6 PUSH2 0x4808 JUMP JUMPDEST SWAP4 POP DUP4 PUSH1 0x20 DUP3 MUL DUP6 ADD PUSH2 0x305B DUP6 PUSH2 0x47F2 JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP6 DUP2 LT ISZERO PUSH2 0x3095 JUMPI DUP5 DUP5 SUB DUP10 MSTORE DUP2 MLOAD PUSH2 0x3078 DUP6 DUP3 PUSH2 0x2FAB JUMP JUMPDEST SWAP5 POP PUSH2 0x3083 DUP4 PUSH2 0x47F2 JUMP JUMPDEST PUSH1 0x20 SWAP11 SWAP1 SWAP11 ADD SWAP10 SWAP3 POP POP PUSH1 0x1 ADD PUSH2 0x305F JUMP JUMPDEST POP SWAP2 SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x30AD DUP3 PUSH2 0x4804 JUMP JUMPDEST PUSH2 0x30B7 DUP2 DUP6 PUSH2 0x4808 JUMP JUMPDEST SWAP4 POP DUP4 PUSH1 0x20 DUP3 MUL DUP6 ADD PUSH2 0x30C9 DUP6 PUSH2 0x47F2 JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP6 DUP2 LT ISZERO PUSH2 0x3095 JUMPI DUP5 DUP5 SUB DUP10 MSTORE DUP2 MLOAD PUSH2 0x30E6 DUP6 DUP3 PUSH2 0x2FAB JUMP JUMPDEST SWAP5 POP PUSH2 0x30F1 DUP4 PUSH2 0x47F2 JUMP JUMPDEST PUSH1 0x20 SWAP11 SWAP1 SWAP11 ADD SWAP10 SWAP3 POP POP PUSH1 0x1 ADD PUSH2 0x30CD JUMP JUMPDEST PUSH1 0x0 PUSH2 0x310E DUP3 PUSH2 0x4804 JUMP JUMPDEST PUSH2 0x3118 DUP2 DUP6 PUSH2 0x4808 JUMP JUMPDEST SWAP4 POP PUSH2 0x3123 DUP4 PUSH2 0x47F2 JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x3029 JUMPI DUP2 MLOAD PUSH2 0x313B DUP9 DUP3 PUSH2 0x2FB7 JUMP JUMPDEST SWAP8 POP PUSH2 0x3146 DUP4 PUSH2 0x47F2 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 ADD PUSH2 0x3127 JUMP JUMPDEST PUSH2 0x2FCC DUP2 PUSH2 0x481C JUMP JUMPDEST PUSH2 0x2FCC DUP2 PUSH2 0x212B JUMP JUMPDEST PUSH2 0x2FCC PUSH2 0x316F DUP3 PUSH2 0x212B JUMP JUMPDEST PUSH2 0x212B JUMP JUMPDEST PUSH1 0x0 PUSH2 0x317F DUP3 PUSH2 0x4804 JUMP JUMPDEST PUSH2 0x3189 DUP2 DUP6 PUSH2 0x4808 JUMP JUMPDEST SWAP4 POP PUSH2 0x3199 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x4881 JUMP JUMPDEST PUSH2 0x31A2 DUP2 PUSH2 0x48AD 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 0x31C9 JUMPI PUSH1 0x1 DUP2 EQ PUSH2 0x31EF JUMPI PUSH2 0x322E JUMP JUMPDEST PUSH1 0x7F PUSH1 0x2 DUP4 DIV AND PUSH2 0x31DA DUP2 DUP8 PUSH2 0x4808 JUMP JUMPDEST PUSH1 0xFF NOT DUP5 AND DUP2 MSTORE SWAP6 POP POP PUSH1 0x20 DUP6 ADD SWAP3 POP PUSH2 0x322E JUMP JUMPDEST PUSH1 0x2 DUP3 DIV PUSH2 0x31FD DUP2 DUP8 PUSH2 0x4808 JUMP JUMPDEST SWAP6 POP PUSH2 0x3208 DUP6 PUSH2 0x47F8 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x3227 JUMPI DUP2 SLOAD DUP9 DUP3 ADD MSTORE PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x20 ADD PUSH2 0x320B JUMP JUMPDEST DUP8 ADD SWAP5 POP POP POP JUMPDEST POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x2FCC DUP2 PUSH2 0x4821 JUMP JUMPDEST PUSH2 0x2FCC DUP2 PUSH2 0x485F JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3254 DUP4 DUP6 PUSH2 0x4808 JUMP JUMPDEST SWAP4 POP PUSH2 0x3261 DUP4 DUP6 DUP5 PUSH2 0x4875 JUMP JUMPDEST PUSH2 0x31A2 DUP4 PUSH2 0x48AD JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3277 PUSH1 0x32 DUP4 PUSH2 0x4808 JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A63617374566F7465496E7465726E616C3A DUP2 MSTORE PUSH18 0x20696E76616C696420766F74652074797065 PUSH1 0x70 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x32CB PUSH1 0x28 DUP4 PUSH2 0x116F JUMP JUMPDEST PUSH32 0x42616C6C6F742875696E743235362070726F706F73616C49642C75696E743820 DUP2 MSTORE PUSH8 0x737570706F727429 PUSH1 0xC0 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x28 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3315 PUSH1 0x2A DUP4 PUSH2 0x4808 JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A5F73657450656E64696E6741646D696E3A20 DUP2 MSTORE PUSH10 0x61646D696E206F6E6C79 PUSH1 0xB0 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3361 PUSH1 0x55 DUP4 PUSH2 0x4808 JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A71756575654F72526576657274496E7465 DUP2 MSTORE PUSH32 0x726E616C3A206964656E746963616C2070726F706F73616C20616374696F6E20 PUSH1 0x20 DUP3 ADD MSTORE PUSH21 0x616C72656164792071756575656420617420657461 PUSH1 0x58 SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x33DE PUSH1 0x56 DUP4 PUSH2 0x4808 JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A696E697469616C697A653A6E756D626572 DUP2 MSTORE PUSH32 0x206F662074696D656C6F636B732073686F756C64206D61746368206E756D6265 PUSH1 0x20 DUP3 ADD MSTORE PUSH22 0x72206F6620676F7665726E616E636520726F75746573 PUSH1 0x50 SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x345C PUSH1 0x31 DUP4 PUSH2 0x4808 JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A70726F706F73653A20476F7665726E6F72 DUP2 MSTORE PUSH17 0x20427261766F206E6F7420616374697665 PUSH1 0x78 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x34AF PUSH1 0x2 DUP4 PUSH2 0x116F JUMP JUMPDEST PUSH2 0x1901 PUSH1 0xF0 SHL DUP2 MSTORE PUSH1 0x2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x34CD PUSH1 0x39 DUP4 PUSH2 0x4808 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4910 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP2 MSTORE PUSH32 0x6964206D696E2070726F706F73616C207468726573686F6C6400000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x351A PUSH1 0x31 DUP4 PUSH2 0x4808 JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A63617374566F7465496E7465726E616C3A DUP2 MSTORE PUSH17 0x81D9BDD1A5B99C81A5CC818DB1BDCD959 PUSH1 0x7A SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x356D PUSH1 0x34 DUP4 PUSH2 0x4808 JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A63617374566F7465496E7465726E616C3A DUP2 MSTORE PUSH20 0x81D9BDD195C88185B1C9958591E481D9BDD1959 PUSH1 0x62 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x35C3 PUSH1 0x34 DUP4 PUSH2 0x4808 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4910 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP2 MSTORE PUSH20 0x1A59081B5A5B881D9BDD1A5B99C81C195C9A5BD9 PUSH1 0x62 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3607 PUSH1 0x2E DUP4 PUSH2 0x4808 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4910 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP2 MSTORE PUSH14 0x6964207876732061646472657373 PUSH1 0x90 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3645 PUSH1 0x45 DUP4 PUSH2 0x4808 JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A657865637574653A2070726F706F73616C 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 0x36B2 PUSH1 0x2F DUP4 PUSH2 0x4808 JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A63617374566F746542795369673A20696E DUP2 MSTORE PUSH15 0x76616C6964207369676E6174757265 PUSH1 0x88 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3703 PUSH1 0x44 DUP4 PUSH2 0x4808 JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A70726F706F73653A2070726F706F73616C 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 0x376F PUSH1 0x25 DUP4 PUSH2 0x4808 JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A696E697469616C697A653A2061646D696E DUP2 MSTORE PUSH5 0x206F6E6C79 PUSH1 0xD8 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x37B6 PUSH1 0x32 DUP4 PUSH2 0x4808 JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A696E697469616C697A653A2063616E6E6F DUP2 MSTORE PUSH18 0x7420696E697469616C697A65207477696365 PUSH1 0x70 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x380A PUSH1 0x44 DUP4 PUSH2 0x4808 JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A71756575653A2070726F706F73616C2063 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 0x3876 PUSH1 0x11 DUP4 PUSH2 0x4808 JUMP JUMPDEST PUSH17 0x6164646974696F6E206F766572666C6F77 PUSH1 0x78 SHL DUP2 MSTORE PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x38A3 PUSH1 0x43 DUP4 PUSH2 0x116F 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 0x390E PUSH1 0x30 DUP4 PUSH2 0x4808 JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A5F696E6974696174653A2063616E206F6E DUP2 MSTORE PUSH16 0x6C7920696E697469617465206F6E6365 PUSH1 0x80 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3960 PUSH1 0x2C DUP4 PUSH2 0x4808 JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A70726F706F73653A206D7573742070726F DUP2 MSTORE PUSH12 0x7669646520616374696F6E73 PUSH1 0xA0 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x39AE PUSH1 0x2E DUP4 PUSH2 0x4808 JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A5F61636365707441646D696E3A2070656E64 DUP2 MSTORE PUSH14 0x696E672061646D696E206F6E6C79 PUSH1 0x90 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x39FE PUSH1 0x33 DUP4 PUSH2 0x4808 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4910 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP2 MSTORE PUSH19 0x6964206D696E20766F74696E672064656C6179 PUSH1 0x68 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3A41 PUSH1 0x2F DUP4 PUSH2 0x4808 JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A63616E63656C3A2070726F706F73657220 DUP2 MSTORE PUSH15 0x18589BDD99481D1A1C995CDA1BDB19 PUSH1 0x8A SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3A92 PUSH1 0x2B DUP4 PUSH2 0x4808 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4910 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP2 MSTORE PUSH11 0x34B21033BAB0B93234B0B7 PUSH1 0xA9 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3ACD PUSH1 0x28 DUP4 PUSH2 0x4808 JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A70726F706F73653A20746F6F206D616E79 DUP2 MSTORE PUSH8 0x20616374696F6E73 PUSH1 0xC0 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3B17 PUSH1 0x59 DUP4 PUSH2 0x4808 JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A70726F706F73653A206F6E65206C697665 DUP2 MSTORE PUSH32 0x2070726F706F73616C207065722070726F706F7365722C20666F756E6420616E PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x20616C72656164792070656E64696E672070726F706F73616C00000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3B9C PUSH1 0x34 DUP4 PUSH2 0x4808 JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A5F73657450726F706F73616C4D61784F70 DUP2 MSTORE PUSH20 0x65726174696F6E733A2061646D696E206F6E6C79 PUSH1 0x60 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3BF2 PUSH1 0x32 DUP4 PUSH2 0x4808 JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A696E697469616C697A653A696E76616C69 DUP2 MSTORE PUSH18 0x642074696D656C6F636B2061646472657373 PUSH1 0x70 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3C46 PUSH1 0x33 DUP4 PUSH2 0x4808 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4910 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP2 MSTORE PUSH19 0x6964206D617820766F74696E672064656C6179 PUSH1 0x68 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3C89 PUSH1 0x58 DUP4 PUSH2 0x4808 JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A70726F706F73653A206F6E65206C697665 DUP2 MSTORE PUSH32 0x2070726F706F73616C207065722070726F706F7365722C20666F756E6420616E PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x20616C7265616479206163746976652070726F706F73616C0000000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1C0D PUSH1 0x0 DUP4 PUSH2 0x4808 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3D1B PUSH1 0x24 DUP4 PUSH2 0x4808 JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A5F696E6974696174653A2061646D696E20 DUP2 MSTORE PUSH4 0x6F6E6C79 PUSH1 0xE0 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3D61 PUSH1 0x3F DUP4 PUSH2 0x4808 JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A70726F706F73653A2070726F706F736572 DUP2 MSTORE PUSH32 0x20766F7465732062656C6F772070726F706F73616C207468726573686F6C6400 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3DC0 PUSH1 0x36 DUP4 PUSH2 0x4808 JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A63616E63656C3A2063616E6E6F74206361 DUP2 MSTORE PUSH22 0x1B98D95B08195E1958DD5D1959081C1C9BDC1BDCD85B PUSH1 0x52 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3E18 PUSH1 0x29 DUP4 PUSH2 0x4808 JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A73746174653A20696E76616C6964207072 DUP2 MSTORE PUSH9 0x1BDC1BDCD85B081A59 PUSH1 0xBA SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3E63 PUSH1 0x5D DUP4 PUSH2 0x4808 JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A696E697469616C697A653A6E756D626572 DUP2 MSTORE PUSH32 0x206F662070726F706F73616C20636F6E666967732073686F756C64206D617463 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x68206E756D626572206F6620676F7665726E616E636520726F75746573000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3EE8 PUSH1 0x3B DUP4 PUSH2 0x4808 JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A5F736574477561726469616E3A2063616E DUP2 MSTORE PUSH32 0x6E6F74206C69766520776974686F7574206120677561726469616E0000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3F47 PUSH1 0x33 DUP4 PUSH2 0x4808 JUMP JUMPDEST PUSH32 0x476F7665726E6F72427261766F3A3A5F736574477561726469616E3A2061646D DUP2 MSTORE PUSH19 0x696E206F7220677561726469616E206F6E6C79 PUSH1 0x68 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3F9C PUSH1 0x15 DUP4 PUSH2 0x4808 JUMP JUMPDEST PUSH21 0x7375627472616374696F6E20756E646572666C6F77 PUSH1 0x58 SHL DUP2 MSTORE PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3FCD PUSH1 0x34 DUP4 PUSH2 0x4808 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4910 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP2 MSTORE PUSH20 0x1A59081B585E081D9BDD1A5B99C81C195C9A5BD9 PUSH1 0x62 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4011 PUSH1 0x39 DUP4 PUSH2 0x4808 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4910 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP2 MSTORE PUSH32 0x6964206D61782070726F706F73616C207468726573686F6C6400000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 MLOAD PUSH1 0x60 DUP4 ADD SWAP1 PUSH2 0x4062 DUP5 DUP3 PUSH2 0x3151 JUMP JUMPDEST POP PUSH1 0x20 DUP3 ADD MLOAD PUSH2 0x4075 PUSH1 0x20 DUP6 ADD DUP3 PUSH2 0x408E JUMP JUMPDEST POP PUSH1 0x40 DUP3 ADD MLOAD PUSH2 0x4088 PUSH1 0x40 DUP6 ADD DUP3 PUSH2 0x40A0 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0x2FCC DUP2 PUSH2 0x4842 JUMP JUMPDEST PUSH2 0x2FCC DUP2 PUSH2 0x486A JUMP JUMPDEST PUSH2 0x2FCC DUP2 PUSH2 0x4848 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1C0D DUP3 PUSH2 0x32BE JUMP JUMPDEST PUSH1 0x0 PUSH2 0x40BF DUP3 PUSH2 0x34A2 JUMP JUMPDEST SWAP2 POP PUSH2 0x40CB DUP3 DUP6 PUSH2 0x3163 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH2 0x40DB DUP3 DUP5 PUSH2 0x3163 JUMP JUMPDEST POP PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1C0D DUP3 PUSH2 0x3896 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x1C0D DUP3 DUP5 PUSH2 0x2FD2 JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0x410C DUP3 DUP6 PUSH2 0x2FC3 JUMP JUMPDEST PUSH2 0x2122 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x315A JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0x4127 DUP3 DUP6 PUSH2 0x2FD2 JUMP JUMPDEST PUSH2 0x2122 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x2FD2 JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0x410C DUP3 DUP6 PUSH2 0x2FD2 JUMP JUMPDEST PUSH1 0xA0 DUP2 ADD PUSH2 0x4150 DUP3 DUP9 PUSH2 0x2FD2 JUMP JUMPDEST PUSH2 0x415D PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x315A JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x416F DUP2 DUP7 PUSH2 0x3174 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x4183 DUP2 DUP6 PUSH2 0x3174 JUMP JUMPDEST SWAP1 POP PUSH2 0xA69 PUSH1 0x80 DUP4 ADD DUP5 PUSH2 0x315A JUMP JUMPDEST PUSH1 0xA0 DUP2 ADD PUSH2 0x41A0 DUP3 DUP9 PUSH2 0x2FD2 JUMP JUMPDEST PUSH2 0x41AD PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x315A JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x41BF DUP2 DUP7 PUSH2 0x31AC JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x4183 DUP2 DUP6 PUSH2 0x31AC JUMP JUMPDEST PUSH1 0x80 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x41E4 DUP2 DUP8 PUSH2 0x2FDB JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x41F8 DUP2 DUP7 PUSH2 0x3103 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x420C DUP2 DUP6 PUSH2 0x30A2 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0xA69 DUP2 DUP5 PUSH2 0x3034 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x1C0D DUP3 DUP5 PUSH2 0x315A JUMP JUMPDEST PUSH1 0x80 DUP2 ADD PUSH2 0x423C DUP3 DUP8 PUSH2 0x315A JUMP JUMPDEST PUSH2 0x4249 PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x315A JUMP JUMPDEST PUSH2 0x4256 PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x315A JUMP JUMPDEST PUSH2 0x4263 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x2FD2 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP2 ADD PUSH2 0x427A DUP3 DUP7 PUSH2 0x315A JUMP JUMPDEST PUSH2 0x4287 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x315A JUMP JUMPDEST PUSH2 0x2C15 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x408E JUMP JUMPDEST PUSH1 0x80 DUP2 ADD PUSH2 0x42A2 DUP3 DUP8 PUSH2 0x315A JUMP JUMPDEST PUSH2 0x42AF PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x408E JUMP JUMPDEST PUSH2 0x42BC PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x315A JUMP JUMPDEST PUSH2 0x4263 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x315A JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x1C0D DUP3 DUP5 PUSH2 0x3236 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x1C0D DUP3 DUP5 PUSH2 0x323F JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x2122 DUP2 DUP5 PUSH2 0x3174 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1C0D DUP2 PUSH2 0x326A JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1C0D DUP2 PUSH2 0x3308 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1C0D DUP2 PUSH2 0x3354 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1C0D DUP2 PUSH2 0x33D1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1C0D DUP2 PUSH2 0x344F JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1C0D DUP2 PUSH2 0x34C0 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1C0D DUP2 PUSH2 0x350D JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1C0D DUP2 PUSH2 0x3560 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1C0D DUP2 PUSH2 0x35B6 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1C0D DUP2 PUSH2 0x35FA JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1C0D DUP2 PUSH2 0x3638 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1C0D DUP2 PUSH2 0x36A5 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1C0D DUP2 PUSH2 0x36F6 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1C0D DUP2 PUSH2 0x3762 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1C0D DUP2 PUSH2 0x37A9 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1C0D DUP2 PUSH2 0x37FD JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1C0D DUP2 PUSH2 0x3869 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1C0D DUP2 PUSH2 0x3901 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1C0D DUP2 PUSH2 0x3953 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1C0D DUP2 PUSH2 0x39A1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1C0D DUP2 PUSH2 0x39F1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1C0D DUP2 PUSH2 0x3A34 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1C0D DUP2 PUSH2 0x3A85 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1C0D DUP2 PUSH2 0x3AC0 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1C0D DUP2 PUSH2 0x3B0A JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1C0D DUP2 PUSH2 0x3B8F JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1C0D DUP2 PUSH2 0x3BE5 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1C0D DUP2 PUSH2 0x3C39 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1C0D DUP2 PUSH2 0x3C7C JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1C0D DUP2 PUSH2 0x3D0E JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1C0D DUP2 PUSH2 0x3D54 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1C0D DUP2 PUSH2 0x3DB3 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1C0D DUP2 PUSH2 0x3E0B JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1C0D DUP2 PUSH2 0x3E56 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1C0D DUP2 PUSH2 0x3EDB JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1C0D DUP2 PUSH2 0x3F3A JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1C0D DUP2 PUSH2 0x3F8F JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1C0D DUP2 PUSH2 0x3FC0 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1C0D DUP2 PUSH2 0x4004 JUMP JUMPDEST PUSH1 0x60 DUP2 ADD PUSH2 0x1C0D DUP3 DUP5 PUSH2 0x4051 JUMP JUMPDEST PUSH2 0x140 DUP2 ADD PUSH2 0x4583 DUP3 DUP14 PUSH2 0x315A JUMP JUMPDEST PUSH2 0x4590 PUSH1 0x20 DUP4 ADD DUP13 PUSH2 0x2FC3 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x45A2 DUP2 DUP12 PUSH2 0x2FDB JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x45B6 DUP2 DUP11 PUSH2 0x3103 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x80 DUP4 ADD MSTORE PUSH2 0x45CA DUP2 DUP10 PUSH2 0x30A2 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0xA0 DUP4 ADD MSTORE PUSH2 0x45DE DUP2 DUP9 PUSH2 0x3034 JUMP JUMPDEST SWAP1 POP PUSH2 0x45ED PUSH1 0xC0 DUP4 ADD DUP8 PUSH2 0x315A JUMP JUMPDEST PUSH2 0x45FA PUSH1 0xE0 DUP4 ADD DUP7 PUSH2 0x315A JUMP JUMPDEST DUP2 DUP2 SUB PUSH2 0x100 DUP4 ADD MSTORE PUSH2 0x460D DUP2 DUP6 PUSH2 0x3174 JUMP JUMPDEST SWAP1 POP PUSH2 0x461D PUSH2 0x120 DUP4 ADD DUP5 PUSH2 0x408E JUMP JUMPDEST SWAP12 SWAP11 POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x160 DUP2 ADD PUSH2 0x463B DUP3 DUP15 PUSH2 0x315A JUMP JUMPDEST PUSH2 0x4648 PUSH1 0x20 DUP4 ADD DUP14 PUSH2 0x2FD2 JUMP JUMPDEST PUSH2 0x4655 PUSH1 0x40 DUP4 ADD DUP13 PUSH2 0x315A JUMP JUMPDEST PUSH2 0x4662 PUSH1 0x60 DUP4 ADD DUP12 PUSH2 0x315A JUMP JUMPDEST PUSH2 0x466F PUSH1 0x80 DUP4 ADD DUP11 PUSH2 0x315A JUMP JUMPDEST PUSH2 0x467C PUSH1 0xA0 DUP4 ADD DUP10 PUSH2 0x315A JUMP JUMPDEST PUSH2 0x4689 PUSH1 0xC0 DUP4 ADD DUP9 PUSH2 0x315A JUMP JUMPDEST PUSH2 0x4696 PUSH1 0xE0 DUP4 ADD DUP8 PUSH2 0x315A JUMP JUMPDEST PUSH2 0x46A4 PUSH2 0x100 DUP4 ADD DUP7 PUSH2 0x3151 JUMP JUMPDEST PUSH2 0x46B2 PUSH2 0x120 DUP4 ADD DUP6 PUSH2 0x3151 JUMP JUMPDEST PUSH2 0x46C0 PUSH2 0x140 DUP4 ADD DUP5 PUSH2 0x408E JUMP JUMPDEST SWAP13 SWAP12 POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0x410C DUP3 DUP6 PUSH2 0x315A JUMP JUMPDEST PUSH1 0x60 DUP2 ADD PUSH2 0x46EC DUP3 DUP7 PUSH2 0x315A JUMP JUMPDEST PUSH2 0x46F9 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x315A JUMP JUMPDEST PUSH2 0x2C15 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x315A JUMP JUMPDEST PUSH1 0x80 DUP2 ADD PUSH2 0x4714 DUP3 DUP9 PUSH2 0x315A JUMP JUMPDEST PUSH2 0x4721 PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x408E JUMP JUMPDEST PUSH2 0x472E PUSH1 0x40 DUP4 ADD DUP7 PUSH2 0x4097 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x4741 DUP2 DUP5 DUP7 PUSH2 0x3248 JUMP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x80 DUP2 ADD PUSH2 0x475A DUP3 DUP7 PUSH2 0x315A JUMP JUMPDEST PUSH2 0x4767 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x408E JUMP JUMPDEST PUSH2 0x4774 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x4097 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x4263 DUP2 PUSH2 0x3D01 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP2 DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x47A3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH2 0x47C1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x20 SWAP1 DUP2 MUL ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH2 0x47E1 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 0x1C0D DUP3 PUSH2 0x4836 JUMP JUMPDEST ISZERO ISZERO SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1C0D DUP3 PUSH2 0x4811 JUMP JUMPDEST DUP1 PUSH2 0x116F DUP2 PUSH2 0x48B7 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 0x1C0D DUP3 PUSH2 0x4821 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1C0D DUP3 PUSH2 0x482C JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1C0D DUP3 PUSH2 0x4848 JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x489C JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x4884 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x4088 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 0x27D9 JUMPI INVALID JUMPDEST PUSH2 0x48CA DUP2 PUSH2 0x4811 JUMP JUMPDEST DUP2 EQ PUSH2 0x27D9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x48CA DUP2 PUSH2 0x481C JUMP JUMPDEST PUSH2 0x48CA DUP2 PUSH2 0x212B JUMP JUMPDEST PUSH2 0x48CA DUP2 PUSH2 0x4821 JUMP JUMPDEST PUSH1 0x3 DUP2 LT PUSH2 0x27D9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x48CA DUP2 PUSH2 0x4842 JUMP JUMPDEST PUSH2 0x48CA DUP2 PUSH2 0x4848 JUMP INVALID SELFBALANCE PUSH16 0x7665726E6F72427261766F3A3A696E69 PUSH21 0x69616C697A653A20696E76616CA365627A7A723158 KECCAK256 0x4D SWAP5 EXTCODEHASH 0xCB 0x48 0xDB KECCAK256 0xA7 0xED CREATE2 SELFDESTRUCT 0xA7 0xD4 0xE2 0xF9 SWAP16 CALLVALUE 0x4F 0xF7 0x28 CREATE2 0xB2 SMOD 0xBC 0x2C PC 0x26 CALLCODE 0xE5 0xDC DUP8 MLOAD PUSH13 0x6578706572696D656E74616CF5 PUSH5 0x736F6C6343 STOP SDIV LT STOP BLOCKHASH ","sourceMap":"332:21259:6:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;332:21259:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4173:42:8;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;3580:24;;;:::i;:::-;;;;;;;;470:52:6;;;:::i;:::-;;;;;;;;5584:2916;;;;;;;;;:::i;4276:49:8:-;;;;;;;;;:::i;4066:33::-;;;:::i;:::-;;;;;;;;19032:387:6;;;;;;;;;:::i;:::-;;1586:130;;;:::i;842:52::-;;;:::i;1449:44::-;;;:::i;716:55::-;;;:::i;3062:27:8:-;;;:::i;:::-;;;;;;;;12221:328:6;;;;;;;;;:::i;:::-;;;;;;;;;;;7673:54:8;;;;;;;;;:::i;:::-;;;;;;;;;;3475:23;;;:::i;15510:702:6:-;;;;;;;;;:::i;13054:1134::-;;;;;;;;;:::i;:::-;;;;;;;;11042:985;;;;;;;;;:::i;6755:23:8:-;;;:::i;14393:177:6:-;;;;;;;;;:::i;3138:29:8:-;;;:::i;584:55:6:-;;;:::i;14853:215::-;;;;;;;;;:::i;6652:33:8:-;;;:::i;2193:2555:6:-;;;;;;;;;:::i;982:58::-;;;:::i;1220:56::-;;;:::i;3709:29:8:-;;;:::i;19733:521:6:-;;;;;;;;;:::i;3968:33:8:-;;;:::i;3877:25::-;;;:::i;8631:786:6:-;;;;;;;;;:::i;1803:95::-;;;:::i;12758:152::-;;;;;;;;;:::i;:::-;;;;;;;;17706:410;;;;;;;;;:::i;1127:41::-;;;:::i;20434:655::-;;;:::i;7811:59:8:-;;;;;;;;;:::i;2979:20::-;;;:::i;18404:478:6:-;;;;;;;;;:::i;3795:29:8:-;;;:::i;10145:696:6:-;;;;;;;;;:::i;4173:42:8:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4173:42:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3580:24::-;;;;:::o;470:52:6:-;;;;;;;;;;;;;;-1:-1:-1;;;470:52:6;;;;:::o;5584:2916::-;5827:4;5909:17;;5930:1;5909:22;;5901:84;;;;-1:-1:-1;;;5901:84:6;;;;;;;;;;;;;;;;;6095:15;:36;6117:12;6111:19;;;;;;;;6095:36;;;;;;;;;;;;;-1:-1:-1;6095:36:6;:54;;;6016:8;;-1:-1:-1;;;;;6016:8:6;:22;6039:10;6051:23;6058:12;6016:8;6051:6;:23::i;:::-;6016:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6016:59:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6016:59:6;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;6016:59:6;;;;;;;;;-1:-1:-1;;;;;6016:133:6;;;5995:243;;;;-1:-1:-1;;;5995:243:6;;;;;;;;;6287:6;:13;6269:7;:14;:31;:86;;;;;6338:10;:17;6320:7;:14;:35;6269:86;:140;;;;;6393:9;:16;6375:7;:14;:34;6269:140;6248:255;;;;-1:-1:-1;;;6248:255:6;;;;;;;;;6521:14;;6513:76;;;;-1:-1:-1;;;6513:76:6;;;;;;;;;6625:21;;6607:7;:14;:39;;6599:92;;;;-1:-1:-1;;;6599:92:6;;;;;;;;;6744:10;6702:21;6726:29;;;:17;:29;;;;;;6769:21;;6765:548;;6806:42;6851:23;6857:16;6851:5;:23::i;:::-;6806:68;-1:-1:-1;6945:20:6;6913:28;:52;;;;;;;;;;6888:199;;;;-1:-1:-1;;;6888:199:6;;;;;;;;;7158:21;7126:28;:53;;;;;;;;;;7101:201;;;;-1:-1:-1;;;7101:201:6;;;;;;;;;6765:548;;7323:15;7341:70;7348:12;7362:15;:36;7384:12;7378:19;;;;;;;;7362:36;;;;;;;;;;;;;:48;;;7341:6;:70::i;:::-;7323:88;;7421:13;7437:69;7444:10;7456:15;:36;7478:12;7472:19;;;;;;;;7456:36;;;;;;;;;;;;;:49;;;7437:6;:69::i;:::-;7517:13;:15;;;;;;7421:85;-1:-1:-1;7542:27:6;;:::i;:::-;7572:489;;;;;;;;7599:13;;7572:489;;;;7636:10;-1:-1:-1;;;;;7572:489:6;;;;;7665:1;7572:489;;;;7689:7;7572:489;;;;7718:6;7572:489;;;;7750:10;7572:489;;;;7785:9;7572:489;;;;7820:10;7572:489;;;;7854:8;7572:489;;;;7886:1;7572:489;;;;7915:1;7572:489;;;;7944:1;7572:489;;;;7969:5;7572:489;;;;;;7998:5;7572:489;;;;;;8037:12;8031:19;;;;;;;;7572:489;;;;8082:14;;8072:25;;;;:9;:25;;;;;;;;;:39;;;;;;;;;;;;;-1:-1:-1;;;;;;8072:39:6;-1:-1:-1;;;;;8072:39:6;;;;;;;;;;;;;;;;;;;;;;;8082:14;;-1:-1:-1;8082:14:6;;8072:39;;;;;;;;;:::i;:::-;-1:-1:-1;8072:39:6;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;8072:39:6;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;8072:39:6;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;8072:39:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8072:39:6;;;;;;;;;;-1:-1:-1;;8072:39:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8163:14;;8139:20;;;;;-1:-1:-1;;;;;8121:39:6;-1:-1:-1;8121:39:6;;;;;;;;;;:56;8222:14;;8193:269;;8250:10;8274:7;8295:6;8315:10;8339:9;8362:10;8386:8;8408:11;8439:12;8433:19;;;;;;;;8193:269;;;;;;;;;;;;;;;;;;;;;;;;8479:14;;-1:-1:-1;;;;5584:2916:6;;;;;;;;;:::o;4276:49:8:-;;;;;;;;;;;;;:::o;4066:33::-;;;-1:-1:-1;;;;;4066:33:8;;:::o;19032:387:6:-;19137:5;;-1:-1:-1;;;;;19137:5:6;19123:10;:19;19115:84;;;;-1:-1:-1;;;19115:84:6;;;;;;;;;19241:21;;;19272:46;;;;19334:78;;;;;;19241:21;;19296:22;;19334:78;;;;;;;;;;19032:387;;:::o;1586:130::-;1636:80;;;;;;;;;;;;;;1586:130;:::o;842:52::-;883:11;842:52;:::o;1449:44::-;1484:9;1449:44;:::o;716:55::-;762:9;716:55;:::o;3062:27:8:-;;;-1:-1:-1;;;;;3062:27:8;;:::o;12221:328:6:-;12319:24;12345:20;12367:26;12395:24;12435:18;12456:9;:21;12466:10;12456:21;;;;;;;;;;;12435:42;;12495:1;:9;;12506:1;:8;;12516:1;:12;;12530:1;:11;;12487:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12487:55:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;12487:55:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;12487:55:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12221:328;;;;;:::o;7673:54:8:-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3475:23::-;;;;:::o;15510:702:6:-;15615:23;1636:80;;;;;;;;;;;;;;;;15708:4;;;;;;;;;-1:-1:-1;;;15708:4:6;;;;;;;;15692:22;15716:20;:18;:20::i;:::-;15746:4;15664:88;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;15664:88:6;;;15641:121;;;;;;15615:147;;15772:18;1845:53;;;;;;;;;;;;;;;15803:48;;15831:10;;15843:7;;15803:48;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;15803:48:6;;;15793:59;;;;;;15772:80;;15862:14;15918:15;15935:10;15889:57;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;15889:57:6;;;15879:68;;;;;;15862:85;;15957:17;15977:26;15987:6;15995:1;15998;16001;15977:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;15977:26:6;;-1:-1:-1;;15977:26:6;;;-1:-1:-1;;;;;;;16021:23:6;;16013:83;;;;-1:-1:-1;;;16013:83:6;;;;;;;;;16120:9;-1:-1:-1;;;;;16111:94:6;;16131:10;16143:7;16152:48;16169:9;16180:10;16192:7;16152:16;:48::i;:::-;16111:94;;;;;;;;;;;;;;;;;15510:702;;;;;;;;;:::o;13054:1134::-;13107:13;13170:10;13153:13;;:27;;:61;;;;;13197:17;;13184:10;:30;13153:61;13132:149;;;;-1:-1:-1;;;13132:149:6;;;;;;;;;13291:25;13319:21;;;:9;:21;;;;;13354:17;;;;;;13350:832;;;13394:22;13387:29;;;;;13350:832;13453:8;:19;;;13437:12;:35;13433:749;;13495:21;13488:28;;;;;13433:749;13553:8;:17;;;13537:12;:33;13533:649;;13593:20;13586:27;;;;;13533:649;13655:8;:21;;;13634:8;:17;;;:42;;:77;;;;1484:9;13680:8;:17;;;:31;13634:77;13630:552;;;13734:22;13727:29;;;;;13630:552;13777:12;;;;13773:409;;13817:23;13810:30;;;;;13773:409;13861:17;;;;;;;;;13857:325;;;13901:22;13894:29;;;;;13857:325;13983:12;;;;14021:21;;;;;;13997:47;;;;:17;:47;;;;;;;;;;:62;;-1:-1:-1;;;13997:62:6;;;;13976:84;;13983:12;-1:-1:-1;;;;;13997:47:6;;;;:60;;:62;;;;;;;;;;;:47;:62;;;5:2:-1;;;;30:1;27;20:12;5:2;13997:62:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13997:62:6;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;13997:62:6;;;;;;;;;13976:6;:84::i;:::-;13957:15;:103;13940:242;;14092:21;14085:28;;;;;13940:242;14151:20;14144:27;;;13054:1134;;;;:::o;11042:985::-;11123:22;11102:17;11108:10;11102:5;:17::i;:::-;:43;;;;;;;;;;11094:110;;;;-1:-1:-1;;;11094:110:6;;;;;;;;;11215:25;11243:21;;;:9;:21;;;;;11309:8;;-1:-1:-1;;;;;11309:8:6;11295:10;:22;;:73;;-1:-1:-1;11351:17:6;;;;-1:-1:-1;;;;;11351:17:6;11337:10;:31;11295:73;:234;;;-1:-1:-1;11473:15:6;11489:21;;;;;;11473:38;;;;;;;;;;;;:56;;;11388:8;;11489:21;11411:17;;;;-1:-1:-1;;;;;11388:8:6;;;;:22;;11411:17;;;11430:23;;11437:12;;11430:6;:23::i;:::-;11388:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11388:66:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11388:66:6;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;11388:66:6;;;;;;;;;-1:-1:-1;;;;;11388:141:6;;11295:234;11274:328;;;;-1:-1:-1;;;11274:328:6;;;;;;;;;11613:17;;;:24;;-1:-1:-1;;11613:24:6;11633:4;11613:24;;;:17;11647:330;11668:16;;;:23;11664:27;;11647:330;;;11730:21;;;;;;11712:40;;;;:17;:40;;;;;;11788:16;;;:19;;-1:-1:-1;;;;;11712:40:6;;;;:58;;11788:16;11805:1;;11788:19;;;;;;;;;;;;;;;;11825:15;;;:18;;-1:-1:-1;;;;;11788:19:6;;;;11841:1;;11825:18;;;;;;;;;;;;;;11861:8;:19;;11881:1;11861:22;;;;;;;;;;;;;;;11901:8;:18;;11920:1;11901:21;;;;;;;;;;;;;;;11940:8;:12;;;11712:254;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11712:254:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;11693:3:6;;;;;-1:-1:-1;11647:330:6;;-1:-1:-1;11647:330:6;;;11992:28;12009:10;11992:28;;;;;;;6755:23:8;;;-1:-1:-1;;;;;6755:23:8;;:::o;14393:177:6:-;14476:10;14467:96;14488:10;14500:7;14509:49;14476:10;14488;14500:7;14509:16;:49::i;:::-;14467:96;;;;;;;;;;;;;;;;;14393:177;;:::o;3138:29:8:-;;;-1:-1:-1;;;;;3138:29:8;;:::o;584:55:6:-;630:9;584:55;:::o;14853:215::-;14970:10;14961:100;14982:10;14994:7;15003:49;14970:10;14982;14994:7;15003:16;:49::i;:::-;15054:6;;14961:100;;;;;;;;;;;;;;;;;;;14853:215;;;;:::o;6652:33:8:-;;;;:::o;2193:2555:6:-;2435:1;2402:20;;:17;:20;;;;-1:-1:-1;;;;;2402:20:6;2394:43;2386:106;;;;-1:-1:-1;;;2386:106:6;;;;;;;;;2524:5;;-1:-1:-1;;;;;2524:5:6;2510:10;:19;2502:69;;;;-1:-1:-1;;;2502:69:6;;;;;;;;;-1:-1:-1;;;;;2589:23:6;;2581:82;;;;-1:-1:-1;;;2581:82:6;;;;;;;;;-1:-1:-1;;;;;2681:23:6;;2673:79;;;;-1:-1:-1;;;2673:79:6;;;;;;;;;2783:16;;2803:32;2783:52;2762:185;;;;-1:-1:-1;;;2762:185:6;;;;;;;;;2978:23;;3005:32;2978:59;2957:199;;;;-1:-1:-1;;;2957:199:6;;;;;;;;;3167:8;:39;;-1:-1:-1;;;;;3167:39:6;;;-1:-1:-1;;;;;;3167:39:6;;;;;;;3240:2;3216:21;:26;3252:8;:20;;;;;;;;;;;;;;;3354:23;;3167:8;3387:1355;3407:9;3403:1;:13;3387:1355;;;883:11;3462:16;3479:1;3462:19;;;;;;;;;;;;;;:32;;;:53;;3437:164;;;;-1:-1:-1;;;3437:164:6;;;;;;;;;1023:17;3640:16;3657:1;3640:19;;;;;;;;;;;;;;:32;;;:53;;3615:164;;;;-1:-1:-1;;;3615:164:6;;;;;;;;;1167:1;3818:16;3835:1;3818:19;;;;;;;;;;;;;;:31;;;:51;;3793:161;;;;-1:-1:-1;;;3793:161:6;;;;;;;;;1260:16;3993;4010:1;3993:19;;;;;;;;;;;;;;:31;;;:51;;3968:161;;;;-1:-1:-1;;;3968:161:6;;;;;;;;;630:9;4168:16;4185:1;4168:19;;;;;;;;;;;;;;:37;;;:63;;4143:179;;;;-1:-1:-1;;;4143:179:6;;;;;;;;;762:9;4361:16;4378:1;4361:19;;;;;;;;;;;;;;:37;;;:63;;4336:179;;;;-1:-1:-1;;;4336:179:6;;;;;;;;;4570:1;-1:-1:-1;;;;;4537:35:6;4545:9;4555:1;4545:12;;;;;;;;;;;;;;-1:-1:-1;;;;;4537:35:6;;;4529:98;;;;-1:-1:-1;;;4529:98:6;;;;;;;;;4663:16;4680:1;4663:19;;;;;;;;;;;;;;;;;;;4642:18;;;;:15;:18;;;;;;;:40;;;;;;;;;;;;;;;;;;;4719:12;;:9;;4658:1;;4719:12;;;;;;;;;;;;;;;;;4696:20;;;;:17;:20;;;;;;;:35;;-1:-1:-1;;;;;;4696:35:6;-1:-1:-1;;;;;4696:35:6;;;;;;;;;-1:-1:-1;3418:3:6;3387:1355;;;;2193:2555;;;;;:::o;982:58::-;1023:17;982:58;:::o;1220:56::-;1260:16;1220:56;:::o;3709:29:8:-;;;;:::o;19733:521:6:-;19857:5;;-1:-1:-1;;;;;19857:5:6;19843:10;:19;19835:74;;;;-1:-1:-1;;;19835:74:6;;;;;;;;;20006:12;;;-1:-1:-1;;;;;20086:30:6;;;-1:-1:-1;;;;;;20086:30:6;;;;;;20198:49;;20006:12;;;20198:49;;;;20006:12;;20101:15;;20198:49;;3968:33:8;;;-1:-1:-1;;;;;3968:33:8;;:::o;3877:25::-;;;;:::o;8631:786:6:-;8724:23;8703:17;8709:10;8703:5;:17::i;:::-;:44;;;;;;;;;8682:159;;;;-1:-1:-1;;;8682:159:6;;;;;;;;;8851:25;8879:21;;;:9;:21;;;;;;;;8969;;;;;;8945:47;;:17;:47;;;;;;:55;;-1:-1:-1;;;8945:55:6;;;;8879:21;;8851:25;8921:80;;8928:15;;-1:-1:-1;;;;;8945:47:6;;;;:53;;:55;;;;;8879:21;;8945:55;;;;;;:47;:55;;;5:2:-1;;;;30:1;27;20:12;8921:80:6;8910:91;;9016:6;9011:326;9028:16;;;:23;9024:27;;9011:326;;;9072:254;9111:8;:16;;9128:1;9111:19;;;;;;;;;;;;;;;;;;9148:15;;;:18;;-1:-1:-1;;;;;9111:19:6;;;;9164:1;;9148:18;;;;;;;;;;;;;;9184:8;:19;;9204:1;9184:22;;;;;;;;;;;;;;;;;;9072:254;;;;;;;-1:-1:-1;;9072:254:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9184:22;9072:254;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9224:8;:18;;9243:1;9224:21;;;;;;;;;;;;;;;;;;9072:254;;;;;;;-1:-1:-1;;9072:254:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9224:21;9072:254;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;9290:21:6;;;;9263:3;;-1:-1:-1;9290:21:6;;9072;:254::i;:::-;9053:3;;9011:326;;;-1:-1:-1;9346:12:6;;;:18;;;9379:31;;;;;;9394:10;;9361:3;;9379:31;;;;;;;;;;8631:786;;;:::o;1803:95::-;1845:53;;;;;;12758:152;12833:14;;:::i;:::-;-1:-1:-1;12866:21:6;;;;:9;:21;;;;;;;;-1:-1:-1;;;;;12866:37:6;;;;:30;;:37;;;;;;12859:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12859:44:6;;;;;;;;12758:152;;;;;:::o;17706:410::-;17790:8;;-1:-1:-1;;;;;17790:8:6;17776:10;:22;;:45;;-1:-1:-1;17816:5:6;;-1:-1:-1;;;;;17816:5:6;17802:10;:19;17776:45;17768:109;;;;-1:-1:-1;;;17768:109:6;;;;;;;;;-1:-1:-1;;;;;17895:25:6;;17887:97;;;;-1:-1:-1;;;17887:97:6;;;;;;;;;18016:8;;;-1:-1:-1;;;;;18034:22:6;;;-1:-1:-1;;;;;;18034:22:6;;;;;;18072:37;;18016:8;;;18072:37;;;;18016:8;;18045:11;;18072:37;;1127:41;1167:1;1127:41;:::o;20434:655::-;20584:12;;-1:-1:-1;;;;;20584:12:6;20570:10;:26;:54;;;;-1:-1:-1;20600:10:6;:24;;20570:54;20549:147;;;;-1:-1:-1;;;20549:147:6;;;;;;;;;20759:16;20778:5;;;20819:12;;-1:-1:-1;;;;;20819:12:6;;;-1:-1:-1;;;;;;20889:20:6;;;;;;;;;20955:25;;;;;;20996;;20778:5;;;;20819:12;;20996:25;;;;20778:5;;21015;;;20996:25;;;;;;;;;;21069:12;;21036:46;;;;;;21052:15;;-1:-1:-1;;;;;21069:12:6;;21036:46;;7811:59:8;;;;;;;;;;;;-1:-1:-1;;;;;7811:59:8;;:::o;2979:20::-;;;-1:-1:-1;;;;;2979:20:8;;:::o;18404:478:6:-;18487:5;;-1:-1:-1;;;;;18487:5:6;18473:10;:19;18465:68;;;;-1:-1:-1;;;18465:68:6;;;;;;;;;18551:17;;:22;18543:83;;;;-1:-1:-1;;;18543:83:6;;;;;;;;;18675:13;-1:-1:-1;;;;;18652:51:6;;:53;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18652:53:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18652:53:6;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;18652:53:6;;;;;;;;;18636:13;:69;;;18715:17;:33;-1:-1:-1;18758:118:6;18778:32;18774:36;;18758:118;;;18831:20;;;;:17;:20;;;;;;;:34;;-1:-1:-1;;;18831:34:6;;;;-1:-1:-1;;;;;18831:20:6;;;;:32;;:34;;;;;;;;;;;:20;;:34;;;5:2:-1;;;;30:1;27;20:12;5:2;18831:34:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18831:34:6;;;;18812:3;;;;;18758:118;;;;18404:478;:::o;3795:29:8:-;;;;:::o;10145:696:6:-;10240:20;10219:17;10225:10;10219:5;:17::i;:::-;:41;;;;;;;;;10198:157;;;;-1:-1:-1;;;10198:157:6;;;;;;;;;10365:25;10393:21;;;:9;:21;;;;;10424:17;;;:24;;-1:-1:-1;;10424:24:6;;;;;10393:21;10458:334;10475:16;;;:23;10471:27;;10458:334;;;10543:21;;;;;;10519:47;;;;:17;:47;;;;;;10603:16;;;:19;;-1:-1:-1;;;;;10519:47:6;;;;:66;;10603:16;10620:1;;10603:19;;;;;;;;;;;;;;;;10640:15;;;:18;;-1:-1:-1;;;;;10603:19:6;;;;10656:1;;10640:18;;;;;;;;;;;;;;10676:8;:19;;10696:1;10676:22;;;;;;;;;;;;;;;10716:8;:18;;10735:1;10716:21;;;;;;;;;;;;;;;10755:8;:12;;;10519:262;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10519:262:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10519:262:6;;;;;;39:16:-1;36:1;17:17;2:54;101:4;10519:262:6;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;10519:262:6;;;;;;;;;-1:-1:-1;10500:3:6;;10458:334;;;;10806:28;10823:10;10806:28;;;;;;;21263:146;21324:4;21353:1;21348;:6;;21340:40;;;;-1:-1:-1;;;21340:40:6;;;;;;;;;-1:-1:-1;21397:5:6;;;21263:146::o;21095:162::-;21156:4;21181:5;;;21204:6;;;;21196:36;;;;-1:-1:-1;;;21196:36:6;;;;;;;;;21249:1;21095:162;-1:-1:-1;;;21095:162:6:o;21415:174::-;21540:9;21415:174;;:::o;16534:1044::-;16625:6;16672:20;16651:17;16657:10;16651:5;:17::i;:::-;:41;;;;;;;;;16643:103;;;;-1:-1:-1;;;16643:103:6;;;;;;;;;16775:1;16764:7;:12;;;;16756:75;;;;-1:-1:-1;;;16756:75:6;;;;;;;;;16841:25;16869:21;;;:9;:21;;;;;;;;-1:-1:-1;;;;;16926:24:6;;;;:17;;;:24;;;;;;16968:16;;;;:25;16960:90;;;;-1:-1:-1;;;16960:90:6;;;;;;;;;17075:8;;17105:19;;;;17075:50;;-1:-1:-1;;;17075:50:6;;17060:12;;-1:-1:-1;;;;;17075:8:6;;:22;;:50;;17098:5;;17075:50;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17075:50:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17075:50:6;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;17075:50:6;;;;;;;;;17060:65;-1:-1:-1;17140:12:6;;;17136:313;;17192:36;17199:8;:21;;;17222:5;-1:-1:-1;;;;;17192:36:6;:6;:36::i;:::-;17168:21;;;:60;17136:313;;;17249:7;:12;;17260:1;17249:12;17245:204;;;17297:32;17304:8;:17;;;17323:5;-1:-1:-1;;;;;17297:32:6;:6;:32::i;:::-;17277:17;;;:52;17245:204;;;17350:7;:12;;17361:1;17350:12;17346:103;;;17402:36;17409:8;:21;;;17432:5;-1:-1:-1;;;;;17402:36:6;:6;:36::i;:::-;17378:21;;;:60;17346:103;17459:23;;17478:4;-1:-1:-1;;17459:23:6;;;;-1:-1:-1;;17492:25:6;17459:23;;17492:25;;;;-1:-1:-1;;17527:21:6;;-1:-1:-1;;;;;17527:21:6;;;;;;;;-1:-1:-1;;16534:1044:6;;;;;:::o;9423:581::-;9651:31;;;;;;;:17;:31;;;;;;;;;;9729:47;;-1:-1:-1;;;;;9651:31:6;;;;:50;;9729:47;;9740:6;;9748:5;;9755:9;;9766:4;;9772:3;;9729:47;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;9729:47:6;;;9719:58;;;;;;9651:140;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9651:140:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9651:140:6;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;9651:140:6;;;;;;;;;9650:141;9629:273;;;;-1:-1:-1;;;9629:273:6;;;;;;;;;9912:31;;;;;;;:17;:31;;;;;;;;:85;;-1:-1:-1;;;9912:85:6;;-1:-1:-1;;;;;9912:31:6;;;;:48;;:85;;9961:6;;9969:5;;9976:9;;9987:4;;9993:3;;9912:85;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9912:85:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9912:85:6;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;9912:85:6;;;;;;;;;;9423:581;;;;;;:::o;332:21259::-;;;;;;;;;;;;;;;-1:-1:-1;;;;;332:21259:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;332:21259:6;-1:-1:-1;;;;;332:21259:6;;;;;;;;;;;-1:-1:-1;332:21259:6;;;;;;;-1:-1:-1;332:21259:6;;;-1:-1:-1;332:21259:6;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;332:21259:6;;;-1:-1:-1;332:21259:6;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;332:21259:6;;;-1:-1:-1;332:21259:6;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;332:21259:6;;;-1:-1:-1;332:21259:6;:::i;:::-;;;;;;;;;-1:-1:-1;332:21259:6;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;;332:21259:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::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;;1629:785;;1772:3;1765:4;1757:6;1753:17;1749:27;1739:2;;1790:1;1787;1780:12;1739:2;1827:6;1814:20;1849:106;1864:90;1947:6;1864:90;;1849:106;1840:115;;1972:5;1997:6;1990:5;1983:21;2027:4;2019:6;2015:17;2005:27;;2049:4;2044:3;2040:14;2033:21;;2102:6;2149:3;2141:4;2133:6;2129:17;2124:3;2120:27;2117:36;2114:2;;;2166:1;2163;2156:12;2114:2;2191:1;2176:232;2201:6;2198:1;2195:13;2176:232;;;2259:3;2281:63;2340:3;2328:10;2281:63;;;2269:76;;-1:-1;2368:4;2359:14;;;;2387;;;;;2223:1;2216:9;2176:232;;2439:696;;2562:3;2555:4;2547:6;2543:17;2539:27;2529:2;;2580:1;2577;2570:12;2529:2;2617:6;2604:20;2639:86;2654:70;2717:6;2654:70;;2639:86;2753:21;;;2797:4;2785:17;;;;2630:95;;-1:-1;2810:14;;2785:17;2905:1;2890:239;2915:6;2912:1;2909:13;2890:239;;;2998:3;2985:17;2977:6;2973:30;3022:43;3061:3;3049:10;3022:43;;;3010:56;;-1:-1;3089:4;3080:14;;;;3108;;;;;2937:1;2930:9;2890:239;;3206:791;;3351:3;3344:4;3336:6;3332:17;3328:27;3318:2;;3369:1;3366;3359:12;3318:2;3406:6;3393:20;3428:108;3443:92;3528:6;3443:92;;3428:108;3419:117;;3553:5;3578:6;3571:5;3564:21;3608:4;3600:6;3596:17;3586:27;;3630:4;3625:3;3621:14;3614:21;;3683:6;3730:3;3722:4;3714:6;3710:17;3705:3;3701:27;3698:36;3695:2;;;3747:1;3744;3737:12;3695:2;3772:1;3757:234;3782:6;3779:1;3776:13;3757:234;;;3840:3;3862:65;3923:3;3911:10;3862:65;;;3850:78;;-1:-1;3951:4;3942:14;;;;3979:4;3970:14;;;;;3804:1;3797:9;3757:234;;4023:707;;4140:3;4133:4;4125:6;4121:17;4117:27;4107:2;;4158:1;4155;4148:12;4107:2;4195:6;4182:20;4217:80;4232:64;4289:6;4232:64;;4217:80;4208:89;;4314:5;4339:6;4332:5;4325:21;4369:4;4361:6;4357:17;4347:27;;4391:4;4386:3;4382:14;4375:21;;4444:6;4491:3;4483:4;4475:6;4471:17;4466:3;4462:27;4459:36;4456:2;;;4508:1;4505;4498:12;4456:2;4533:1;4518:206;4543:6;4540:1;4537:13;4518:206;;;4601:3;4623:37;4656:3;4644:10;4623:37;;;4611:50;;-1:-1;4684:4;4675:14;;;;4703;;;;;4565:1;4558:9;4518:206;;4738:128;4813:13;;4831:30;4813:13;4831:30;;4873:130;4940:20;;4965:33;4940:20;4965:33;;5010:134;5088:13;;5106:33;5088:13;5106:33;;5152:432;;5249:3;5242:4;5234:6;5230:17;5226:27;5216:2;;5267:1;5264;5257:12;5216:2;5304:6;5291:20;5326:60;5341:44;5378:6;5341:44;;5326:60;5317:69;;5406:6;5399:5;5392:21;5442:4;5434:6;5430:17;5475:4;5468:5;5464:16;5510:3;5501:6;5496:3;5492:16;5489:25;5486:2;;;5527:1;5524;5517:12;5486:2;5537:41;5571:6;5566:3;5561;5537:41;;;5209:375;;;;;;;;5593:442;;5705:3;5698:4;5690:6;5686:17;5682:27;5672:2;;5723:1;5720;5713:12;5672:2;5753:6;5747:13;5775:64;5790:48;5831:6;5790:48;;5775:64;5766:73;;5859:6;5852:5;5845:21;5895:4;5887:6;5883:17;5928:4;5921:5;5917:16;5963:3;5954:6;5949:3;5945:16;5942:25;5939:2;;;5980:1;5977;5970:12;5939:2;5990:39;6022:6;6017:3;6012;5990:39;;6043:182;6136:20;;6161:59;6136:20;6161:59;;6232:164;6316:20;;6341:50;6316:20;6341:50;;6418:337;;;6533:3;6526:4;6518:6;6514:17;6510:27;6500:2;;6551:1;6548;6541:12;6500:2;-1:-1;6571:20;;-1:-1;;;;;6600:30;;6597:2;;;6643:1;6640;6633:12;6597:2;6677:4;6669:6;6665:17;6653:29;;6728:3;6720:4;6712:6;6708:17;6698:8;6694:32;6691:41;6688:2;;;6745:1;6742;6735:12;6688:2;6493:262;;;;;;7716:642;;7833:4;7821:9;7816:3;7812:19;7808:30;7805:2;;;7851:1;7848;7841:12;7805:2;7869:20;7884:4;7869:20;;;7860:29;-1:-1;7946:1;7978:49;8023:3;8003:9;7978:49;;;7953:75;;-1:-1;8097:2;8130:49;8175:3;8151:22;;;8130:49;;;8123:4;8116:5;8112:16;8105:75;8049:142;8254:2;8287:49;8332:3;8323:6;8312:9;8308:22;8287:49;;;8280:4;8273:5;8269:16;8262:75;8201:147;7799:559;;;;;8643:126;8708:20;;8733:31;8708:20;8733:31;;8776:132;8853:13;;8871:32;8853:13;8871:32;;8915:241;;9019:2;9007:9;8998:7;8994:23;8990:32;8987:2;;;9035:1;9032;9025:12;8987:2;9070:1;9087:53;9132:7;9112:9;9087:53;;;9077:63;8981:175;-1:-1;;;;8981:175;9163:997;;;;;9422:3;9410:9;9401:7;9397:23;9393:33;9390:2;;;9439:1;9436;9429:12;9390:2;9474:1;9491:53;9536:7;9516:9;9491:53;;;9481:63;;9453:97;9609:2;9598:9;9594:18;9581:32;-1:-1;;;;;9625:6;9622:30;9619:2;;;9665:1;9662;9655:12;9619:2;9685:106;9783:7;9774:6;9763:9;9759:22;9685:106;;;9675:116;;9560:237;9856:2;9845:9;9841:18;9828:32;-1:-1;;;;;9872:6;9869:30;9866:2;;;9912:1;9909;9902:12;9866:2;9932:104;10028:7;10019:6;10008:9;10004:22;9932:104;;;9922:114;;9807:235;10073:2;10091:53;10136:7;10127:6;10116:9;10112:22;10091:53;;;10081:63;;10052:98;9384:776;;;;;;;;10167:1575;;;;;;;10494:3;10482:9;10473:7;10469:23;10465:33;10462:2;;;10511:1;10508;10501:12;10462:2;10546:31;;-1:-1;;;;;10586:30;;10583:2;;;10629:1;10626;10619:12;10583:2;10649:78;10719:7;10710:6;10699:9;10695:22;10649:78;;;10639:88;;10525:208;10792:2;10781:9;10777:18;10764:32;-1:-1;;;;;10808:6;10805:30;10802:2;;;10848:1;10845;10838:12;10802:2;10868:78;10938:7;10929:6;10918:9;10914:22;10868:78;;;10858:88;;10743:209;11011:2;11000:9;10996:18;10983:32;-1:-1;;;;;11027:6;11024:30;11021:2;;;11067:1;11064;11057:12;11021:2;11087:84;11163:7;11154:6;11143:9;11139:22;11087:84;;;11077:94;;10962:215;11236:2;11225:9;11221:18;11208:32;-1:-1;;;;;11252:6;11249:30;11246:2;;;11292:1;11289;11282:12;11246:2;11312:83;11387:7;11378:6;11367:9;11363:22;11312:83;;;11302:93;;11187:214;11460:3;11449:9;11445:19;11432:33;-1:-1;;;;;11477:6;11474:30;11471:2;;;11517:1;11514;11507:12;11471:2;11537:63;11592:7;11583:6;11572:9;11568:22;11537:63;;;11527:73;;11411:195;11637:3;11656:70;11718:7;11709:6;11698:9;11694:22;11656:70;;;11646:80;;11616:116;10456:1286;;;;;;;;;11749:257;;11861:2;11849:9;11840:7;11836:23;11832:32;11829:2;;;11877:1;11874;11867:12;11829:2;11912:1;11929:61;11982:7;11962:9;11929:61;;12013:263;;12128:2;12116:9;12107:7;12103:23;12099:32;12096:2;;;12144:1;12141;12134:12;12096:2;12179:1;12196:64;12252:7;12232:9;12196:64;;12283:360;;12407:2;12395:9;12386:7;12382:23;12378:32;12375:2;;;12423:1;12420;12413:12;12375:2;12458:24;;-1:-1;;;;;12491:30;;12488:2;;;12534:1;12531;12524:12;12488:2;12554:73;12619:7;12610:6;12599:9;12595:22;12554:73;;12650:241;;12754:2;12742:9;12733:7;12729:23;12725:32;12722:2;;;12770:1;12767;12760:12;12722:2;12805:1;12822:53;12867:7;12847:9;12822:53;;13168:366;;;13289:2;13277:9;13268:7;13264:23;13260:32;13257:2;;;13305:1;13302;13295:12;13257:2;13340:1;13357:53;13402:7;13382:9;13357:53;;;13347:63;;13319:97;13447:2;13465:53;13510:7;13501:6;13490:9;13486:22;13465:53;;;13455:63;;13426:98;13251:283;;;;;;13541:362;;;13660:2;13648:9;13639:7;13635:23;13631:32;13628:2;;;13676:1;13673;13666:12;13628:2;13711:1;13728:53;13773:7;13753:9;13728:53;;;13718:63;;13690:97;13818:2;13836:51;13879:7;13870:6;13859:9;13855:22;13836:51;;13910:613;;;;;14066:2;14054:9;14045:7;14041:23;14037:32;14034:2;;;14082:1;14079;14072:12;14034:2;14117:1;14134:53;14179:7;14159:9;14134:53;;;14124:63;;14096:97;14224:2;14242:51;14285:7;14276:6;14265:9;14261:22;14242:51;;;14232:61;;14203:96;14358:2;14347:9;14343:18;14330:32;-1:-1;;;;;14374:6;14371:30;14368:2;;;14414:1;14411;14404:12;14368:2;14442:65;14499:7;14490:6;14479:9;14475:22;14442:65;;;14028:495;;;;-1:-1;14432:75;-1:-1;;;;14028:495;14530:735;;;;;;14698:3;14686:9;14677:7;14673:23;14669:33;14666:2;;;14715:1;14712;14705:12;14666:2;14750:1;14767:53;14812:7;14792:9;14767:53;;;14757:63;;14729:97;14857:2;14875:51;14918:7;14909:6;14898:9;14894:22;14875:51;;;14865:61;;14836:96;14963:2;14981:51;15024:7;15015:6;15004:9;15000:22;14981:51;;;14971:61;;14942:96;15069:2;15087:53;15132:7;15123:6;15112:9;15108:22;15087:53;;;15077:63;;15048:98;15177:3;15196:53;15241:7;15232:6;15221:9;15217:22;15196:53;;;15186:63;;15156:99;14660:605;;;;;;;;;15272:261;;15386:2;15374:9;15365:7;15361:23;15357:32;15354:2;;;15402:1;15399;15392:12;15354:2;15437:1;15454:63;15509:7;15489:9;15454:63;;15541:173;;15628:46;15670:3;15662:6;15628:46;;;-1:-1;;15703:4;15694:14;;15621:93;15723:177;;15834:60;15890:3;15882:6;15834:60;;16099:173;;16186:46;16228:3;16220:6;16186:46;;16280:142;16371:45;16410:5;16371:45;;;16366:3;16359:58;16353:69;;;16429:103;16502:24;16520:5;16502:24;;16690:690;;16835:54;16883:5;16835:54;;;16902:86;16981:6;16976:3;16902:86;;;16895:93;;17009:56;17059:5;17009:56;;;17085:7;17113:1;17098:260;17123:6;17120:1;17117:13;17098:260;;;17190:6;17184:13;17211:63;17270:3;17255:13;17211:63;;;17204:70;;17291:60;17344:6;17291:60;;;17281:70;-1:-1;;17145:1;17138:9;17098:260;;;-1:-1;17371:3;;16814:566;-1:-1;;;;;16814:566;17415:888;;17570:59;17623:5;17570:59;;;17642:91;17726:6;17721:3;17642:91;;;17635:98;;17756:3;17798:4;17790:6;17786:17;17781:3;17777:27;17825:61;17880:5;17825:61;;;17906:7;17934:1;17919:345;17944:6;17941:1;17938:13;17919:345;;;18006:9;18000:4;17996:20;17991:3;17984:33;18051:6;18045:13;18073:74;18142:4;18127:13;18073:74;;;18065:82;;18164:65;18222:6;18164:65;;;18252:4;18243:14;;;;;18154:75;-1:-1;;17966:1;17959:9;17919:345;;;-1:-1;18277:4;;17549:754;-1:-1;;;;;;;17549:754;18340:896;;18497:60;18551:5;18497:60;;;18570:92;18655:6;18650:3;18570:92;;;18563:99;;18685:3;18727:4;18719:6;18715:17;18710:3;18706:27;18754:62;18810:5;18754:62;;;18836:7;18864:1;18849:348;18874:6;18871:1;18868:13;18849:348;;;18936:9;18930:4;18926:20;18921:3;18914:33;18981:6;18975:13;19003:76;19074:4;19059:13;19003:76;;;18995:84;;19096:66;19155:6;19096:66;;;19185:4;19176:14;;;;;19086:76;-1:-1;;18896:1;18889:9;18849:348;;19275:690;;19420:54;19468:5;19420:54;;;19487:86;19566:6;19561:3;19487:86;;;19480:93;;19594:56;19644:5;19594:56;;;19670:7;19698:1;19683:260;19708:6;19705:1;19702:13;19683:260;;;19775:6;19769:13;19796:63;19855:3;19840:13;19796:63;;;19789:70;;19876:60;19929:6;19876:60;;;19866:70;-1:-1;;19730:1;19723:9;19683:260;;19973:94;20040:21;20055:5;20040:21;;20185:113;20268:24;20286:5;20268:24;;20305:152;20406:45;20426:24;20444:5;20426:24;;;20406:45;;20464:343;;20574:38;20606:5;20574:38;;;20624:70;20687:6;20682:3;20624:70;;;20617:77;;20699:52;20744:6;20739:3;20732:4;20725:5;20721:16;20699:52;;;20772:29;20794:6;20772:29;;;20763:39;;;;20554:253;-1:-1;;;20554:253;21159:818;;21276:5;21270:12;21310:1;21299:9;21295:17;21323:1;21318:247;;;;21576:1;21571:400;;;;21288:683;;21318:247;21396:4;21392:1;21381:9;21377:17;21373:28;21415:70;21478:6;21473:3;21415:70;;;-1:-1;;21504:25;;21492:38;;21408:77;-1:-1;;21553:4;21544:14;;;-1:-1;21318:247;;21571:400;21640:1;21629:9;21625:17;21656:70;21719:6;21714:3;21656:70;;;21649:77;;21748:37;21779:5;21748:37;;;21801:1;21809:130;21823:6;21820:1;21817:13;21809:130;;;21882:14;;21869:11;;;21862:35;21929:1;21916:15;;;;21845:4;21838:12;21809:130;;;21953:11;;;-1:-1;;;21288:683;;21246:731;;;;;;21985:178;22094:63;22151:5;22094:63;;22355:158;22454:53;22501:5;22454:53;;22545:300;;22661:71;22725:6;22720:3;22661:71;;;22654:78;;22744:43;22780:6;22775:3;22768:5;22744:43;;;22809:29;22831:6;22809:29;;24736:387;;24896:67;24960:2;24955:3;24896:67;;;24996:34;24976:55;;-1:-1;;;25060:2;25051:12;;25044:42;25114:2;25105:12;;24882:241;-1:-1;;24882:241;25132:413;;25310:85;25392:2;25387:3;25310:85;;;25428:34;25408:55;;-1:-1;;;25492:2;25483:12;;25476:32;25536:2;25527:12;;25296:249;-1:-1;;25296:249;25554:379;;25714:67;25778:2;25773:3;25714:67;;;25814:34;25794:55;;-1:-1;;;25878:2;25869:12;;25862:34;25924:2;25915:12;;25700:233;-1:-1;;25700:233;25942:459;;26102:67;26166:2;26161:3;26102:67;;;26202:34;26182:55;;26271:34;26266:2;26257:12;;26250:56;-1:-1;;;26335:2;26326:12;;26319:45;26392:2;26383:12;;26088:313;-1:-1;;26088:313;26410:460;;26570:67;26634:2;26629:3;26570:67;;;26670:34;26650:55;;26739:34;26734:2;26725:12;;26718:56;-1:-1;;;26803:2;26794:12;;26787:46;26861:2;26852:12;;26556:314;-1:-1;;26556:314;26879:386;;27039:67;27103:2;27098:3;27039:67;;;27139:34;27119:55;;-1:-1;;;27203:2;27194:12;;27187:41;27256:2;27247:12;;27025:240;-1:-1;;27025:240;27274:398;;27452:84;27534:1;27529:3;27452:84;;;-1:-1;;;27549:87;;27664:1;27655:11;;27438:234;-1:-1;;27438:234;27681:394;;27841:67;27905:2;27900:3;27841:67;;;-1:-1;;;;;;;;;;;27921:55;;28010:27;28005:2;27996:12;;27989:49;28066:2;28057:12;;27827:248;-1:-1;;27827:248;28084:386;;28244:67;28308:2;28303:3;28244:67;;;28344:34;28324:55;;-1:-1;;;28408:2;28399:12;;28392:41;28461:2;28452:12;;28230:240;-1:-1;;28230:240;28479:389;;28639:67;28703:2;28698:3;28639:67;;;28739:34;28719:55;;-1:-1;;;28803:2;28794:12;;28787:44;28859:2;28850:12;;28625:243;-1:-1;;28625:243;28877:389;;29037:67;29101:2;29096:3;29037:67;;;-1:-1;;;;;;;;;;;29117:55;;-1:-1;;;29201:2;29192:12;;29185:44;29257:2;29248:12;;29023:243;-1:-1;;29023:243;29275:383;;29435:67;29499:2;29494:3;29435:67;;;-1:-1;;;;;;;;;;;29515:55;;-1:-1;;;29599:2;29590:12;;29583:38;29649:2;29640:12;;29421:237;-1:-1;;29421:237;29667:443;;29827:67;29891:2;29886:3;29827:67;;;29927:34;29907:55;;29996:34;29991:2;29982:12;;29975:56;-1:-1;;;30060:2;30051:12;;30044:29;30101:2;30092:12;;29813:297;-1:-1;;29813:297;30119:384;;30279:67;30343:2;30338:3;30279:67;;;30379:34;30359:55;;-1:-1;;;30443:2;30434:12;;30427:39;30494:2;30485:12;;30265:238;-1:-1;;30265:238;30512:442;;30672:67;30736:2;30731:3;30672:67;;;30772:34;30752:55;;30841:34;30836:2;30827:12;;30820:56;-1:-1;;;30905:2;30896:12;;30889:28;30945:2;30936:12;;30658:296;-1:-1;;30658:296;30963:374;;31123:67;31187:2;31182:3;31123:67;;;31223:34;31203:55;;-1:-1;;;31287:2;31278:12;;31271:29;31328:2;31319:12;;31109:228;-1:-1;;31109:228;31346:387;;31506:67;31570:2;31565:3;31506:67;;;31606:34;31586:55;;-1:-1;;;31670:2;31661:12;;31654:42;31724:2;31715:12;;31492:241;-1:-1;;31492:241;31742:442;;31902:67;31966:2;31961:3;31902:67;;;32002:34;31982:55;;32071:34;32066:2;32057:12;;32050:56;-1:-1;;;32135:2;32126:12;;32119:28;32175:2;32166:12;;31888:296;-1:-1;;31888:296;32193:317;;32353:67;32417:2;32412:3;32353:67;;;-1:-1;;;32433:40;;32501:2;32492:12;;32339:171;-1:-1;;32339:171;32519:477;;32697:85;32779:2;32774:3;32697:85;;;32815:34;32795:55;;32884:34;32879:2;32870:12;;32863:56;-1:-1;;;32948:2;32939:12;;32932:27;32987:2;32978:12;;32683:313;-1:-1;;32683:313;33005:385;;33165:67;33229:2;33224:3;33165:67;;;33265:34;33245:55;;-1:-1;;;33329:2;33320:12;;33313:40;33381:2;33372:12;;33151:239;-1:-1;;33151:239;33399:381;;33559:67;33623:2;33618:3;33559:67;;;33659:34;33639:55;;-1:-1;;;33723:2;33714:12;;33707:36;33771:2;33762:12;;33545:235;-1:-1;;33545:235;33789:383;;33949:67;34013:2;34008:3;33949:67;;;34049:34;34029:55;;-1:-1;;;34113:2;34104:12;;34097:38;34163:2;34154:12;;33935:237;-1:-1;;33935:237;34181:388;;34341:67;34405:2;34400:3;34341:67;;;-1:-1;;;;;;;;;;;34421:55;;-1:-1;;;34505:2;34496:12;;34489:43;34560:2;34551:12;;34327:242;-1:-1;;34327:242;34578:384;;34738:67;34802:2;34797:3;34738:67;;;34838:34;34818:55;;-1:-1;;;34902:2;34893:12;;34886:39;34953:2;34944:12;;34724:238;-1:-1;;34724:238;34971:380;;35131:67;35195:2;35190:3;35131:67;;;-1:-1;;;;;;;;;;;35211:55;;-1:-1;;;35295:2;35286:12;;35279:35;35342:2;35333:12;;35117:234;-1:-1;;35117:234;35360:377;;35520:67;35584:2;35579:3;35520:67;;;35620:34;35600:55;;-1:-1;;;35684:2;35675:12;;35668:32;35728:2;35719:12;;35506:231;-1:-1;;35506:231;35746:463;;35906:67;35970:2;35965:3;35906:67;;;36006:34;35986:55;;36075:34;36070:2;36061:12;;36054:56;36144:27;36139:2;36130:12;;36123:49;36200:2;36191:12;;35892:317;-1:-1;;35892:317;36218:389;;36378:67;36442:2;36437:3;36378:67;;;36478:34;36458:55;;-1:-1;;;36542:2;36533:12;;36526:44;36598:2;36589:12;;36364:243;-1:-1;;36364:243;36616:387;;36776:67;36840:2;36835:3;36776:67;;;36876:34;36856:55;;-1:-1;;;36940:2;36931:12;;36924:42;36994:2;36985:12;;36762:241;-1:-1;;36762:241;37012:388;;37172:67;37236:2;37231:3;37172:67;;;-1:-1;;;;;;;;;;;37252:55;;-1:-1;;;37336:2;37327:12;;37320:43;37391:2;37382:12;;37158:242;-1:-1;;37158:242;37409:462;;37569:67;37633:2;37628:3;37569:67;;;37669:34;37649:55;;37738:34;37733:2;37724:12;;37717:56;37807:26;37802:2;37793:12;;37786:48;37862:2;37853:12;;37555:316;-1:-1;;37555:316;37880:262;;38040:66;38104:1;38099:3;38040:66;;38151:373;;38311:67;38375:2;38370:3;38311:67;;;38411:34;38391:55;;-1:-1;;;38475:2;38466:12;;38459:28;38515:2;38506:12;;38297:227;-1:-1;;38297:227;38533:400;;38693:67;38757:2;38752:3;38693:67;;;38793:34;38773:55;;38862:33;38857:2;38848:12;;38841:55;38924:2;38915:12;;38679:254;-1:-1;;38679:254;38942:391;;39102:67;39166:2;39161:3;39102:67;;;39202:34;39182:55;;-1:-1;;;39266:2;39257:12;;39250:46;39324:2;39315:12;;39088:245;-1:-1;;39088:245;39342:378;;39502:67;39566:2;39561:3;39502:67;;;39602:34;39582:55;;-1:-1;;;39666:2;39657:12;;39650:33;39711:2;39702:12;;39488:232;-1:-1;;39488:232;39729:467;;39889:67;39953:2;39948:3;39889:67;;;39989:34;39969:55;;40058:34;40053:2;40044:12;;40037:56;40127:31;40122:2;40113:12;;40106:53;40187:2;40178:12;;39875:321;-1:-1;;39875:321;40205:396;;40365:67;40429:2;40424:3;40365:67;;;40465:34;40445:55;;40534:29;40529:2;40520:12;;40513:51;40592:2;40583:12;;40351:250;-1:-1;;40351:250;40610:388;;40770:67;40834:2;40829:3;40770:67;;;40870:34;40850:55;;-1:-1;;;40934:2;40925:12;;40918:43;40989:2;40980:12;;40756:242;-1:-1;;40756:242;41007:321;;41167:67;41231:2;41226:3;41167:67;;;-1:-1;;;41247:44;;41319:2;41310:12;;41153:175;-1:-1;;41153:175;41337:389;;41497:67;41561:2;41556:3;41497:67;;;-1:-1;;;;;;;;;;;41577:55;;-1:-1;;;41661:2;41652:12;;41645:44;41717:2;41708:12;;41483:243;-1:-1;;41483:243;41735:394;;41895:67;41959:2;41954:3;41895:67;;;-1:-1;;;;;;;;;;;41975:55;;42064:27;42059:2;42050:12;;42043:49;42120:2;42111:12;;41881:248;-1:-1;;41881:248;42238:626;42451:23;;42381:4;42372:14;;;42480:57;42376:3;42451:23;42480:57;;;42401:142;42619:4;42612:5;42608:16;42602:23;42631:59;42684:4;42679:3;42675:14;42661:12;42631:59;;;42553:143;42770:4;42763:5;42759:16;42753:23;42782:61;42837:4;42832:3;42828:14;42814:12;42782:61;;;42706:143;42354:510;;;;43101:97;43170:22;43186:5;43170:22;;43319:124;43401:36;43431:5;43401:36;;43450:100;43521:23;43538:5;43521:23;;43557:372;;43756:148;43900:3;43756:148;;43936:650;;44191:148;44335:3;44191:148;;;44184:155;;44350:75;44421:3;44412:6;44350:75;;;44447:2;44442:3;44438:12;44431:19;;44461:75;44532:3;44523:6;44461:75;;;-1:-1;44558:2;44549:12;;44172:414;-1:-1;;44172:414;44593:372;;44792:148;44936:3;44792:148;;44972:213;45090:2;45075:18;;45104:71;45079:9;45148:6;45104:71;;45192:340;45346:2;45331:18;;45360:79;45335:9;45412:6;45360:79;;;45450:72;45518:2;45507:9;45503:18;45494:6;45450:72;;45539:324;45685:2;45670:18;;45699:71;45674:9;45743:6;45699:71;;;45781:72;45849:2;45838:9;45834:18;45825:6;45781:72;;45870:324;46016:2;46001:18;;46030:71;46005:9;46074:6;46030:71;;46201:831;46469:3;46454:19;;46484:71;46458:9;46528:6;46484:71;;;46566:72;46634:2;46623:9;46619:18;46610:6;46566:72;;;46686:9;46680:4;46676:20;46671:2;46660:9;46656:18;46649:48;46711:78;46784:4;46775:6;46711:78;;;46703:86;;46837:9;46831:4;46827:20;46822:2;46811:9;46807:18;46800:48;46862:76;46933:4;46924:6;46862:76;;;46854:84;;46949:73;47017:3;47006:9;47002:19;46993:6;46949:73;;47039:819;47301:3;47286:19;;47316:71;47290:9;47360:6;47316:71;;;47398:72;47466:2;47455:9;47451:18;47442:6;47398:72;;;47518:9;47512:4;47508:20;47503:2;47492:9;47488:18;47481:48;47543:75;47613:4;47604:6;47543:75;;;47535:83;;47666:9;47660:4;47656:20;47651:2;47640:9;47636:18;47629:48;47691:73;47759:4;47750:6;47691:73;;47865:1183;48289:3;48304:47;;;48274:19;;48365:108;48274:19;48459:6;48365:108;;;48357:116;;48521:9;48515:4;48511:20;48506:2;48495:9;48491:18;48484:48;48546:108;48649:4;48640:6;48546:108;;;48538:116;;48702:9;48696:4;48692:20;48687:2;48676:9;48672:18;48665:48;48727:120;48842:4;48833:6;48727:120;;;48719:128;;48895:9;48889:4;48885:20;48880:2;48869:9;48865:18;48858:48;48920:118;49033:4;49024:6;48920:118;;49055:213;49173:2;49158:18;;49187:71;49162:9;49231:6;49187:71;;49275:547;49477:3;49462:19;;49492:71;49466:9;49536:6;49492:71;;;49574:72;49642:2;49631:9;49627:18;49618:6;49574:72;;;49657;49725:2;49714:9;49710:18;49701:6;49657:72;;;49740;49808:2;49797:9;49793:18;49784:6;49740:72;;;49448:374;;;;;;;;49829:427;49999:2;49984:18;;50013:71;49988:9;50057:6;50013:71;;;50095:72;50163:2;50152:9;50148:18;50139:6;50095:72;;;50178:68;50242:2;50231:9;50227:18;50218:6;50178:68;;50263:539;50461:3;50446:19;;50476:71;50450:9;50520:6;50476:71;;;50558:68;50622:2;50611:9;50607:18;50598:6;50558:68;;;50637:72;50705:2;50694:9;50690:18;50681:6;50637:72;;;50720;50788:2;50777:9;50773:18;50764:6;50720:72;;50809:265;50953:2;50938:18;;50967:97;50942:9;51037:6;50967:97;;51353:245;51487:2;51472:18;;51501:87;51476:9;51561:6;51501:87;;51605:293;51739:2;51753:47;;;51724:18;;51814:74;51724:18;51874:6;51814:74;;51905:407;52096:2;52110:47;;;52081:18;;52171:131;52081:18;52171:131;;52319:407;52510:2;52524:47;;;52495:18;;52585:131;52495:18;52585:131;;52733:407;52924:2;52938:47;;;52909:18;;52999:131;52909:18;52999:131;;53147:407;53338:2;53352:47;;;53323:18;;53413:131;53323:18;53413:131;;53561:407;53752:2;53766:47;;;53737:18;;53827:131;53737:18;53827:131;;53975:407;54166:2;54180:47;;;54151:18;;54241:131;54151:18;54241:131;;54389:407;54580:2;54594:47;;;54565:18;;54655:131;54565:18;54655:131;;54803:407;54994:2;55008:47;;;54979:18;;55069:131;54979:18;55069:131;;55217:407;55408:2;55422:47;;;55393:18;;55483:131;55393:18;55483:131;;55631:407;55822:2;55836:47;;;55807:18;;55897:131;55807:18;55897:131;;56045:407;56236:2;56250:47;;;56221:18;;56311:131;56221:18;56311:131;;56459:407;56650:2;56664:47;;;56635:18;;56725:131;56635:18;56725:131;;56873:407;57064:2;57078:47;;;57049:18;;57139:131;57049:18;57139:131;;57287:407;57478:2;57492:47;;;57463:18;;57553:131;57463:18;57553:131;;57701:407;57892:2;57906:47;;;57877:18;;57967:131;57877:18;57967:131;;58115:407;58306:2;58320:47;;;58291:18;;58381:131;58291:18;58381:131;;58529:407;58720:2;58734:47;;;58705:18;;58795:131;58705:18;58795:131;;58943:407;59134:2;59148:47;;;59119:18;;59209:131;59119:18;59209:131;;59357:407;59548:2;59562:47;;;59533:18;;59623:131;59533:18;59623:131;;59771:407;59962:2;59976:47;;;59947:18;;60037:131;59947:18;60037:131;;60185:407;60376:2;60390:47;;;60361:18;;60451:131;60361:18;60451:131;;60599:407;60790:2;60804:47;;;60775:18;;60865:131;60775:18;60865:131;;61013:407;61204:2;61218:47;;;61189:18;;61279:131;61189:18;61279:131;;61427:407;61618:2;61632:47;;;61603:18;;61693:131;61603:18;61693:131;;61841:407;62032:2;62046:47;;;62017:18;;62107:131;62017:18;62107:131;;62255:407;62446:2;62460:47;;;62431:18;;62521:131;62431:18;62521:131;;62669:407;62860:2;62874:47;;;62845:18;;62935:131;62845:18;62935:131;;63083:407;63274:2;63288:47;;;63259:18;;63349:131;63259:18;63349:131;;63497:407;63688:2;63702:47;;;63673:18;;63763:131;63673:18;63763:131;;63911:407;64102:2;64116:47;;;64087:18;;64177:131;64087:18;64177:131;;64325:407;64516:2;64530:47;;;64501:18;;64591:131;64501:18;64591:131;;64739:407;64930:2;64944:47;;;64915:18;;65005:131;64915:18;65005:131;;65153:407;65344:2;65358:47;;;65329:18;;65419:131;65329:18;65419:131;;65567:407;65758:2;65772:47;;;65743:18;;65833:131;65743:18;65833:131;;65981:407;66172:2;66186:47;;;66157:18;;66247:131;66157:18;66247:131;;66395:407;66586:2;66600:47;;;66571:18;;66661:131;66571:18;66661:131;;66809:407;67000:2;67014:47;;;66985:18;;67075:131;66985:18;67075:131;;67223:407;67414:2;67428:47;;;67399:18;;67489:131;67399:18;67489:131;;67637:407;67828:2;67842:47;;;67813:18;;67903:131;67813:18;67903:131;;68051:313;68219:2;68204:18;;68233:121;68208:9;68327:6;68233:121;;68591:1951;69207:3;69192:19;;69222:71;69196:9;69266:6;69222:71;;;69304:80;69380:2;69369:9;69365:18;69356:6;69304:80;;;69432:9;69426:4;69422:20;69417:2;69406:9;69402:18;69395:48;69457:108;69560:4;69551:6;69457:108;;;69449:116;;69613:9;69607:4;69603:20;69598:2;69587:9;69583:18;69576:48;69638:108;69741:4;69732:6;69638:108;;;69630:116;;69795:9;69789:4;69785:20;69779:3;69768:9;69764:19;69757:49;69820:120;69935:4;69926:6;69820:120;;;69812:128;;69989:9;69983:4;69979:20;69973:3;69962:9;69958:19;69951:49;70014:118;70127:4;70118:6;70014:118;;;70006:126;;70143:73;70211:3;70200:9;70196:19;70187:6;70143:73;;;70227;70295:3;70284:9;70280:19;70271:6;70227:73;;;70349:9;70343:4;70339:20;70333:3;70322:9;70318:19;70311:49;70374:78;70447:4;70438:6;70374:78;;;70366:86;;70463:69;70527:3;70516:9;70512:19;70503:6;70463:69;;;69178:1364;;;;;;;;;;;;;;70549:1301;70932:3;70917:19;;70947:71;70921:9;70991:6;70947:71;;;71029:72;71097:2;71086:9;71082:18;71073:6;71029:72;;;71112;71180:2;71169:9;71165:18;71156:6;71112:72;;;71195;71263:2;71252:9;71248:18;71239:6;71195:72;;;71278:73;71346:3;71335:9;71331:19;71322:6;71278:73;;;71362;71430:3;71419:9;71415:19;71406:6;71362:73;;;71446;71514:3;71503:9;71499:19;71490:6;71446:73;;;71530;71598:3;71587:9;71583:19;71574:6;71530:73;;;71614:67;71676:3;71665:9;71661:19;71652:6;71614:67;;;71692;71754:3;71743:9;71739:19;71730:6;71692:67;;;71770:70;71835:3;71824:9;71820:19;71810:7;71770:70;;;70903:947;;;;;;;;;;;;;;;71857:324;72003:2;71988:18;;72017:71;71992:9;72061:6;72017:71;;72188:435;72362:2;72347:18;;72376:71;72351:9;72420:6;72376:71;;;72458:72;72526:2;72515:9;72511:18;72502:6;72458:72;;;72541;72609:2;72598:9;72594:18;72585:6;72541:72;;72630:645;72857:3;72842:19;;72872:71;72846:9;72916:6;72872:71;;;72954:68;73018:2;73007:9;73003:18;72994:6;72954:68;;;73033:71;73100:2;73089:9;73085:18;73076:6;73033:71;;;73152:9;73146:4;73142:20;73137:2;73126:9;73122:18;73115:48;73177:88;73260:4;73251:6;73243;73177:88;;;73169:96;72828:447;-1:-1;;;;;;;72828:447;73282:731;73552:3;73537:19;;73567:71;73541:9;73611:6;73567:71;;;73649:68;73713:2;73702:9;73698:18;73689:6;73649:68;;;73728:71;73795:2;73784:9;73780:18;73771:6;73728:71;;;73847:9;73841:4;73837:20;73832:2;73821:9;73817:18;73810:48;73872:131;73998:4;73872:131;;74020:256;74082:2;74076:9;74108:17;;;-1:-1;;;;;74168:34;;74204:22;;;74165:62;74162:2;;;74240:1;74237;74230:12;74162:2;74256;74249:22;74060:216;;-1:-1;74060:216;74283:304;;-1:-1;;;;;74434:6;74431:30;74428:2;;;74474:1;74471;74464:12;74428:2;-1:-1;74509:4;74497:17;;;74562:15;;74365:222;76214:317;;-1:-1;;;;;76345:6;76342:30;76339:2;;;76385:1;76382;76375:12;76339:2;-1:-1;76516:4;76452;76429:17;;;;-1:-1;;76425:33;76506:15;;76276:255;77520:151;77644:4;77635:14;;77592:79;78163:157;;78257:14;;;78299:4;78286:18;;;78216:104;78492:137;78595:12;;78566:63;80057:178;80175:19;;;80224:4;80215:14;;80168:67;81635:91;;81697:24;81715:5;81697:24;;81733:85;81799:13;81792:21;;81775:43;81904:117;;81992:24;82010:5;81992:24;;82028:142;82108:5;82114:51;82108:5;82114:51;;82177:121;-1:-1;;;;;82239:54;;82222:76;82384:81;82455:4;82444:16;;82427:38;82472:104;-1:-1;;;;;82533:38;;82516:60;82583:129;;82670:37;82701:5;82670:37;;83361:142;;83456:42;83492:5;83456:42;;83753:106;;83831:23;83848:5;83831:23;;83867:145;83948:6;83943:3;83938;83925:30;-1:-1;84004:1;83986:16;;83979:27;83918:94;84021:268;84086:1;84093:101;84107:6;84104:1;84101:13;84093:101;;;84174:11;;;84168:18;84155:11;;;84148:39;84129:2;84122:10;84093:101;;;84209:6;84206:1;84203:13;84200:2;;;-1:-1;;84274:1;84256:16;;84249:27;84070:219;84378:97;84466:2;84446:14;-1:-1;;84442:28;;84426:49;84483:109;84570:1;84563:5;84560:12;84550:2;;84576:9;84599:117;84668:24;84686:5;84668:24;;;84661:5;84658:35;84648:2;;84707:1;84704;84697:12;84723:111;84789:21;84804:5;84789:21;;84841:117;84910:24;84928:5;84910:24;;84965:169;85060:50;85104:5;85060:50;;85141:111;85227:1;85220:5;85217:12;85207:2;;85243:1;85240;85233:12;85383:113;85450:22;85466:5;85450:22;;85503:115;85571:23;85588:5;85571:23;"},"gasEstimates":{"creation":{"codeDepositCost":"3760400","executionCost":"4254","totalCost":"3764654"},"external":{"BALLOT_TYPEHASH()":"infinite","DOMAIN_TYPEHASH()":"infinite","MAX_PROPOSAL_THRESHOLD()":"345","MAX_VOTING_DELAY()":"344","MAX_VOTING_PERIOD()":"433","MIN_PROPOSAL_THRESHOLD()":"345","MIN_VOTING_DELAY()":"432","MIN_VOTING_PERIOD()":"411","_acceptAdmin()":"infinite","_initiate(address)":"infinite","_setGuardian(address)":"infinite","_setPendingAdmin(address)":"infinite","_setProposalMaxOperations(uint256)":"infinite","admin()":"infinite","cancel(uint256)":"infinite","castVote(uint256,uint8)":"infinite","castVoteBySig(uint256,uint8,uint8,bytes32,bytes32)":"infinite","castVoteWithReason(uint256,uint8,string)":"infinite","execute(uint256)":"infinite","getActions(uint256)":"infinite","getReceipt(uint256,address)":"infinite","guardian()":"infinite","implementation()":"infinite","initialProposalId()":"1231","initialize(address,(uint256,uint256,uint256)[],address[],address)":"infinite","latestProposalIds(address)":"infinite","name()":"infinite","pendingAdmin()":"infinite","proposalConfigs(uint256)":"infinite","proposalCount()":"1232","proposalMaxOperations()":"1189","proposalThreshold()":"1166","proposalTimelocks(uint256)":"infinite","proposals(uint256)":"infinite","propose(address[],uint256[],string[],bytes[],string,uint8)":"infinite","queue(uint256)":"infinite","quorumVotes()":"433","state(uint256)":"infinite","timelock()":"infinite","votingDelay()":"1233","votingPeriod()":"1168","xvsVault()":"infinite"},"internal":{"add256(uint256,uint256)":"infinite","castVoteInternal(address,uint256,uint8)":"infinite","getChainIdInternal()":"15","queueOrRevertInternal(address,uint256,string memory,bytes memory,uint256,uint8)":"infinite","sub256(uint256,uint256)":"infinite"}},"methodIdentifiers":{"BALLOT_TYPEHASH()":"deaaa7cc","DOMAIN_TYPEHASH()":"20606b70","MAX_PROPOSAL_THRESHOLD()":"25fd935a","MAX_VOTING_DELAY()":"b1126263","MAX_VOTING_PERIOD()":"a64e024a","MIN_PROPOSAL_THRESHOLD()":"791f5d23","MIN_VOTING_DELAY()":"e48083fe","MIN_VOTING_PERIOD()":"215809ca","_acceptAdmin()":"e9c714f2","_initiate(address)":"f9d28b80","_setGuardian(address)":"e38e8c0f","_setPendingAdmin(address)":"b71d1a0c","_setProposalMaxOperations(uint256)":"1ebcfefd","admin()":"f851a440","cancel(uint256)":"40e58ee5","castVote(uint256,uint8)":"56781388","castVoteBySig(uint256,uint8,uint8,bytes32,bytes32)":"3bccf4fd","castVoteWithReason(uint256,uint8,string)":"7b3c71d3","execute(uint256)":"fe0d94c1","getActions(uint256)":"328dd982","getReceipt(uint256,address)":"e23a9a52","guardian()":"452a9320","implementation()":"5c60da1b","initialProposalId()":"fc4eee42","initialize(address,(uint256,uint256,uint256)[],address[],address)":"9e6f2626","latestProposalIds(address)":"17977c61","name()":"06fdde03","pendingAdmin()":"26782247","proposalConfigs(uint256)":"35a87de2","proposalCount()":"da35c664","proposalMaxOperations()":"7bdbe4d0","proposalThreshold()":"b58131b0","proposalTimelocks(uint256)":"ee9799ee","proposals(uint256)":"013cf08b","propose(address[],uint256[],string[],bytes[],string,uint8)":"164a1ab1","queue(uint256)":"ddf0b009","quorumVotes()":"24bc1a64","state(uint256)":"3e4f49e6","timelock()":"d33219b4","votingDelay()":"3932abb1","votingPeriod()":"02a251a3","xvsVault()":"1b9ce575"}},"metadata":"{\"compiler\":{\"version\":\"0.5.16+commit.9c3226ce\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"oldAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"NewAdmin\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"oldGuardian\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newGuardian\",\"type\":\"address\"}],\"name\":\"NewGuardian\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"oldImplementation\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"}],\"name\":\"NewImplementation\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"oldPendingAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newPendingAdmin\",\"type\":\"address\"}],\"name\":\"NewPendingAdmin\",\"type\":\"event\"},{\"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\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"proposalType\",\"type\":\"uint8\"}],\"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\":\"oldMaxOperations\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newMaxOperations\",\"type\":\"uint256\"}],\"name\":\"ProposalMaxOperationsUpdated\",\"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\":\"uint256\",\"name\":\"oldProposalThreshold\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newProposalThreshold\",\"type\":\"uint256\"}],\"name\":\"ProposalThresholdSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"voter\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"votes\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"VoteCast\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldVotingDelay\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newVotingDelay\",\"type\":\"uint256\"}],\"name\":\"VotingDelaySet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldVotingPeriod\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newVotingPeriod\",\"type\":\"uint256\"}],\"name\":\"VotingPeriodSet\",\"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\":true,\"inputs\":[],\"name\":\"MAX_PROPOSAL_THRESHOLD\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"MAX_VOTING_DELAY\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"MAX_VOTING_PERIOD\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"MIN_PROPOSAL_THRESHOLD\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"MIN_VOTING_DELAY\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"MIN_VOTING_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\":\"governorAlpha\",\"type\":\"address\"}],\"name\":\"_initiate\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"newGuardian\",\"type\":\"address\"}],\"name\":\"_setGuardian\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"newPendingAdmin\",\"type\":\"address\"}],\"name\":\"_setPendingAdmin\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalMaxOperations_\",\"type\":\"uint256\"}],\"name\":\"_setProposalMaxOperations\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"admin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"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\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"}],\"name\":\"castVote\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"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\"},{\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"castVoteWithReason\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"execute\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"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\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"internalType\":\"uint96\",\"name\":\"votes\",\"type\":\"uint96\"}],\"internalType\":\"struct GovernorBravoDelegateStorageV1.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\":[],\"name\":\"implementation\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"initialProposalId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"xvsVault_\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"votingDelay\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"votingPeriod\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"proposalThreshold\",\"type\":\"uint256\"}],\"internalType\":\"struct GovernorBravoDelegateStorageV2.ProposalConfig[]\",\"name\":\"proposalConfigs_\",\"type\":\"tuple[]\"},{\"internalType\":\"contract TimelockInterface[]\",\"name\":\"timelocks\",\"type\":\"address[]\"},{\"internalType\":\"address\",\"name\":\"guardian_\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"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\":\"pendingAdmin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"proposalConfigs\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"votingDelay\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"votingPeriod\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"proposalThreshold\",\"type\":\"uint256\"}],\"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\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"proposalThreshold\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"proposalTimelocks\",\"outputs\":[{\"internalType\":\"contract TimelockInterface\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"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\":\"uint256\",\"name\":\"abstainVotes\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"canceled\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"executed\",\"type\":\"bool\"},{\"internalType\":\"uint8\",\"name\":\"proposalType\",\"type\":\"uint8\"}],\"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\"},{\"internalType\":\"enum GovernorBravoDelegateStorageV2.ProposalType\",\"name\":\"proposalType\",\"type\":\"uint8\"}],\"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\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"state\",\"outputs\":[{\"internalType\":\"enum GovernorBravoDelegateStorageV1.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\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"votingPeriod\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"xvsVault\",\"outputs\":[{\"internalType\":\"contract XvsVaultInterface\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"This contract is the second deployed implementation GovernorBravo. It is included here for testing purposes because it is not completely compatible with new block rate of BSC.\",\"methods\":{\"_acceptAdmin()\":{\"details\":\"Admin function for pending admin to accept role and update admin\"},\"_initiate(address)\":{\"details\":\"Admin only. Sets initial proposal id which initiates the contract, ensuring a continuous proposal id count\",\"params\":{\"governorAlpha\":\"The address for the Governor to continue the proposal id count from\"}},\"_setGuardian(address)\":{\"params\":{\"newGuardian\":\"the address of the new guardian\"}},\"_setPendingAdmin(address)\":{\"details\":\"Admin function to begin change of admin. The newPendingAdmin must call `_acceptAdmin` to finalize the transfer.\",\"params\":{\"newPendingAdmin\":\"New pending admin.\"}},\"_setProposalMaxOperations(uint256)\":{\"details\":\"Admin only.\",\"params\":{\"proposalMaxOperations_\":\"Max proposal operations\"}},\"cancel(uint256)\":{\"params\":{\"proposalId\":\"The id of the proposal to cancel\"}},\"castVote(uint256,uint8)\":{\"params\":{\"proposalId\":\"The id of the proposal to vote on\",\"support\":\"The support value for the vote. 0=against, 1=for, 2=abstain\"}},\"castVoteBySig(uint256,uint8,uint8,bytes32,bytes32)\":{\"details\":\"External function that accepts EIP-712 signatures for voting on proposals.\",\"params\":{\"proposalId\":\"The id of the proposal to vote on\",\"r\":\"part of the ECDSA sig output\",\"s\":\"part of the ECDSA sig output\",\"support\":\"The support value for the vote. 0=against, 1=for, 2=abstain\",\"v\":\"recovery id of ECDSA signature\"}},\"castVoteWithReason(uint256,uint8,string)\":{\"params\":{\"proposalId\":\"The id of the proposal to vote on\",\"reason\":\"The reason given for the vote by the voter\",\"support\":\"The support value for the vote. 0=against, 1=for, 2=abstain\"}},\"execute(uint256)\":{\"params\":{\"proposalId\":\"The id of the proposal to execute\"}},\"getActions(uint256)\":{\"params\":{\"proposalId\":\"the id of the proposal\"},\"return\":\"targets, values, signatures, and calldatas of the proposal actions\"},\"getReceipt(uint256,address)\":{\"params\":{\"proposalId\":\"the id of proposal\",\"voter\":\"The address of the voter\"},\"return\":\"The voting receipt\"},\"initialize(address,(uint256,uint256,uint256)[],address[],address)\":{\"params\":{\"proposalConfigs_\":\"Governance configs for each governance route\",\"timelocks\":\"Timelock addresses for each governance route\",\"xvsVault_\":\"The address of the XvsVault\"}},\"propose(address[],uint256[],string[],bytes[],string,uint8)\":{\"details\":\"NOTE: Proposals with duplicate set of actions can not be queued for execution. If the proposals consists of duplicate actions, it's recommended to split those actions into separate proposals\",\"params\":{\"calldatas\":\"Calldatas for proposal calls\",\"description\":\"String description of the proposal\",\"proposalType\":\"the type of the proposal (e.g NORMAL, FASTTRACK, CRITICAL)\",\"signatures\":\"Function signatures for proposal calls\",\"targets\":\"Target addresses for proposal calls\",\"values\":\"BNB values for proposal calls\"},\"return\":\"Proposal id of new proposal\"},\"queue(uint256)\":{\"params\":{\"proposalId\":\"The id of the proposal to queue\"}},\"state(uint256)\":{\"params\":{\"proposalId\":\"The id of the proposal\"},\"return\":\"Proposal state\"}},\"title\":\"GovernorBravoDelegateV2\"},\"userdoc\":{\"methods\":{\"_acceptAdmin()\":{\"notice\":\"Accepts transfer of admin rights. msg.sender must be pendingAdmin\"},\"_initiate(address)\":{\"notice\":\"Initiate the GovernorBravo contract\"},\"_setGuardian(address)\":{\"notice\":\"Sets the new governance guardian\"},\"_setPendingAdmin(address)\":{\"notice\":\"Begins transfer of admin rights. The newPendingAdmin must call `_acceptAdmin` to finalize the transfer.\"},\"_setProposalMaxOperations(uint256)\":{\"notice\":\"Set max proposal operations\"},\"cancel(uint256)\":{\"notice\":\"Cancels a proposal only if sender is the proposer, or proposer delegates dropped below proposal threshold\"},\"castVote(uint256,uint8)\":{\"notice\":\"Cast a vote for a proposal\"},\"castVoteBySig(uint256,uint8,uint8,bytes32,bytes32)\":{\"notice\":\"Cast a vote for a proposal by signature\"},\"castVoteWithReason(uint256,uint8,string)\":{\"notice\":\"Cast a vote for a proposal with a reason\"},\"execute(uint256)\":{\"notice\":\"Executes a queued proposal if eta has passed\"},\"getActions(uint256)\":{\"notice\":\"Gets actions of a proposal\"},\"getReceipt(uint256,address)\":{\"notice\":\"Gets the receipt for a voter on a given proposal\"},\"initialize(address,(uint256,uint256,uint256)[],address[],address)\":{\"notice\":\"Used to initialize the contract during delegator contructor\"},\"propose(address[],uint256[],string[],bytes[],string,uint8)\":{\"notice\":\"Function used to propose a new proposal. Sender must have delegates above the proposal threshold. targets, values, signatures, and calldatas must be of equal length\"},\"queue(uint256)\":{\"notice\":\"Queues a proposal of state succeeded\"},\"state(uint256)\":{\"notice\":\"Gets the state of a proposal\"}}}},\"settings\":{\"compilationTarget\":{\"contracts/legacy/GovernorBravoDelegateV2.sol\":\"GovernorBravoDelegateV2\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/Governance/GovernorBravoInterfaces.sol\":{\"content\":\"pragma solidity ^0.5.16;\\npragma experimental ABIEncoderV2;\\n\\n/**\\n * @title GovernorBravoEvents\\n * @author Venus\\n * @notice Set of events emitted by the GovernorBravo contracts.\\n */\\ncontract GovernorBravoEvents {\\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        uint8 proposalType\\n    );\\n\\n    /// @notice An event emitted when a vote has been cast on a proposal\\n    /// @param voter The address which casted a vote\\n    /// @param proposalId The proposal id which was voted on\\n    /// @param support Support value for the vote. 0=against, 1=for, 2=abstain\\n    /// @param votes Number of votes which were cast by the voter\\n    /// @param reason The reason given for the vote by the voter\\n    event VoteCast(address indexed voter, uint proposalId, uint8 support, uint votes, string reason);\\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    /// @notice An event emitted when the voting delay is set\\n    event VotingDelaySet(uint oldVotingDelay, uint newVotingDelay);\\n\\n    /// @notice An event emitted when the voting period is set\\n    event VotingPeriodSet(uint oldVotingPeriod, uint newVotingPeriod);\\n\\n    /// @notice Emitted when implementation is changed\\n    event NewImplementation(address oldImplementation, address newImplementation);\\n\\n    /// @notice Emitted when proposal threshold is set\\n    event ProposalThresholdSet(uint oldProposalThreshold, uint newProposalThreshold);\\n\\n    /// @notice Emitted when pendingAdmin is changed\\n    event NewPendingAdmin(address oldPendingAdmin, address newPendingAdmin);\\n\\n    /// @notice Emitted when pendingAdmin is accepted, which means admin is updated\\n    event NewAdmin(address oldAdmin, address newAdmin);\\n\\n    /// @notice Emitted when the new guardian address is set\\n    event NewGuardian(address oldGuardian, address newGuardian);\\n\\n    /// @notice Emitted when the maximum number of operations in one proposal is updated\\n    event ProposalMaxOperationsUpdated(uint oldMaxOperations, uint newMaxOperations);\\n\\n    /// @notice Emitted when the new validation params are set\\n    event SetValidationParams(\\n        uint256 oldMinVotingPeriod,\\n        uint256 newMinVotingPeriod,\\n        uint256 oldmaxVotingPeriod,\\n        uint256 newmaxVotingPeriod,\\n        uint256 oldminVotingDelay,\\n        uint256 newminVotingDelay,\\n        uint256 oldmaxVotingDelay,\\n        uint256 newmaxVotingDelay\\n    );\\n\\n    /// @notice Emitted when new Proposal configs added\\n    event SetProposalConfigs(uint256 votingPeriod, uint256 votingDelay, uint256 proposalThreshold);\\n}\\n\\n/**\\n * @title GovernorBravoDelegatorStorage\\n * @author Venus\\n * @notice Storage layout of the `GovernorBravoDelegator` contract\\n */\\ncontract GovernorBravoDelegatorStorage {\\n    /// @notice Administrator for this contract\\n    address public admin;\\n\\n    /// @notice Pending administrator for this contract\\n    address public pendingAdmin;\\n\\n    /// @notice Active brains of Governor\\n    address public implementation;\\n}\\n\\n/**\\n * @title GovernorBravoDelegateStorageV1\\n * @dev For future upgrades, do not change GovernorBravoDelegateStorageV1. Create a new\\n * contract which implements GovernorBravoDelegateStorageV1 and following the naming convention\\n * GovernorBravoDelegateStorageVX.\\n */\\ncontract GovernorBravoDelegateStorageV1 is GovernorBravoDelegatorStorage {\\n    /// @notice DEPRECATED The delay before voting on a proposal may take place, once proposed, in blocks\\n    uint public votingDelay;\\n\\n    /// @notice DEPRECATED The duration of voting on a proposal, in blocks\\n    uint public votingPeriod;\\n\\n    /// @notice DEPRECATED The number of votes required in order for a voter to become a proposer\\n    uint public proposalThreshold;\\n\\n    /// @notice Initial proposal id set at become\\n    uint public initialProposalId;\\n\\n    /// @notice The total number of proposals\\n    uint public proposalCount;\\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    XvsVaultInterface public xvsVault;\\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    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 Current number of votes for abstaining for this proposal\\n        uint abstainVotes;\\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        /// @notice The type of the proposal\\n        uint8 proposalType;\\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 or abstains\\n        uint8 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 maximum number of actions that can be included in a proposal\\n    uint public proposalMaxOperations;\\n\\n    /// @notice A privileged role that can cancel any proposal\\n    address public guardian;\\n}\\n\\n/**\\n * @title GovernorBravoDelegateStorageV2\\n * @dev For future upgrades, do not change GovernorBravoDelegateStorageV2. Create a new\\n * contract which implements GovernorBravoDelegateStorageV2 and following the naming convention\\n * GovernorBravoDelegateStorageVX.\\n */\\ncontract GovernorBravoDelegateStorageV2 is GovernorBravoDelegateStorageV1 {\\n    enum ProposalType {\\n        NORMAL,\\n        FASTTRACK,\\n        CRITICAL\\n    }\\n\\n    struct ProposalConfig {\\n        /// @notice The delay before voting on a proposal may take place, once proposed, in blocks\\n        uint256 votingDelay;\\n        /// @notice The duration of voting on a proposal, in blocks\\n        uint256 votingPeriod;\\n        /// @notice The number of votes required in order for a voter to become a proposer\\n        uint256 proposalThreshold;\\n    }\\n\\n    /// @notice mapping containing configuration for each proposal type\\n    mapping(uint => ProposalConfig) public proposalConfigs;\\n\\n    /// @notice mapping containing Timelock addresses for each proposal type\\n    mapping(uint => TimelockInterface) public proposalTimelocks;\\n}\\n\\n/**\\n * @title GovernorBravoDelegateStorageV3\\n * @dev For future upgrades, do not change GovernorBravoDelegateStorageV3. Create a new\\n * contract which implements GovernorBravoDelegateStorageV3 and following the naming convention\\n * GovernorBravoDelegateStorageVX.\\n */\\ncontract GovernorBravoDelegateStorageV3 is GovernorBravoDelegateStorageV2 {\\n    struct ValidationParams {\\n        uint256 minVotingPeriod;\\n        uint256 maxVotingPeriod;\\n        uint256 minVotingDelay;\\n        uint256 maxVotingDelay;\\n    }\\n    /// @notice Stores the current minimum and maximum values of voting delay and voting period\\n    ValidationParams public validationParams;\\n}\\n\\n/**\\n * @title TimelockInterface\\n * @author Venus\\n * @notice Interface implemented by the Timelock contract.\\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 XvsVaultInterface {\\n    function getPriorVotes(address account, uint blockNumber) external view returns (uint96);\\n}\\n\\ninterface GovernorAlphaInterface {\\n    /// @notice The total number of proposals\\n    function proposalCount() external returns (uint);\\n}\\n\",\"keccak256\":\"0x62c89309d4351dbeb5516465211fab0b566d83d60dc0148377deaad1f1929b85\"},\"contracts/legacy/GovernorBravoDelegateV2.sol\":{\"content\":\"pragma solidity ^0.5.16;\\npragma experimental ABIEncoderV2;\\n\\nimport \\\"./GovernorBravoInterfacesV2.sol\\\";\\n\\n/**\\n * @title GovernorBravoDelegateV2\\n * @dev This contract is the second deployed implementation GovernorBravo.\\n * It is included here for testing purposes because it is not completely compatible with new block rate of BSC.\\n */\\ncontract GovernorBravoDelegateV2 is GovernorBravoDelegateStorageV2, GovernorBravoEventsV2 {\\n    /// @notice The name of this contract\\n    string public constant name = \\\"Venus Governor Bravo\\\";\\n\\n    /// @notice The minimum setable proposal threshold\\n    uint public constant MIN_PROPOSAL_THRESHOLD = 150000e18; // 150,000 Xvs\\n\\n    /// @notice The maximum setable proposal threshold\\n    uint public constant MAX_PROPOSAL_THRESHOLD = 300000e18; //300,000 Xvs\\n\\n    /// @notice The minimum setable voting period\\n    uint public constant MIN_VOTING_PERIOD = 20 * 60 * 3; // About 3 hours, 3 secs per block\\n\\n    /// @notice The max setable voting period\\n    uint public constant MAX_VOTING_PERIOD = 20 * 60 * 24 * 14; // About 2 weeks, 3 secs per block\\n\\n    /// @notice The min setable voting delay\\n    uint public constant MIN_VOTING_DELAY = 1;\\n\\n    /// @notice The max setable voting delay\\n    uint public constant MAX_VOTING_DELAY = 20 * 60 * 24 * 7; // About 1 week, 3 secs per block\\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    uint public constant quorumVotes = 600000e18; // 600,000 = 2% of Xvs\\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,uint8 support)\\\");\\n\\n    /**\\n     * @notice Used to initialize the contract during delegator contructor\\n     * @param xvsVault_ The address of the XvsVault\\n     * @param proposalConfigs_ Governance configs for each governance route\\n     * @param timelocks Timelock addresses for each governance route\\n     */\\n    function initialize(\\n        address xvsVault_,\\n        ProposalConfig[] memory proposalConfigs_,\\n        TimelockInterface[] memory timelocks,\\n        address guardian_\\n    ) public {\\n        require(address(proposalTimelocks[0]) == address(0), \\\"GovernorBravo::initialize: cannot initialize twice\\\");\\n        require(msg.sender == admin, \\\"GovernorBravo::initialize: admin only\\\");\\n        require(xvsVault_ != address(0), \\\"GovernorBravo::initialize: invalid xvs address\\\");\\n        require(guardian_ != address(0), \\\"GovernorBravo::initialize: invalid guardian\\\");\\n        require(\\n            timelocks.length == uint8(ProposalType.CRITICAL) + 1,\\n            \\\"GovernorBravo::initialize:number of timelocks should match number of governance routes\\\"\\n        );\\n        require(\\n            proposalConfigs_.length == uint8(ProposalType.CRITICAL) + 1,\\n            \\\"GovernorBravo::initialize:number of proposal configs should match number of governance routes\\\"\\n        );\\n\\n        xvsVault = XvsVaultInterface(xvsVault_);\\n        proposalMaxOperations = 10;\\n        guardian = guardian_;\\n\\n        //Set parameters for each Governance Route\\n        uint256 arrLength = proposalConfigs_.length;\\n        for (uint256 i; i < arrLength; ++i) {\\n            require(\\n                proposalConfigs_[i].votingPeriod >= MIN_VOTING_PERIOD,\\n                \\\"GovernorBravo::initialize: invalid min voting period\\\"\\n            );\\n            require(\\n                proposalConfigs_[i].votingPeriod <= MAX_VOTING_PERIOD,\\n                \\\"GovernorBravo::initialize: invalid max voting period\\\"\\n            );\\n            require(\\n                proposalConfigs_[i].votingDelay >= MIN_VOTING_DELAY,\\n                \\\"GovernorBravo::initialize: invalid min voting delay\\\"\\n            );\\n            require(\\n                proposalConfigs_[i].votingDelay <= MAX_VOTING_DELAY,\\n                \\\"GovernorBravo::initialize: invalid max voting delay\\\"\\n            );\\n            require(\\n                proposalConfigs_[i].proposalThreshold >= MIN_PROPOSAL_THRESHOLD,\\n                \\\"GovernorBravo::initialize: invalid min proposal threshold\\\"\\n            );\\n            require(\\n                proposalConfigs_[i].proposalThreshold <= MAX_PROPOSAL_THRESHOLD,\\n                \\\"GovernorBravo::initialize: invalid max proposal threshold\\\"\\n            );\\n            require(address(timelocks[i]) != address(0), \\\"GovernorBravo::initialize:invalid timelock address\\\");\\n\\n            proposalConfigs[i] = proposalConfigs_[i];\\n            proposalTimelocks[i] = timelocks[i];\\n        }\\n    }\\n\\n    /**\\n     * @notice Function used to propose a new proposal. Sender must have delegates above the proposal threshold.\\n     * targets, values, signatures, and calldatas must be of equal length\\n     * @dev NOTE: Proposals with duplicate set of actions can not be queued for execution. If the proposals consists\\n     *  of duplicate actions, it's recommended to split those actions into separate proposals\\n     * @param targets Target addresses for proposal calls\\n     * @param values BNB values for proposal calls\\n     * @param signatures Function signatures for proposal calls\\n     * @param calldatas Calldatas for proposal calls\\n     * @param description String description of the proposal\\n     * @param proposalType the type of the proposal (e.g NORMAL, FASTTRACK, CRITICAL)\\n     * @return Proposal id of new proposal\\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        ProposalType proposalType\\n    ) public returns (uint) {\\n        // Reject proposals before initiating as Governor\\n        require(initialProposalId != 0, \\\"GovernorBravo::propose: Governor Bravo not active\\\");\\n        require(\\n            xvsVault.getPriorVotes(msg.sender, sub256(block.number, 1)) >=\\n                proposalConfigs[uint8(proposalType)].proposalThreshold,\\n            \\\"GovernorBravo::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            \\\"GovernorBravo::propose: proposal function information arity mismatch\\\"\\n        );\\n        require(targets.length != 0, \\\"GovernorBravo::propose: must provide actions\\\");\\n        require(targets.length <= proposalMaxOperations, \\\"GovernorBravo::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                \\\"GovernorBravo::propose: one live proposal per proposer, found an already active proposal\\\"\\n            );\\n            require(\\n                proposersLatestProposalState != ProposalState.Pending,\\n                \\\"GovernorBravo::propose: one live proposal per proposer, found an already pending proposal\\\"\\n            );\\n        }\\n\\n        uint startBlock = add256(block.number, proposalConfigs[uint8(proposalType)].votingDelay);\\n        uint endBlock = add256(startBlock, proposalConfigs[uint8(proposalType)].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            abstainVotes: 0,\\n            canceled: false,\\n            executed: false,\\n            proposalType: uint8(proposalType)\\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            uint8(proposalType)\\n        );\\n        return newProposal.id;\\n    }\\n\\n    /**\\n     * @notice Queues a proposal of state succeeded\\n     * @param proposalId The id of the proposal to queue\\n     */\\n    function queue(uint proposalId) external {\\n        require(\\n            state(proposalId) == ProposalState.Succeeded,\\n            \\\"GovernorBravo::queue: proposal can only be queued if it is succeeded\\\"\\n        );\\n        Proposal storage proposal = proposals[proposalId];\\n        uint eta = add256(block.timestamp, proposalTimelocks[uint8(proposal.proposalType)].delay());\\n        for (uint i; i < proposal.targets.length; ++i) {\\n            queueOrRevertInternal(\\n                proposal.targets[i],\\n                proposal.values[i],\\n                proposal.signatures[i],\\n                proposal.calldatas[i],\\n                eta,\\n                uint8(proposal.proposalType)\\n            );\\n        }\\n        proposal.eta = eta;\\n        emit ProposalQueued(proposalId, eta);\\n    }\\n\\n    function queueOrRevertInternal(\\n        address target,\\n        uint value,\\n        string memory signature,\\n        bytes memory data,\\n        uint eta,\\n        uint8 proposalType\\n    ) internal {\\n        require(\\n            !proposalTimelocks[proposalType].queuedTransactions(\\n                keccak256(abi.encode(target, value, signature, data, eta))\\n            ),\\n            \\\"GovernorBravo::queueOrRevertInternal: identical proposal action already queued at eta\\\"\\n        );\\n        proposalTimelocks[proposalType].queueTransaction(target, value, signature, data, eta);\\n    }\\n\\n    /**\\n     * @notice Executes a queued proposal if eta has passed\\n     * @param proposalId The id of the proposal to execute\\n     */\\n    function execute(uint proposalId) external {\\n        require(\\n            state(proposalId) == ProposalState.Queued,\\n            \\\"GovernorBravo::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; i < proposal.targets.length; ++i) {\\n            proposalTimelocks[uint8(proposal.proposalType)].executeTransaction(\\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    /**\\n     * @notice Cancels a proposal only if sender is the proposer, or proposer delegates dropped below proposal threshold\\n     * @param proposalId The id of the proposal to cancel\\n     */\\n    function cancel(uint proposalId) external {\\n        require(state(proposalId) != ProposalState.Executed, \\\"GovernorBravo::cancel: cannot cancel executed proposal\\\");\\n\\n        Proposal storage proposal = proposals[proposalId];\\n        require(\\n            msg.sender == guardian ||\\n                msg.sender == proposal.proposer ||\\n                xvsVault.getPriorVotes(proposal.proposer, sub256(block.number, 1)) <\\n                proposalConfigs[proposal.proposalType].proposalThreshold,\\n            \\\"GovernorBravo::cancel: proposer above threshold\\\"\\n        );\\n\\n        proposal.canceled = true;\\n        for (uint i = 0; i < proposal.targets.length; i++) {\\n            proposalTimelocks[proposal.proposalType].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    /**\\n     * @notice Gets actions of a proposal\\n     * @param proposalId the id of the proposal\\n     * @return targets, values, signatures, and calldatas of the proposal actions\\n     */\\n    function getActions(\\n        uint proposalId\\n    )\\n        external\\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    /**\\n     * @notice Gets the receipt for a voter on a given proposal\\n     * @param proposalId the id of proposal\\n     * @param voter The address of the voter\\n     * @return The voting receipt\\n     */\\n    function getReceipt(uint proposalId, address voter) external view returns (Receipt memory) {\\n        return proposals[proposalId].receipts[voter];\\n    }\\n\\n    /**\\n     * @notice Gets the state of a proposal\\n     * @param proposalId The id of the proposal\\n     * @return Proposal state\\n     */\\n    function state(uint proposalId) public view returns (ProposalState) {\\n        require(\\n            proposalCount >= proposalId && proposalId > initialProposalId,\\n            \\\"GovernorBravo::state: invalid proposal id\\\"\\n        );\\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 (\\n            block.timestamp >= add256(proposal.eta, proposalTimelocks[uint8(proposal.proposalType)].GRACE_PERIOD())\\n        ) {\\n            return ProposalState.Expired;\\n        } else {\\n            return ProposalState.Queued;\\n        }\\n    }\\n\\n    /**\\n     * @notice Cast a vote for a proposal\\n     * @param proposalId The id of the proposal to vote on\\n     * @param support The support value for the vote. 0=against, 1=for, 2=abstain\\n     */\\n    function castVote(uint proposalId, uint8 support) external {\\n        emit VoteCast(msg.sender, proposalId, support, castVoteInternal(msg.sender, proposalId, support), \\\"\\\");\\n    }\\n\\n    /**\\n     * @notice Cast a vote for a proposal with a reason\\n     * @param proposalId The id of the proposal to vote on\\n     * @param support The support value for the vote. 0=against, 1=for, 2=abstain\\n     * @param reason The reason given for the vote by the voter\\n     */\\n    function castVoteWithReason(uint proposalId, uint8 support, string calldata reason) external {\\n        emit VoteCast(msg.sender, proposalId, support, castVoteInternal(msg.sender, proposalId, support), reason);\\n    }\\n\\n    /**\\n     * @notice Cast a vote for a proposal by signature\\n     * @dev External function that accepts EIP-712 signatures for voting on proposals.\\n     * @param proposalId The id of the proposal to vote on\\n     * @param support The support value for the vote. 0=against, 1=for, 2=abstain\\n     * @param v recovery id of ECDSA signature\\n     * @param r part of the ECDSA sig output\\n     * @param s part of the ECDSA sig output\\n     */\\n    function castVoteBySig(uint proposalId, uint8 support, uint8 v, bytes32 r, bytes32 s) external {\\n        bytes32 domainSeparator = keccak256(\\n            abi.encode(DOMAIN_TYPEHASH, keccak256(bytes(name)), getChainIdInternal(), 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), \\\"GovernorBravo::castVoteBySig: invalid signature\\\");\\n        emit VoteCast(signatory, proposalId, support, castVoteInternal(signatory, proposalId, support), \\\"\\\");\\n    }\\n\\n    /**\\n     * @notice Internal function that caries out voting logic\\n     * @param voter The voter that is casting their vote\\n     * @param proposalId The id of the proposal to vote on\\n     * @param support The support value for the vote. 0=against, 1=for, 2=abstain\\n     * @return The number of votes cast\\n     */\\n    function castVoteInternal(address voter, uint proposalId, uint8 support) internal returns (uint96) {\\n        require(state(proposalId) == ProposalState.Active, \\\"GovernorBravo::castVoteInternal: voting is closed\\\");\\n        require(support <= 2, \\\"GovernorBravo::castVoteInternal: invalid vote type\\\");\\n        Proposal storage proposal = proposals[proposalId];\\n        Receipt storage receipt = proposal.receipts[voter];\\n        require(receipt.hasVoted == false, \\\"GovernorBravo::castVoteInternal: voter already voted\\\");\\n        uint96 votes = xvsVault.getPriorVotes(voter, proposal.startBlock);\\n\\n        if (support == 0) {\\n            proposal.againstVotes = add256(proposal.againstVotes, votes);\\n        } else if (support == 1) {\\n            proposal.forVotes = add256(proposal.forVotes, votes);\\n        } else if (support == 2) {\\n            proposal.abstainVotes = add256(proposal.abstainVotes, votes);\\n        }\\n\\n        receipt.hasVoted = true;\\n        receipt.support = support;\\n        receipt.votes = votes;\\n\\n        return votes;\\n    }\\n\\n    /**\\n     * @notice Sets the new governance guardian\\n     * @param newGuardian the address of the new guardian\\n     */\\n    function _setGuardian(address newGuardian) external {\\n        require(msg.sender == guardian || msg.sender == admin, \\\"GovernorBravo::_setGuardian: admin or guardian only\\\");\\n        require(newGuardian != address(0), \\\"GovernorBravo::_setGuardian: cannot live without a guardian\\\");\\n        address oldGuardian = guardian;\\n        guardian = newGuardian;\\n\\n        emit NewGuardian(oldGuardian, newGuardian);\\n    }\\n\\n    /**\\n     * @notice Initiate the GovernorBravo contract\\n     * @dev Admin only. Sets initial proposal id which initiates the contract, ensuring a continuous proposal id count\\n     * @param governorAlpha The address for the Governor to continue the proposal id count from\\n     */\\n    function _initiate(address governorAlpha) external {\\n        require(msg.sender == admin, \\\"GovernorBravo::_initiate: admin only\\\");\\n        require(initialProposalId == 0, \\\"GovernorBravo::_initiate: can only initiate once\\\");\\n        proposalCount = GovernorAlphaInterface(governorAlpha).proposalCount();\\n        initialProposalId = proposalCount;\\n        for (uint256 i; i < uint8(ProposalType.CRITICAL) + 1; ++i) {\\n            proposalTimelocks[i].acceptAdmin();\\n        }\\n    }\\n\\n    /**\\n     * @notice Set max proposal operations\\n     * @dev Admin only.\\n     * @param proposalMaxOperations_ Max proposal operations\\n     */\\n    function _setProposalMaxOperations(uint proposalMaxOperations_) external {\\n        require(msg.sender == admin, \\\"GovernorBravo::_setProposalMaxOperations: admin only\\\");\\n        uint oldProposalMaxOperations = proposalMaxOperations;\\n        proposalMaxOperations = proposalMaxOperations_;\\n\\n        emit ProposalMaxOperationsUpdated(oldProposalMaxOperations, proposalMaxOperations_);\\n    }\\n\\n    /**\\n     * @notice Begins transfer of admin rights. The newPendingAdmin must call `_acceptAdmin` to finalize the transfer.\\n     * @dev Admin function to begin change of admin. The newPendingAdmin must call `_acceptAdmin` to finalize the transfer.\\n     * @param newPendingAdmin New pending admin.\\n     */\\n    function _setPendingAdmin(address newPendingAdmin) external {\\n        // Check caller = admin\\n        require(msg.sender == admin, \\\"GovernorBravo:_setPendingAdmin: admin only\\\");\\n\\n        // Save current value, if any, for inclusion in log\\n        address oldPendingAdmin = pendingAdmin;\\n\\n        // Store pendingAdmin with value newPendingAdmin\\n        pendingAdmin = newPendingAdmin;\\n\\n        // Emit NewPendingAdmin(oldPendingAdmin, newPendingAdmin)\\n        emit NewPendingAdmin(oldPendingAdmin, newPendingAdmin);\\n    }\\n\\n    /**\\n     * @notice Accepts transfer of admin rights. msg.sender must be pendingAdmin\\n     * @dev Admin function for pending admin to accept role and update admin\\n     */\\n    function _acceptAdmin() external {\\n        // Check caller is pendingAdmin and pendingAdmin \\u2260 address(0)\\n        require(\\n            msg.sender == pendingAdmin && msg.sender != address(0),\\n            \\\"GovernorBravo:_acceptAdmin: pending admin only\\\"\\n        );\\n\\n        // Save current values for inclusion in log\\n        address oldAdmin = admin;\\n        address oldPendingAdmin = pendingAdmin;\\n\\n        // Store admin with value pendingAdmin\\n        admin = pendingAdmin;\\n\\n        // Clear the pending value\\n        pendingAdmin = address(0);\\n\\n        emit NewAdmin(oldAdmin, admin);\\n        emit NewPendingAdmin(oldPendingAdmin, pendingAdmin);\\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 getChainIdInternal() internal pure returns (uint) {\\n        uint chainId;\\n        assembly {\\n            chainId := chainid()\\n        }\\n        return chainId;\\n    }\\n}\\n\",\"keccak256\":\"0xcc440d68472121e6287c00986c783ee679d5030814875f92ca26e15d4eabfab4\"},\"contracts/legacy/GovernorBravoInterfacesV2.sol\":{\"content\":\"pragma solidity ^0.5.16;\\npragma experimental ABIEncoderV2;\\n\\nimport { XvsVaultInterface, TimelockInterface, GovernorAlphaInterface } from \\\"../Governance/GovernorBravoInterfaces.sol\\\";\\n\\n/**\\n * @title GovernorBravoEvents\\n * @author Venus\\n * @notice Set of events emitted by the second GovernorBravo implementation contract.\\n * @dev This contract is included for archival and testing purposes.\\n */\\ncontract GovernorBravoEventsV2 {\\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        uint8 proposalType\\n    );\\n\\n    /// @notice An event emitted when a vote has been cast on a proposal\\n    /// @param voter The address which casted a vote\\n    /// @param proposalId The proposal id which was voted on\\n    /// @param support Support value for the vote. 0=against, 1=for, 2=abstain\\n    /// @param votes Number of votes which were cast by the voter\\n    /// @param reason The reason given for the vote by the voter\\n    event VoteCast(address indexed voter, uint proposalId, uint8 support, uint votes, string reason);\\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    /// @notice An event emitted when the voting delay is set\\n    event VotingDelaySet(uint oldVotingDelay, uint newVotingDelay);\\n\\n    /// @notice An event emitted when the voting period is set\\n    event VotingPeriodSet(uint oldVotingPeriod, uint newVotingPeriod);\\n\\n    /// @notice Emitted when implementation is changed\\n    event NewImplementation(address oldImplementation, address newImplementation);\\n\\n    /// @notice Emitted when proposal threshold is set\\n    event ProposalThresholdSet(uint oldProposalThreshold, uint newProposalThreshold);\\n\\n    /// @notice Emitted when pendingAdmin is changed\\n    event NewPendingAdmin(address oldPendingAdmin, address newPendingAdmin);\\n\\n    /// @notice Emitted when pendingAdmin is accepted, which means admin is updated\\n    event NewAdmin(address oldAdmin, address newAdmin);\\n\\n    /// @notice Emitted when the new guardian address is set\\n    event NewGuardian(address oldGuardian, address newGuardian);\\n\\n    /// @notice Emitted when the maximum number of operations in one proposal is updated\\n    event ProposalMaxOperationsUpdated(uint oldMaxOperations, uint newMaxOperations);\\n}\\n\\n/**\\n * @title GovernorBravoDelegatorStorage\\n * @author Venus\\n * @notice Storage layout of the `GovernorBravoDelegator` contract\\n */\\ncontract GovernorBravoDelegatorStorage {\\n    /// @notice Administrator for this contract\\n    address public admin;\\n\\n    /// @notice Pending administrator for this contract\\n    address public pendingAdmin;\\n\\n    /// @notice Active brains of Governor\\n    address public implementation;\\n}\\n\\n/**\\n * @title GovernorBravoDelegateStorageV1\\n * @dev This contract is included for archival and testing purposes.\\n */\\ncontract GovernorBravoDelegateStorageV1 is GovernorBravoDelegatorStorage {\\n    /// @notice DEPRECATED The delay before voting on a proposal may take place, once proposed, in blocks\\n    uint public votingDelay;\\n\\n    /// @notice DEPRECATED The duration of voting on a proposal, in blocks\\n    uint public votingPeriod;\\n\\n    /// @notice DEPRECATED The number of votes required in order for a voter to become a proposer\\n    uint public proposalThreshold;\\n\\n    /// @notice Initial proposal id set at become\\n    uint public initialProposalId;\\n\\n    /// @notice The total number of proposals\\n    uint public proposalCount;\\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    XvsVaultInterface public xvsVault;\\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    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 Current number of votes for abstaining for this proposal\\n        uint abstainVotes;\\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        /// @notice The type of the proposal\\n        uint8 proposalType;\\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 or abstains\\n        uint8 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 maximum number of actions that can be included in a proposal\\n    uint public proposalMaxOperations;\\n\\n    /// @notice A privileged role that can cancel any proposal\\n    address public guardian;\\n}\\n\\n/**\\n * @title GovernorBravoDelegateStorageV2\\n * @dev For future upgrades, do not change GovernorBravoDelegateStorageV2. Create a new\\n * contract which implements GovernorBravoDelegateStorageV2 and following the naming convention\\n * GovernorBravoDelegateStorageVX.\\n */\\ncontract GovernorBravoDelegateStorageV2 is GovernorBravoDelegateStorageV1 {\\n    enum ProposalType {\\n        NORMAL,\\n        FASTTRACK,\\n        CRITICAL\\n    }\\n\\n    struct ProposalConfig {\\n        /// @notice The delay before voting on a proposal may take place, once proposed, in blocks\\n        uint256 votingDelay;\\n        /// @notice The duration of voting on a proposal, in blocks\\n        uint256 votingPeriod;\\n        /// @notice The number of votes required in order for a voter to become a proposer\\n        uint256 proposalThreshold;\\n    }\\n\\n    /// @notice mapping containing configuration for each proposal type\\n    mapping(uint => ProposalConfig) public proposalConfigs;\\n\\n    /// @notice mapping containing Timelock addresses for each proposal type\\n    mapping(uint => TimelockInterface) public proposalTimelocks;\\n}\\n\",\"keccak256\":\"0x248f56ae02c43a401896c866addaa328bdd6b0265f92038baf32470183ef5736\"}},\"version\":1}","storageLayout":{"storage":[{"astId":5426,"contract":"contracts/legacy/GovernorBravoDelegateV2.sol:GovernorBravoDelegateV2","label":"admin","offset":0,"slot":"0","type":"t_address"},{"astId":5428,"contract":"contracts/legacy/GovernorBravoDelegateV2.sol:GovernorBravoDelegateV2","label":"pendingAdmin","offset":0,"slot":"1","type":"t_address"},{"astId":5430,"contract":"contracts/legacy/GovernorBravoDelegateV2.sol:GovernorBravoDelegateV2","label":"implementation","offset":0,"slot":"2","type":"t_address"},{"astId":5435,"contract":"contracts/legacy/GovernorBravoDelegateV2.sol:GovernorBravoDelegateV2","label":"votingDelay","offset":0,"slot":"3","type":"t_uint256"},{"astId":5437,"contract":"contracts/legacy/GovernorBravoDelegateV2.sol:GovernorBravoDelegateV2","label":"votingPeriod","offset":0,"slot":"4","type":"t_uint256"},{"astId":5439,"contract":"contracts/legacy/GovernorBravoDelegateV2.sol:GovernorBravoDelegateV2","label":"proposalThreshold","offset":0,"slot":"5","type":"t_uint256"},{"astId":5441,"contract":"contracts/legacy/GovernorBravoDelegateV2.sol:GovernorBravoDelegateV2","label":"initialProposalId","offset":0,"slot":"6","type":"t_uint256"},{"astId":5443,"contract":"contracts/legacy/GovernorBravoDelegateV2.sol:GovernorBravoDelegateV2","label":"proposalCount","offset":0,"slot":"7","type":"t_uint256"},{"astId":5445,"contract":"contracts/legacy/GovernorBravoDelegateV2.sol:GovernorBravoDelegateV2","label":"timelock","offset":0,"slot":"8","type":"t_contract(TimelockInterface)2007"},{"astId":5447,"contract":"contracts/legacy/GovernorBravoDelegateV2.sol:GovernorBravoDelegateV2","label":"xvsVault","offset":0,"slot":"9","type":"t_contract(XvsVaultInterface)2017"},{"astId":5451,"contract":"contracts/legacy/GovernorBravoDelegateV2.sol:GovernorBravoDelegateV2","label":"proposals","offset":0,"slot":"10","type":"t_mapping(t_uint256,t_struct(Proposal)5494_storage)"},{"astId":5455,"contract":"contracts/legacy/GovernorBravoDelegateV2.sol:GovernorBravoDelegateV2","label":"latestProposalIds","offset":0,"slot":"11","type":"t_mapping(t_address,t_uint256)"},{"astId":5512,"contract":"contracts/legacy/GovernorBravoDelegateV2.sol:GovernorBravoDelegateV2","label":"proposalMaxOperations","offset":0,"slot":"12","type":"t_uint256"},{"astId":5514,"contract":"contracts/legacy/GovernorBravoDelegateV2.sol:GovernorBravoDelegateV2","label":"guardian","offset":0,"slot":"13","type":"t_address"},{"astId":5532,"contract":"contracts/legacy/GovernorBravoDelegateV2.sol:GovernorBravoDelegateV2","label":"proposalConfigs","offset":0,"slot":"14","type":"t_mapping(t_uint256,t_struct(ProposalConfig)5528_storage)"},{"astId":5536,"contract":"contracts/legacy/GovernorBravoDelegateV2.sol:GovernorBravoDelegateV2","label":"proposalTimelocks","offset":0,"slot":"15","type":"t_mapping(t_uint256,t_contract(TimelockInterface)2007)"}],"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)2007":{"encoding":"inplace","label":"contract TimelockInterface","numberOfBytes":"20"},"t_contract(XvsVaultInterface)2017":{"encoding":"inplace","label":"contract XvsVaultInterface","numberOfBytes":"20"},"t_mapping(t_address,t_struct(Receipt)5501_storage)":{"encoding":"mapping","key":"t_address","label":"mapping(address => struct GovernorBravoDelegateStorageV1.Receipt)","numberOfBytes":"32","value":"t_struct(Receipt)5501_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_contract(TimelockInterface)2007)":{"encoding":"mapping","key":"t_uint256","label":"mapping(uint256 => contract TimelockInterface)","numberOfBytes":"32","value":"t_contract(TimelockInterface)2007"},"t_mapping(t_uint256,t_struct(Proposal)5494_storage)":{"encoding":"mapping","key":"t_uint256","label":"mapping(uint256 => struct GovernorBravoDelegateStorageV1.Proposal)","numberOfBytes":"32","value":"t_struct(Proposal)5494_storage"},"t_mapping(t_uint256,t_struct(ProposalConfig)5528_storage)":{"encoding":"mapping","key":"t_uint256","label":"mapping(uint256 => struct GovernorBravoDelegateStorageV2.ProposalConfig)","numberOfBytes":"32","value":"t_struct(ProposalConfig)5528_storage"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_struct(Proposal)5494_storage":{"encoding":"inplace","label":"struct GovernorBravoDelegateStorageV1.Proposal","members":[{"astId":5457,"contract":"contracts/legacy/GovernorBravoDelegateV2.sol:GovernorBravoDelegateV2","label":"id","offset":0,"slot":"0","type":"t_uint256"},{"astId":5459,"contract":"contracts/legacy/GovernorBravoDelegateV2.sol:GovernorBravoDelegateV2","label":"proposer","offset":0,"slot":"1","type":"t_address"},{"astId":5461,"contract":"contracts/legacy/GovernorBravoDelegateV2.sol:GovernorBravoDelegateV2","label":"eta","offset":0,"slot":"2","type":"t_uint256"},{"astId":5464,"contract":"contracts/legacy/GovernorBravoDelegateV2.sol:GovernorBravoDelegateV2","label":"targets","offset":0,"slot":"3","type":"t_array(t_address)dyn_storage"},{"astId":5467,"contract":"contracts/legacy/GovernorBravoDelegateV2.sol:GovernorBravoDelegateV2","label":"values","offset":0,"slot":"4","type":"t_array(t_uint256)dyn_storage"},{"astId":5470,"contract":"contracts/legacy/GovernorBravoDelegateV2.sol:GovernorBravoDelegateV2","label":"signatures","offset":0,"slot":"5","type":"t_array(t_string_storage)dyn_storage"},{"astId":5473,"contract":"contracts/legacy/GovernorBravoDelegateV2.sol:GovernorBravoDelegateV2","label":"calldatas","offset":0,"slot":"6","type":"t_array(t_bytes_storage)dyn_storage"},{"astId":5475,"contract":"contracts/legacy/GovernorBravoDelegateV2.sol:GovernorBravoDelegateV2","label":"startBlock","offset":0,"slot":"7","type":"t_uint256"},{"astId":5477,"contract":"contracts/legacy/GovernorBravoDelegateV2.sol:GovernorBravoDelegateV2","label":"endBlock","offset":0,"slot":"8","type":"t_uint256"},{"astId":5479,"contract":"contracts/legacy/GovernorBravoDelegateV2.sol:GovernorBravoDelegateV2","label":"forVotes","offset":0,"slot":"9","type":"t_uint256"},{"astId":5481,"contract":"contracts/legacy/GovernorBravoDelegateV2.sol:GovernorBravoDelegateV2","label":"againstVotes","offset":0,"slot":"10","type":"t_uint256"},{"astId":5483,"contract":"contracts/legacy/GovernorBravoDelegateV2.sol:GovernorBravoDelegateV2","label":"abstainVotes","offset":0,"slot":"11","type":"t_uint256"},{"astId":5485,"contract":"contracts/legacy/GovernorBravoDelegateV2.sol:GovernorBravoDelegateV2","label":"canceled","offset":0,"slot":"12","type":"t_bool"},{"astId":5487,"contract":"contracts/legacy/GovernorBravoDelegateV2.sol:GovernorBravoDelegateV2","label":"executed","offset":1,"slot":"12","type":"t_bool"},{"astId":5491,"contract":"contracts/legacy/GovernorBravoDelegateV2.sol:GovernorBravoDelegateV2","label":"receipts","offset":0,"slot":"13","type":"t_mapping(t_address,t_struct(Receipt)5501_storage)"},{"astId":5493,"contract":"contracts/legacy/GovernorBravoDelegateV2.sol:GovernorBravoDelegateV2","label":"proposalType","offset":0,"slot":"14","type":"t_uint8"}],"numberOfBytes":"480"},"t_struct(ProposalConfig)5528_storage":{"encoding":"inplace","label":"struct GovernorBravoDelegateStorageV2.ProposalConfig","members":[{"astId":5523,"contract":"contracts/legacy/GovernorBravoDelegateV2.sol:GovernorBravoDelegateV2","label":"votingDelay","offset":0,"slot":"0","type":"t_uint256"},{"astId":5525,"contract":"contracts/legacy/GovernorBravoDelegateV2.sol:GovernorBravoDelegateV2","label":"votingPeriod","offset":0,"slot":"1","type":"t_uint256"},{"astId":5527,"contract":"contracts/legacy/GovernorBravoDelegateV2.sol:GovernorBravoDelegateV2","label":"proposalThreshold","offset":0,"slot":"2","type":"t_uint256"}],"numberOfBytes":"96"},"t_struct(Receipt)5501_storage":{"encoding":"inplace","label":"struct GovernorBravoDelegateStorageV1.Receipt","members":[{"astId":5496,"contract":"contracts/legacy/GovernorBravoDelegateV2.sol:GovernorBravoDelegateV2","label":"hasVoted","offset":0,"slot":"0","type":"t_bool"},{"astId":5498,"contract":"contracts/legacy/GovernorBravoDelegateV2.sol:GovernorBravoDelegateV2","label":"support","offset":1,"slot":"0","type":"t_uint8"},{"astId":5500,"contract":"contracts/legacy/GovernorBravoDelegateV2.sol:GovernorBravoDelegateV2","label":"votes","offset":2,"slot":"0","type":"t_uint96"}],"numberOfBytes":"32"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"},"t_uint96":{"encoding":"inplace","label":"uint96","numberOfBytes":"12"}}},"userdoc":{"methods":{"_acceptAdmin()":{"notice":"Accepts transfer of admin rights. msg.sender must be pendingAdmin"},"_initiate(address)":{"notice":"Initiate the GovernorBravo contract"},"_setGuardian(address)":{"notice":"Sets the new governance guardian"},"_setPendingAdmin(address)":{"notice":"Begins transfer of admin rights. The newPendingAdmin must call `_acceptAdmin` to finalize the transfer."},"_setProposalMaxOperations(uint256)":{"notice":"Set max proposal operations"},"cancel(uint256)":{"notice":"Cancels a proposal only if sender is the proposer, or proposer delegates dropped below proposal threshold"},"castVote(uint256,uint8)":{"notice":"Cast a vote for a proposal"},"castVoteBySig(uint256,uint8,uint8,bytes32,bytes32)":{"notice":"Cast a vote for a proposal by signature"},"castVoteWithReason(uint256,uint8,string)":{"notice":"Cast a vote for a proposal with a reason"},"execute(uint256)":{"notice":"Executes a queued proposal if eta has passed"},"getActions(uint256)":{"notice":"Gets actions of a proposal"},"getReceipt(uint256,address)":{"notice":"Gets the receipt for a voter on a given proposal"},"initialize(address,(uint256,uint256,uint256)[],address[],address)":{"notice":"Used to initialize the contract during delegator contructor"},"propose(address[],uint256[],string[],bytes[],string,uint8)":{"notice":"Function used to propose a new proposal. Sender must have delegates above the proposal threshold. targets, values, signatures, and calldatas must be of equal length"},"queue(uint256)":{"notice":"Queues a proposal of state succeeded"},"state(uint256)":{"notice":"Gets the state of a proposal"}}}}},"contracts/legacy/GovernorBravoInterfaces.sol":{"GovernorBravoDelegateStorageV1":{"abi":[{"constant":true,"inputs":[],"name":"admin","outputs":[{"internalType":"address","name":"","type":"address"}],"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":[],"name":"implementation","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"initialProposalId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"pendingAdmin","outputs":[{"internalType":"address","name":"","type":"address"}],"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":"view","type":"function"},{"constant":true,"inputs":[],"name":"proposalThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","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":"uint256","name":"abstainVotes","type":"uint256"},{"internalType":"bool","name":"canceled","type":"bool"},{"internalType":"bool","name":"executed","type":"bool"}],"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":"view","type":"function"},{"constant":true,"inputs":[],"name":"votingPeriod","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"xvsVault","outputs":[{"internalType":"contract XvsVaultInterface","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}],"devdoc":{"details":"This contract is included for archival and testing purposes as the Proposal struct has a different shape than the latest implementation.","methods":{},"title":"GovernorBravoDelegateStorageV1"},"evm":{"bytecode":{"linkReferences":{},"object":"608060405234801561001057600080fd5b50610484806100206000396000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c80635c60da1b1161008c578063d33219b411610066578063d33219b41461019b578063da35c664146101a3578063f851a440146101ab578063fc4eee42146101b3576100ea565b80635c60da1b146101835780637bdbe4d01461018b578063b58131b014610193576100ea565b80631b9ce575116100c85780631b9ce57514610149578063267822471461015e5780633932abb114610173578063452a93201461017b576100ea565b8063013cf08b146100ef57806302a251a31461012157806317977c6114610136575b600080fd5b6101026100fd3660046102f0565b6101bb565b6040516101189a99989796959493929190610362565b60405180910390f35b61012961021e565b6040516101189190610354565b6101296101443660046102ca565b610224565b610151610236565b6040516101189190610346565b610166610245565b6040516101189190610338565b610129610254565b61016661025a565b610166610269565b610129610278565b61012961027e565b610151610284565b610129610293565b610166610299565b6101296102a8565b600a60208190526000918252604090912080546001820154600283015460078401546008850154600986015496860154600b870154600c9097015495976001600160a01b0390951696939592949193919290919060ff808216916101009004168a565b60045481565b600b6020526000908152604090205481565b6009546001600160a01b031681565b6001546001600160a01b031681565b60035481565b600d546001600160a01b031681565b6002546001600160a01b031681565b600c5481565b60055481565b6008546001600160a01b031681565b60075481565b6000546001600160a01b031681565b60065481565b80356102b981610421565b92915050565b80356102b981610438565b6000602082840312156102dc57600080fd5b60006102e884846102ae565b949350505050565b60006020828403121561030257600080fd5b60006102e884846102bf565b610317816103f7565b82525050565b61031781610402565b61031781610416565b61031781610413565b602081016102b9828461030e565b602081016102b98284610326565b602081016102b9828461032f565b6101408101610371828d61032f565b61037e602083018c61030e565b61038b604083018b61032f565b610398606083018a61032f565b6103a5608083018961032f565b6103b260a083018861032f565b6103bf60c083018761032f565b6103cc60e083018661032f565b6103da61010083018561031d565b6103e861012083018461031d565b9b9a5050505050505050505050565b60006102b982610407565b151590565b6001600160a01b031690565b90565b60006102b9826103f7565b61042a816103f7565b811461043557600080fd5b50565b61042a8161041356fea365627a7a723158200886ff91bd15082b1f66c9049a8fad05019bb72f42c822a727a403beafae5d496c6578706572696d656e74616cf564736f6c63430005100040","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x484 DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xEA JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x5C60DA1B GT PUSH2 0x8C JUMPI DUP1 PUSH4 0xD33219B4 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0xD33219B4 EQ PUSH2 0x19B JUMPI DUP1 PUSH4 0xDA35C664 EQ PUSH2 0x1A3 JUMPI DUP1 PUSH4 0xF851A440 EQ PUSH2 0x1AB JUMPI DUP1 PUSH4 0xFC4EEE42 EQ PUSH2 0x1B3 JUMPI PUSH2 0xEA JUMP JUMPDEST DUP1 PUSH4 0x5C60DA1B EQ PUSH2 0x183 JUMPI DUP1 PUSH4 0x7BDBE4D0 EQ PUSH2 0x18B JUMPI DUP1 PUSH4 0xB58131B0 EQ PUSH2 0x193 JUMPI PUSH2 0xEA JUMP JUMPDEST DUP1 PUSH4 0x1B9CE575 GT PUSH2 0xC8 JUMPI DUP1 PUSH4 0x1B9CE575 EQ PUSH2 0x149 JUMPI DUP1 PUSH4 0x26782247 EQ PUSH2 0x15E JUMPI DUP1 PUSH4 0x3932ABB1 EQ PUSH2 0x173 JUMPI DUP1 PUSH4 0x452A9320 EQ PUSH2 0x17B JUMPI PUSH2 0xEA JUMP JUMPDEST DUP1 PUSH4 0x13CF08B EQ PUSH2 0xEF JUMPI DUP1 PUSH4 0x2A251A3 EQ PUSH2 0x121 JUMPI DUP1 PUSH4 0x17977C61 EQ PUSH2 0x136 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x102 PUSH2 0xFD CALLDATASIZE PUSH1 0x4 PUSH2 0x2F0 JUMP JUMPDEST PUSH2 0x1BB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x118 SWAP11 SWAP10 SWAP9 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x362 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x129 PUSH2 0x21E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x118 SWAP2 SWAP1 PUSH2 0x354 JUMP JUMPDEST PUSH2 0x129 PUSH2 0x144 CALLDATASIZE PUSH1 0x4 PUSH2 0x2CA JUMP JUMPDEST PUSH2 0x224 JUMP JUMPDEST PUSH2 0x151 PUSH2 0x236 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x118 SWAP2 SWAP1 PUSH2 0x346 JUMP JUMPDEST PUSH2 0x166 PUSH2 0x245 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x118 SWAP2 SWAP1 PUSH2 0x338 JUMP JUMPDEST PUSH2 0x129 PUSH2 0x254 JUMP JUMPDEST PUSH2 0x166 PUSH2 0x25A JUMP JUMPDEST PUSH2 0x166 PUSH2 0x269 JUMP JUMPDEST PUSH2 0x129 PUSH2 0x278 JUMP JUMPDEST PUSH2 0x129 PUSH2 0x27E JUMP JUMPDEST PUSH2 0x151 PUSH2 0x284 JUMP JUMPDEST PUSH2 0x129 PUSH2 0x293 JUMP JUMPDEST PUSH2 0x166 PUSH2 0x299 JUMP JUMPDEST PUSH2 0x129 PUSH2 0x2A8 JUMP JUMPDEST PUSH1 0xA PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x40 SWAP1 SWAP2 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 SWAP7 DUP7 ADD SLOAD PUSH1 0xB DUP8 ADD SLOAD PUSH1 0xC SWAP1 SWAP8 ADD SLOAD SWAP6 SWAP8 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP6 AND SWAP7 SWAP4 SWAP6 SWAP3 SWAP5 SWAP2 SWAP4 SWAP2 SWAP3 SWAP1 SWAP2 SWAP1 PUSH1 0xFF DUP1 DUP3 AND SWAP2 PUSH2 0x100 SWAP1 DIV AND DUP11 JUMP JUMPDEST PUSH1 0x4 SLOAD DUP2 JUMP JUMPDEST PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH1 0xD 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 DUP2 JUMP JUMPDEST PUSH1 0xC SLOAD DUP2 JUMP JUMPDEST PUSH1 0x5 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x7 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x6 SLOAD DUP2 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x2B9 DUP2 PUSH2 0x421 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x2B9 DUP2 PUSH2 0x438 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2DC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2E8 DUP5 DUP5 PUSH2 0x2AE JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x302 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2E8 DUP5 DUP5 PUSH2 0x2BF JUMP JUMPDEST PUSH2 0x317 DUP2 PUSH2 0x3F7 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x317 DUP2 PUSH2 0x402 JUMP JUMPDEST PUSH2 0x317 DUP2 PUSH2 0x416 JUMP JUMPDEST PUSH2 0x317 DUP2 PUSH2 0x413 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x2B9 DUP3 DUP5 PUSH2 0x30E JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x2B9 DUP3 DUP5 PUSH2 0x326 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x2B9 DUP3 DUP5 PUSH2 0x32F JUMP JUMPDEST PUSH2 0x140 DUP2 ADD PUSH2 0x371 DUP3 DUP14 PUSH2 0x32F JUMP JUMPDEST PUSH2 0x37E PUSH1 0x20 DUP4 ADD DUP13 PUSH2 0x30E JUMP JUMPDEST PUSH2 0x38B PUSH1 0x40 DUP4 ADD DUP12 PUSH2 0x32F JUMP JUMPDEST PUSH2 0x398 PUSH1 0x60 DUP4 ADD DUP11 PUSH2 0x32F JUMP JUMPDEST PUSH2 0x3A5 PUSH1 0x80 DUP4 ADD DUP10 PUSH2 0x32F JUMP JUMPDEST PUSH2 0x3B2 PUSH1 0xA0 DUP4 ADD DUP9 PUSH2 0x32F JUMP JUMPDEST PUSH2 0x3BF PUSH1 0xC0 DUP4 ADD DUP8 PUSH2 0x32F JUMP JUMPDEST PUSH2 0x3CC PUSH1 0xE0 DUP4 ADD DUP7 PUSH2 0x32F JUMP JUMPDEST PUSH2 0x3DA PUSH2 0x100 DUP4 ADD DUP6 PUSH2 0x31D JUMP JUMPDEST PUSH2 0x3E8 PUSH2 0x120 DUP4 ADD DUP5 PUSH2 0x31D JUMP JUMPDEST SWAP12 SWAP11 POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2B9 DUP3 PUSH2 0x407 JUMP JUMPDEST ISZERO ISZERO SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2B9 DUP3 PUSH2 0x3F7 JUMP JUMPDEST PUSH2 0x42A DUP2 PUSH2 0x3F7 JUMP JUMPDEST DUP2 EQ PUSH2 0x435 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x42A DUP2 PUSH2 0x413 JUMP INVALID LOG3 PUSH6 0x627A7A723158 KECCAK256 ADDMOD DUP7 SELFDESTRUCT SWAP2 0xBD ISZERO ADDMOD 0x2B 0x1F PUSH7 0xC9049A8FAD0501 SWAP12 0xB7 0x2F TIMESTAMP 0xC8 0x22 0xA7 0x27 LOG4 SUB 0xBE 0xAF 0xAE 0x5D 0x49 PUSH13 0x6578706572696D656E74616CF5 PUSH5 0x736F6C6343 STOP SDIV LT STOP BLOCKHASH ","sourceMap":"3423:3418:7:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3423:3418:7;;;;;;;"},"deployedBytecode":{"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106100ea5760003560e01c80635c60da1b1161008c578063d33219b411610066578063d33219b41461019b578063da35c664146101a3578063f851a440146101ab578063fc4eee42146101b3576100ea565b80635c60da1b146101835780637bdbe4d01461018b578063b58131b014610193576100ea565b80631b9ce575116100c85780631b9ce57514610149578063267822471461015e5780633932abb114610173578063452a93201461017b576100ea565b8063013cf08b146100ef57806302a251a31461012157806317977c6114610136575b600080fd5b6101026100fd3660046102f0565b6101bb565b6040516101189a99989796959493929190610362565b60405180910390f35b61012961021e565b6040516101189190610354565b6101296101443660046102ca565b610224565b610151610236565b6040516101189190610346565b610166610245565b6040516101189190610338565b610129610254565b61016661025a565b610166610269565b610129610278565b61012961027e565b610151610284565b610129610293565b610166610299565b6101296102a8565b600a60208190526000918252604090912080546001820154600283015460078401546008850154600986015496860154600b870154600c9097015495976001600160a01b0390951696939592949193919290919060ff808216916101009004168a565b60045481565b600b6020526000908152604090205481565b6009546001600160a01b031681565b6001546001600160a01b031681565b60035481565b600d546001600160a01b031681565b6002546001600160a01b031681565b600c5481565b60055481565b6008546001600160a01b031681565b60075481565b6000546001600160a01b031681565b60065481565b80356102b981610421565b92915050565b80356102b981610438565b6000602082840312156102dc57600080fd5b60006102e884846102ae565b949350505050565b60006020828403121561030257600080fd5b60006102e884846102bf565b610317816103f7565b82525050565b61031781610402565b61031781610416565b61031781610413565b602081016102b9828461030e565b602081016102b98284610326565b602081016102b9828461032f565b6101408101610371828d61032f565b61037e602083018c61030e565b61038b604083018b61032f565b610398606083018a61032f565b6103a5608083018961032f565b6103b260a083018861032f565b6103bf60c083018761032f565b6103cc60e083018661032f565b6103da61010083018561031d565b6103e861012083018461031d565b9b9a5050505050505050505050565b60006102b982610407565b151590565b6001600160a01b031690565b90565b60006102b9826103f7565b61042a816103f7565b811461043557600080fd5b50565b61042a8161041356fea365627a7a723158200886ff91bd15082b1f66c9049a8fad05019bb72f42c822a727a403beafae5d496c6578706572696d656e74616cf564736f6c63430005100040","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xEA JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x5C60DA1B GT PUSH2 0x8C JUMPI DUP1 PUSH4 0xD33219B4 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0xD33219B4 EQ PUSH2 0x19B JUMPI DUP1 PUSH4 0xDA35C664 EQ PUSH2 0x1A3 JUMPI DUP1 PUSH4 0xF851A440 EQ PUSH2 0x1AB JUMPI DUP1 PUSH4 0xFC4EEE42 EQ PUSH2 0x1B3 JUMPI PUSH2 0xEA JUMP JUMPDEST DUP1 PUSH4 0x5C60DA1B EQ PUSH2 0x183 JUMPI DUP1 PUSH4 0x7BDBE4D0 EQ PUSH2 0x18B JUMPI DUP1 PUSH4 0xB58131B0 EQ PUSH2 0x193 JUMPI PUSH2 0xEA JUMP JUMPDEST DUP1 PUSH4 0x1B9CE575 GT PUSH2 0xC8 JUMPI DUP1 PUSH4 0x1B9CE575 EQ PUSH2 0x149 JUMPI DUP1 PUSH4 0x26782247 EQ PUSH2 0x15E JUMPI DUP1 PUSH4 0x3932ABB1 EQ PUSH2 0x173 JUMPI DUP1 PUSH4 0x452A9320 EQ PUSH2 0x17B JUMPI PUSH2 0xEA JUMP JUMPDEST DUP1 PUSH4 0x13CF08B EQ PUSH2 0xEF JUMPI DUP1 PUSH4 0x2A251A3 EQ PUSH2 0x121 JUMPI DUP1 PUSH4 0x17977C61 EQ PUSH2 0x136 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x102 PUSH2 0xFD CALLDATASIZE PUSH1 0x4 PUSH2 0x2F0 JUMP JUMPDEST PUSH2 0x1BB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x118 SWAP11 SWAP10 SWAP9 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x362 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x129 PUSH2 0x21E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x118 SWAP2 SWAP1 PUSH2 0x354 JUMP JUMPDEST PUSH2 0x129 PUSH2 0x144 CALLDATASIZE PUSH1 0x4 PUSH2 0x2CA JUMP JUMPDEST PUSH2 0x224 JUMP JUMPDEST PUSH2 0x151 PUSH2 0x236 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x118 SWAP2 SWAP1 PUSH2 0x346 JUMP JUMPDEST PUSH2 0x166 PUSH2 0x245 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x118 SWAP2 SWAP1 PUSH2 0x338 JUMP JUMPDEST PUSH2 0x129 PUSH2 0x254 JUMP JUMPDEST PUSH2 0x166 PUSH2 0x25A JUMP JUMPDEST PUSH2 0x166 PUSH2 0x269 JUMP JUMPDEST PUSH2 0x129 PUSH2 0x278 JUMP JUMPDEST PUSH2 0x129 PUSH2 0x27E JUMP JUMPDEST PUSH2 0x151 PUSH2 0x284 JUMP JUMPDEST PUSH2 0x129 PUSH2 0x293 JUMP JUMPDEST PUSH2 0x166 PUSH2 0x299 JUMP JUMPDEST PUSH2 0x129 PUSH2 0x2A8 JUMP JUMPDEST PUSH1 0xA PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x40 SWAP1 SWAP2 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 SWAP7 DUP7 ADD SLOAD PUSH1 0xB DUP8 ADD SLOAD PUSH1 0xC SWAP1 SWAP8 ADD SLOAD SWAP6 SWAP8 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP6 AND SWAP7 SWAP4 SWAP6 SWAP3 SWAP5 SWAP2 SWAP4 SWAP2 SWAP3 SWAP1 SWAP2 SWAP1 PUSH1 0xFF DUP1 DUP3 AND SWAP2 PUSH2 0x100 SWAP1 DIV AND DUP11 JUMP JUMPDEST PUSH1 0x4 SLOAD DUP2 JUMP JUMPDEST PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH1 0xD 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 DUP2 JUMP JUMPDEST PUSH1 0xC SLOAD DUP2 JUMP JUMPDEST PUSH1 0x5 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x7 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x6 SLOAD DUP2 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x2B9 DUP2 PUSH2 0x421 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x2B9 DUP2 PUSH2 0x438 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2DC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2E8 DUP5 DUP5 PUSH2 0x2AE JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x302 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2E8 DUP5 DUP5 PUSH2 0x2BF JUMP JUMPDEST PUSH2 0x317 DUP2 PUSH2 0x3F7 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x317 DUP2 PUSH2 0x402 JUMP JUMPDEST PUSH2 0x317 DUP2 PUSH2 0x416 JUMP JUMPDEST PUSH2 0x317 DUP2 PUSH2 0x413 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x2B9 DUP3 DUP5 PUSH2 0x30E JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x2B9 DUP3 DUP5 PUSH2 0x326 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x2B9 DUP3 DUP5 PUSH2 0x32F JUMP JUMPDEST PUSH2 0x140 DUP2 ADD PUSH2 0x371 DUP3 DUP14 PUSH2 0x32F JUMP JUMPDEST PUSH2 0x37E PUSH1 0x20 DUP4 ADD DUP13 PUSH2 0x30E JUMP JUMPDEST PUSH2 0x38B PUSH1 0x40 DUP4 ADD DUP12 PUSH2 0x32F JUMP JUMPDEST PUSH2 0x398 PUSH1 0x60 DUP4 ADD DUP11 PUSH2 0x32F JUMP JUMPDEST PUSH2 0x3A5 PUSH1 0x80 DUP4 ADD DUP10 PUSH2 0x32F JUMP JUMPDEST PUSH2 0x3B2 PUSH1 0xA0 DUP4 ADD DUP9 PUSH2 0x32F JUMP JUMPDEST PUSH2 0x3BF PUSH1 0xC0 DUP4 ADD DUP8 PUSH2 0x32F JUMP JUMPDEST PUSH2 0x3CC PUSH1 0xE0 DUP4 ADD DUP7 PUSH2 0x32F JUMP JUMPDEST PUSH2 0x3DA PUSH2 0x100 DUP4 ADD DUP6 PUSH2 0x31D JUMP JUMPDEST PUSH2 0x3E8 PUSH2 0x120 DUP4 ADD DUP5 PUSH2 0x31D JUMP JUMPDEST SWAP12 SWAP11 POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2B9 DUP3 PUSH2 0x407 JUMP JUMPDEST ISZERO ISZERO SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2B9 DUP3 PUSH2 0x3F7 JUMP JUMPDEST PUSH2 0x42A DUP2 PUSH2 0x3F7 JUMP JUMPDEST DUP2 EQ PUSH2 0x435 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x42A DUP2 PUSH2 0x413 JUMP INVALID LOG3 PUSH6 0x627A7A723158 KECCAK256 ADDMOD DUP7 SELFDESTRUCT SWAP2 0xBD ISZERO ADDMOD 0x2B 0x1F PUSH7 0xC9049A8FAD0501 SWAP12 0xB7 0x2F TIMESTAMP 0xC8 0x22 0xA7 0x27 LOG4 SUB 0xBE 0xAF 0xAE 0x5D 0x49 PUSH13 0x6578706572696D656E74616CF5 PUSH5 0x736F6C6343 STOP SDIV LT STOP BLOCKHASH ","sourceMap":"3423:3418:7:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3423:3418:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4306:42;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;3713:24;;;:::i;:::-;;;;;;;;4409:49;;;;;;;;;:::i;4199:33::-;;;:::i;:::-;;;;;;;;3119:27;;;:::i;:::-;;;;;;;;3608:23;;;:::i;6815:::-;;;:::i;3195:29::-;;;:::i;6712:33::-;;;:::i;3842:29::-;;;:::i;4101:33::-;;;:::i;4010:25::-;;;:::i;3036:20::-;;;:::i;3928:29::-;;;:::i;4306:42::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4306:42:7;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3713:24::-;;;;:::o;4409:49::-;;;;;;;;;;;;;:::o;4199:33::-;;;-1:-1:-1;;;;;4199:33:7;;:::o;3119:27::-;;;-1:-1:-1;;;;;3119:27:7;;:::o;3608:23::-;;;;:::o;6815:::-;;;-1:-1:-1;;;;;6815:23:7;;:::o;3195:29::-;;;-1:-1:-1;;;;;3195:29:7;;:::o;6712:33::-;;;;:::o;3842:29::-;;;;:::o;4101:33::-;;;-1:-1:-1;;;;;4101:33:7;;:::o;4010:25::-;;;;:::o;3036:20::-;;;-1:-1:-1;;;;;3036:20:7;;:::o;3928:29::-;;;;:::o;5:130:-1:-;72:20;;97:33;72:20;97:33;;;57:78;;;;;142:130;209:20;;234:33;209:20;234:33;;279:241;;383:2;371:9;362:7;358:23;354:32;351:2;;;399:1;396;389:12;351:2;434:1;451:53;496:7;476:9;451:53;;;441:63;345:175;-1:-1;;;;345:175;527:241;;631:2;619:9;610:7;606:23;602:32;599:2;;;647:1;644;637:12;599:2;682:1;699:53;744:7;724:9;699:53;;775:113;858:24;876:5;858:24;;;853:3;846:37;840:48;;;895:104;972:21;987:5;972:21;;1006:178;1115:63;1172:5;1115:63;;1376:113;1459:24;1477:5;1459:24;;1496:213;1614:2;1599:18;;1628:71;1603:9;1672:6;1628:71;;1716:265;1860:2;1845:18;;1874:97;1849:9;1944:6;1874:97;;2260:213;2378:2;2363:18;;2392:71;2367:9;2436:6;2392:71;;2480:1195;2838:3;2823:19;;2853:71;2827:9;2897:6;2853:71;;;2935:72;3003:2;2992:9;2988:18;2979:6;2935:72;;;3018;3086:2;3075:9;3071:18;3062:6;3018:72;;;3101;3169:2;3158:9;3154:18;3145:6;3101:72;;;3184:73;3252:3;3241:9;3237:19;3228:6;3184:73;;;3268;3336:3;3325:9;3321:19;3312:6;3268:73;;;3352;3420:3;3409:9;3405:19;3396:6;3352:73;;;3436;3504:3;3493:9;3489:19;3480:6;3436:73;;;3520:67;3582:3;3571:9;3567:19;3558:6;3520:67;;;3598;3660:3;3649:9;3645:19;3636:6;3598:67;;;2809:866;;;;;;;;;;;;;;3682:91;;3744:24;3762:5;3744:24;;3780:85;3846:13;3839:21;;3822:43;3872:121;-1:-1;;;;;3934:54;;3917:76;4000:72;4062:5;4045:27;4079:173;;4184:63;4241:5;4184:63;;4721:117;4790:24;4808:5;4790:24;;;4783:5;4780:35;4770:2;;4829:1;4826;4819:12;4770:2;4764:74;;4845:117;4914:24;4932:5;4914:24;"},"gasEstimates":{"creation":{"codeDepositCost":"231200","executionCost":"275","totalCost":"231475"},"external":{"admin()":"infinite","guardian()":"infinite","implementation()":"infinite","initialProposalId()":"1187","latestProposalIds(address)":"infinite","pendingAdmin()":"infinite","proposalCount()":"1143","proposalMaxOperations()":"1144","proposalThreshold()":"1166","proposals(uint256)":"infinite","timelock()":"infinite","votingDelay()":"1166","votingPeriod()":"1145","xvsVault()":"infinite"}},"methodIdentifiers":{"admin()":"f851a440","guardian()":"452a9320","implementation()":"5c60da1b","initialProposalId()":"fc4eee42","latestProposalIds(address)":"17977c61","pendingAdmin()":"26782247","proposalCount()":"da35c664","proposalMaxOperations()":"7bdbe4d0","proposalThreshold()":"b58131b0","proposals(uint256)":"013cf08b","timelock()":"d33219b4","votingDelay()":"3932abb1","votingPeriod()":"02a251a3","xvsVault()":"1b9ce575"}},"metadata":"{\"compiler\":{\"version\":\"0.5.16+commit.9c3226ce\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[],\"name\":\"admin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"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\":[],\"name\":\"implementation\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"initialProposalId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"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\":\"pendingAdmin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"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\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"proposalThreshold\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"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\":\"uint256\",\"name\":\"abstainVotes\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"canceled\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"executed\",\"type\":\"bool\"}],\"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\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"votingPeriod\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"xvsVault\",\"outputs\":[{\"internalType\":\"contract XvsVaultInterface\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"This contract is included for archival and testing purposes as the Proposal struct has a different shape than the latest implementation.\",\"methods\":{},\"title\":\"GovernorBravoDelegateStorageV1\"},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"contracts/legacy/GovernorBravoInterfaces.sol\":\"GovernorBravoDelegateStorageV1\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/Governance/GovernorBravoInterfaces.sol\":{\"content\":\"pragma solidity ^0.5.16;\\npragma experimental ABIEncoderV2;\\n\\n/**\\n * @title GovernorBravoEvents\\n * @author Venus\\n * @notice Set of events emitted by the GovernorBravo contracts.\\n */\\ncontract GovernorBravoEvents {\\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        uint8 proposalType\\n    );\\n\\n    /// @notice An event emitted when a vote has been cast on a proposal\\n    /// @param voter The address which casted a vote\\n    /// @param proposalId The proposal id which was voted on\\n    /// @param support Support value for the vote. 0=against, 1=for, 2=abstain\\n    /// @param votes Number of votes which were cast by the voter\\n    /// @param reason The reason given for the vote by the voter\\n    event VoteCast(address indexed voter, uint proposalId, uint8 support, uint votes, string reason);\\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    /// @notice An event emitted when the voting delay is set\\n    event VotingDelaySet(uint oldVotingDelay, uint newVotingDelay);\\n\\n    /// @notice An event emitted when the voting period is set\\n    event VotingPeriodSet(uint oldVotingPeriod, uint newVotingPeriod);\\n\\n    /// @notice Emitted when implementation is changed\\n    event NewImplementation(address oldImplementation, address newImplementation);\\n\\n    /// @notice Emitted when proposal threshold is set\\n    event ProposalThresholdSet(uint oldProposalThreshold, uint newProposalThreshold);\\n\\n    /// @notice Emitted when pendingAdmin is changed\\n    event NewPendingAdmin(address oldPendingAdmin, address newPendingAdmin);\\n\\n    /// @notice Emitted when pendingAdmin is accepted, which means admin is updated\\n    event NewAdmin(address oldAdmin, address newAdmin);\\n\\n    /// @notice Emitted when the new guardian address is set\\n    event NewGuardian(address oldGuardian, address newGuardian);\\n\\n    /// @notice Emitted when the maximum number of operations in one proposal is updated\\n    event ProposalMaxOperationsUpdated(uint oldMaxOperations, uint newMaxOperations);\\n\\n    /// @notice Emitted when the new validation params are set\\n    event SetValidationParams(\\n        uint256 oldMinVotingPeriod,\\n        uint256 newMinVotingPeriod,\\n        uint256 oldmaxVotingPeriod,\\n        uint256 newmaxVotingPeriod,\\n        uint256 oldminVotingDelay,\\n        uint256 newminVotingDelay,\\n        uint256 oldmaxVotingDelay,\\n        uint256 newmaxVotingDelay\\n    );\\n\\n    /// @notice Emitted when new Proposal configs added\\n    event SetProposalConfigs(uint256 votingPeriod, uint256 votingDelay, uint256 proposalThreshold);\\n}\\n\\n/**\\n * @title GovernorBravoDelegatorStorage\\n * @author Venus\\n * @notice Storage layout of the `GovernorBravoDelegator` contract\\n */\\ncontract GovernorBravoDelegatorStorage {\\n    /// @notice Administrator for this contract\\n    address public admin;\\n\\n    /// @notice Pending administrator for this contract\\n    address public pendingAdmin;\\n\\n    /// @notice Active brains of Governor\\n    address public implementation;\\n}\\n\\n/**\\n * @title GovernorBravoDelegateStorageV1\\n * @dev For future upgrades, do not change GovernorBravoDelegateStorageV1. Create a new\\n * contract which implements GovernorBravoDelegateStorageV1 and following the naming convention\\n * GovernorBravoDelegateStorageVX.\\n */\\ncontract GovernorBravoDelegateStorageV1 is GovernorBravoDelegatorStorage {\\n    /// @notice DEPRECATED The delay before voting on a proposal may take place, once proposed, in blocks\\n    uint public votingDelay;\\n\\n    /// @notice DEPRECATED The duration of voting on a proposal, in blocks\\n    uint public votingPeriod;\\n\\n    /// @notice DEPRECATED The number of votes required in order for a voter to become a proposer\\n    uint public proposalThreshold;\\n\\n    /// @notice Initial proposal id set at become\\n    uint public initialProposalId;\\n\\n    /// @notice The total number of proposals\\n    uint public proposalCount;\\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    XvsVaultInterface public xvsVault;\\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    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 Current number of votes for abstaining for this proposal\\n        uint abstainVotes;\\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        /// @notice The type of the proposal\\n        uint8 proposalType;\\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 or abstains\\n        uint8 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 maximum number of actions that can be included in a proposal\\n    uint public proposalMaxOperations;\\n\\n    /// @notice A privileged role that can cancel any proposal\\n    address public guardian;\\n}\\n\\n/**\\n * @title GovernorBravoDelegateStorageV2\\n * @dev For future upgrades, do not change GovernorBravoDelegateStorageV2. Create a new\\n * contract which implements GovernorBravoDelegateStorageV2 and following the naming convention\\n * GovernorBravoDelegateStorageVX.\\n */\\ncontract GovernorBravoDelegateStorageV2 is GovernorBravoDelegateStorageV1 {\\n    enum ProposalType {\\n        NORMAL,\\n        FASTTRACK,\\n        CRITICAL\\n    }\\n\\n    struct ProposalConfig {\\n        /// @notice The delay before voting on a proposal may take place, once proposed, in blocks\\n        uint256 votingDelay;\\n        /// @notice The duration of voting on a proposal, in blocks\\n        uint256 votingPeriod;\\n        /// @notice The number of votes required in order for a voter to become a proposer\\n        uint256 proposalThreshold;\\n    }\\n\\n    /// @notice mapping containing configuration for each proposal type\\n    mapping(uint => ProposalConfig) public proposalConfigs;\\n\\n    /// @notice mapping containing Timelock addresses for each proposal type\\n    mapping(uint => TimelockInterface) public proposalTimelocks;\\n}\\n\\n/**\\n * @title GovernorBravoDelegateStorageV3\\n * @dev For future upgrades, do not change GovernorBravoDelegateStorageV3. Create a new\\n * contract which implements GovernorBravoDelegateStorageV3 and following the naming convention\\n * GovernorBravoDelegateStorageVX.\\n */\\ncontract GovernorBravoDelegateStorageV3 is GovernorBravoDelegateStorageV2 {\\n    struct ValidationParams {\\n        uint256 minVotingPeriod;\\n        uint256 maxVotingPeriod;\\n        uint256 minVotingDelay;\\n        uint256 maxVotingDelay;\\n    }\\n    /// @notice Stores the current minimum and maximum values of voting delay and voting period\\n    ValidationParams public validationParams;\\n}\\n\\n/**\\n * @title TimelockInterface\\n * @author Venus\\n * @notice Interface implemented by the Timelock contract.\\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 XvsVaultInterface {\\n    function getPriorVotes(address account, uint blockNumber) external view returns (uint96);\\n}\\n\\ninterface GovernorAlphaInterface {\\n    /// @notice The total number of proposals\\n    function proposalCount() external returns (uint);\\n}\\n\",\"keccak256\":\"0x62c89309d4351dbeb5516465211fab0b566d83d60dc0148377deaad1f1929b85\"},\"contracts/legacy/GovernorBravoInterfaces.sol\":{\"content\":\"pragma solidity ^0.5.16;\\npragma experimental ABIEncoderV2;\\n\\nimport { XvsVaultInterface, TimelockInterface, GovernorAlphaInterface } from \\\"../Governance/GovernorBravoInterfaces.sol\\\";\\n\\n/**\\n * @title GovernorBravoEvents\\n * @author Venus\\n * @notice Set of events emitted by the first GovernorBravo implementation contract.\\n * @dev This contract is included for archival and testing purposes as the ProposalCreated event has a different signature than the latest implementation.\\n */\\ncontract GovernorBravoEventsV1 {\\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    /// @param voter The address which casted a vote\\n    /// @param proposalId The proposal id which was voted on\\n    /// @param support Support value for the vote. 0=against, 1=for, 2=abstain\\n    /// @param votes Number of votes which were cast by the voter\\n    /// @param reason The reason given for the vote by the voter\\n    event VoteCast(address indexed voter, uint proposalId, uint8 support, uint votes, string reason);\\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    /// @notice An event emitted when the voting delay is set\\n    event VotingDelaySet(uint oldVotingDelay, uint newVotingDelay);\\n\\n    /// @notice An event emitted when the voting period is set\\n    event VotingPeriodSet(uint oldVotingPeriod, uint newVotingPeriod);\\n\\n    /// @notice Emitted when implementation is changed\\n    event NewImplementation(address oldImplementation, address newImplementation);\\n\\n    /// @notice Emitted when proposal threshold is set\\n    event ProposalThresholdSet(uint oldProposalThreshold, uint newProposalThreshold);\\n\\n    /// @notice Emitted when pendingAdmin is changed\\n    event NewPendingAdmin(address oldPendingAdmin, address newPendingAdmin);\\n\\n    /// @notice Emitted when pendingAdmin is accepted, which means admin is updated\\n    event NewAdmin(address oldAdmin, address newAdmin);\\n\\n    /// @notice Emitted when the new guardian address is set\\n    event NewGuardian(address oldGuardian, address newGuardian);\\n\\n    /// @notice Emitted when the maximum number of operations in one proposal is updated\\n    event ProposalMaxOperationsUpdated(uint oldMaxOperations, uint newMaxOperations);\\n}\\n\\n/**\\n * @title GovernorBravoDelegatorStorage\\n * @author Venus\\n * @notice Storage layout of the `GovernorBravoDelegator` contract\\n */\\ncontract GovernorBravoDelegatorStorage {\\n    /// @notice Administrator for this contract\\n    address public admin;\\n\\n    /// @notice Pending administrator for this contract\\n    address public pendingAdmin;\\n\\n    /// @notice Active brains of Governor\\n    address public implementation;\\n}\\n\\n/**\\n * @title GovernorBravoDelegateStorageV1\\n * @dev This contract is included for archival and testing purposes as the Proposal struct has a different shape than the latest implementation.\\n */\\ncontract GovernorBravoDelegateStorageV1 is GovernorBravoDelegatorStorage {\\n    /// @notice DEPRECATED The delay before voting on a proposal may take place, once proposed, in blocks\\n    uint public votingDelay;\\n\\n    /// @notice DEPRECATED The duration of voting on a proposal, in blocks\\n    uint public votingPeriod;\\n\\n    /// @notice DEPRECATED The number of votes required in order for a voter to become a proposer\\n    uint public proposalThreshold;\\n\\n    /// @notice Initial proposal id set at become\\n    uint public initialProposalId;\\n\\n    /// @notice The total number of proposals\\n    uint public proposalCount;\\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    XvsVaultInterface public xvsVault;\\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    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 Current number of votes for abstaining for this proposal\\n        uint abstainVotes;\\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 or abstains\\n        uint8 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 maximum number of actions that can be included in a proposal\\n    uint public proposalMaxOperations;\\n\\n    /// @notice A privileged role that can cancel any proposal\\n    address public guardian;\\n}\\n\",\"keccak256\":\"0x4f3e79420754567fb02452f7ded7a13796204e360ca1b4033009745cfda4a813\"}},\"version\":1}","storageLayout":{"storage":[{"astId":5229,"contract":"contracts/legacy/GovernorBravoInterfaces.sol:GovernorBravoDelegateStorageV1","label":"admin","offset":0,"slot":"0","type":"t_address"},{"astId":5231,"contract":"contracts/legacy/GovernorBravoInterfaces.sol:GovernorBravoDelegateStorageV1","label":"pendingAdmin","offset":0,"slot":"1","type":"t_address"},{"astId":5233,"contract":"contracts/legacy/GovernorBravoInterfaces.sol:GovernorBravoDelegateStorageV1","label":"implementation","offset":0,"slot":"2","type":"t_address"},{"astId":5238,"contract":"contracts/legacy/GovernorBravoInterfaces.sol:GovernorBravoDelegateStorageV1","label":"votingDelay","offset":0,"slot":"3","type":"t_uint256"},{"astId":5240,"contract":"contracts/legacy/GovernorBravoInterfaces.sol:GovernorBravoDelegateStorageV1","label":"votingPeriod","offset":0,"slot":"4","type":"t_uint256"},{"astId":5242,"contract":"contracts/legacy/GovernorBravoInterfaces.sol:GovernorBravoDelegateStorageV1","label":"proposalThreshold","offset":0,"slot":"5","type":"t_uint256"},{"astId":5244,"contract":"contracts/legacy/GovernorBravoInterfaces.sol:GovernorBravoDelegateStorageV1","label":"initialProposalId","offset":0,"slot":"6","type":"t_uint256"},{"astId":5246,"contract":"contracts/legacy/GovernorBravoInterfaces.sol:GovernorBravoDelegateStorageV1","label":"proposalCount","offset":0,"slot":"7","type":"t_uint256"},{"astId":5248,"contract":"contracts/legacy/GovernorBravoInterfaces.sol:GovernorBravoDelegateStorageV1","label":"timelock","offset":0,"slot":"8","type":"t_contract(TimelockInterface)2007"},{"astId":5250,"contract":"contracts/legacy/GovernorBravoInterfaces.sol:GovernorBravoDelegateStorageV1","label":"xvsVault","offset":0,"slot":"9","type":"t_contract(XvsVaultInterface)2017"},{"astId":5254,"contract":"contracts/legacy/GovernorBravoInterfaces.sol:GovernorBravoDelegateStorageV1","label":"proposals","offset":0,"slot":"10","type":"t_mapping(t_uint256,t_struct(Proposal)5295_storage)"},{"astId":5258,"contract":"contracts/legacy/GovernorBravoInterfaces.sol:GovernorBravoDelegateStorageV1","label":"latestProposalIds","offset":0,"slot":"11","type":"t_mapping(t_address,t_uint256)"},{"astId":5313,"contract":"contracts/legacy/GovernorBravoInterfaces.sol:GovernorBravoDelegateStorageV1","label":"proposalMaxOperations","offset":0,"slot":"12","type":"t_uint256"},{"astId":5315,"contract":"contracts/legacy/GovernorBravoInterfaces.sol:GovernorBravoDelegateStorageV1","label":"guardian","offset":0,"slot":"13","type":"t_address"}],"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)2007":{"encoding":"inplace","label":"contract TimelockInterface","numberOfBytes":"20"},"t_contract(XvsVaultInterface)2017":{"encoding":"inplace","label":"contract XvsVaultInterface","numberOfBytes":"20"},"t_mapping(t_address,t_struct(Receipt)5302_storage)":{"encoding":"mapping","key":"t_address","label":"mapping(address => struct GovernorBravoDelegateStorageV1.Receipt)","numberOfBytes":"32","value":"t_struct(Receipt)5302_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)5295_storage)":{"encoding":"mapping","key":"t_uint256","label":"mapping(uint256 => struct GovernorBravoDelegateStorageV1.Proposal)","numberOfBytes":"32","value":"t_struct(Proposal)5295_storage"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_struct(Proposal)5295_storage":{"encoding":"inplace","label":"struct GovernorBravoDelegateStorageV1.Proposal","members":[{"astId":5260,"contract":"contracts/legacy/GovernorBravoInterfaces.sol:GovernorBravoDelegateStorageV1","label":"id","offset":0,"slot":"0","type":"t_uint256"},{"astId":5262,"contract":"contracts/legacy/GovernorBravoInterfaces.sol:GovernorBravoDelegateStorageV1","label":"proposer","offset":0,"slot":"1","type":"t_address"},{"astId":5264,"contract":"contracts/legacy/GovernorBravoInterfaces.sol:GovernorBravoDelegateStorageV1","label":"eta","offset":0,"slot":"2","type":"t_uint256"},{"astId":5267,"contract":"contracts/legacy/GovernorBravoInterfaces.sol:GovernorBravoDelegateStorageV1","label":"targets","offset":0,"slot":"3","type":"t_array(t_address)dyn_storage"},{"astId":5270,"contract":"contracts/legacy/GovernorBravoInterfaces.sol:GovernorBravoDelegateStorageV1","label":"values","offset":0,"slot":"4","type":"t_array(t_uint256)dyn_storage"},{"astId":5273,"contract":"contracts/legacy/GovernorBravoInterfaces.sol:GovernorBravoDelegateStorageV1","label":"signatures","offset":0,"slot":"5","type":"t_array(t_string_storage)dyn_storage"},{"astId":5276,"contract":"contracts/legacy/GovernorBravoInterfaces.sol:GovernorBravoDelegateStorageV1","label":"calldatas","offset":0,"slot":"6","type":"t_array(t_bytes_storage)dyn_storage"},{"astId":5278,"contract":"contracts/legacy/GovernorBravoInterfaces.sol:GovernorBravoDelegateStorageV1","label":"startBlock","offset":0,"slot":"7","type":"t_uint256"},{"astId":5280,"contract":"contracts/legacy/GovernorBravoInterfaces.sol:GovernorBravoDelegateStorageV1","label":"endBlock","offset":0,"slot":"8","type":"t_uint256"},{"astId":5282,"contract":"contracts/legacy/GovernorBravoInterfaces.sol:GovernorBravoDelegateStorageV1","label":"forVotes","offset":0,"slot":"9","type":"t_uint256"},{"astId":5284,"contract":"contracts/legacy/GovernorBravoInterfaces.sol:GovernorBravoDelegateStorageV1","label":"againstVotes","offset":0,"slot":"10","type":"t_uint256"},{"astId":5286,"contract":"contracts/legacy/GovernorBravoInterfaces.sol:GovernorBravoDelegateStorageV1","label":"abstainVotes","offset":0,"slot":"11","type":"t_uint256"},{"astId":5288,"contract":"contracts/legacy/GovernorBravoInterfaces.sol:GovernorBravoDelegateStorageV1","label":"canceled","offset":0,"slot":"12","type":"t_bool"},{"astId":5290,"contract":"contracts/legacy/GovernorBravoInterfaces.sol:GovernorBravoDelegateStorageV1","label":"executed","offset":1,"slot":"12","type":"t_bool"},{"astId":5294,"contract":"contracts/legacy/GovernorBravoInterfaces.sol:GovernorBravoDelegateStorageV1","label":"receipts","offset":0,"slot":"13","type":"t_mapping(t_address,t_struct(Receipt)5302_storage)"}],"numberOfBytes":"448"},"t_struct(Receipt)5302_storage":{"encoding":"inplace","label":"struct GovernorBravoDelegateStorageV1.Receipt","members":[{"astId":5297,"contract":"contracts/legacy/GovernorBravoInterfaces.sol:GovernorBravoDelegateStorageV1","label":"hasVoted","offset":0,"slot":"0","type":"t_bool"},{"astId":5299,"contract":"contracts/legacy/GovernorBravoInterfaces.sol:GovernorBravoDelegateStorageV1","label":"support","offset":1,"slot":"0","type":"t_uint8"},{"astId":5301,"contract":"contracts/legacy/GovernorBravoInterfaces.sol:GovernorBravoDelegateStorageV1","label":"votes","offset":2,"slot":"0","type":"t_uint96"}],"numberOfBytes":"32"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"},"t_uint96":{"encoding":"inplace","label":"uint96","numberOfBytes":"12"}}},"userdoc":{"methods":{}}},"GovernorBravoDelegatorStorage":{"abi":[{"constant":true,"inputs":[],"name":"admin","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"implementation","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"pendingAdmin","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}],"devdoc":{"author":"Venus","methods":{},"title":"GovernorBravoDelegatorStorage"},"evm":{"bytecode":{"linkReferences":{},"object":"608060405234801561001057600080fd5b50610106806100206000396000f3fe6080604052348015600f57600080fd5b5060043610603c5760003560e01c8063267822471460415780635c60da1b14605b578063f851a440146061575b600080fd5b60476067565b6040516052919060a1565b60405180910390f35b60476076565b60476085565b6001546001600160a01b031681565b6002546001600160a01b031681565b6000546001600160a01b031681565b609b8160b3565b82525050565b6020810160ad82846094565b92915050565b60006001600160a01b03821660ad56fea365627a7a72315820c7d61916d2814d02702ced861e728021290e5335db0efdf084a32bdeb51209596c6578706572696d656e74616cf564736f6c63430005100040","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x106 DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH1 0x3C JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x26782247 EQ PUSH1 0x41 JUMPI DUP1 PUSH4 0x5C60DA1B EQ PUSH1 0x5B JUMPI DUP1 PUSH4 0xF851A440 EQ PUSH1 0x61 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x47 PUSH1 0x67 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x52 SWAP2 SWAP1 PUSH1 0xA1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x47 PUSH1 0x76 JUMP JUMPDEST PUSH1 0x47 PUSH1 0x85 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 DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x9B DUP2 PUSH1 0xB3 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH1 0xAD DUP3 DUP5 PUSH1 0x94 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0xAD JUMP INVALID LOG3 PUSH6 0x627A7A723158 KECCAK256 0xC7 0xD6 NOT AND 0xD2 DUP2 0x4D MUL PUSH17 0x2CED861E728021290E5335DB0EFDF084A3 0x2B 0xDE 0xB5 SLT MULMOD MSIZE PUSH13 0x6578706572696D656E74616CF5 PUSH5 0x736F6C6343 STOP SDIV LT STOP BLOCKHASH ","sourceMap":"2943:284:7:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2943:284:7;;;;;;;"},"deployedBytecode":{"linkReferences":{},"object":"6080604052348015600f57600080fd5b5060043610603c5760003560e01c8063267822471460415780635c60da1b14605b578063f851a440146061575b600080fd5b60476067565b6040516052919060a1565b60405180910390f35b60476076565b60476085565b6001546001600160a01b031681565b6002546001600160a01b031681565b6000546001600160a01b031681565b609b8160b3565b82525050565b6020810160ad82846094565b92915050565b60006001600160a01b03821660ad56fea365627a7a72315820c7d61916d2814d02702ced861e728021290e5335db0efdf084a32bdeb51209596c6578706572696d656e74616cf564736f6c63430005100040","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH1 0x3C JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x26782247 EQ PUSH1 0x41 JUMPI DUP1 PUSH4 0x5C60DA1B EQ PUSH1 0x5B JUMPI DUP1 PUSH4 0xF851A440 EQ PUSH1 0x61 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x47 PUSH1 0x67 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x52 SWAP2 SWAP1 PUSH1 0xA1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x47 PUSH1 0x76 JUMP JUMPDEST PUSH1 0x47 PUSH1 0x85 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 DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x9B DUP2 PUSH1 0xB3 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH1 0xAD DUP3 DUP5 PUSH1 0x94 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0xAD JUMP INVALID LOG3 PUSH6 0x627A7A723158 KECCAK256 0xC7 0xD6 NOT AND 0xD2 DUP2 0x4D MUL PUSH17 0x2CED861E728021290E5335DB0EFDF084A3 0x2B 0xDE 0xB5 SLT MULMOD MSIZE PUSH13 0x6578706572696D656E74616CF5 PUSH5 0x736F6C6343 STOP SDIV LT STOP BLOCKHASH ","sourceMap":"2943:284:7:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2943:284:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3119:27;;;:::i;:::-;;;;;;;;;;;;;;;;3195:29;;;:::i;3036:20::-;;;:::i;3119:27::-;;;-1:-1:-1;;;;;3119:27:7;;:::o;3195:29::-;;;-1:-1:-1;;;;;3195:29:7;;:::o;3036:20::-;;;-1:-1:-1;;;;;3036:20:7;;:::o;5:113:-1:-;88:24;106:5;88:24;;;83:3;76:37;70:48;;;125:213;243:2;228:18;;257:71;232:9;301:6;257:71;;;214:124;;;;;345:91;;-1:-1;;;;;505:54;;407:24;488:76"},"gasEstimates":{"creation":{"codeDepositCost":"52400","executionCost":"105","totalCost":"52505"},"external":{"admin()":"infinite","implementation()":"infinite","pendingAdmin()":"infinite"}},"methodIdentifiers":{"admin()":"f851a440","implementation()":"5c60da1b","pendingAdmin()":"26782247"}},"metadata":"{\"compiler\":{\"version\":\"0.5.16+commit.9c3226ce\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[],\"name\":\"admin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"implementation\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"pendingAdmin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Venus\",\"methods\":{},\"title\":\"GovernorBravoDelegatorStorage\"},\"userdoc\":{\"methods\":{},\"notice\":\"Storage layout of the `GovernorBravoDelegator` contract\"}},\"settings\":{\"compilationTarget\":{\"contracts/legacy/GovernorBravoInterfaces.sol\":\"GovernorBravoDelegatorStorage\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/Governance/GovernorBravoInterfaces.sol\":{\"content\":\"pragma solidity ^0.5.16;\\npragma experimental ABIEncoderV2;\\n\\n/**\\n * @title GovernorBravoEvents\\n * @author Venus\\n * @notice Set of events emitted by the GovernorBravo contracts.\\n */\\ncontract GovernorBravoEvents {\\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        uint8 proposalType\\n    );\\n\\n    /// @notice An event emitted when a vote has been cast on a proposal\\n    /// @param voter The address which casted a vote\\n    /// @param proposalId The proposal id which was voted on\\n    /// @param support Support value for the vote. 0=against, 1=for, 2=abstain\\n    /// @param votes Number of votes which were cast by the voter\\n    /// @param reason The reason given for the vote by the voter\\n    event VoteCast(address indexed voter, uint proposalId, uint8 support, uint votes, string reason);\\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    /// @notice An event emitted when the voting delay is set\\n    event VotingDelaySet(uint oldVotingDelay, uint newVotingDelay);\\n\\n    /// @notice An event emitted when the voting period is set\\n    event VotingPeriodSet(uint oldVotingPeriod, uint newVotingPeriod);\\n\\n    /// @notice Emitted when implementation is changed\\n    event NewImplementation(address oldImplementation, address newImplementation);\\n\\n    /// @notice Emitted when proposal threshold is set\\n    event ProposalThresholdSet(uint oldProposalThreshold, uint newProposalThreshold);\\n\\n    /// @notice Emitted when pendingAdmin is changed\\n    event NewPendingAdmin(address oldPendingAdmin, address newPendingAdmin);\\n\\n    /// @notice Emitted when pendingAdmin is accepted, which means admin is updated\\n    event NewAdmin(address oldAdmin, address newAdmin);\\n\\n    /// @notice Emitted when the new guardian address is set\\n    event NewGuardian(address oldGuardian, address newGuardian);\\n\\n    /// @notice Emitted when the maximum number of operations in one proposal is updated\\n    event ProposalMaxOperationsUpdated(uint oldMaxOperations, uint newMaxOperations);\\n\\n    /// @notice Emitted when the new validation params are set\\n    event SetValidationParams(\\n        uint256 oldMinVotingPeriod,\\n        uint256 newMinVotingPeriod,\\n        uint256 oldmaxVotingPeriod,\\n        uint256 newmaxVotingPeriod,\\n        uint256 oldminVotingDelay,\\n        uint256 newminVotingDelay,\\n        uint256 oldmaxVotingDelay,\\n        uint256 newmaxVotingDelay\\n    );\\n\\n    /// @notice Emitted when new Proposal configs added\\n    event SetProposalConfigs(uint256 votingPeriod, uint256 votingDelay, uint256 proposalThreshold);\\n}\\n\\n/**\\n * @title GovernorBravoDelegatorStorage\\n * @author Venus\\n * @notice Storage layout of the `GovernorBravoDelegator` contract\\n */\\ncontract GovernorBravoDelegatorStorage {\\n    /// @notice Administrator for this contract\\n    address public admin;\\n\\n    /// @notice Pending administrator for this contract\\n    address public pendingAdmin;\\n\\n    /// @notice Active brains of Governor\\n    address public implementation;\\n}\\n\\n/**\\n * @title GovernorBravoDelegateStorageV1\\n * @dev For future upgrades, do not change GovernorBravoDelegateStorageV1. Create a new\\n * contract which implements GovernorBravoDelegateStorageV1 and following the naming convention\\n * GovernorBravoDelegateStorageVX.\\n */\\ncontract GovernorBravoDelegateStorageV1 is GovernorBravoDelegatorStorage {\\n    /// @notice DEPRECATED The delay before voting on a proposal may take place, once proposed, in blocks\\n    uint public votingDelay;\\n\\n    /// @notice DEPRECATED The duration of voting on a proposal, in blocks\\n    uint public votingPeriod;\\n\\n    /// @notice DEPRECATED The number of votes required in order for a voter to become a proposer\\n    uint public proposalThreshold;\\n\\n    /// @notice Initial proposal id set at become\\n    uint public initialProposalId;\\n\\n    /// @notice The total number of proposals\\n    uint public proposalCount;\\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    XvsVaultInterface public xvsVault;\\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    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 Current number of votes for abstaining for this proposal\\n        uint abstainVotes;\\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        /// @notice The type of the proposal\\n        uint8 proposalType;\\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 or abstains\\n        uint8 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 maximum number of actions that can be included in a proposal\\n    uint public proposalMaxOperations;\\n\\n    /// @notice A privileged role that can cancel any proposal\\n    address public guardian;\\n}\\n\\n/**\\n * @title GovernorBravoDelegateStorageV2\\n * @dev For future upgrades, do not change GovernorBravoDelegateStorageV2. Create a new\\n * contract which implements GovernorBravoDelegateStorageV2 and following the naming convention\\n * GovernorBravoDelegateStorageVX.\\n */\\ncontract GovernorBravoDelegateStorageV2 is GovernorBravoDelegateStorageV1 {\\n    enum ProposalType {\\n        NORMAL,\\n        FASTTRACK,\\n        CRITICAL\\n    }\\n\\n    struct ProposalConfig {\\n        /// @notice The delay before voting on a proposal may take place, once proposed, in blocks\\n        uint256 votingDelay;\\n        /// @notice The duration of voting on a proposal, in blocks\\n        uint256 votingPeriod;\\n        /// @notice The number of votes required in order for a voter to become a proposer\\n        uint256 proposalThreshold;\\n    }\\n\\n    /// @notice mapping containing configuration for each proposal type\\n    mapping(uint => ProposalConfig) public proposalConfigs;\\n\\n    /// @notice mapping containing Timelock addresses for each proposal type\\n    mapping(uint => TimelockInterface) public proposalTimelocks;\\n}\\n\\n/**\\n * @title GovernorBravoDelegateStorageV3\\n * @dev For future upgrades, do not change GovernorBravoDelegateStorageV3. Create a new\\n * contract which implements GovernorBravoDelegateStorageV3 and following the naming convention\\n * GovernorBravoDelegateStorageVX.\\n */\\ncontract GovernorBravoDelegateStorageV3 is GovernorBravoDelegateStorageV2 {\\n    struct ValidationParams {\\n        uint256 minVotingPeriod;\\n        uint256 maxVotingPeriod;\\n        uint256 minVotingDelay;\\n        uint256 maxVotingDelay;\\n    }\\n    /// @notice Stores the current minimum and maximum values of voting delay and voting period\\n    ValidationParams public validationParams;\\n}\\n\\n/**\\n * @title TimelockInterface\\n * @author Venus\\n * @notice Interface implemented by the Timelock contract.\\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 XvsVaultInterface {\\n    function getPriorVotes(address account, uint blockNumber) external view returns (uint96);\\n}\\n\\ninterface GovernorAlphaInterface {\\n    /// @notice The total number of proposals\\n    function proposalCount() external returns (uint);\\n}\\n\",\"keccak256\":\"0x62c89309d4351dbeb5516465211fab0b566d83d60dc0148377deaad1f1929b85\"},\"contracts/legacy/GovernorBravoInterfaces.sol\":{\"content\":\"pragma solidity ^0.5.16;\\npragma experimental ABIEncoderV2;\\n\\nimport { XvsVaultInterface, TimelockInterface, GovernorAlphaInterface } from \\\"../Governance/GovernorBravoInterfaces.sol\\\";\\n\\n/**\\n * @title GovernorBravoEvents\\n * @author Venus\\n * @notice Set of events emitted by the first GovernorBravo implementation contract.\\n * @dev This contract is included for archival and testing purposes as the ProposalCreated event has a different signature than the latest implementation.\\n */\\ncontract GovernorBravoEventsV1 {\\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    /// @param voter The address which casted a vote\\n    /// @param proposalId The proposal id which was voted on\\n    /// @param support Support value for the vote. 0=against, 1=for, 2=abstain\\n    /// @param votes Number of votes which were cast by the voter\\n    /// @param reason The reason given for the vote by the voter\\n    event VoteCast(address indexed voter, uint proposalId, uint8 support, uint votes, string reason);\\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    /// @notice An event emitted when the voting delay is set\\n    event VotingDelaySet(uint oldVotingDelay, uint newVotingDelay);\\n\\n    /// @notice An event emitted when the voting period is set\\n    event VotingPeriodSet(uint oldVotingPeriod, uint newVotingPeriod);\\n\\n    /// @notice Emitted when implementation is changed\\n    event NewImplementation(address oldImplementation, address newImplementation);\\n\\n    /// @notice Emitted when proposal threshold is set\\n    event ProposalThresholdSet(uint oldProposalThreshold, uint newProposalThreshold);\\n\\n    /// @notice Emitted when pendingAdmin is changed\\n    event NewPendingAdmin(address oldPendingAdmin, address newPendingAdmin);\\n\\n    /// @notice Emitted when pendingAdmin is accepted, which means admin is updated\\n    event NewAdmin(address oldAdmin, address newAdmin);\\n\\n    /// @notice Emitted when the new guardian address is set\\n    event NewGuardian(address oldGuardian, address newGuardian);\\n\\n    /// @notice Emitted when the maximum number of operations in one proposal is updated\\n    event ProposalMaxOperationsUpdated(uint oldMaxOperations, uint newMaxOperations);\\n}\\n\\n/**\\n * @title GovernorBravoDelegatorStorage\\n * @author Venus\\n * @notice Storage layout of the `GovernorBravoDelegator` contract\\n */\\ncontract GovernorBravoDelegatorStorage {\\n    /// @notice Administrator for this contract\\n    address public admin;\\n\\n    /// @notice Pending administrator for this contract\\n    address public pendingAdmin;\\n\\n    /// @notice Active brains of Governor\\n    address public implementation;\\n}\\n\\n/**\\n * @title GovernorBravoDelegateStorageV1\\n * @dev This contract is included for archival and testing purposes as the Proposal struct has a different shape than the latest implementation.\\n */\\ncontract GovernorBravoDelegateStorageV1 is GovernorBravoDelegatorStorage {\\n    /// @notice DEPRECATED The delay before voting on a proposal may take place, once proposed, in blocks\\n    uint public votingDelay;\\n\\n    /// @notice DEPRECATED The duration of voting on a proposal, in blocks\\n    uint public votingPeriod;\\n\\n    /// @notice DEPRECATED The number of votes required in order for a voter to become a proposer\\n    uint public proposalThreshold;\\n\\n    /// @notice Initial proposal id set at become\\n    uint public initialProposalId;\\n\\n    /// @notice The total number of proposals\\n    uint public proposalCount;\\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    XvsVaultInterface public xvsVault;\\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    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 Current number of votes for abstaining for this proposal\\n        uint abstainVotes;\\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 or abstains\\n        uint8 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 maximum number of actions that can be included in a proposal\\n    uint public proposalMaxOperations;\\n\\n    /// @notice A privileged role that can cancel any proposal\\n    address public guardian;\\n}\\n\",\"keccak256\":\"0x4f3e79420754567fb02452f7ded7a13796204e360ca1b4033009745cfda4a813\"}},\"version\":1}","storageLayout":{"storage":[{"astId":5229,"contract":"contracts/legacy/GovernorBravoInterfaces.sol:GovernorBravoDelegatorStorage","label":"admin","offset":0,"slot":"0","type":"t_address"},{"astId":5231,"contract":"contracts/legacy/GovernorBravoInterfaces.sol:GovernorBravoDelegatorStorage","label":"pendingAdmin","offset":0,"slot":"1","type":"t_address"},{"astId":5233,"contract":"contracts/legacy/GovernorBravoInterfaces.sol:GovernorBravoDelegatorStorage","label":"implementation","offset":0,"slot":"2","type":"t_address"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"}}},"userdoc":{"methods":{},"notice":"Storage layout of the `GovernorBravoDelegator` contract"}},"GovernorBravoEventsV1":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldAdmin","type":"address"},{"indexed":false,"internalType":"address","name":"newAdmin","type":"address"}],"name":"NewAdmin","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldGuardian","type":"address"},{"indexed":false,"internalType":"address","name":"newGuardian","type":"address"}],"name":"NewGuardian","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldImplementation","type":"address"},{"indexed":false,"internalType":"address","name":"newImplementation","type":"address"}],"name":"NewImplementation","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldPendingAdmin","type":"address"},{"indexed":false,"internalType":"address","name":"newPendingAdmin","type":"address"}],"name":"NewPendingAdmin","type":"event"},{"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":"oldMaxOperations","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newMaxOperations","type":"uint256"}],"name":"ProposalMaxOperationsUpdated","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":"uint256","name":"oldProposalThreshold","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newProposalThreshold","type":"uint256"}],"name":"ProposalThresholdSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"voter","type":"address"},{"indexed":false,"internalType":"uint256","name":"proposalId","type":"uint256"},{"indexed":false,"internalType":"uint8","name":"support","type":"uint8"},{"indexed":false,"internalType":"uint256","name":"votes","type":"uint256"},{"indexed":false,"internalType":"string","name":"reason","type":"string"}],"name":"VoteCast","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"oldVotingDelay","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newVotingDelay","type":"uint256"}],"name":"VotingDelaySet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"oldVotingPeriod","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newVotingPeriod","type":"uint256"}],"name":"VotingPeriodSet","type":"event"}],"devdoc":{"author":"Venus","details":"This contract is included for archival and testing purposes as the ProposalCreated event has a different signature than the latest implementation.","methods":{},"title":"GovernorBravoEvents"},"evm":{"bytecode":{"linkReferences":{},"object":"6080604052348015600f57600080fd5b50604c80601d6000396000f3fe6080604052600080fdfea365627a7a72315820ad5726d906274dde6a06a4b3fdc6b4706a6ae47494d8203a6832659ef1c298fe6c6578706572696d656e74616cf564736f6c63430005100040","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4C DUP1 PUSH1 0x1D PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG3 PUSH6 0x627A7A723158 KECCAK256 0xAD JUMPI 0x26 0xD9 MOD 0x27 0x4D 0xDE PUSH11 0x6A4B3FDC6B4706A6AE474 SWAP5 0xD8 KECCAK256 GASPRICE PUSH9 0x32659EF1C298FE6C65 PUSH25 0x706572696D656E74616CF564736F6C63430005100040000000 ","sourceMap":"478:2331:7:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;478:2331:7;;;;;;;"},"deployedBytecode":{"linkReferences":{},"object":"6080604052600080fdfea365627a7a72315820ad5726d906274dde6a06a4b3fdc6b4706a6ae47494d8203a6832659ef1c298fe6c6578706572696d656e74616cf564736f6c63430005100040","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG3 PUSH6 0x627A7A723158 KECCAK256 0xAD JUMPI 0x26 0xD9 MOD 0x27 0x4D 0xDE PUSH11 0x6A4B3FDC6B4706A6AE474 SWAP5 0xD8 KECCAK256 GASPRICE PUSH9 0x32659EF1C298FE6C65 PUSH25 0x706572696D656E74616CF564736F6C63430005100040000000 ","sourceMap":"478:2331:7:-;;;;;"},"gasEstimates":{"creation":{"codeDepositCost":"15200","executionCost":"69","totalCost":"15269"}},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.5.16+commit.9c3226ce\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"oldAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"NewAdmin\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"oldGuardian\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newGuardian\",\"type\":\"address\"}],\"name\":\"NewGuardian\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"oldImplementation\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"}],\"name\":\"NewImplementation\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"oldPendingAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newPendingAdmin\",\"type\":\"address\"}],\"name\":\"NewPendingAdmin\",\"type\":\"event\"},{\"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\":\"oldMaxOperations\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newMaxOperations\",\"type\":\"uint256\"}],\"name\":\"ProposalMaxOperationsUpdated\",\"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\":\"uint256\",\"name\":\"oldProposalThreshold\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newProposalThreshold\",\"type\":\"uint256\"}],\"name\":\"ProposalThresholdSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"voter\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"votes\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"VoteCast\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldVotingDelay\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newVotingDelay\",\"type\":\"uint256\"}],\"name\":\"VotingDelaySet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldVotingPeriod\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newVotingPeriod\",\"type\":\"uint256\"}],\"name\":\"VotingPeriodSet\",\"type\":\"event\"}],\"devdoc\":{\"author\":\"Venus\",\"details\":\"This contract is included for archival and testing purposes as the ProposalCreated event has a different signature than the latest implementation.\",\"methods\":{},\"title\":\"GovernorBravoEvents\"},\"userdoc\":{\"methods\":{},\"notice\":\"Set of events emitted by the first GovernorBravo implementation contract.\"}},\"settings\":{\"compilationTarget\":{\"contracts/legacy/GovernorBravoInterfaces.sol\":\"GovernorBravoEventsV1\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/Governance/GovernorBravoInterfaces.sol\":{\"content\":\"pragma solidity ^0.5.16;\\npragma experimental ABIEncoderV2;\\n\\n/**\\n * @title GovernorBravoEvents\\n * @author Venus\\n * @notice Set of events emitted by the GovernorBravo contracts.\\n */\\ncontract GovernorBravoEvents {\\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        uint8 proposalType\\n    );\\n\\n    /// @notice An event emitted when a vote has been cast on a proposal\\n    /// @param voter The address which casted a vote\\n    /// @param proposalId The proposal id which was voted on\\n    /// @param support Support value for the vote. 0=against, 1=for, 2=abstain\\n    /// @param votes Number of votes which were cast by the voter\\n    /// @param reason The reason given for the vote by the voter\\n    event VoteCast(address indexed voter, uint proposalId, uint8 support, uint votes, string reason);\\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    /// @notice An event emitted when the voting delay is set\\n    event VotingDelaySet(uint oldVotingDelay, uint newVotingDelay);\\n\\n    /// @notice An event emitted when the voting period is set\\n    event VotingPeriodSet(uint oldVotingPeriod, uint newVotingPeriod);\\n\\n    /// @notice Emitted when implementation is changed\\n    event NewImplementation(address oldImplementation, address newImplementation);\\n\\n    /// @notice Emitted when proposal threshold is set\\n    event ProposalThresholdSet(uint oldProposalThreshold, uint newProposalThreshold);\\n\\n    /// @notice Emitted when pendingAdmin is changed\\n    event NewPendingAdmin(address oldPendingAdmin, address newPendingAdmin);\\n\\n    /// @notice Emitted when pendingAdmin is accepted, which means admin is updated\\n    event NewAdmin(address oldAdmin, address newAdmin);\\n\\n    /// @notice Emitted when the new guardian address is set\\n    event NewGuardian(address oldGuardian, address newGuardian);\\n\\n    /// @notice Emitted when the maximum number of operations in one proposal is updated\\n    event ProposalMaxOperationsUpdated(uint oldMaxOperations, uint newMaxOperations);\\n\\n    /// @notice Emitted when the new validation params are set\\n    event SetValidationParams(\\n        uint256 oldMinVotingPeriod,\\n        uint256 newMinVotingPeriod,\\n        uint256 oldmaxVotingPeriod,\\n        uint256 newmaxVotingPeriod,\\n        uint256 oldminVotingDelay,\\n        uint256 newminVotingDelay,\\n        uint256 oldmaxVotingDelay,\\n        uint256 newmaxVotingDelay\\n    );\\n\\n    /// @notice Emitted when new Proposal configs added\\n    event SetProposalConfigs(uint256 votingPeriod, uint256 votingDelay, uint256 proposalThreshold);\\n}\\n\\n/**\\n * @title GovernorBravoDelegatorStorage\\n * @author Venus\\n * @notice Storage layout of the `GovernorBravoDelegator` contract\\n */\\ncontract GovernorBravoDelegatorStorage {\\n    /// @notice Administrator for this contract\\n    address public admin;\\n\\n    /// @notice Pending administrator for this contract\\n    address public pendingAdmin;\\n\\n    /// @notice Active brains of Governor\\n    address public implementation;\\n}\\n\\n/**\\n * @title GovernorBravoDelegateStorageV1\\n * @dev For future upgrades, do not change GovernorBravoDelegateStorageV1. Create a new\\n * contract which implements GovernorBravoDelegateStorageV1 and following the naming convention\\n * GovernorBravoDelegateStorageVX.\\n */\\ncontract GovernorBravoDelegateStorageV1 is GovernorBravoDelegatorStorage {\\n    /// @notice DEPRECATED The delay before voting on a proposal may take place, once proposed, in blocks\\n    uint public votingDelay;\\n\\n    /// @notice DEPRECATED The duration of voting on a proposal, in blocks\\n    uint public votingPeriod;\\n\\n    /// @notice DEPRECATED The number of votes required in order for a voter to become a proposer\\n    uint public proposalThreshold;\\n\\n    /// @notice Initial proposal id set at become\\n    uint public initialProposalId;\\n\\n    /// @notice The total number of proposals\\n    uint public proposalCount;\\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    XvsVaultInterface public xvsVault;\\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    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 Current number of votes for abstaining for this proposal\\n        uint abstainVotes;\\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        /// @notice The type of the proposal\\n        uint8 proposalType;\\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 or abstains\\n        uint8 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 maximum number of actions that can be included in a proposal\\n    uint public proposalMaxOperations;\\n\\n    /// @notice A privileged role that can cancel any proposal\\n    address public guardian;\\n}\\n\\n/**\\n * @title GovernorBravoDelegateStorageV2\\n * @dev For future upgrades, do not change GovernorBravoDelegateStorageV2. Create a new\\n * contract which implements GovernorBravoDelegateStorageV2 and following the naming convention\\n * GovernorBravoDelegateStorageVX.\\n */\\ncontract GovernorBravoDelegateStorageV2 is GovernorBravoDelegateStorageV1 {\\n    enum ProposalType {\\n        NORMAL,\\n        FASTTRACK,\\n        CRITICAL\\n    }\\n\\n    struct ProposalConfig {\\n        /// @notice The delay before voting on a proposal may take place, once proposed, in blocks\\n        uint256 votingDelay;\\n        /// @notice The duration of voting on a proposal, in blocks\\n        uint256 votingPeriod;\\n        /// @notice The number of votes required in order for a voter to become a proposer\\n        uint256 proposalThreshold;\\n    }\\n\\n    /// @notice mapping containing configuration for each proposal type\\n    mapping(uint => ProposalConfig) public proposalConfigs;\\n\\n    /// @notice mapping containing Timelock addresses for each proposal type\\n    mapping(uint => TimelockInterface) public proposalTimelocks;\\n}\\n\\n/**\\n * @title GovernorBravoDelegateStorageV3\\n * @dev For future upgrades, do not change GovernorBravoDelegateStorageV3. Create a new\\n * contract which implements GovernorBravoDelegateStorageV3 and following the naming convention\\n * GovernorBravoDelegateStorageVX.\\n */\\ncontract GovernorBravoDelegateStorageV3 is GovernorBravoDelegateStorageV2 {\\n    struct ValidationParams {\\n        uint256 minVotingPeriod;\\n        uint256 maxVotingPeriod;\\n        uint256 minVotingDelay;\\n        uint256 maxVotingDelay;\\n    }\\n    /// @notice Stores the current minimum and maximum values of voting delay and voting period\\n    ValidationParams public validationParams;\\n}\\n\\n/**\\n * @title TimelockInterface\\n * @author Venus\\n * @notice Interface implemented by the Timelock contract.\\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 XvsVaultInterface {\\n    function getPriorVotes(address account, uint blockNumber) external view returns (uint96);\\n}\\n\\ninterface GovernorAlphaInterface {\\n    /// @notice The total number of proposals\\n    function proposalCount() external returns (uint);\\n}\\n\",\"keccak256\":\"0x62c89309d4351dbeb5516465211fab0b566d83d60dc0148377deaad1f1929b85\"},\"contracts/legacy/GovernorBravoInterfaces.sol\":{\"content\":\"pragma solidity ^0.5.16;\\npragma experimental ABIEncoderV2;\\n\\nimport { XvsVaultInterface, TimelockInterface, GovernorAlphaInterface } from \\\"../Governance/GovernorBravoInterfaces.sol\\\";\\n\\n/**\\n * @title GovernorBravoEvents\\n * @author Venus\\n * @notice Set of events emitted by the first GovernorBravo implementation contract.\\n * @dev This contract is included for archival and testing purposes as the ProposalCreated event has a different signature than the latest implementation.\\n */\\ncontract GovernorBravoEventsV1 {\\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    /// @param voter The address which casted a vote\\n    /// @param proposalId The proposal id which was voted on\\n    /// @param support Support value for the vote. 0=against, 1=for, 2=abstain\\n    /// @param votes Number of votes which were cast by the voter\\n    /// @param reason The reason given for the vote by the voter\\n    event VoteCast(address indexed voter, uint proposalId, uint8 support, uint votes, string reason);\\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    /// @notice An event emitted when the voting delay is set\\n    event VotingDelaySet(uint oldVotingDelay, uint newVotingDelay);\\n\\n    /// @notice An event emitted when the voting period is set\\n    event VotingPeriodSet(uint oldVotingPeriod, uint newVotingPeriod);\\n\\n    /// @notice Emitted when implementation is changed\\n    event NewImplementation(address oldImplementation, address newImplementation);\\n\\n    /// @notice Emitted when proposal threshold is set\\n    event ProposalThresholdSet(uint oldProposalThreshold, uint newProposalThreshold);\\n\\n    /// @notice Emitted when pendingAdmin is changed\\n    event NewPendingAdmin(address oldPendingAdmin, address newPendingAdmin);\\n\\n    /// @notice Emitted when pendingAdmin is accepted, which means admin is updated\\n    event NewAdmin(address oldAdmin, address newAdmin);\\n\\n    /// @notice Emitted when the new guardian address is set\\n    event NewGuardian(address oldGuardian, address newGuardian);\\n\\n    /// @notice Emitted when the maximum number of operations in one proposal is updated\\n    event ProposalMaxOperationsUpdated(uint oldMaxOperations, uint newMaxOperations);\\n}\\n\\n/**\\n * @title GovernorBravoDelegatorStorage\\n * @author Venus\\n * @notice Storage layout of the `GovernorBravoDelegator` contract\\n */\\ncontract GovernorBravoDelegatorStorage {\\n    /// @notice Administrator for this contract\\n    address public admin;\\n\\n    /// @notice Pending administrator for this contract\\n    address public pendingAdmin;\\n\\n    /// @notice Active brains of Governor\\n    address public implementation;\\n}\\n\\n/**\\n * @title GovernorBravoDelegateStorageV1\\n * @dev This contract is included for archival and testing purposes as the Proposal struct has a different shape than the latest implementation.\\n */\\ncontract GovernorBravoDelegateStorageV1 is GovernorBravoDelegatorStorage {\\n    /// @notice DEPRECATED The delay before voting on a proposal may take place, once proposed, in blocks\\n    uint public votingDelay;\\n\\n    /// @notice DEPRECATED The duration of voting on a proposal, in blocks\\n    uint public votingPeriod;\\n\\n    /// @notice DEPRECATED The number of votes required in order for a voter to become a proposer\\n    uint public proposalThreshold;\\n\\n    /// @notice Initial proposal id set at become\\n    uint public initialProposalId;\\n\\n    /// @notice The total number of proposals\\n    uint public proposalCount;\\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    XvsVaultInterface public xvsVault;\\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    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 Current number of votes for abstaining for this proposal\\n        uint abstainVotes;\\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 or abstains\\n        uint8 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 maximum number of actions that can be included in a proposal\\n    uint public proposalMaxOperations;\\n\\n    /// @notice A privileged role that can cancel any proposal\\n    address public guardian;\\n}\\n\",\"keccak256\":\"0x4f3e79420754567fb02452f7ded7a13796204e360ca1b4033009745cfda4a813\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"methods":{},"notice":"Set of events emitted by the first GovernorBravo implementation contract."}}},"contracts/legacy/GovernorBravoInterfacesV2.sol":{"GovernorBravoDelegateStorageV1":{"abi":[{"constant":true,"inputs":[],"name":"admin","outputs":[{"internalType":"address","name":"","type":"address"}],"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":[],"name":"implementation","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"initialProposalId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"pendingAdmin","outputs":[{"internalType":"address","name":"","type":"address"}],"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":"view","type":"function"},{"constant":true,"inputs":[],"name":"proposalThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","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":"uint256","name":"abstainVotes","type":"uint256"},{"internalType":"bool","name":"canceled","type":"bool"},{"internalType":"bool","name":"executed","type":"bool"},{"internalType":"uint8","name":"proposalType","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":"view","type":"function"},{"constant":true,"inputs":[],"name":"votingPeriod","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"xvsVault","outputs":[{"internalType":"contract XvsVaultInterface","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}],"devdoc":{"details":"This contract is included for archival and testing purposes.","methods":{},"title":"GovernorBravoDelegateStorageV1"},"evm":{"bytecode":{"linkReferences":{},"object":"608060405234801561001057600080fd5b506104ac806100206000396000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c80635c60da1b1161008c578063d33219b411610066578063d33219b41461019c578063da35c664146101a4578063f851a440146101ac578063fc4eee42146101b4576100ea565b80635c60da1b146101845780637bdbe4d01461018c578063b58131b014610194576100ea565b80631b9ce575116100c85780631b9ce5751461014a578063267822471461015f5780633932abb114610174578063452a93201461017c576100ea565b8063013cf08b146100ef57806302a251a31461012257806317977c6114610137575b600080fd5b6101026100fd3660046102fa565b6101bc565b6040516101199b9a99989796959493929190610375565b60405180910390f35b61012a610228565b6040516101199190610367565b61012a6101453660046102d4565b61022e565b610152610240565b6040516101199190610359565b61016761024f565b604051610119919061034b565b61012a61025e565b610167610264565b610167610273565b61012a610282565b61012a610288565b61015261028e565b61012a61029d565b6101676102a3565b61012a6102b2565b600a60208190526000918252604090912080546001820154600283015460078401546008850154600986015496860154600b870154600c880154600e9098015496986001600160a01b039096169794969395929492939192909160ff808316926101009004811691168b565b60045481565b600b6020526000908152604090205481565b6009546001600160a01b031681565b6001546001600160a01b031681565b60035481565b600d546001600160a01b031681565b6002546001600160a01b031681565b600c5481565b60055481565b6008546001600160a01b031681565b60075481565b6000546001600160a01b031681565b60065481565b80356102c381610449565b92915050565b80356102c381610460565b6000602082840312156102e657600080fd5b60006102f284846102b8565b949350505050565b60006020828403121561030c57600080fd5b60006102f284846102c9565b61032181610419565b82525050565b61032181610424565b6103218161043e565b61032181610435565b61032181610438565b602081016102c38284610318565b602081016102c38284610330565b602081016102c38284610339565b6101608101610384828e610339565b610391602083018d610318565b61039e604083018c610339565b6103ab606083018b610339565b6103b8608083018a610339565b6103c560a0830189610339565b6103d260c0830188610339565b6103df60e0830187610339565b6103ed610100830186610327565b6103fb610120830185610327565b610409610140830184610342565b9c9b505050505050505050505050565b60006102c382610429565b151590565b6001600160a01b031690565b90565b60ff1690565b60006102c382610419565b61045281610419565b811461045d57600080fd5b50565b6104528161043556fea365627a7a723158201e671acfde71c634b7c7b376f9904e30018fc3335f589fbebde2e871235934bc6c6578706572696d656e74616cf564736f6c63430005100040","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4AC DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xEA JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x5C60DA1B GT PUSH2 0x8C JUMPI DUP1 PUSH4 0xD33219B4 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0xD33219B4 EQ PUSH2 0x19C JUMPI DUP1 PUSH4 0xDA35C664 EQ PUSH2 0x1A4 JUMPI DUP1 PUSH4 0xF851A440 EQ PUSH2 0x1AC JUMPI DUP1 PUSH4 0xFC4EEE42 EQ PUSH2 0x1B4 JUMPI PUSH2 0xEA JUMP JUMPDEST DUP1 PUSH4 0x5C60DA1B EQ PUSH2 0x184 JUMPI DUP1 PUSH4 0x7BDBE4D0 EQ PUSH2 0x18C JUMPI DUP1 PUSH4 0xB58131B0 EQ PUSH2 0x194 JUMPI PUSH2 0xEA JUMP JUMPDEST DUP1 PUSH4 0x1B9CE575 GT PUSH2 0xC8 JUMPI DUP1 PUSH4 0x1B9CE575 EQ PUSH2 0x14A JUMPI DUP1 PUSH4 0x26782247 EQ PUSH2 0x15F JUMPI DUP1 PUSH4 0x3932ABB1 EQ PUSH2 0x174 JUMPI DUP1 PUSH4 0x452A9320 EQ PUSH2 0x17C JUMPI PUSH2 0xEA JUMP JUMPDEST DUP1 PUSH4 0x13CF08B EQ PUSH2 0xEF JUMPI DUP1 PUSH4 0x2A251A3 EQ PUSH2 0x122 JUMPI DUP1 PUSH4 0x17977C61 EQ PUSH2 0x137 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x102 PUSH2 0xFD CALLDATASIZE PUSH1 0x4 PUSH2 0x2FA JUMP JUMPDEST PUSH2 0x1BC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x119 SWAP12 SWAP11 SWAP10 SWAP9 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x375 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x12A PUSH2 0x228 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x119 SWAP2 SWAP1 PUSH2 0x367 JUMP JUMPDEST PUSH2 0x12A PUSH2 0x145 CALLDATASIZE PUSH1 0x4 PUSH2 0x2D4 JUMP JUMPDEST PUSH2 0x22E JUMP JUMPDEST PUSH2 0x152 PUSH2 0x240 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x119 SWAP2 SWAP1 PUSH2 0x359 JUMP JUMPDEST PUSH2 0x167 PUSH2 0x24F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x119 SWAP2 SWAP1 PUSH2 0x34B JUMP JUMPDEST PUSH2 0x12A PUSH2 0x25E JUMP JUMPDEST PUSH2 0x167 PUSH2 0x264 JUMP JUMPDEST PUSH2 0x167 PUSH2 0x273 JUMP JUMPDEST PUSH2 0x12A PUSH2 0x282 JUMP JUMPDEST PUSH2 0x12A PUSH2 0x288 JUMP JUMPDEST PUSH2 0x152 PUSH2 0x28E JUMP JUMPDEST PUSH2 0x12A PUSH2 0x29D JUMP JUMPDEST PUSH2 0x167 PUSH2 0x2A3 JUMP JUMPDEST PUSH2 0x12A PUSH2 0x2B2 JUMP JUMPDEST PUSH1 0xA PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x40 SWAP1 SWAP2 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 SWAP7 DUP7 ADD SLOAD PUSH1 0xB DUP8 ADD SLOAD PUSH1 0xC DUP9 ADD SLOAD PUSH1 0xE SWAP1 SWAP9 ADD SLOAD SWAP7 SWAP9 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP7 AND SWAP8 SWAP5 SWAP7 SWAP4 SWAP6 SWAP3 SWAP5 SWAP3 SWAP4 SWAP2 SWAP3 SWAP1 SWAP2 PUSH1 0xFF DUP1 DUP4 AND SWAP3 PUSH2 0x100 SWAP1 DIV DUP2 AND SWAP2 AND DUP12 JUMP JUMPDEST PUSH1 0x4 SLOAD DUP2 JUMP JUMPDEST PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH1 0xD 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 DUP2 JUMP JUMPDEST PUSH1 0xC SLOAD DUP2 JUMP JUMPDEST PUSH1 0x5 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x7 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x6 SLOAD DUP2 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x2C3 DUP2 PUSH2 0x449 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x2C3 DUP2 PUSH2 0x460 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2E6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2F2 DUP5 DUP5 PUSH2 0x2B8 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x30C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2F2 DUP5 DUP5 PUSH2 0x2C9 JUMP JUMPDEST PUSH2 0x321 DUP2 PUSH2 0x419 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x321 DUP2 PUSH2 0x424 JUMP JUMPDEST PUSH2 0x321 DUP2 PUSH2 0x43E JUMP JUMPDEST PUSH2 0x321 DUP2 PUSH2 0x435 JUMP JUMPDEST PUSH2 0x321 DUP2 PUSH2 0x438 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x2C3 DUP3 DUP5 PUSH2 0x318 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x2C3 DUP3 DUP5 PUSH2 0x330 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x2C3 DUP3 DUP5 PUSH2 0x339 JUMP JUMPDEST PUSH2 0x160 DUP2 ADD PUSH2 0x384 DUP3 DUP15 PUSH2 0x339 JUMP JUMPDEST PUSH2 0x391 PUSH1 0x20 DUP4 ADD DUP14 PUSH2 0x318 JUMP JUMPDEST PUSH2 0x39E PUSH1 0x40 DUP4 ADD DUP13 PUSH2 0x339 JUMP JUMPDEST PUSH2 0x3AB PUSH1 0x60 DUP4 ADD DUP12 PUSH2 0x339 JUMP JUMPDEST PUSH2 0x3B8 PUSH1 0x80 DUP4 ADD DUP11 PUSH2 0x339 JUMP JUMPDEST PUSH2 0x3C5 PUSH1 0xA0 DUP4 ADD DUP10 PUSH2 0x339 JUMP JUMPDEST PUSH2 0x3D2 PUSH1 0xC0 DUP4 ADD DUP9 PUSH2 0x339 JUMP JUMPDEST PUSH2 0x3DF PUSH1 0xE0 DUP4 ADD DUP8 PUSH2 0x339 JUMP JUMPDEST PUSH2 0x3ED PUSH2 0x100 DUP4 ADD DUP7 PUSH2 0x327 JUMP JUMPDEST PUSH2 0x3FB PUSH2 0x120 DUP4 ADD DUP6 PUSH2 0x327 JUMP JUMPDEST PUSH2 0x409 PUSH2 0x140 DUP4 ADD DUP5 PUSH2 0x342 JUMP JUMPDEST SWAP13 SWAP12 POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2C3 DUP3 PUSH2 0x429 JUMP JUMPDEST ISZERO ISZERO SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2C3 DUP3 PUSH2 0x419 JUMP JUMPDEST PUSH2 0x452 DUP2 PUSH2 0x419 JUMP JUMPDEST DUP2 EQ PUSH2 0x45D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x452 DUP2 PUSH2 0x435 JUMP INVALID LOG3 PUSH6 0x627A7A723158 KECCAK256 0x1E PUSH8 0x1ACFDE71C634B7C7 0xB3 PUSH23 0xF9904E30018FC3335F589FBEBDE2E871235934BC6C6578 PUSH17 0x6572696D656E74616CF564736F6C634300 SDIV LT STOP BLOCKHASH ","sourceMap":"3290:3491:8:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3290:3491:8;;;;;;;"},"deployedBytecode":{"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106100ea5760003560e01c80635c60da1b1161008c578063d33219b411610066578063d33219b41461019c578063da35c664146101a4578063f851a440146101ac578063fc4eee42146101b4576100ea565b80635c60da1b146101845780637bdbe4d01461018c578063b58131b014610194576100ea565b80631b9ce575116100c85780631b9ce5751461014a578063267822471461015f5780633932abb114610174578063452a93201461017c576100ea565b8063013cf08b146100ef57806302a251a31461012257806317977c6114610137575b600080fd5b6101026100fd3660046102fa565b6101bc565b6040516101199b9a99989796959493929190610375565b60405180910390f35b61012a610228565b6040516101199190610367565b61012a6101453660046102d4565b61022e565b610152610240565b6040516101199190610359565b61016761024f565b604051610119919061034b565b61012a61025e565b610167610264565b610167610273565b61012a610282565b61012a610288565b61015261028e565b61012a61029d565b6101676102a3565b61012a6102b2565b600a60208190526000918252604090912080546001820154600283015460078401546008850154600986015496860154600b870154600c880154600e9098015496986001600160a01b039096169794969395929492939192909160ff808316926101009004811691168b565b60045481565b600b6020526000908152604090205481565b6009546001600160a01b031681565b6001546001600160a01b031681565b60035481565b600d546001600160a01b031681565b6002546001600160a01b031681565b600c5481565b60055481565b6008546001600160a01b031681565b60075481565b6000546001600160a01b031681565b60065481565b80356102c381610449565b92915050565b80356102c381610460565b6000602082840312156102e657600080fd5b60006102f284846102b8565b949350505050565b60006020828403121561030c57600080fd5b60006102f284846102c9565b61032181610419565b82525050565b61032181610424565b6103218161043e565b61032181610435565b61032181610438565b602081016102c38284610318565b602081016102c38284610330565b602081016102c38284610339565b6101608101610384828e610339565b610391602083018d610318565b61039e604083018c610339565b6103ab606083018b610339565b6103b8608083018a610339565b6103c560a0830189610339565b6103d260c0830188610339565b6103df60e0830187610339565b6103ed610100830186610327565b6103fb610120830185610327565b610409610140830184610342565b9c9b505050505050505050505050565b60006102c382610429565b151590565b6001600160a01b031690565b90565b60ff1690565b60006102c382610419565b61045281610419565b811461045d57600080fd5b50565b6104528161043556fea365627a7a723158201e671acfde71c634b7c7b376f9904e30018fc3335f589fbebde2e871235934bc6c6578706572696d656e74616cf564736f6c63430005100040","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xEA JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x5C60DA1B GT PUSH2 0x8C JUMPI DUP1 PUSH4 0xD33219B4 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0xD33219B4 EQ PUSH2 0x19C JUMPI DUP1 PUSH4 0xDA35C664 EQ PUSH2 0x1A4 JUMPI DUP1 PUSH4 0xF851A440 EQ PUSH2 0x1AC JUMPI DUP1 PUSH4 0xFC4EEE42 EQ PUSH2 0x1B4 JUMPI PUSH2 0xEA JUMP JUMPDEST DUP1 PUSH4 0x5C60DA1B EQ PUSH2 0x184 JUMPI DUP1 PUSH4 0x7BDBE4D0 EQ PUSH2 0x18C JUMPI DUP1 PUSH4 0xB58131B0 EQ PUSH2 0x194 JUMPI PUSH2 0xEA JUMP JUMPDEST DUP1 PUSH4 0x1B9CE575 GT PUSH2 0xC8 JUMPI DUP1 PUSH4 0x1B9CE575 EQ PUSH2 0x14A JUMPI DUP1 PUSH4 0x26782247 EQ PUSH2 0x15F JUMPI DUP1 PUSH4 0x3932ABB1 EQ PUSH2 0x174 JUMPI DUP1 PUSH4 0x452A9320 EQ PUSH2 0x17C JUMPI PUSH2 0xEA JUMP JUMPDEST DUP1 PUSH4 0x13CF08B EQ PUSH2 0xEF JUMPI DUP1 PUSH4 0x2A251A3 EQ PUSH2 0x122 JUMPI DUP1 PUSH4 0x17977C61 EQ PUSH2 0x137 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x102 PUSH2 0xFD CALLDATASIZE PUSH1 0x4 PUSH2 0x2FA JUMP JUMPDEST PUSH2 0x1BC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x119 SWAP12 SWAP11 SWAP10 SWAP9 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x375 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x12A PUSH2 0x228 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x119 SWAP2 SWAP1 PUSH2 0x367 JUMP JUMPDEST PUSH2 0x12A PUSH2 0x145 CALLDATASIZE PUSH1 0x4 PUSH2 0x2D4 JUMP JUMPDEST PUSH2 0x22E JUMP JUMPDEST PUSH2 0x152 PUSH2 0x240 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x119 SWAP2 SWAP1 PUSH2 0x359 JUMP JUMPDEST PUSH2 0x167 PUSH2 0x24F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x119 SWAP2 SWAP1 PUSH2 0x34B JUMP JUMPDEST PUSH2 0x12A PUSH2 0x25E JUMP JUMPDEST PUSH2 0x167 PUSH2 0x264 JUMP JUMPDEST PUSH2 0x167 PUSH2 0x273 JUMP JUMPDEST PUSH2 0x12A PUSH2 0x282 JUMP JUMPDEST PUSH2 0x12A PUSH2 0x288 JUMP JUMPDEST PUSH2 0x152 PUSH2 0x28E JUMP JUMPDEST PUSH2 0x12A PUSH2 0x29D JUMP JUMPDEST PUSH2 0x167 PUSH2 0x2A3 JUMP JUMPDEST PUSH2 0x12A PUSH2 0x2B2 JUMP JUMPDEST PUSH1 0xA PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x40 SWAP1 SWAP2 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 SWAP7 DUP7 ADD SLOAD PUSH1 0xB DUP8 ADD SLOAD PUSH1 0xC DUP9 ADD SLOAD PUSH1 0xE SWAP1 SWAP9 ADD SLOAD SWAP7 SWAP9 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP7 AND SWAP8 SWAP5 SWAP7 SWAP4 SWAP6 SWAP3 SWAP5 SWAP3 SWAP4 SWAP2 SWAP3 SWAP1 SWAP2 PUSH1 0xFF DUP1 DUP4 AND SWAP3 PUSH2 0x100 SWAP1 DIV DUP2 AND SWAP2 AND DUP12 JUMP JUMPDEST PUSH1 0x4 SLOAD DUP2 JUMP JUMPDEST PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH1 0xD 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 DUP2 JUMP JUMPDEST PUSH1 0xC SLOAD DUP2 JUMP JUMPDEST PUSH1 0x5 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x7 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x6 SLOAD DUP2 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x2C3 DUP2 PUSH2 0x449 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x2C3 DUP2 PUSH2 0x460 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2E6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2F2 DUP5 DUP5 PUSH2 0x2B8 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x30C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2F2 DUP5 DUP5 PUSH2 0x2C9 JUMP JUMPDEST PUSH2 0x321 DUP2 PUSH2 0x419 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x321 DUP2 PUSH2 0x424 JUMP JUMPDEST PUSH2 0x321 DUP2 PUSH2 0x43E JUMP JUMPDEST PUSH2 0x321 DUP2 PUSH2 0x435 JUMP JUMPDEST PUSH2 0x321 DUP2 PUSH2 0x438 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x2C3 DUP3 DUP5 PUSH2 0x318 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x2C3 DUP3 DUP5 PUSH2 0x330 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x2C3 DUP3 DUP5 PUSH2 0x339 JUMP JUMPDEST PUSH2 0x160 DUP2 ADD PUSH2 0x384 DUP3 DUP15 PUSH2 0x339 JUMP JUMPDEST PUSH2 0x391 PUSH1 0x20 DUP4 ADD DUP14 PUSH2 0x318 JUMP JUMPDEST PUSH2 0x39E PUSH1 0x40 DUP4 ADD DUP13 PUSH2 0x339 JUMP JUMPDEST PUSH2 0x3AB PUSH1 0x60 DUP4 ADD DUP12 PUSH2 0x339 JUMP JUMPDEST PUSH2 0x3B8 PUSH1 0x80 DUP4 ADD DUP11 PUSH2 0x339 JUMP JUMPDEST PUSH2 0x3C5 PUSH1 0xA0 DUP4 ADD DUP10 PUSH2 0x339 JUMP JUMPDEST PUSH2 0x3D2 PUSH1 0xC0 DUP4 ADD DUP9 PUSH2 0x339 JUMP JUMPDEST PUSH2 0x3DF PUSH1 0xE0 DUP4 ADD DUP8 PUSH2 0x339 JUMP JUMPDEST PUSH2 0x3ED PUSH2 0x100 DUP4 ADD DUP7 PUSH2 0x327 JUMP JUMPDEST PUSH2 0x3FB PUSH2 0x120 DUP4 ADD DUP6 PUSH2 0x327 JUMP JUMPDEST PUSH2 0x409 PUSH2 0x140 DUP4 ADD DUP5 PUSH2 0x342 JUMP JUMPDEST SWAP13 SWAP12 POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2C3 DUP3 PUSH2 0x429 JUMP JUMPDEST ISZERO ISZERO SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2C3 DUP3 PUSH2 0x419 JUMP JUMPDEST PUSH2 0x452 DUP2 PUSH2 0x419 JUMP JUMPDEST DUP2 EQ PUSH2 0x45D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x452 DUP2 PUSH2 0x435 JUMP INVALID LOG3 PUSH6 0x627A7A723158 KECCAK256 0x1E PUSH8 0x1ACFDE71C634B7C7 0xB3 PUSH23 0xF9904E30018FC3335F589FBEBDE2E871235934BC6C6578 PUSH17 0x6572696D656E74616CF564736F6C634300 SDIV LT STOP BLOCKHASH ","sourceMap":"3290:3491:8:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3290:3491:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4173:42;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;3580:24;;;:::i;:::-;;;;;;;;4276:49;;;;;;;;;:::i;4066:33::-;;;:::i;:::-;;;;;;;;3062:27;;;:::i;:::-;;;;;;;;3475:23;;;:::i;6755:::-;;;:::i;3138:29::-;;;:::i;6652:33::-;;;:::i;3709:29::-;;;:::i;3968:33::-;;;:::i;3877:25::-;;;:::i;2979:20::-;;;:::i;3795:29::-;;;:::i;4173:42::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4173:42:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3580:24::-;;;;:::o;4276:49::-;;;;;;;;;;;;;:::o;4066:33::-;;;-1:-1:-1;;;;;4066:33:8;;:::o;3062:27::-;;;-1:-1:-1;;;;;3062:27:8;;:::o;3475:23::-;;;;:::o;6755:::-;;;-1:-1:-1;;;;;6755:23:8;;:::o;3138:29::-;;;-1:-1:-1;;;;;3138:29:8;;:::o;6652:33::-;;;;:::o;3709:29::-;;;;:::o;3968:33::-;;;-1:-1:-1;;;;;3968:33:8;;:::o;3877:25::-;;;;:::o;2979:20::-;;;-1:-1:-1;;;;;2979:20:8;;:::o;3795:29::-;;;;:::o;5:130:-1:-;72:20;;97:33;72:20;97:33;;;57:78;;;;;142:130;209:20;;234:33;209:20;234:33;;279:241;;383:2;371:9;362:7;358:23;354:32;351:2;;;399:1;396;389:12;351:2;434:1;451:53;496:7;476:9;451:53;;;441:63;345:175;-1:-1;;;;345:175;527:241;;631:2;619:9;610:7;606:23;602:32;599:2;;;647:1;644;637:12;599:2;682:1;699:53;744:7;724:9;699:53;;775:113;858:24;876:5;858:24;;;853:3;846:37;840:48;;;895:104;972:21;987:5;972:21;;1006:178;1115:63;1172:5;1115:63;;1376:113;1459:24;1477:5;1459:24;;1496:107;1575:22;1591:5;1575:22;;1610:213;1728:2;1713:18;;1742:71;1717:9;1786:6;1742:71;;1830:265;1974:2;1959:18;;1988:97;1963:9;2058:6;1988:97;;2374:213;2492:2;2477:18;;2506:71;2481:9;2550:6;2506:71;;2594:1301;2977:3;2962:19;;2992:71;2966:9;3036:6;2992:71;;;3074:72;3142:2;3131:9;3127:18;3118:6;3074:72;;;3157;3225:2;3214:9;3210:18;3201:6;3157:72;;;3240;3308:2;3297:9;3293:18;3284:6;3240:72;;;3323:73;3391:3;3380:9;3376:19;3367:6;3323:73;;;3407;3475:3;3464:9;3460:19;3451:6;3407:73;;;3491;3559:3;3548:9;3544:19;3535:6;3491:73;;;3575;3643:3;3632:9;3628:19;3619:6;3575:73;;;3659:67;3721:3;3710:9;3706:19;3697:6;3659:67;;;3737;3799:3;3788:9;3784:19;3775:6;3737:67;;;3815:70;3880:3;3869:9;3865:19;3855:7;3815:70;;;2948:947;;;;;;;;;;;;;;;3902:91;;3964:24;3982:5;3964:24;;4000:85;4066:13;4059:21;;4042:43;4092:121;-1:-1;;;;;4154:54;;4137:76;4220:72;4282:5;4265:27;4299:81;4370:4;4359:16;;4342:38;4387:173;;4492:63;4549:5;4492:63;;5029:117;5098:24;5116:5;5098:24;;;5091:5;5088:35;5078:2;;5137:1;5134;5127:12;5078:2;5072:74;;5153:117;5222:24;5240:5;5222:24;"},"gasEstimates":{"creation":{"codeDepositCost":"239200","executionCost":"281","totalCost":"239481"},"external":{"admin()":"infinite","guardian()":"infinite","implementation()":"infinite","initialProposalId()":"1187","latestProposalIds(address)":"infinite","pendingAdmin()":"infinite","proposalCount()":"1143","proposalMaxOperations()":"1144","proposalThreshold()":"1166","proposals(uint256)":"infinite","timelock()":"infinite","votingDelay()":"1166","votingPeriod()":"1145","xvsVault()":"infinite"}},"methodIdentifiers":{"admin()":"f851a440","guardian()":"452a9320","implementation()":"5c60da1b","initialProposalId()":"fc4eee42","latestProposalIds(address)":"17977c61","pendingAdmin()":"26782247","proposalCount()":"da35c664","proposalMaxOperations()":"7bdbe4d0","proposalThreshold()":"b58131b0","proposals(uint256)":"013cf08b","timelock()":"d33219b4","votingDelay()":"3932abb1","votingPeriod()":"02a251a3","xvsVault()":"1b9ce575"}},"metadata":"{\"compiler\":{\"version\":\"0.5.16+commit.9c3226ce\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[],\"name\":\"admin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"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\":[],\"name\":\"implementation\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"initialProposalId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"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\":\"pendingAdmin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"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\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"proposalThreshold\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"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\":\"uint256\",\"name\":\"abstainVotes\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"canceled\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"executed\",\"type\":\"bool\"},{\"internalType\":\"uint8\",\"name\":\"proposalType\",\"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\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"votingPeriod\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"xvsVault\",\"outputs\":[{\"internalType\":\"contract XvsVaultInterface\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"This contract is included for archival and testing purposes.\",\"methods\":{},\"title\":\"GovernorBravoDelegateStorageV1\"},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"contracts/legacy/GovernorBravoInterfacesV2.sol\":\"GovernorBravoDelegateStorageV1\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/Governance/GovernorBravoInterfaces.sol\":{\"content\":\"pragma solidity ^0.5.16;\\npragma experimental ABIEncoderV2;\\n\\n/**\\n * @title GovernorBravoEvents\\n * @author Venus\\n * @notice Set of events emitted by the GovernorBravo contracts.\\n */\\ncontract GovernorBravoEvents {\\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        uint8 proposalType\\n    );\\n\\n    /// @notice An event emitted when a vote has been cast on a proposal\\n    /// @param voter The address which casted a vote\\n    /// @param proposalId The proposal id which was voted on\\n    /// @param support Support value for the vote. 0=against, 1=for, 2=abstain\\n    /// @param votes Number of votes which were cast by the voter\\n    /// @param reason The reason given for the vote by the voter\\n    event VoteCast(address indexed voter, uint proposalId, uint8 support, uint votes, string reason);\\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    /// @notice An event emitted when the voting delay is set\\n    event VotingDelaySet(uint oldVotingDelay, uint newVotingDelay);\\n\\n    /// @notice An event emitted when the voting period is set\\n    event VotingPeriodSet(uint oldVotingPeriod, uint newVotingPeriod);\\n\\n    /// @notice Emitted when implementation is changed\\n    event NewImplementation(address oldImplementation, address newImplementation);\\n\\n    /// @notice Emitted when proposal threshold is set\\n    event ProposalThresholdSet(uint oldProposalThreshold, uint newProposalThreshold);\\n\\n    /// @notice Emitted when pendingAdmin is changed\\n    event NewPendingAdmin(address oldPendingAdmin, address newPendingAdmin);\\n\\n    /// @notice Emitted when pendingAdmin is accepted, which means admin is updated\\n    event NewAdmin(address oldAdmin, address newAdmin);\\n\\n    /// @notice Emitted when the new guardian address is set\\n    event NewGuardian(address oldGuardian, address newGuardian);\\n\\n    /// @notice Emitted when the maximum number of operations in one proposal is updated\\n    event ProposalMaxOperationsUpdated(uint oldMaxOperations, uint newMaxOperations);\\n\\n    /// @notice Emitted when the new validation params are set\\n    event SetValidationParams(\\n        uint256 oldMinVotingPeriod,\\n        uint256 newMinVotingPeriod,\\n        uint256 oldmaxVotingPeriod,\\n        uint256 newmaxVotingPeriod,\\n        uint256 oldminVotingDelay,\\n        uint256 newminVotingDelay,\\n        uint256 oldmaxVotingDelay,\\n        uint256 newmaxVotingDelay\\n    );\\n\\n    /// @notice Emitted when new Proposal configs added\\n    event SetProposalConfigs(uint256 votingPeriod, uint256 votingDelay, uint256 proposalThreshold);\\n}\\n\\n/**\\n * @title GovernorBravoDelegatorStorage\\n * @author Venus\\n * @notice Storage layout of the `GovernorBravoDelegator` contract\\n */\\ncontract GovernorBravoDelegatorStorage {\\n    /// @notice Administrator for this contract\\n    address public admin;\\n\\n    /// @notice Pending administrator for this contract\\n    address public pendingAdmin;\\n\\n    /// @notice Active brains of Governor\\n    address public implementation;\\n}\\n\\n/**\\n * @title GovernorBravoDelegateStorageV1\\n * @dev For future upgrades, do not change GovernorBravoDelegateStorageV1. Create a new\\n * contract which implements GovernorBravoDelegateStorageV1 and following the naming convention\\n * GovernorBravoDelegateStorageVX.\\n */\\ncontract GovernorBravoDelegateStorageV1 is GovernorBravoDelegatorStorage {\\n    /// @notice DEPRECATED The delay before voting on a proposal may take place, once proposed, in blocks\\n    uint public votingDelay;\\n\\n    /// @notice DEPRECATED The duration of voting on a proposal, in blocks\\n    uint public votingPeriod;\\n\\n    /// @notice DEPRECATED The number of votes required in order for a voter to become a proposer\\n    uint public proposalThreshold;\\n\\n    /// @notice Initial proposal id set at become\\n    uint public initialProposalId;\\n\\n    /// @notice The total number of proposals\\n    uint public proposalCount;\\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    XvsVaultInterface public xvsVault;\\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    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 Current number of votes for abstaining for this proposal\\n        uint abstainVotes;\\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        /// @notice The type of the proposal\\n        uint8 proposalType;\\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 or abstains\\n        uint8 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 maximum number of actions that can be included in a proposal\\n    uint public proposalMaxOperations;\\n\\n    /// @notice A privileged role that can cancel any proposal\\n    address public guardian;\\n}\\n\\n/**\\n * @title GovernorBravoDelegateStorageV2\\n * @dev For future upgrades, do not change GovernorBravoDelegateStorageV2. Create a new\\n * contract which implements GovernorBravoDelegateStorageV2 and following the naming convention\\n * GovernorBravoDelegateStorageVX.\\n */\\ncontract GovernorBravoDelegateStorageV2 is GovernorBravoDelegateStorageV1 {\\n    enum ProposalType {\\n        NORMAL,\\n        FASTTRACK,\\n        CRITICAL\\n    }\\n\\n    struct ProposalConfig {\\n        /// @notice The delay before voting on a proposal may take place, once proposed, in blocks\\n        uint256 votingDelay;\\n        /// @notice The duration of voting on a proposal, in blocks\\n        uint256 votingPeriod;\\n        /// @notice The number of votes required in order for a voter to become a proposer\\n        uint256 proposalThreshold;\\n    }\\n\\n    /// @notice mapping containing configuration for each proposal type\\n    mapping(uint => ProposalConfig) public proposalConfigs;\\n\\n    /// @notice mapping containing Timelock addresses for each proposal type\\n    mapping(uint => TimelockInterface) public proposalTimelocks;\\n}\\n\\n/**\\n * @title GovernorBravoDelegateStorageV3\\n * @dev For future upgrades, do not change GovernorBravoDelegateStorageV3. Create a new\\n * contract which implements GovernorBravoDelegateStorageV3 and following the naming convention\\n * GovernorBravoDelegateStorageVX.\\n */\\ncontract GovernorBravoDelegateStorageV3 is GovernorBravoDelegateStorageV2 {\\n    struct ValidationParams {\\n        uint256 minVotingPeriod;\\n        uint256 maxVotingPeriod;\\n        uint256 minVotingDelay;\\n        uint256 maxVotingDelay;\\n    }\\n    /// @notice Stores the current minimum and maximum values of voting delay and voting period\\n    ValidationParams public validationParams;\\n}\\n\\n/**\\n * @title TimelockInterface\\n * @author Venus\\n * @notice Interface implemented by the Timelock contract.\\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 XvsVaultInterface {\\n    function getPriorVotes(address account, uint blockNumber) external view returns (uint96);\\n}\\n\\ninterface GovernorAlphaInterface {\\n    /// @notice The total number of proposals\\n    function proposalCount() external returns (uint);\\n}\\n\",\"keccak256\":\"0x62c89309d4351dbeb5516465211fab0b566d83d60dc0148377deaad1f1929b85\"},\"contracts/legacy/GovernorBravoInterfacesV2.sol\":{\"content\":\"pragma solidity ^0.5.16;\\npragma experimental ABIEncoderV2;\\n\\nimport { XvsVaultInterface, TimelockInterface, GovernorAlphaInterface } from \\\"../Governance/GovernorBravoInterfaces.sol\\\";\\n\\n/**\\n * @title GovernorBravoEvents\\n * @author Venus\\n * @notice Set of events emitted by the second GovernorBravo implementation contract.\\n * @dev This contract is included for archival and testing purposes.\\n */\\ncontract GovernorBravoEventsV2 {\\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        uint8 proposalType\\n    );\\n\\n    /// @notice An event emitted when a vote has been cast on a proposal\\n    /// @param voter The address which casted a vote\\n    /// @param proposalId The proposal id which was voted on\\n    /// @param support Support value for the vote. 0=against, 1=for, 2=abstain\\n    /// @param votes Number of votes which were cast by the voter\\n    /// @param reason The reason given for the vote by the voter\\n    event VoteCast(address indexed voter, uint proposalId, uint8 support, uint votes, string reason);\\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    /// @notice An event emitted when the voting delay is set\\n    event VotingDelaySet(uint oldVotingDelay, uint newVotingDelay);\\n\\n    /// @notice An event emitted when the voting period is set\\n    event VotingPeriodSet(uint oldVotingPeriod, uint newVotingPeriod);\\n\\n    /// @notice Emitted when implementation is changed\\n    event NewImplementation(address oldImplementation, address newImplementation);\\n\\n    /// @notice Emitted when proposal threshold is set\\n    event ProposalThresholdSet(uint oldProposalThreshold, uint newProposalThreshold);\\n\\n    /// @notice Emitted when pendingAdmin is changed\\n    event NewPendingAdmin(address oldPendingAdmin, address newPendingAdmin);\\n\\n    /// @notice Emitted when pendingAdmin is accepted, which means admin is updated\\n    event NewAdmin(address oldAdmin, address newAdmin);\\n\\n    /// @notice Emitted when the new guardian address is set\\n    event NewGuardian(address oldGuardian, address newGuardian);\\n\\n    /// @notice Emitted when the maximum number of operations in one proposal is updated\\n    event ProposalMaxOperationsUpdated(uint oldMaxOperations, uint newMaxOperations);\\n}\\n\\n/**\\n * @title GovernorBravoDelegatorStorage\\n * @author Venus\\n * @notice Storage layout of the `GovernorBravoDelegator` contract\\n */\\ncontract GovernorBravoDelegatorStorage {\\n    /// @notice Administrator for this contract\\n    address public admin;\\n\\n    /// @notice Pending administrator for this contract\\n    address public pendingAdmin;\\n\\n    /// @notice Active brains of Governor\\n    address public implementation;\\n}\\n\\n/**\\n * @title GovernorBravoDelegateStorageV1\\n * @dev This contract is included for archival and testing purposes.\\n */\\ncontract GovernorBravoDelegateStorageV1 is GovernorBravoDelegatorStorage {\\n    /// @notice DEPRECATED The delay before voting on a proposal may take place, once proposed, in blocks\\n    uint public votingDelay;\\n\\n    /// @notice DEPRECATED The duration of voting on a proposal, in blocks\\n    uint public votingPeriod;\\n\\n    /// @notice DEPRECATED The number of votes required in order for a voter to become a proposer\\n    uint public proposalThreshold;\\n\\n    /// @notice Initial proposal id set at become\\n    uint public initialProposalId;\\n\\n    /// @notice The total number of proposals\\n    uint public proposalCount;\\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    XvsVaultInterface public xvsVault;\\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    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 Current number of votes for abstaining for this proposal\\n        uint abstainVotes;\\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        /// @notice The type of the proposal\\n        uint8 proposalType;\\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 or abstains\\n        uint8 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 maximum number of actions that can be included in a proposal\\n    uint public proposalMaxOperations;\\n\\n    /// @notice A privileged role that can cancel any proposal\\n    address public guardian;\\n}\\n\\n/**\\n * @title GovernorBravoDelegateStorageV2\\n * @dev For future upgrades, do not change GovernorBravoDelegateStorageV2. Create a new\\n * contract which implements GovernorBravoDelegateStorageV2 and following the naming convention\\n * GovernorBravoDelegateStorageVX.\\n */\\ncontract GovernorBravoDelegateStorageV2 is GovernorBravoDelegateStorageV1 {\\n    enum ProposalType {\\n        NORMAL,\\n        FASTTRACK,\\n        CRITICAL\\n    }\\n\\n    struct ProposalConfig {\\n        /// @notice The delay before voting on a proposal may take place, once proposed, in blocks\\n        uint256 votingDelay;\\n        /// @notice The duration of voting on a proposal, in blocks\\n        uint256 votingPeriod;\\n        /// @notice The number of votes required in order for a voter to become a proposer\\n        uint256 proposalThreshold;\\n    }\\n\\n    /// @notice mapping containing configuration for each proposal type\\n    mapping(uint => ProposalConfig) public proposalConfigs;\\n\\n    /// @notice mapping containing Timelock addresses for each proposal type\\n    mapping(uint => TimelockInterface) public proposalTimelocks;\\n}\\n\",\"keccak256\":\"0x248f56ae02c43a401896c866addaa328bdd6b0265f92038baf32470183ef5736\"}},\"version\":1}","storageLayout":{"storage":[{"astId":5426,"contract":"contracts/legacy/GovernorBravoInterfacesV2.sol:GovernorBravoDelegateStorageV1","label":"admin","offset":0,"slot":"0","type":"t_address"},{"astId":5428,"contract":"contracts/legacy/GovernorBravoInterfacesV2.sol:GovernorBravoDelegateStorageV1","label":"pendingAdmin","offset":0,"slot":"1","type":"t_address"},{"astId":5430,"contract":"contracts/legacy/GovernorBravoInterfacesV2.sol:GovernorBravoDelegateStorageV1","label":"implementation","offset":0,"slot":"2","type":"t_address"},{"astId":5435,"contract":"contracts/legacy/GovernorBravoInterfacesV2.sol:GovernorBravoDelegateStorageV1","label":"votingDelay","offset":0,"slot":"3","type":"t_uint256"},{"astId":5437,"contract":"contracts/legacy/GovernorBravoInterfacesV2.sol:GovernorBravoDelegateStorageV1","label":"votingPeriod","offset":0,"slot":"4","type":"t_uint256"},{"astId":5439,"contract":"contracts/legacy/GovernorBravoInterfacesV2.sol:GovernorBravoDelegateStorageV1","label":"proposalThreshold","offset":0,"slot":"5","type":"t_uint256"},{"astId":5441,"contract":"contracts/legacy/GovernorBravoInterfacesV2.sol:GovernorBravoDelegateStorageV1","label":"initialProposalId","offset":0,"slot":"6","type":"t_uint256"},{"astId":5443,"contract":"contracts/legacy/GovernorBravoInterfacesV2.sol:GovernorBravoDelegateStorageV1","label":"proposalCount","offset":0,"slot":"7","type":"t_uint256"},{"astId":5445,"contract":"contracts/legacy/GovernorBravoInterfacesV2.sol:GovernorBravoDelegateStorageV1","label":"timelock","offset":0,"slot":"8","type":"t_contract(TimelockInterface)2007"},{"astId":5447,"contract":"contracts/legacy/GovernorBravoInterfacesV2.sol:GovernorBravoDelegateStorageV1","label":"xvsVault","offset":0,"slot":"9","type":"t_contract(XvsVaultInterface)2017"},{"astId":5451,"contract":"contracts/legacy/GovernorBravoInterfacesV2.sol:GovernorBravoDelegateStorageV1","label":"proposals","offset":0,"slot":"10","type":"t_mapping(t_uint256,t_struct(Proposal)5494_storage)"},{"astId":5455,"contract":"contracts/legacy/GovernorBravoInterfacesV2.sol:GovernorBravoDelegateStorageV1","label":"latestProposalIds","offset":0,"slot":"11","type":"t_mapping(t_address,t_uint256)"},{"astId":5512,"contract":"contracts/legacy/GovernorBravoInterfacesV2.sol:GovernorBravoDelegateStorageV1","label":"proposalMaxOperations","offset":0,"slot":"12","type":"t_uint256"},{"astId":5514,"contract":"contracts/legacy/GovernorBravoInterfacesV2.sol:GovernorBravoDelegateStorageV1","label":"guardian","offset":0,"slot":"13","type":"t_address"}],"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)2007":{"encoding":"inplace","label":"contract TimelockInterface","numberOfBytes":"20"},"t_contract(XvsVaultInterface)2017":{"encoding":"inplace","label":"contract XvsVaultInterface","numberOfBytes":"20"},"t_mapping(t_address,t_struct(Receipt)5501_storage)":{"encoding":"mapping","key":"t_address","label":"mapping(address => struct GovernorBravoDelegateStorageV1.Receipt)","numberOfBytes":"32","value":"t_struct(Receipt)5501_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)5494_storage)":{"encoding":"mapping","key":"t_uint256","label":"mapping(uint256 => struct GovernorBravoDelegateStorageV1.Proposal)","numberOfBytes":"32","value":"t_struct(Proposal)5494_storage"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_struct(Proposal)5494_storage":{"encoding":"inplace","label":"struct GovernorBravoDelegateStorageV1.Proposal","members":[{"astId":5457,"contract":"contracts/legacy/GovernorBravoInterfacesV2.sol:GovernorBravoDelegateStorageV1","label":"id","offset":0,"slot":"0","type":"t_uint256"},{"astId":5459,"contract":"contracts/legacy/GovernorBravoInterfacesV2.sol:GovernorBravoDelegateStorageV1","label":"proposer","offset":0,"slot":"1","type":"t_address"},{"astId":5461,"contract":"contracts/legacy/GovernorBravoInterfacesV2.sol:GovernorBravoDelegateStorageV1","label":"eta","offset":0,"slot":"2","type":"t_uint256"},{"astId":5464,"contract":"contracts/legacy/GovernorBravoInterfacesV2.sol:GovernorBravoDelegateStorageV1","label":"targets","offset":0,"slot":"3","type":"t_array(t_address)dyn_storage"},{"astId":5467,"contract":"contracts/legacy/GovernorBravoInterfacesV2.sol:GovernorBravoDelegateStorageV1","label":"values","offset":0,"slot":"4","type":"t_array(t_uint256)dyn_storage"},{"astId":5470,"contract":"contracts/legacy/GovernorBravoInterfacesV2.sol:GovernorBravoDelegateStorageV1","label":"signatures","offset":0,"slot":"5","type":"t_array(t_string_storage)dyn_storage"},{"astId":5473,"contract":"contracts/legacy/GovernorBravoInterfacesV2.sol:GovernorBravoDelegateStorageV1","label":"calldatas","offset":0,"slot":"6","type":"t_array(t_bytes_storage)dyn_storage"},{"astId":5475,"contract":"contracts/legacy/GovernorBravoInterfacesV2.sol:GovernorBravoDelegateStorageV1","label":"startBlock","offset":0,"slot":"7","type":"t_uint256"},{"astId":5477,"contract":"contracts/legacy/GovernorBravoInterfacesV2.sol:GovernorBravoDelegateStorageV1","label":"endBlock","offset":0,"slot":"8","type":"t_uint256"},{"astId":5479,"contract":"contracts/legacy/GovernorBravoInterfacesV2.sol:GovernorBravoDelegateStorageV1","label":"forVotes","offset":0,"slot":"9","type":"t_uint256"},{"astId":5481,"contract":"contracts/legacy/GovernorBravoInterfacesV2.sol:GovernorBravoDelegateStorageV1","label":"againstVotes","offset":0,"slot":"10","type":"t_uint256"},{"astId":5483,"contract":"contracts/legacy/GovernorBravoInterfacesV2.sol:GovernorBravoDelegateStorageV1","label":"abstainVotes","offset":0,"slot":"11","type":"t_uint256"},{"astId":5485,"contract":"contracts/legacy/GovernorBravoInterfacesV2.sol:GovernorBravoDelegateStorageV1","label":"canceled","offset":0,"slot":"12","type":"t_bool"},{"astId":5487,"contract":"contracts/legacy/GovernorBravoInterfacesV2.sol:GovernorBravoDelegateStorageV1","label":"executed","offset":1,"slot":"12","type":"t_bool"},{"astId":5491,"contract":"contracts/legacy/GovernorBravoInterfacesV2.sol:GovernorBravoDelegateStorageV1","label":"receipts","offset":0,"slot":"13","type":"t_mapping(t_address,t_struct(Receipt)5501_storage)"},{"astId":5493,"contract":"contracts/legacy/GovernorBravoInterfacesV2.sol:GovernorBravoDelegateStorageV1","label":"proposalType","offset":0,"slot":"14","type":"t_uint8"}],"numberOfBytes":"480"},"t_struct(Receipt)5501_storage":{"encoding":"inplace","label":"struct GovernorBravoDelegateStorageV1.Receipt","members":[{"astId":5496,"contract":"contracts/legacy/GovernorBravoInterfacesV2.sol:GovernorBravoDelegateStorageV1","label":"hasVoted","offset":0,"slot":"0","type":"t_bool"},{"astId":5498,"contract":"contracts/legacy/GovernorBravoInterfacesV2.sol:GovernorBravoDelegateStorageV1","label":"support","offset":1,"slot":"0","type":"t_uint8"},{"astId":5500,"contract":"contracts/legacy/GovernorBravoInterfacesV2.sol:GovernorBravoDelegateStorageV1","label":"votes","offset":2,"slot":"0","type":"t_uint96"}],"numberOfBytes":"32"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"},"t_uint96":{"encoding":"inplace","label":"uint96","numberOfBytes":"12"}}},"userdoc":{"methods":{}}},"GovernorBravoDelegateStorageV2":{"abi":[{"constant":true,"inputs":[],"name":"admin","outputs":[{"internalType":"address","name":"","type":"address"}],"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":[],"name":"implementation","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"initialProposalId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"pendingAdmin","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"proposalConfigs","outputs":[{"internalType":"uint256","name":"votingDelay","type":"uint256"},{"internalType":"uint256","name":"votingPeriod","type":"uint256"},{"internalType":"uint256","name":"proposalThreshold","type":"uint256"}],"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":"view","type":"function"},{"constant":true,"inputs":[],"name":"proposalThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"proposalTimelocks","outputs":[{"internalType":"contract TimelockInterface","name":"","type":"address"}],"payable":false,"stateMutability":"view","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":"uint256","name":"abstainVotes","type":"uint256"},{"internalType":"bool","name":"canceled","type":"bool"},{"internalType":"bool","name":"executed","type":"bool"},{"internalType":"uint8","name":"proposalType","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":"view","type":"function"},{"constant":true,"inputs":[],"name":"votingPeriod","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"xvsVault","outputs":[{"internalType":"contract XvsVaultInterface","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}],"devdoc":{"details":"For future upgrades, do not change GovernorBravoDelegateStorageV2. Create a new contract which implements GovernorBravoDelegateStorageV2 and following the naming convention GovernorBravoDelegateStorageVX.","methods":{},"title":"GovernorBravoDelegateStorageV2"},"evm":{"bytecode":{"linkReferences":{},"object":"608060405234801561001057600080fd5b5061055b806100206000396000f3fe608060405234801561001057600080fd5b50600436106101005760003560e01c80635c60da1b11610097578063da35c66411610066578063da35c664146101dc578063ee9799ee146101e4578063f851a440146101f7578063fc4eee42146101ff57610100565b80635c60da1b146101bc5780637bdbe4d0146101c4578063b58131b0146101cc578063d33219b4146101d457610100565b806326782247116100d3578063267822471461017557806335a87de21461018a5780633932abb1146101ac578063452a9320146101b457610100565b8063013cf08b1461010557806302a251a31461013857806317977c611461014d5780631b9ce57514610160575b600080fd5b610118610113366004610381565b610207565b60405161012f9b9a999897969594939291906103fc565b60405180910390f35b610140610273565b60405161012f91906103ee565b61014061015b36600461035b565b610279565b61016861028b565b60405161012f91906103e0565b61017d61029a565b60405161012f91906103d2565b61019d610198366004610381565b6102a9565b60405161012f939291906104a0565b6101406102ca565b61017d6102d0565b61017d6102df565b6101406102ee565b6101406102f4565b6101686102fa565b610140610309565b6101686101f2366004610381565b61030f565b61017d61032a565b610140610339565b600a60208190526000918252604090912080546001820154600283015460078401546008850154600986015496860154600b870154600c880154600e9098015496986001600160a01b039096169794969395929492939192909160ff808316926101009004811691168b565b60045481565b600b6020526000908152604090205481565b6009546001600160a01b031681565b6001546001600160a01b031681565b600e6020526000908152604090208054600182015460029092015490919083565b60035481565b600d546001600160a01b031681565b6002546001600160a01b031681565b600c5481565b60055481565b6008546001600160a01b031681565b60075481565b600f602052600090815260409020546001600160a01b031681565b6000546001600160a01b031681565b60065481565b803561034a816104f8565b92915050565b803561034a8161050f565b60006020828403121561036d57600080fd5b6000610379848461033f565b949350505050565b60006020828403121561039357600080fd5b60006103798484610350565b6103a8816104c8565b82525050565b6103a8816104d3565b6103a8816104ed565b6103a8816104e4565b6103a8816104e7565b6020810161034a828461039f565b6020810161034a82846103b7565b6020810161034a82846103c0565b610160810161040b828e6103c0565b610418602083018d61039f565b610425604083018c6103c0565b610432606083018b6103c0565b61043f608083018a6103c0565b61044c60a08301896103c0565b61045960c08301886103c0565b61046660e08301876103c0565b6104746101008301866103ae565b6104826101208301856103ae565b6104906101408301846103c9565b9c9b505050505050505050505050565b606081016104ae82866103c0565b6104bb60208301856103c0565b61037960408301846103c0565b600061034a826104d8565b151590565b6001600160a01b031690565b90565b60ff1690565b600061034a826104c8565b610501816104c8565b811461050c57600080fd5b50565b610501816104e456fea365627a7a723158201bd9d0ed166809c5f8f7b8c9f870d08a32cc53198f845512f17479597e3994166c6578706572696d656e74616cf564736f6c63430005100040","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x55B DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x100 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x5C60DA1B GT PUSH2 0x97 JUMPI DUP1 PUSH4 0xDA35C664 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0xDA35C664 EQ PUSH2 0x1DC JUMPI DUP1 PUSH4 0xEE9799EE EQ PUSH2 0x1E4 JUMPI DUP1 PUSH4 0xF851A440 EQ PUSH2 0x1F7 JUMPI DUP1 PUSH4 0xFC4EEE42 EQ PUSH2 0x1FF JUMPI PUSH2 0x100 JUMP JUMPDEST DUP1 PUSH4 0x5C60DA1B EQ PUSH2 0x1BC JUMPI DUP1 PUSH4 0x7BDBE4D0 EQ PUSH2 0x1C4 JUMPI DUP1 PUSH4 0xB58131B0 EQ PUSH2 0x1CC JUMPI DUP1 PUSH4 0xD33219B4 EQ PUSH2 0x1D4 JUMPI PUSH2 0x100 JUMP JUMPDEST DUP1 PUSH4 0x26782247 GT PUSH2 0xD3 JUMPI DUP1 PUSH4 0x26782247 EQ PUSH2 0x175 JUMPI DUP1 PUSH4 0x35A87DE2 EQ PUSH2 0x18A JUMPI DUP1 PUSH4 0x3932ABB1 EQ PUSH2 0x1AC JUMPI DUP1 PUSH4 0x452A9320 EQ PUSH2 0x1B4 JUMPI PUSH2 0x100 JUMP JUMPDEST DUP1 PUSH4 0x13CF08B EQ PUSH2 0x105 JUMPI DUP1 PUSH4 0x2A251A3 EQ PUSH2 0x138 JUMPI DUP1 PUSH4 0x17977C61 EQ PUSH2 0x14D JUMPI DUP1 PUSH4 0x1B9CE575 EQ PUSH2 0x160 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x118 PUSH2 0x113 CALLDATASIZE PUSH1 0x4 PUSH2 0x381 JUMP JUMPDEST PUSH2 0x207 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x12F SWAP12 SWAP11 SWAP10 SWAP9 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3FC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x140 PUSH2 0x273 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x12F SWAP2 SWAP1 PUSH2 0x3EE JUMP JUMPDEST PUSH2 0x140 PUSH2 0x15B CALLDATASIZE PUSH1 0x4 PUSH2 0x35B JUMP JUMPDEST PUSH2 0x279 JUMP JUMPDEST PUSH2 0x168 PUSH2 0x28B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x12F SWAP2 SWAP1 PUSH2 0x3E0 JUMP JUMPDEST PUSH2 0x17D PUSH2 0x29A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x12F SWAP2 SWAP1 PUSH2 0x3D2 JUMP JUMPDEST PUSH2 0x19D PUSH2 0x198 CALLDATASIZE PUSH1 0x4 PUSH2 0x381 JUMP JUMPDEST PUSH2 0x2A9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x12F SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4A0 JUMP JUMPDEST PUSH2 0x140 PUSH2 0x2CA JUMP JUMPDEST PUSH2 0x17D PUSH2 0x2D0 JUMP JUMPDEST PUSH2 0x17D PUSH2 0x2DF JUMP JUMPDEST PUSH2 0x140 PUSH2 0x2EE JUMP JUMPDEST PUSH2 0x140 PUSH2 0x2F4 JUMP JUMPDEST PUSH2 0x168 PUSH2 0x2FA JUMP JUMPDEST PUSH2 0x140 PUSH2 0x309 JUMP JUMPDEST PUSH2 0x168 PUSH2 0x1F2 CALLDATASIZE PUSH1 0x4 PUSH2 0x381 JUMP JUMPDEST PUSH2 0x30F JUMP JUMPDEST PUSH2 0x17D PUSH2 0x32A JUMP JUMPDEST PUSH2 0x140 PUSH2 0x339 JUMP JUMPDEST PUSH1 0xA PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x40 SWAP1 SWAP2 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 SWAP7 DUP7 ADD SLOAD PUSH1 0xB DUP8 ADD SLOAD PUSH1 0xC DUP9 ADD SLOAD PUSH1 0xE SWAP1 SWAP9 ADD SLOAD SWAP7 SWAP9 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP7 AND SWAP8 SWAP5 SWAP7 SWAP4 SWAP6 SWAP3 SWAP5 SWAP3 SWAP4 SWAP2 SWAP3 SWAP1 SWAP2 PUSH1 0xFF DUP1 DUP4 AND SWAP3 PUSH2 0x100 SWAP1 DIV DUP2 AND SWAP2 AND DUP12 JUMP JUMPDEST PUSH1 0x4 SLOAD DUP2 JUMP JUMPDEST PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0xE PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0x2 SWAP1 SWAP3 ADD SLOAD SWAP1 SWAP2 SWAP1 DUP4 JUMP JUMPDEST PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH1 0xD 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 DUP2 JUMP JUMPDEST PUSH1 0xC SLOAD DUP2 JUMP JUMPDEST PUSH1 0x5 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x7 SLOAD DUP2 JUMP JUMPDEST PUSH1 0xF PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x6 SLOAD DUP2 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x34A DUP2 PUSH2 0x4F8 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x34A DUP2 PUSH2 0x50F JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x36D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x379 DUP5 DUP5 PUSH2 0x33F JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x393 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x379 DUP5 DUP5 PUSH2 0x350 JUMP JUMPDEST PUSH2 0x3A8 DUP2 PUSH2 0x4C8 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x3A8 DUP2 PUSH2 0x4D3 JUMP JUMPDEST PUSH2 0x3A8 DUP2 PUSH2 0x4ED JUMP JUMPDEST PUSH2 0x3A8 DUP2 PUSH2 0x4E4 JUMP JUMPDEST PUSH2 0x3A8 DUP2 PUSH2 0x4E7 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x34A DUP3 DUP5 PUSH2 0x39F JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x34A DUP3 DUP5 PUSH2 0x3B7 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x34A DUP3 DUP5 PUSH2 0x3C0 JUMP JUMPDEST PUSH2 0x160 DUP2 ADD PUSH2 0x40B DUP3 DUP15 PUSH2 0x3C0 JUMP JUMPDEST PUSH2 0x418 PUSH1 0x20 DUP4 ADD DUP14 PUSH2 0x39F JUMP JUMPDEST PUSH2 0x425 PUSH1 0x40 DUP4 ADD DUP13 PUSH2 0x3C0 JUMP JUMPDEST PUSH2 0x432 PUSH1 0x60 DUP4 ADD DUP12 PUSH2 0x3C0 JUMP JUMPDEST PUSH2 0x43F PUSH1 0x80 DUP4 ADD DUP11 PUSH2 0x3C0 JUMP JUMPDEST PUSH2 0x44C PUSH1 0xA0 DUP4 ADD DUP10 PUSH2 0x3C0 JUMP JUMPDEST PUSH2 0x459 PUSH1 0xC0 DUP4 ADD DUP9 PUSH2 0x3C0 JUMP JUMPDEST PUSH2 0x466 PUSH1 0xE0 DUP4 ADD DUP8 PUSH2 0x3C0 JUMP JUMPDEST PUSH2 0x474 PUSH2 0x100 DUP4 ADD DUP7 PUSH2 0x3AE JUMP JUMPDEST PUSH2 0x482 PUSH2 0x120 DUP4 ADD DUP6 PUSH2 0x3AE JUMP JUMPDEST PUSH2 0x490 PUSH2 0x140 DUP4 ADD DUP5 PUSH2 0x3C9 JUMP JUMPDEST SWAP13 SWAP12 POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP2 ADD PUSH2 0x4AE DUP3 DUP7 PUSH2 0x3C0 JUMP JUMPDEST PUSH2 0x4BB PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x3C0 JUMP JUMPDEST PUSH2 0x379 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x3C0 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x34A DUP3 PUSH2 0x4D8 JUMP JUMPDEST ISZERO ISZERO SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x34A DUP3 PUSH2 0x4C8 JUMP JUMPDEST PUSH2 0x501 DUP2 PUSH2 0x4C8 JUMP JUMPDEST DUP2 EQ PUSH2 0x50C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x501 DUP2 PUSH2 0x4E4 JUMP INVALID LOG3 PUSH6 0x627A7A723158 KECCAK256 SHL 0xD9 0xD0 0xED AND PUSH9 0x9C5F8F7B8C9F870D0 DUP11 ORIGIN 0xCC MSTORE8 NOT DUP16 DUP5 SSTORE SLT CALL PUSH21 0x79597E3994166C6578706572696D656E74616CF564 PUSH20 0x6F6C634300051000400000000000000000000000 ","sourceMap":"7051:822:8:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7051:822:8;;;;;;;"},"deployedBytecode":{"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106101005760003560e01c80635c60da1b11610097578063da35c66411610066578063da35c664146101dc578063ee9799ee146101e4578063f851a440146101f7578063fc4eee42146101ff57610100565b80635c60da1b146101bc5780637bdbe4d0146101c4578063b58131b0146101cc578063d33219b4146101d457610100565b806326782247116100d3578063267822471461017557806335a87de21461018a5780633932abb1146101ac578063452a9320146101b457610100565b8063013cf08b1461010557806302a251a31461013857806317977c611461014d5780631b9ce57514610160575b600080fd5b610118610113366004610381565b610207565b60405161012f9b9a999897969594939291906103fc565b60405180910390f35b610140610273565b60405161012f91906103ee565b61014061015b36600461035b565b610279565b61016861028b565b60405161012f91906103e0565b61017d61029a565b60405161012f91906103d2565b61019d610198366004610381565b6102a9565b60405161012f939291906104a0565b6101406102ca565b61017d6102d0565b61017d6102df565b6101406102ee565b6101406102f4565b6101686102fa565b610140610309565b6101686101f2366004610381565b61030f565b61017d61032a565b610140610339565b600a60208190526000918252604090912080546001820154600283015460078401546008850154600986015496860154600b870154600c880154600e9098015496986001600160a01b039096169794969395929492939192909160ff808316926101009004811691168b565b60045481565b600b6020526000908152604090205481565b6009546001600160a01b031681565b6001546001600160a01b031681565b600e6020526000908152604090208054600182015460029092015490919083565b60035481565b600d546001600160a01b031681565b6002546001600160a01b031681565b600c5481565b60055481565b6008546001600160a01b031681565b60075481565b600f602052600090815260409020546001600160a01b031681565b6000546001600160a01b031681565b60065481565b803561034a816104f8565b92915050565b803561034a8161050f565b60006020828403121561036d57600080fd5b6000610379848461033f565b949350505050565b60006020828403121561039357600080fd5b60006103798484610350565b6103a8816104c8565b82525050565b6103a8816104d3565b6103a8816104ed565b6103a8816104e4565b6103a8816104e7565b6020810161034a828461039f565b6020810161034a82846103b7565b6020810161034a82846103c0565b610160810161040b828e6103c0565b610418602083018d61039f565b610425604083018c6103c0565b610432606083018b6103c0565b61043f608083018a6103c0565b61044c60a08301896103c0565b61045960c08301886103c0565b61046660e08301876103c0565b6104746101008301866103ae565b6104826101208301856103ae565b6104906101408301846103c9565b9c9b505050505050505050505050565b606081016104ae82866103c0565b6104bb60208301856103c0565b61037960408301846103c0565b600061034a826104d8565b151590565b6001600160a01b031690565b90565b60ff1690565b600061034a826104c8565b610501816104c8565b811461050c57600080fd5b50565b610501816104e456fea365627a7a723158201bd9d0ed166809c5f8f7b8c9f870d08a32cc53198f845512f17479597e3994166c6578706572696d656e74616cf564736f6c63430005100040","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x100 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x5C60DA1B GT PUSH2 0x97 JUMPI DUP1 PUSH4 0xDA35C664 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0xDA35C664 EQ PUSH2 0x1DC JUMPI DUP1 PUSH4 0xEE9799EE EQ PUSH2 0x1E4 JUMPI DUP1 PUSH4 0xF851A440 EQ PUSH2 0x1F7 JUMPI DUP1 PUSH4 0xFC4EEE42 EQ PUSH2 0x1FF JUMPI PUSH2 0x100 JUMP JUMPDEST DUP1 PUSH4 0x5C60DA1B EQ PUSH2 0x1BC JUMPI DUP1 PUSH4 0x7BDBE4D0 EQ PUSH2 0x1C4 JUMPI DUP1 PUSH4 0xB58131B0 EQ PUSH2 0x1CC JUMPI DUP1 PUSH4 0xD33219B4 EQ PUSH2 0x1D4 JUMPI PUSH2 0x100 JUMP JUMPDEST DUP1 PUSH4 0x26782247 GT PUSH2 0xD3 JUMPI DUP1 PUSH4 0x26782247 EQ PUSH2 0x175 JUMPI DUP1 PUSH4 0x35A87DE2 EQ PUSH2 0x18A JUMPI DUP1 PUSH4 0x3932ABB1 EQ PUSH2 0x1AC JUMPI DUP1 PUSH4 0x452A9320 EQ PUSH2 0x1B4 JUMPI PUSH2 0x100 JUMP JUMPDEST DUP1 PUSH4 0x13CF08B EQ PUSH2 0x105 JUMPI DUP1 PUSH4 0x2A251A3 EQ PUSH2 0x138 JUMPI DUP1 PUSH4 0x17977C61 EQ PUSH2 0x14D JUMPI DUP1 PUSH4 0x1B9CE575 EQ PUSH2 0x160 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x118 PUSH2 0x113 CALLDATASIZE PUSH1 0x4 PUSH2 0x381 JUMP JUMPDEST PUSH2 0x207 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x12F SWAP12 SWAP11 SWAP10 SWAP9 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3FC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x140 PUSH2 0x273 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x12F SWAP2 SWAP1 PUSH2 0x3EE JUMP JUMPDEST PUSH2 0x140 PUSH2 0x15B CALLDATASIZE PUSH1 0x4 PUSH2 0x35B JUMP JUMPDEST PUSH2 0x279 JUMP JUMPDEST PUSH2 0x168 PUSH2 0x28B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x12F SWAP2 SWAP1 PUSH2 0x3E0 JUMP JUMPDEST PUSH2 0x17D PUSH2 0x29A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x12F SWAP2 SWAP1 PUSH2 0x3D2 JUMP JUMPDEST PUSH2 0x19D PUSH2 0x198 CALLDATASIZE PUSH1 0x4 PUSH2 0x381 JUMP JUMPDEST PUSH2 0x2A9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x12F SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4A0 JUMP JUMPDEST PUSH2 0x140 PUSH2 0x2CA JUMP JUMPDEST PUSH2 0x17D PUSH2 0x2D0 JUMP JUMPDEST PUSH2 0x17D PUSH2 0x2DF JUMP JUMPDEST PUSH2 0x140 PUSH2 0x2EE JUMP JUMPDEST PUSH2 0x140 PUSH2 0x2F4 JUMP JUMPDEST PUSH2 0x168 PUSH2 0x2FA JUMP JUMPDEST PUSH2 0x140 PUSH2 0x309 JUMP JUMPDEST PUSH2 0x168 PUSH2 0x1F2 CALLDATASIZE PUSH1 0x4 PUSH2 0x381 JUMP JUMPDEST PUSH2 0x30F JUMP JUMPDEST PUSH2 0x17D PUSH2 0x32A JUMP JUMPDEST PUSH2 0x140 PUSH2 0x339 JUMP JUMPDEST PUSH1 0xA PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x40 SWAP1 SWAP2 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 SWAP7 DUP7 ADD SLOAD PUSH1 0xB DUP8 ADD SLOAD PUSH1 0xC DUP9 ADD SLOAD PUSH1 0xE SWAP1 SWAP9 ADD SLOAD SWAP7 SWAP9 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP7 AND SWAP8 SWAP5 SWAP7 SWAP4 SWAP6 SWAP3 SWAP5 SWAP3 SWAP4 SWAP2 SWAP3 SWAP1 SWAP2 PUSH1 0xFF DUP1 DUP4 AND SWAP3 PUSH2 0x100 SWAP1 DIV DUP2 AND SWAP2 AND DUP12 JUMP JUMPDEST PUSH1 0x4 SLOAD DUP2 JUMP JUMPDEST PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0xE PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0x2 SWAP1 SWAP3 ADD SLOAD SWAP1 SWAP2 SWAP1 DUP4 JUMP JUMPDEST PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH1 0xD 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 DUP2 JUMP JUMPDEST PUSH1 0xC SLOAD DUP2 JUMP JUMPDEST PUSH1 0x5 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x7 SLOAD DUP2 JUMP JUMPDEST PUSH1 0xF PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x6 SLOAD DUP2 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x34A DUP2 PUSH2 0x4F8 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x34A DUP2 PUSH2 0x50F JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x36D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x379 DUP5 DUP5 PUSH2 0x33F JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x393 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x379 DUP5 DUP5 PUSH2 0x350 JUMP JUMPDEST PUSH2 0x3A8 DUP2 PUSH2 0x4C8 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x3A8 DUP2 PUSH2 0x4D3 JUMP JUMPDEST PUSH2 0x3A8 DUP2 PUSH2 0x4ED JUMP JUMPDEST PUSH2 0x3A8 DUP2 PUSH2 0x4E4 JUMP JUMPDEST PUSH2 0x3A8 DUP2 PUSH2 0x4E7 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x34A DUP3 DUP5 PUSH2 0x39F JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x34A DUP3 DUP5 PUSH2 0x3B7 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x34A DUP3 DUP5 PUSH2 0x3C0 JUMP JUMPDEST PUSH2 0x160 DUP2 ADD PUSH2 0x40B DUP3 DUP15 PUSH2 0x3C0 JUMP JUMPDEST PUSH2 0x418 PUSH1 0x20 DUP4 ADD DUP14 PUSH2 0x39F JUMP JUMPDEST PUSH2 0x425 PUSH1 0x40 DUP4 ADD DUP13 PUSH2 0x3C0 JUMP JUMPDEST PUSH2 0x432 PUSH1 0x60 DUP4 ADD DUP12 PUSH2 0x3C0 JUMP JUMPDEST PUSH2 0x43F PUSH1 0x80 DUP4 ADD DUP11 PUSH2 0x3C0 JUMP JUMPDEST PUSH2 0x44C PUSH1 0xA0 DUP4 ADD DUP10 PUSH2 0x3C0 JUMP JUMPDEST PUSH2 0x459 PUSH1 0xC0 DUP4 ADD DUP9 PUSH2 0x3C0 JUMP JUMPDEST PUSH2 0x466 PUSH1 0xE0 DUP4 ADD DUP8 PUSH2 0x3C0 JUMP JUMPDEST PUSH2 0x474 PUSH2 0x100 DUP4 ADD DUP7 PUSH2 0x3AE JUMP JUMPDEST PUSH2 0x482 PUSH2 0x120 DUP4 ADD DUP6 PUSH2 0x3AE JUMP JUMPDEST PUSH2 0x490 PUSH2 0x140 DUP4 ADD DUP5 PUSH2 0x3C9 JUMP JUMPDEST SWAP13 SWAP12 POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP2 ADD PUSH2 0x4AE DUP3 DUP7 PUSH2 0x3C0 JUMP JUMPDEST PUSH2 0x4BB PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x3C0 JUMP JUMPDEST PUSH2 0x379 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x3C0 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x34A DUP3 PUSH2 0x4D8 JUMP JUMPDEST ISZERO ISZERO SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x34A DUP3 PUSH2 0x4C8 JUMP JUMPDEST PUSH2 0x501 DUP2 PUSH2 0x4C8 JUMP JUMPDEST DUP2 EQ PUSH2 0x50C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x501 DUP2 PUSH2 0x4E4 JUMP INVALID LOG3 PUSH6 0x627A7A723158 KECCAK256 SHL 0xD9 0xD0 0xED AND PUSH9 0x9C5F8F7B8C9F870D0 DUP11 ORIGIN 0xCC MSTORE8 NOT DUP16 DUP5 SSTORE SLT CALL PUSH21 0x79597E3994166C6578706572696D656E74616CF564 PUSH20 0x6F6C634300051000400000000000000000000000 ","sourceMap":"7051:822:8:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7051:822:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4173:42;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;3580:24;;;:::i;:::-;;;;;;;;4276:49;;;;;;;;;:::i;4066:33::-;;;:::i;:::-;;;;;;;;3062:27;;;:::i;:::-;;;;;;;;7673:54;;;;;;;;;:::i;:::-;;;;;;;;;;3475:23;;;:::i;6755:::-;;;:::i;3138:29::-;;;:::i;6652:33::-;;;:::i;3709:29::-;;;:::i;3968:33::-;;;:::i;3877:25::-;;;:::i;7811:59::-;;;;;;;;;:::i;2979:20::-;;;:::i;3795:29::-;;;:::i;4173:42::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4173:42:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3580:24::-;;;;:::o;4276:49::-;;;;;;;;;;;;;:::o;4066:33::-;;;-1:-1:-1;;;;;4066:33:8;;:::o;3062:27::-;;;-1:-1:-1;;;;;3062:27:8;;:::o;7673:54::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3475:23::-;;;;:::o;6755:::-;;;-1:-1:-1;;;;;6755:23:8;;:::o;3138:29::-;;;-1:-1:-1;;;;;3138:29:8;;:::o;6652:33::-;;;;:::o;3709:29::-;;;;:::o;3968:33::-;;;-1:-1:-1;;;;;3968:33:8;;:::o;3877:25::-;;;;:::o;7811:59::-;;;;;;;;;;;;-1:-1:-1;;;;;7811:59:8;;:::o;2979:20::-;;;-1:-1:-1;;;;;2979:20:8;;:::o;3795:29::-;;;;:::o;5:130:-1:-;72:20;;97:33;72:20;97:33;;;57:78;;;;;142:130;209:20;;234:33;209:20;234:33;;279:241;;383:2;371:9;362:7;358:23;354:32;351:2;;;399:1;396;389:12;351:2;434:1;451:53;496:7;476:9;451:53;;;441:63;345:175;-1:-1;;;;345:175;527:241;;631:2;619:9;610:7;606:23;602:32;599:2;;;647:1;644;637:12;599:2;682:1;699:53;744:7;724:9;699:53;;775:113;858:24;876:5;858:24;;;853:3;846:37;840:48;;;895:104;972:21;987:5;972:21;;1006:178;1115:63;1172:5;1115:63;;1376:113;1459:24;1477:5;1459:24;;1496:107;1575:22;1591:5;1575:22;;1610:213;1728:2;1713:18;;1742:71;1717:9;1786:6;1742:71;;1830:265;1974:2;1959:18;;1988:97;1963:9;2058:6;1988:97;;2374:213;2492:2;2477:18;;2506:71;2481:9;2550:6;2506:71;;2594:1301;2977:3;2962:19;;2992:71;2966:9;3036:6;2992:71;;;3074:72;3142:2;3131:9;3127:18;3118:6;3074:72;;;3157;3225:2;3214:9;3210:18;3201:6;3157:72;;;3240;3308:2;3297:9;3293:18;3284:6;3240:72;;;3323:73;3391:3;3380:9;3376:19;3367:6;3323:73;;;3407;3475:3;3464:9;3460:19;3451:6;3407:73;;;3491;3559:3;3548:9;3544:19;3535:6;3491:73;;;3575;3643:3;3632:9;3628:19;3619:6;3575:73;;;3659:67;3721:3;3710:9;3706:19;3697:6;3659:67;;;3737;3799:3;3788:9;3784:19;3775:6;3737:67;;;3815:70;3880:3;3869:9;3865:19;3855:7;3815:70;;;2948:947;;;;;;;;;;;;;;;3902:435;4076:2;4061:18;;4090:71;4065:9;4134:6;4090:71;;;4172:72;4240:2;4229:9;4225:18;4216:6;4172:72;;;4255;4323:2;4312:9;4308:18;4299:6;4255:72;;4344:91;;4406:24;4424:5;4406:24;;4442:85;4508:13;4501:21;;4484:43;4534:121;-1:-1;;;;;4596:54;;4579:76;4662:72;4724:5;4707:27;4741:81;4812:4;4801:16;;4784:38;4829:173;;4934:63;4991:5;4934:63;;5471:117;5540:24;5558:5;5540:24;;;5533:5;5530:35;5520:2;;5579:1;5576;5569:12;5520:2;5514:74;;5595:117;5664:24;5682:5;5664:24;"},"gasEstimates":{"creation":{"codeDepositCost":"274200","executionCost":"312","totalCost":"274512"},"external":{"admin()":"infinite","guardian()":"infinite","implementation()":"infinite","initialProposalId()":"1187","latestProposalIds(address)":"infinite","pendingAdmin()":"infinite","proposalConfigs(uint256)":"infinite","proposalCount()":"1121","proposalMaxOperations()":"1144","proposalThreshold()":"1166","proposalTimelocks(uint256)":"infinite","proposals(uint256)":"infinite","timelock()":"infinite","votingDelay()":"1166","votingPeriod()":"1145","xvsVault()":"infinite"}},"methodIdentifiers":{"admin()":"f851a440","guardian()":"452a9320","implementation()":"5c60da1b","initialProposalId()":"fc4eee42","latestProposalIds(address)":"17977c61","pendingAdmin()":"26782247","proposalConfigs(uint256)":"35a87de2","proposalCount()":"da35c664","proposalMaxOperations()":"7bdbe4d0","proposalThreshold()":"b58131b0","proposalTimelocks(uint256)":"ee9799ee","proposals(uint256)":"013cf08b","timelock()":"d33219b4","votingDelay()":"3932abb1","votingPeriod()":"02a251a3","xvsVault()":"1b9ce575"}},"metadata":"{\"compiler\":{\"version\":\"0.5.16+commit.9c3226ce\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[],\"name\":\"admin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"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\":[],\"name\":\"implementation\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"initialProposalId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"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\":\"pendingAdmin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"proposalConfigs\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"votingDelay\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"votingPeriod\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"proposalThreshold\",\"type\":\"uint256\"}],\"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\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"proposalThreshold\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"proposalTimelocks\",\"outputs\":[{\"internalType\":\"contract TimelockInterface\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"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\":\"uint256\",\"name\":\"abstainVotes\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"canceled\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"executed\",\"type\":\"bool\"},{\"internalType\":\"uint8\",\"name\":\"proposalType\",\"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\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"votingPeriod\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"xvsVault\",\"outputs\":[{\"internalType\":\"contract XvsVaultInterface\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"For future upgrades, do not change GovernorBravoDelegateStorageV2. Create a new contract which implements GovernorBravoDelegateStorageV2 and following the naming convention GovernorBravoDelegateStorageVX.\",\"methods\":{},\"title\":\"GovernorBravoDelegateStorageV2\"},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"contracts/legacy/GovernorBravoInterfacesV2.sol\":\"GovernorBravoDelegateStorageV2\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/Governance/GovernorBravoInterfaces.sol\":{\"content\":\"pragma solidity ^0.5.16;\\npragma experimental ABIEncoderV2;\\n\\n/**\\n * @title GovernorBravoEvents\\n * @author Venus\\n * @notice Set of events emitted by the GovernorBravo contracts.\\n */\\ncontract GovernorBravoEvents {\\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        uint8 proposalType\\n    );\\n\\n    /// @notice An event emitted when a vote has been cast on a proposal\\n    /// @param voter The address which casted a vote\\n    /// @param proposalId The proposal id which was voted on\\n    /// @param support Support value for the vote. 0=against, 1=for, 2=abstain\\n    /// @param votes Number of votes which were cast by the voter\\n    /// @param reason The reason given for the vote by the voter\\n    event VoteCast(address indexed voter, uint proposalId, uint8 support, uint votes, string reason);\\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    /// @notice An event emitted when the voting delay is set\\n    event VotingDelaySet(uint oldVotingDelay, uint newVotingDelay);\\n\\n    /// @notice An event emitted when the voting period is set\\n    event VotingPeriodSet(uint oldVotingPeriod, uint newVotingPeriod);\\n\\n    /// @notice Emitted when implementation is changed\\n    event NewImplementation(address oldImplementation, address newImplementation);\\n\\n    /// @notice Emitted when proposal threshold is set\\n    event ProposalThresholdSet(uint oldProposalThreshold, uint newProposalThreshold);\\n\\n    /// @notice Emitted when pendingAdmin is changed\\n    event NewPendingAdmin(address oldPendingAdmin, address newPendingAdmin);\\n\\n    /// @notice Emitted when pendingAdmin is accepted, which means admin is updated\\n    event NewAdmin(address oldAdmin, address newAdmin);\\n\\n    /// @notice Emitted when the new guardian address is set\\n    event NewGuardian(address oldGuardian, address newGuardian);\\n\\n    /// @notice Emitted when the maximum number of operations in one proposal is updated\\n    event ProposalMaxOperationsUpdated(uint oldMaxOperations, uint newMaxOperations);\\n\\n    /// @notice Emitted when the new validation params are set\\n    event SetValidationParams(\\n        uint256 oldMinVotingPeriod,\\n        uint256 newMinVotingPeriod,\\n        uint256 oldmaxVotingPeriod,\\n        uint256 newmaxVotingPeriod,\\n        uint256 oldminVotingDelay,\\n        uint256 newminVotingDelay,\\n        uint256 oldmaxVotingDelay,\\n        uint256 newmaxVotingDelay\\n    );\\n\\n    /// @notice Emitted when new Proposal configs added\\n    event SetProposalConfigs(uint256 votingPeriod, uint256 votingDelay, uint256 proposalThreshold);\\n}\\n\\n/**\\n * @title GovernorBravoDelegatorStorage\\n * @author Venus\\n * @notice Storage layout of the `GovernorBravoDelegator` contract\\n */\\ncontract GovernorBravoDelegatorStorage {\\n    /// @notice Administrator for this contract\\n    address public admin;\\n\\n    /// @notice Pending administrator for this contract\\n    address public pendingAdmin;\\n\\n    /// @notice Active brains of Governor\\n    address public implementation;\\n}\\n\\n/**\\n * @title GovernorBravoDelegateStorageV1\\n * @dev For future upgrades, do not change GovernorBravoDelegateStorageV1. Create a new\\n * contract which implements GovernorBravoDelegateStorageV1 and following the naming convention\\n * GovernorBravoDelegateStorageVX.\\n */\\ncontract GovernorBravoDelegateStorageV1 is GovernorBravoDelegatorStorage {\\n    /// @notice DEPRECATED The delay before voting on a proposal may take place, once proposed, in blocks\\n    uint public votingDelay;\\n\\n    /// @notice DEPRECATED The duration of voting on a proposal, in blocks\\n    uint public votingPeriod;\\n\\n    /// @notice DEPRECATED The number of votes required in order for a voter to become a proposer\\n    uint public proposalThreshold;\\n\\n    /// @notice Initial proposal id set at become\\n    uint public initialProposalId;\\n\\n    /// @notice The total number of proposals\\n    uint public proposalCount;\\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    XvsVaultInterface public xvsVault;\\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    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 Current number of votes for abstaining for this proposal\\n        uint abstainVotes;\\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        /// @notice The type of the proposal\\n        uint8 proposalType;\\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 or abstains\\n        uint8 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 maximum number of actions that can be included in a proposal\\n    uint public proposalMaxOperations;\\n\\n    /// @notice A privileged role that can cancel any proposal\\n    address public guardian;\\n}\\n\\n/**\\n * @title GovernorBravoDelegateStorageV2\\n * @dev For future upgrades, do not change GovernorBravoDelegateStorageV2. Create a new\\n * contract which implements GovernorBravoDelegateStorageV2 and following the naming convention\\n * GovernorBravoDelegateStorageVX.\\n */\\ncontract GovernorBravoDelegateStorageV2 is GovernorBravoDelegateStorageV1 {\\n    enum ProposalType {\\n        NORMAL,\\n        FASTTRACK,\\n        CRITICAL\\n    }\\n\\n    struct ProposalConfig {\\n        /// @notice The delay before voting on a proposal may take place, once proposed, in blocks\\n        uint256 votingDelay;\\n        /// @notice The duration of voting on a proposal, in blocks\\n        uint256 votingPeriod;\\n        /// @notice The number of votes required in order for a voter to become a proposer\\n        uint256 proposalThreshold;\\n    }\\n\\n    /// @notice mapping containing configuration for each proposal type\\n    mapping(uint => ProposalConfig) public proposalConfigs;\\n\\n    /// @notice mapping containing Timelock addresses for each proposal type\\n    mapping(uint => TimelockInterface) public proposalTimelocks;\\n}\\n\\n/**\\n * @title GovernorBravoDelegateStorageV3\\n * @dev For future upgrades, do not change GovernorBravoDelegateStorageV3. Create a new\\n * contract which implements GovernorBravoDelegateStorageV3 and following the naming convention\\n * GovernorBravoDelegateStorageVX.\\n */\\ncontract GovernorBravoDelegateStorageV3 is GovernorBravoDelegateStorageV2 {\\n    struct ValidationParams {\\n        uint256 minVotingPeriod;\\n        uint256 maxVotingPeriod;\\n        uint256 minVotingDelay;\\n        uint256 maxVotingDelay;\\n    }\\n    /// @notice Stores the current minimum and maximum values of voting delay and voting period\\n    ValidationParams public validationParams;\\n}\\n\\n/**\\n * @title TimelockInterface\\n * @author Venus\\n * @notice Interface implemented by the Timelock contract.\\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 XvsVaultInterface {\\n    function getPriorVotes(address account, uint blockNumber) external view returns (uint96);\\n}\\n\\ninterface GovernorAlphaInterface {\\n    /// @notice The total number of proposals\\n    function proposalCount() external returns (uint);\\n}\\n\",\"keccak256\":\"0x62c89309d4351dbeb5516465211fab0b566d83d60dc0148377deaad1f1929b85\"},\"contracts/legacy/GovernorBravoInterfacesV2.sol\":{\"content\":\"pragma solidity ^0.5.16;\\npragma experimental ABIEncoderV2;\\n\\nimport { XvsVaultInterface, TimelockInterface, GovernorAlphaInterface } from \\\"../Governance/GovernorBravoInterfaces.sol\\\";\\n\\n/**\\n * @title GovernorBravoEvents\\n * @author Venus\\n * @notice Set of events emitted by the second GovernorBravo implementation contract.\\n * @dev This contract is included for archival and testing purposes.\\n */\\ncontract GovernorBravoEventsV2 {\\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        uint8 proposalType\\n    );\\n\\n    /// @notice An event emitted when a vote has been cast on a proposal\\n    /// @param voter The address which casted a vote\\n    /// @param proposalId The proposal id which was voted on\\n    /// @param support Support value for the vote. 0=against, 1=for, 2=abstain\\n    /// @param votes Number of votes which were cast by the voter\\n    /// @param reason The reason given for the vote by the voter\\n    event VoteCast(address indexed voter, uint proposalId, uint8 support, uint votes, string reason);\\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    /// @notice An event emitted when the voting delay is set\\n    event VotingDelaySet(uint oldVotingDelay, uint newVotingDelay);\\n\\n    /// @notice An event emitted when the voting period is set\\n    event VotingPeriodSet(uint oldVotingPeriod, uint newVotingPeriod);\\n\\n    /// @notice Emitted when implementation is changed\\n    event NewImplementation(address oldImplementation, address newImplementation);\\n\\n    /// @notice Emitted when proposal threshold is set\\n    event ProposalThresholdSet(uint oldProposalThreshold, uint newProposalThreshold);\\n\\n    /// @notice Emitted when pendingAdmin is changed\\n    event NewPendingAdmin(address oldPendingAdmin, address newPendingAdmin);\\n\\n    /// @notice Emitted when pendingAdmin is accepted, which means admin is updated\\n    event NewAdmin(address oldAdmin, address newAdmin);\\n\\n    /// @notice Emitted when the new guardian address is set\\n    event NewGuardian(address oldGuardian, address newGuardian);\\n\\n    /// @notice Emitted when the maximum number of operations in one proposal is updated\\n    event ProposalMaxOperationsUpdated(uint oldMaxOperations, uint newMaxOperations);\\n}\\n\\n/**\\n * @title GovernorBravoDelegatorStorage\\n * @author Venus\\n * @notice Storage layout of the `GovernorBravoDelegator` contract\\n */\\ncontract GovernorBravoDelegatorStorage {\\n    /// @notice Administrator for this contract\\n    address public admin;\\n\\n    /// @notice Pending administrator for this contract\\n    address public pendingAdmin;\\n\\n    /// @notice Active brains of Governor\\n    address public implementation;\\n}\\n\\n/**\\n * @title GovernorBravoDelegateStorageV1\\n * @dev This contract is included for archival and testing purposes.\\n */\\ncontract GovernorBravoDelegateStorageV1 is GovernorBravoDelegatorStorage {\\n    /// @notice DEPRECATED The delay before voting on a proposal may take place, once proposed, in blocks\\n    uint public votingDelay;\\n\\n    /// @notice DEPRECATED The duration of voting on a proposal, in blocks\\n    uint public votingPeriod;\\n\\n    /// @notice DEPRECATED The number of votes required in order for a voter to become a proposer\\n    uint public proposalThreshold;\\n\\n    /// @notice Initial proposal id set at become\\n    uint public initialProposalId;\\n\\n    /// @notice The total number of proposals\\n    uint public proposalCount;\\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    XvsVaultInterface public xvsVault;\\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    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 Current number of votes for abstaining for this proposal\\n        uint abstainVotes;\\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        /// @notice The type of the proposal\\n        uint8 proposalType;\\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 or abstains\\n        uint8 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 maximum number of actions that can be included in a proposal\\n    uint public proposalMaxOperations;\\n\\n    /// @notice A privileged role that can cancel any proposal\\n    address public guardian;\\n}\\n\\n/**\\n * @title GovernorBravoDelegateStorageV2\\n * @dev For future upgrades, do not change GovernorBravoDelegateStorageV2. Create a new\\n * contract which implements GovernorBravoDelegateStorageV2 and following the naming convention\\n * GovernorBravoDelegateStorageVX.\\n */\\ncontract GovernorBravoDelegateStorageV2 is GovernorBravoDelegateStorageV1 {\\n    enum ProposalType {\\n        NORMAL,\\n        FASTTRACK,\\n        CRITICAL\\n    }\\n\\n    struct ProposalConfig {\\n        /// @notice The delay before voting on a proposal may take place, once proposed, in blocks\\n        uint256 votingDelay;\\n        /// @notice The duration of voting on a proposal, in blocks\\n        uint256 votingPeriod;\\n        /// @notice The number of votes required in order for a voter to become a proposer\\n        uint256 proposalThreshold;\\n    }\\n\\n    /// @notice mapping containing configuration for each proposal type\\n    mapping(uint => ProposalConfig) public proposalConfigs;\\n\\n    /// @notice mapping containing Timelock addresses for each proposal type\\n    mapping(uint => TimelockInterface) public proposalTimelocks;\\n}\\n\",\"keccak256\":\"0x248f56ae02c43a401896c866addaa328bdd6b0265f92038baf32470183ef5736\"}},\"version\":1}","storageLayout":{"storage":[{"astId":5426,"contract":"contracts/legacy/GovernorBravoInterfacesV2.sol:GovernorBravoDelegateStorageV2","label":"admin","offset":0,"slot":"0","type":"t_address"},{"astId":5428,"contract":"contracts/legacy/GovernorBravoInterfacesV2.sol:GovernorBravoDelegateStorageV2","label":"pendingAdmin","offset":0,"slot":"1","type":"t_address"},{"astId":5430,"contract":"contracts/legacy/GovernorBravoInterfacesV2.sol:GovernorBravoDelegateStorageV2","label":"implementation","offset":0,"slot":"2","type":"t_address"},{"astId":5435,"contract":"contracts/legacy/GovernorBravoInterfacesV2.sol:GovernorBravoDelegateStorageV2","label":"votingDelay","offset":0,"slot":"3","type":"t_uint256"},{"astId":5437,"contract":"contracts/legacy/GovernorBravoInterfacesV2.sol:GovernorBravoDelegateStorageV2","label":"votingPeriod","offset":0,"slot":"4","type":"t_uint256"},{"astId":5439,"contract":"contracts/legacy/GovernorBravoInterfacesV2.sol:GovernorBravoDelegateStorageV2","label":"proposalThreshold","offset":0,"slot":"5","type":"t_uint256"},{"astId":5441,"contract":"contracts/legacy/GovernorBravoInterfacesV2.sol:GovernorBravoDelegateStorageV2","label":"initialProposalId","offset":0,"slot":"6","type":"t_uint256"},{"astId":5443,"contract":"contracts/legacy/GovernorBravoInterfacesV2.sol:GovernorBravoDelegateStorageV2","label":"proposalCount","offset":0,"slot":"7","type":"t_uint256"},{"astId":5445,"contract":"contracts/legacy/GovernorBravoInterfacesV2.sol:GovernorBravoDelegateStorageV2","label":"timelock","offset":0,"slot":"8","type":"t_contract(TimelockInterface)2007"},{"astId":5447,"contract":"contracts/legacy/GovernorBravoInterfacesV2.sol:GovernorBravoDelegateStorageV2","label":"xvsVault","offset":0,"slot":"9","type":"t_contract(XvsVaultInterface)2017"},{"astId":5451,"contract":"contracts/legacy/GovernorBravoInterfacesV2.sol:GovernorBravoDelegateStorageV2","label":"proposals","offset":0,"slot":"10","type":"t_mapping(t_uint256,t_struct(Proposal)5494_storage)"},{"astId":5455,"contract":"contracts/legacy/GovernorBravoInterfacesV2.sol:GovernorBravoDelegateStorageV2","label":"latestProposalIds","offset":0,"slot":"11","type":"t_mapping(t_address,t_uint256)"},{"astId":5512,"contract":"contracts/legacy/GovernorBravoInterfacesV2.sol:GovernorBravoDelegateStorageV2","label":"proposalMaxOperations","offset":0,"slot":"12","type":"t_uint256"},{"astId":5514,"contract":"contracts/legacy/GovernorBravoInterfacesV2.sol:GovernorBravoDelegateStorageV2","label":"guardian","offset":0,"slot":"13","type":"t_address"},{"astId":5532,"contract":"contracts/legacy/GovernorBravoInterfacesV2.sol:GovernorBravoDelegateStorageV2","label":"proposalConfigs","offset":0,"slot":"14","type":"t_mapping(t_uint256,t_struct(ProposalConfig)5528_storage)"},{"astId":5536,"contract":"contracts/legacy/GovernorBravoInterfacesV2.sol:GovernorBravoDelegateStorageV2","label":"proposalTimelocks","offset":0,"slot":"15","type":"t_mapping(t_uint256,t_contract(TimelockInterface)2007)"}],"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)2007":{"encoding":"inplace","label":"contract TimelockInterface","numberOfBytes":"20"},"t_contract(XvsVaultInterface)2017":{"encoding":"inplace","label":"contract XvsVaultInterface","numberOfBytes":"20"},"t_mapping(t_address,t_struct(Receipt)5501_storage)":{"encoding":"mapping","key":"t_address","label":"mapping(address => struct GovernorBravoDelegateStorageV1.Receipt)","numberOfBytes":"32","value":"t_struct(Receipt)5501_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_contract(TimelockInterface)2007)":{"encoding":"mapping","key":"t_uint256","label":"mapping(uint256 => contract TimelockInterface)","numberOfBytes":"32","value":"t_contract(TimelockInterface)2007"},"t_mapping(t_uint256,t_struct(Proposal)5494_storage)":{"encoding":"mapping","key":"t_uint256","label":"mapping(uint256 => struct GovernorBravoDelegateStorageV1.Proposal)","numberOfBytes":"32","value":"t_struct(Proposal)5494_storage"},"t_mapping(t_uint256,t_struct(ProposalConfig)5528_storage)":{"encoding":"mapping","key":"t_uint256","label":"mapping(uint256 => struct GovernorBravoDelegateStorageV2.ProposalConfig)","numberOfBytes":"32","value":"t_struct(ProposalConfig)5528_storage"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_struct(Proposal)5494_storage":{"encoding":"inplace","label":"struct GovernorBravoDelegateStorageV1.Proposal","members":[{"astId":5457,"contract":"contracts/legacy/GovernorBravoInterfacesV2.sol:GovernorBravoDelegateStorageV2","label":"id","offset":0,"slot":"0","type":"t_uint256"},{"astId":5459,"contract":"contracts/legacy/GovernorBravoInterfacesV2.sol:GovernorBravoDelegateStorageV2","label":"proposer","offset":0,"slot":"1","type":"t_address"},{"astId":5461,"contract":"contracts/legacy/GovernorBravoInterfacesV2.sol:GovernorBravoDelegateStorageV2","label":"eta","offset":0,"slot":"2","type":"t_uint256"},{"astId":5464,"contract":"contracts/legacy/GovernorBravoInterfacesV2.sol:GovernorBravoDelegateStorageV2","label":"targets","offset":0,"slot":"3","type":"t_array(t_address)dyn_storage"},{"astId":5467,"contract":"contracts/legacy/GovernorBravoInterfacesV2.sol:GovernorBravoDelegateStorageV2","label":"values","offset":0,"slot":"4","type":"t_array(t_uint256)dyn_storage"},{"astId":5470,"contract":"contracts/legacy/GovernorBravoInterfacesV2.sol:GovernorBravoDelegateStorageV2","label":"signatures","offset":0,"slot":"5","type":"t_array(t_string_storage)dyn_storage"},{"astId":5473,"contract":"contracts/legacy/GovernorBravoInterfacesV2.sol:GovernorBravoDelegateStorageV2","label":"calldatas","offset":0,"slot":"6","type":"t_array(t_bytes_storage)dyn_storage"},{"astId":5475,"contract":"contracts/legacy/GovernorBravoInterfacesV2.sol:GovernorBravoDelegateStorageV2","label":"startBlock","offset":0,"slot":"7","type":"t_uint256"},{"astId":5477,"contract":"contracts/legacy/GovernorBravoInterfacesV2.sol:GovernorBravoDelegateStorageV2","label":"endBlock","offset":0,"slot":"8","type":"t_uint256"},{"astId":5479,"contract":"contracts/legacy/GovernorBravoInterfacesV2.sol:GovernorBravoDelegateStorageV2","label":"forVotes","offset":0,"slot":"9","type":"t_uint256"},{"astId":5481,"contract":"contracts/legacy/GovernorBravoInterfacesV2.sol:GovernorBravoDelegateStorageV2","label":"againstVotes","offset":0,"slot":"10","type":"t_uint256"},{"astId":5483,"contract":"contracts/legacy/GovernorBravoInterfacesV2.sol:GovernorBravoDelegateStorageV2","label":"abstainVotes","offset":0,"slot":"11","type":"t_uint256"},{"astId":5485,"contract":"contracts/legacy/GovernorBravoInterfacesV2.sol:GovernorBravoDelegateStorageV2","label":"canceled","offset":0,"slot":"12","type":"t_bool"},{"astId":5487,"contract":"contracts/legacy/GovernorBravoInterfacesV2.sol:GovernorBravoDelegateStorageV2","label":"executed","offset":1,"slot":"12","type":"t_bool"},{"astId":5491,"contract":"contracts/legacy/GovernorBravoInterfacesV2.sol:GovernorBravoDelegateStorageV2","label":"receipts","offset":0,"slot":"13","type":"t_mapping(t_address,t_struct(Receipt)5501_storage)"},{"astId":5493,"contract":"contracts/legacy/GovernorBravoInterfacesV2.sol:GovernorBravoDelegateStorageV2","label":"proposalType","offset":0,"slot":"14","type":"t_uint8"}],"numberOfBytes":"480"},"t_struct(ProposalConfig)5528_storage":{"encoding":"inplace","label":"struct GovernorBravoDelegateStorageV2.ProposalConfig","members":[{"astId":5523,"contract":"contracts/legacy/GovernorBravoInterfacesV2.sol:GovernorBravoDelegateStorageV2","label":"votingDelay","offset":0,"slot":"0","type":"t_uint256"},{"astId":5525,"contract":"contracts/legacy/GovernorBravoInterfacesV2.sol:GovernorBravoDelegateStorageV2","label":"votingPeriod","offset":0,"slot":"1","type":"t_uint256"},{"astId":5527,"contract":"contracts/legacy/GovernorBravoInterfacesV2.sol:GovernorBravoDelegateStorageV2","label":"proposalThreshold","offset":0,"slot":"2","type":"t_uint256"}],"numberOfBytes":"96"},"t_struct(Receipt)5501_storage":{"encoding":"inplace","label":"struct GovernorBravoDelegateStorageV1.Receipt","members":[{"astId":5496,"contract":"contracts/legacy/GovernorBravoInterfacesV2.sol:GovernorBravoDelegateStorageV2","label":"hasVoted","offset":0,"slot":"0","type":"t_bool"},{"astId":5498,"contract":"contracts/legacy/GovernorBravoInterfacesV2.sol:GovernorBravoDelegateStorageV2","label":"support","offset":1,"slot":"0","type":"t_uint8"},{"astId":5500,"contract":"contracts/legacy/GovernorBravoInterfacesV2.sol:GovernorBravoDelegateStorageV2","label":"votes","offset":2,"slot":"0","type":"t_uint96"}],"numberOfBytes":"32"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"},"t_uint96":{"encoding":"inplace","label":"uint96","numberOfBytes":"12"}}},"userdoc":{"methods":{}}},"GovernorBravoDelegatorStorage":{"abi":[{"constant":true,"inputs":[],"name":"admin","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"implementation","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"pendingAdmin","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}],"devdoc":{"author":"Venus","methods":{},"title":"GovernorBravoDelegatorStorage"},"evm":{"bytecode":{"linkReferences":{},"object":"608060405234801561001057600080fd5b50610106806100206000396000f3fe6080604052348015600f57600080fd5b5060043610603c5760003560e01c8063267822471460415780635c60da1b14605b578063f851a440146061575b600080fd5b60476067565b6040516052919060a1565b60405180910390f35b60476076565b60476085565b6001546001600160a01b031681565b6002546001600160a01b031681565b6000546001600160a01b031681565b609b8160b3565b82525050565b6020810160ad82846094565b92915050565b60006001600160a01b03821660ad56fea365627a7a72315820077bd6059a7c33ae4d77f3e20f29d1beae98c3c2d0073ba5fb5e3a26850b5bfc6c6578706572696d656e74616cf564736f6c63430005100040","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x106 DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH1 0x3C JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x26782247 EQ PUSH1 0x41 JUMPI DUP1 PUSH4 0x5C60DA1B EQ PUSH1 0x5B JUMPI DUP1 PUSH4 0xF851A440 EQ PUSH1 0x61 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x47 PUSH1 0x67 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x52 SWAP2 SWAP1 PUSH1 0xA1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x47 PUSH1 0x76 JUMP JUMPDEST PUSH1 0x47 PUSH1 0x85 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 DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x9B DUP2 PUSH1 0xB3 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH1 0xAD DUP3 DUP5 PUSH1 0x94 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0xAD JUMP INVALID LOG3 PUSH6 0x627A7A723158 KECCAK256 SMOD PUSH28 0xD6059A7C33AE4D77F3E20F29D1BEAE98C3C2D0073BA5FB5E3A26850B JUMPDEST 0xFC PUSH13 0x6578706572696D656E74616CF5 PUSH5 0x736F6C6343 STOP SDIV LT STOP BLOCKHASH ","sourceMap":"2886:284:8:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2886:284:8;;;;;;;"},"deployedBytecode":{"linkReferences":{},"object":"6080604052348015600f57600080fd5b5060043610603c5760003560e01c8063267822471460415780635c60da1b14605b578063f851a440146061575b600080fd5b60476067565b6040516052919060a1565b60405180910390f35b60476076565b60476085565b6001546001600160a01b031681565b6002546001600160a01b031681565b6000546001600160a01b031681565b609b8160b3565b82525050565b6020810160ad82846094565b92915050565b60006001600160a01b03821660ad56fea365627a7a72315820077bd6059a7c33ae4d77f3e20f29d1beae98c3c2d0073ba5fb5e3a26850b5bfc6c6578706572696d656e74616cf564736f6c63430005100040","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH1 0x3C JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x26782247 EQ PUSH1 0x41 JUMPI DUP1 PUSH4 0x5C60DA1B EQ PUSH1 0x5B JUMPI DUP1 PUSH4 0xF851A440 EQ PUSH1 0x61 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x47 PUSH1 0x67 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x52 SWAP2 SWAP1 PUSH1 0xA1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x47 PUSH1 0x76 JUMP JUMPDEST PUSH1 0x47 PUSH1 0x85 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 DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x9B DUP2 PUSH1 0xB3 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH1 0xAD DUP3 DUP5 PUSH1 0x94 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0xAD JUMP INVALID LOG3 PUSH6 0x627A7A723158 KECCAK256 SMOD PUSH28 0xD6059A7C33AE4D77F3E20F29D1BEAE98C3C2D0073BA5FB5E3A26850B JUMPDEST 0xFC PUSH13 0x6578706572696D656E74616CF5 PUSH5 0x736F6C6343 STOP SDIV LT STOP BLOCKHASH ","sourceMap":"2886:284:8:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2886:284:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3062:27;;;:::i;:::-;;;;;;;;;;;;;;;;3138:29;;;:::i;2979:20::-;;;:::i;3062:27::-;;;-1:-1:-1;;;;;3062:27:8;;:::o;3138:29::-;;;-1:-1:-1;;;;;3138:29:8;;:::o;2979:20::-;;;-1:-1:-1;;;;;2979:20:8;;:::o;5:113:-1:-;88:24;106:5;88:24;;;83:3;76:37;70:48;;;125:213;243:2;228:18;;257:71;232:9;301:6;257:71;;;214:124;;;;;345:91;;-1:-1;;;;;505:54;;407:24;488:76"},"gasEstimates":{"creation":{"codeDepositCost":"52400","executionCost":"105","totalCost":"52505"},"external":{"admin()":"infinite","implementation()":"infinite","pendingAdmin()":"infinite"}},"methodIdentifiers":{"admin()":"f851a440","implementation()":"5c60da1b","pendingAdmin()":"26782247"}},"metadata":"{\"compiler\":{\"version\":\"0.5.16+commit.9c3226ce\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[],\"name\":\"admin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"implementation\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"pendingAdmin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Venus\",\"methods\":{},\"title\":\"GovernorBravoDelegatorStorage\"},\"userdoc\":{\"methods\":{},\"notice\":\"Storage layout of the `GovernorBravoDelegator` contract\"}},\"settings\":{\"compilationTarget\":{\"contracts/legacy/GovernorBravoInterfacesV2.sol\":\"GovernorBravoDelegatorStorage\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/Governance/GovernorBravoInterfaces.sol\":{\"content\":\"pragma solidity ^0.5.16;\\npragma experimental ABIEncoderV2;\\n\\n/**\\n * @title GovernorBravoEvents\\n * @author Venus\\n * @notice Set of events emitted by the GovernorBravo contracts.\\n */\\ncontract GovernorBravoEvents {\\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        uint8 proposalType\\n    );\\n\\n    /// @notice An event emitted when a vote has been cast on a proposal\\n    /// @param voter The address which casted a vote\\n    /// @param proposalId The proposal id which was voted on\\n    /// @param support Support value for the vote. 0=against, 1=for, 2=abstain\\n    /// @param votes Number of votes which were cast by the voter\\n    /// @param reason The reason given for the vote by the voter\\n    event VoteCast(address indexed voter, uint proposalId, uint8 support, uint votes, string reason);\\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    /// @notice An event emitted when the voting delay is set\\n    event VotingDelaySet(uint oldVotingDelay, uint newVotingDelay);\\n\\n    /// @notice An event emitted when the voting period is set\\n    event VotingPeriodSet(uint oldVotingPeriod, uint newVotingPeriod);\\n\\n    /// @notice Emitted when implementation is changed\\n    event NewImplementation(address oldImplementation, address newImplementation);\\n\\n    /// @notice Emitted when proposal threshold is set\\n    event ProposalThresholdSet(uint oldProposalThreshold, uint newProposalThreshold);\\n\\n    /// @notice Emitted when pendingAdmin is changed\\n    event NewPendingAdmin(address oldPendingAdmin, address newPendingAdmin);\\n\\n    /// @notice Emitted when pendingAdmin is accepted, which means admin is updated\\n    event NewAdmin(address oldAdmin, address newAdmin);\\n\\n    /// @notice Emitted when the new guardian address is set\\n    event NewGuardian(address oldGuardian, address newGuardian);\\n\\n    /// @notice Emitted when the maximum number of operations in one proposal is updated\\n    event ProposalMaxOperationsUpdated(uint oldMaxOperations, uint newMaxOperations);\\n\\n    /// @notice Emitted when the new validation params are set\\n    event SetValidationParams(\\n        uint256 oldMinVotingPeriod,\\n        uint256 newMinVotingPeriod,\\n        uint256 oldmaxVotingPeriod,\\n        uint256 newmaxVotingPeriod,\\n        uint256 oldminVotingDelay,\\n        uint256 newminVotingDelay,\\n        uint256 oldmaxVotingDelay,\\n        uint256 newmaxVotingDelay\\n    );\\n\\n    /// @notice Emitted when new Proposal configs added\\n    event SetProposalConfigs(uint256 votingPeriod, uint256 votingDelay, uint256 proposalThreshold);\\n}\\n\\n/**\\n * @title GovernorBravoDelegatorStorage\\n * @author Venus\\n * @notice Storage layout of the `GovernorBravoDelegator` contract\\n */\\ncontract GovernorBravoDelegatorStorage {\\n    /// @notice Administrator for this contract\\n    address public admin;\\n\\n    /// @notice Pending administrator for this contract\\n    address public pendingAdmin;\\n\\n    /// @notice Active brains of Governor\\n    address public implementation;\\n}\\n\\n/**\\n * @title GovernorBravoDelegateStorageV1\\n * @dev For future upgrades, do not change GovernorBravoDelegateStorageV1. Create a new\\n * contract which implements GovernorBravoDelegateStorageV1 and following the naming convention\\n * GovernorBravoDelegateStorageVX.\\n */\\ncontract GovernorBravoDelegateStorageV1 is GovernorBravoDelegatorStorage {\\n    /// @notice DEPRECATED The delay before voting on a proposal may take place, once proposed, in blocks\\n    uint public votingDelay;\\n\\n    /// @notice DEPRECATED The duration of voting on a proposal, in blocks\\n    uint public votingPeriod;\\n\\n    /// @notice DEPRECATED The number of votes required in order for a voter to become a proposer\\n    uint public proposalThreshold;\\n\\n    /// @notice Initial proposal id set at become\\n    uint public initialProposalId;\\n\\n    /// @notice The total number of proposals\\n    uint public proposalCount;\\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    XvsVaultInterface public xvsVault;\\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    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 Current number of votes for abstaining for this proposal\\n        uint abstainVotes;\\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        /// @notice The type of the proposal\\n        uint8 proposalType;\\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 or abstains\\n        uint8 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 maximum number of actions that can be included in a proposal\\n    uint public proposalMaxOperations;\\n\\n    /// @notice A privileged role that can cancel any proposal\\n    address public guardian;\\n}\\n\\n/**\\n * @title GovernorBravoDelegateStorageV2\\n * @dev For future upgrades, do not change GovernorBravoDelegateStorageV2. Create a new\\n * contract which implements GovernorBravoDelegateStorageV2 and following the naming convention\\n * GovernorBravoDelegateStorageVX.\\n */\\ncontract GovernorBravoDelegateStorageV2 is GovernorBravoDelegateStorageV1 {\\n    enum ProposalType {\\n        NORMAL,\\n        FASTTRACK,\\n        CRITICAL\\n    }\\n\\n    struct ProposalConfig {\\n        /// @notice The delay before voting on a proposal may take place, once proposed, in blocks\\n        uint256 votingDelay;\\n        /// @notice The duration of voting on a proposal, in blocks\\n        uint256 votingPeriod;\\n        /// @notice The number of votes required in order for a voter to become a proposer\\n        uint256 proposalThreshold;\\n    }\\n\\n    /// @notice mapping containing configuration for each proposal type\\n    mapping(uint => ProposalConfig) public proposalConfigs;\\n\\n    /// @notice mapping containing Timelock addresses for each proposal type\\n    mapping(uint => TimelockInterface) public proposalTimelocks;\\n}\\n\\n/**\\n * @title GovernorBravoDelegateStorageV3\\n * @dev For future upgrades, do not change GovernorBravoDelegateStorageV3. Create a new\\n * contract which implements GovernorBravoDelegateStorageV3 and following the naming convention\\n * GovernorBravoDelegateStorageVX.\\n */\\ncontract GovernorBravoDelegateStorageV3 is GovernorBravoDelegateStorageV2 {\\n    struct ValidationParams {\\n        uint256 minVotingPeriod;\\n        uint256 maxVotingPeriod;\\n        uint256 minVotingDelay;\\n        uint256 maxVotingDelay;\\n    }\\n    /// @notice Stores the current minimum and maximum values of voting delay and voting period\\n    ValidationParams public validationParams;\\n}\\n\\n/**\\n * @title TimelockInterface\\n * @author Venus\\n * @notice Interface implemented by the Timelock contract.\\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 XvsVaultInterface {\\n    function getPriorVotes(address account, uint blockNumber) external view returns (uint96);\\n}\\n\\ninterface GovernorAlphaInterface {\\n    /// @notice The total number of proposals\\n    function proposalCount() external returns (uint);\\n}\\n\",\"keccak256\":\"0x62c89309d4351dbeb5516465211fab0b566d83d60dc0148377deaad1f1929b85\"},\"contracts/legacy/GovernorBravoInterfacesV2.sol\":{\"content\":\"pragma solidity ^0.5.16;\\npragma experimental ABIEncoderV2;\\n\\nimport { XvsVaultInterface, TimelockInterface, GovernorAlphaInterface } from \\\"../Governance/GovernorBravoInterfaces.sol\\\";\\n\\n/**\\n * @title GovernorBravoEvents\\n * @author Venus\\n * @notice Set of events emitted by the second GovernorBravo implementation contract.\\n * @dev This contract is included for archival and testing purposes.\\n */\\ncontract GovernorBravoEventsV2 {\\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        uint8 proposalType\\n    );\\n\\n    /// @notice An event emitted when a vote has been cast on a proposal\\n    /// @param voter The address which casted a vote\\n    /// @param proposalId The proposal id which was voted on\\n    /// @param support Support value for the vote. 0=against, 1=for, 2=abstain\\n    /// @param votes Number of votes which were cast by the voter\\n    /// @param reason The reason given for the vote by the voter\\n    event VoteCast(address indexed voter, uint proposalId, uint8 support, uint votes, string reason);\\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    /// @notice An event emitted when the voting delay is set\\n    event VotingDelaySet(uint oldVotingDelay, uint newVotingDelay);\\n\\n    /// @notice An event emitted when the voting period is set\\n    event VotingPeriodSet(uint oldVotingPeriod, uint newVotingPeriod);\\n\\n    /// @notice Emitted when implementation is changed\\n    event NewImplementation(address oldImplementation, address newImplementation);\\n\\n    /// @notice Emitted when proposal threshold is set\\n    event ProposalThresholdSet(uint oldProposalThreshold, uint newProposalThreshold);\\n\\n    /// @notice Emitted when pendingAdmin is changed\\n    event NewPendingAdmin(address oldPendingAdmin, address newPendingAdmin);\\n\\n    /// @notice Emitted when pendingAdmin is accepted, which means admin is updated\\n    event NewAdmin(address oldAdmin, address newAdmin);\\n\\n    /// @notice Emitted when the new guardian address is set\\n    event NewGuardian(address oldGuardian, address newGuardian);\\n\\n    /// @notice Emitted when the maximum number of operations in one proposal is updated\\n    event ProposalMaxOperationsUpdated(uint oldMaxOperations, uint newMaxOperations);\\n}\\n\\n/**\\n * @title GovernorBravoDelegatorStorage\\n * @author Venus\\n * @notice Storage layout of the `GovernorBravoDelegator` contract\\n */\\ncontract GovernorBravoDelegatorStorage {\\n    /// @notice Administrator for this contract\\n    address public admin;\\n\\n    /// @notice Pending administrator for this contract\\n    address public pendingAdmin;\\n\\n    /// @notice Active brains of Governor\\n    address public implementation;\\n}\\n\\n/**\\n * @title GovernorBravoDelegateStorageV1\\n * @dev This contract is included for archival and testing purposes.\\n */\\ncontract GovernorBravoDelegateStorageV1 is GovernorBravoDelegatorStorage {\\n    /// @notice DEPRECATED The delay before voting on a proposal may take place, once proposed, in blocks\\n    uint public votingDelay;\\n\\n    /// @notice DEPRECATED The duration of voting on a proposal, in blocks\\n    uint public votingPeriod;\\n\\n    /// @notice DEPRECATED The number of votes required in order for a voter to become a proposer\\n    uint public proposalThreshold;\\n\\n    /// @notice Initial proposal id set at become\\n    uint public initialProposalId;\\n\\n    /// @notice The total number of proposals\\n    uint public proposalCount;\\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    XvsVaultInterface public xvsVault;\\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    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 Current number of votes for abstaining for this proposal\\n        uint abstainVotes;\\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        /// @notice The type of the proposal\\n        uint8 proposalType;\\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 or abstains\\n        uint8 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 maximum number of actions that can be included in a proposal\\n    uint public proposalMaxOperations;\\n\\n    /// @notice A privileged role that can cancel any proposal\\n    address public guardian;\\n}\\n\\n/**\\n * @title GovernorBravoDelegateStorageV2\\n * @dev For future upgrades, do not change GovernorBravoDelegateStorageV2. Create a new\\n * contract which implements GovernorBravoDelegateStorageV2 and following the naming convention\\n * GovernorBravoDelegateStorageVX.\\n */\\ncontract GovernorBravoDelegateStorageV2 is GovernorBravoDelegateStorageV1 {\\n    enum ProposalType {\\n        NORMAL,\\n        FASTTRACK,\\n        CRITICAL\\n    }\\n\\n    struct ProposalConfig {\\n        /// @notice The delay before voting on a proposal may take place, once proposed, in blocks\\n        uint256 votingDelay;\\n        /// @notice The duration of voting on a proposal, in blocks\\n        uint256 votingPeriod;\\n        /// @notice The number of votes required in order for a voter to become a proposer\\n        uint256 proposalThreshold;\\n    }\\n\\n    /// @notice mapping containing configuration for each proposal type\\n    mapping(uint => ProposalConfig) public proposalConfigs;\\n\\n    /// @notice mapping containing Timelock addresses for each proposal type\\n    mapping(uint => TimelockInterface) public proposalTimelocks;\\n}\\n\",\"keccak256\":\"0x248f56ae02c43a401896c866addaa328bdd6b0265f92038baf32470183ef5736\"}},\"version\":1}","storageLayout":{"storage":[{"astId":5426,"contract":"contracts/legacy/GovernorBravoInterfacesV2.sol:GovernorBravoDelegatorStorage","label":"admin","offset":0,"slot":"0","type":"t_address"},{"astId":5428,"contract":"contracts/legacy/GovernorBravoInterfacesV2.sol:GovernorBravoDelegatorStorage","label":"pendingAdmin","offset":0,"slot":"1","type":"t_address"},{"astId":5430,"contract":"contracts/legacy/GovernorBravoInterfacesV2.sol:GovernorBravoDelegatorStorage","label":"implementation","offset":0,"slot":"2","type":"t_address"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"}}},"userdoc":{"methods":{},"notice":"Storage layout of the `GovernorBravoDelegator` contract"}},"GovernorBravoEventsV2":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldAdmin","type":"address"},{"indexed":false,"internalType":"address","name":"newAdmin","type":"address"}],"name":"NewAdmin","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldGuardian","type":"address"},{"indexed":false,"internalType":"address","name":"newGuardian","type":"address"}],"name":"NewGuardian","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldImplementation","type":"address"},{"indexed":false,"internalType":"address","name":"newImplementation","type":"address"}],"name":"NewImplementation","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldPendingAdmin","type":"address"},{"indexed":false,"internalType":"address","name":"newPendingAdmin","type":"address"}],"name":"NewPendingAdmin","type":"event"},{"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"},{"indexed":false,"internalType":"uint8","name":"proposalType","type":"uint8"}],"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":"oldMaxOperations","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newMaxOperations","type":"uint256"}],"name":"ProposalMaxOperationsUpdated","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":"uint256","name":"oldProposalThreshold","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newProposalThreshold","type":"uint256"}],"name":"ProposalThresholdSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"voter","type":"address"},{"indexed":false,"internalType":"uint256","name":"proposalId","type":"uint256"},{"indexed":false,"internalType":"uint8","name":"support","type":"uint8"},{"indexed":false,"internalType":"uint256","name":"votes","type":"uint256"},{"indexed":false,"internalType":"string","name":"reason","type":"string"}],"name":"VoteCast","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"oldVotingDelay","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newVotingDelay","type":"uint256"}],"name":"VotingDelaySet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"oldVotingPeriod","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newVotingPeriod","type":"uint256"}],"name":"VotingPeriodSet","type":"event"}],"devdoc":{"author":"Venus","details":"This contract is included for archival and testing purposes.","methods":{},"title":"GovernorBravoEvents"},"evm":{"bytecode":{"linkReferences":{},"object":"6080604052348015600f57600080fd5b50604c80601d6000396000f3fe6080604052600080fdfea365627a7a723158200f63769915acc84dc0c56af4ee01a78605ccfcbb62ce538b18a3cff9de8874f96c6578706572696d656e74616cf564736f6c63430005100040","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4C DUP1 PUSH1 0x1D PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG3 PUSH6 0x627A7A723158 KECCAK256 0xF PUSH4 0x769915AC 0xC8 0x4D 0xC0 0xC5 PUSH11 0xF4EE01A78605CCFCBB62CE MSTORE8 DUP12 XOR LOG3 0xCF 0xF9 0xDE DUP9 PUSH21 0xF96C6578706572696D656E74616CF564736F6C6343 STOP SDIV LT STOP BLOCKHASH ","sourceMap":"393:2359:8:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;393:2359:8;;;;;;;"},"deployedBytecode":{"linkReferences":{},"object":"6080604052600080fdfea365627a7a723158200f63769915acc84dc0c56af4ee01a78605ccfcbb62ce538b18a3cff9de8874f96c6578706572696d656e74616cf564736f6c63430005100040","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG3 PUSH6 0x627A7A723158 KECCAK256 0xF PUSH4 0x769915AC 0xC8 0x4D 0xC0 0xC5 PUSH11 0xF4EE01A78605CCFCBB62CE MSTORE8 DUP12 XOR LOG3 0xCF 0xF9 0xDE DUP9 PUSH21 0xF96C6578706572696D656E74616CF564736F6C6343 STOP SDIV LT STOP BLOCKHASH ","sourceMap":"393:2359:8:-;;;;;"},"gasEstimates":{"creation":{"codeDepositCost":"15200","executionCost":"69","totalCost":"15269"}},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.5.16+commit.9c3226ce\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"oldAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"NewAdmin\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"oldGuardian\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newGuardian\",\"type\":\"address\"}],\"name\":\"NewGuardian\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"oldImplementation\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"}],\"name\":\"NewImplementation\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"oldPendingAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newPendingAdmin\",\"type\":\"address\"}],\"name\":\"NewPendingAdmin\",\"type\":\"event\"},{\"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\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"proposalType\",\"type\":\"uint8\"}],\"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\":\"oldMaxOperations\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newMaxOperations\",\"type\":\"uint256\"}],\"name\":\"ProposalMaxOperationsUpdated\",\"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\":\"uint256\",\"name\":\"oldProposalThreshold\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newProposalThreshold\",\"type\":\"uint256\"}],\"name\":\"ProposalThresholdSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"voter\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"votes\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"VoteCast\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldVotingDelay\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newVotingDelay\",\"type\":\"uint256\"}],\"name\":\"VotingDelaySet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldVotingPeriod\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newVotingPeriod\",\"type\":\"uint256\"}],\"name\":\"VotingPeriodSet\",\"type\":\"event\"}],\"devdoc\":{\"author\":\"Venus\",\"details\":\"This contract is included for archival and testing purposes.\",\"methods\":{},\"title\":\"GovernorBravoEvents\"},\"userdoc\":{\"methods\":{},\"notice\":\"Set of events emitted by the second GovernorBravo implementation contract.\"}},\"settings\":{\"compilationTarget\":{\"contracts/legacy/GovernorBravoInterfacesV2.sol\":\"GovernorBravoEventsV2\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/Governance/GovernorBravoInterfaces.sol\":{\"content\":\"pragma solidity ^0.5.16;\\npragma experimental ABIEncoderV2;\\n\\n/**\\n * @title GovernorBravoEvents\\n * @author Venus\\n * @notice Set of events emitted by the GovernorBravo contracts.\\n */\\ncontract GovernorBravoEvents {\\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        uint8 proposalType\\n    );\\n\\n    /// @notice An event emitted when a vote has been cast on a proposal\\n    /// @param voter The address which casted a vote\\n    /// @param proposalId The proposal id which was voted on\\n    /// @param support Support value for the vote. 0=against, 1=for, 2=abstain\\n    /// @param votes Number of votes which were cast by the voter\\n    /// @param reason The reason given for the vote by the voter\\n    event VoteCast(address indexed voter, uint proposalId, uint8 support, uint votes, string reason);\\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    /// @notice An event emitted when the voting delay is set\\n    event VotingDelaySet(uint oldVotingDelay, uint newVotingDelay);\\n\\n    /// @notice An event emitted when the voting period is set\\n    event VotingPeriodSet(uint oldVotingPeriod, uint newVotingPeriod);\\n\\n    /// @notice Emitted when implementation is changed\\n    event NewImplementation(address oldImplementation, address newImplementation);\\n\\n    /// @notice Emitted when proposal threshold is set\\n    event ProposalThresholdSet(uint oldProposalThreshold, uint newProposalThreshold);\\n\\n    /// @notice Emitted when pendingAdmin is changed\\n    event NewPendingAdmin(address oldPendingAdmin, address newPendingAdmin);\\n\\n    /// @notice Emitted when pendingAdmin is accepted, which means admin is updated\\n    event NewAdmin(address oldAdmin, address newAdmin);\\n\\n    /// @notice Emitted when the new guardian address is set\\n    event NewGuardian(address oldGuardian, address newGuardian);\\n\\n    /// @notice Emitted when the maximum number of operations in one proposal is updated\\n    event ProposalMaxOperationsUpdated(uint oldMaxOperations, uint newMaxOperations);\\n\\n    /// @notice Emitted when the new validation params are set\\n    event SetValidationParams(\\n        uint256 oldMinVotingPeriod,\\n        uint256 newMinVotingPeriod,\\n        uint256 oldmaxVotingPeriod,\\n        uint256 newmaxVotingPeriod,\\n        uint256 oldminVotingDelay,\\n        uint256 newminVotingDelay,\\n        uint256 oldmaxVotingDelay,\\n        uint256 newmaxVotingDelay\\n    );\\n\\n    /// @notice Emitted when new Proposal configs added\\n    event SetProposalConfigs(uint256 votingPeriod, uint256 votingDelay, uint256 proposalThreshold);\\n}\\n\\n/**\\n * @title GovernorBravoDelegatorStorage\\n * @author Venus\\n * @notice Storage layout of the `GovernorBravoDelegator` contract\\n */\\ncontract GovernorBravoDelegatorStorage {\\n    /// @notice Administrator for this contract\\n    address public admin;\\n\\n    /// @notice Pending administrator for this contract\\n    address public pendingAdmin;\\n\\n    /// @notice Active brains of Governor\\n    address public implementation;\\n}\\n\\n/**\\n * @title GovernorBravoDelegateStorageV1\\n * @dev For future upgrades, do not change GovernorBravoDelegateStorageV1. Create a new\\n * contract which implements GovernorBravoDelegateStorageV1 and following the naming convention\\n * GovernorBravoDelegateStorageVX.\\n */\\ncontract GovernorBravoDelegateStorageV1 is GovernorBravoDelegatorStorage {\\n    /// @notice DEPRECATED The delay before voting on a proposal may take place, once proposed, in blocks\\n    uint public votingDelay;\\n\\n    /// @notice DEPRECATED The duration of voting on a proposal, in blocks\\n    uint public votingPeriod;\\n\\n    /// @notice DEPRECATED The number of votes required in order for a voter to become a proposer\\n    uint public proposalThreshold;\\n\\n    /// @notice Initial proposal id set at become\\n    uint public initialProposalId;\\n\\n    /// @notice The total number of proposals\\n    uint public proposalCount;\\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    XvsVaultInterface public xvsVault;\\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    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 Current number of votes for abstaining for this proposal\\n        uint abstainVotes;\\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        /// @notice The type of the proposal\\n        uint8 proposalType;\\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 or abstains\\n        uint8 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 maximum number of actions that can be included in a proposal\\n    uint public proposalMaxOperations;\\n\\n    /// @notice A privileged role that can cancel any proposal\\n    address public guardian;\\n}\\n\\n/**\\n * @title GovernorBravoDelegateStorageV2\\n * @dev For future upgrades, do not change GovernorBravoDelegateStorageV2. Create a new\\n * contract which implements GovernorBravoDelegateStorageV2 and following the naming convention\\n * GovernorBravoDelegateStorageVX.\\n */\\ncontract GovernorBravoDelegateStorageV2 is GovernorBravoDelegateStorageV1 {\\n    enum ProposalType {\\n        NORMAL,\\n        FASTTRACK,\\n        CRITICAL\\n    }\\n\\n    struct ProposalConfig {\\n        /// @notice The delay before voting on a proposal may take place, once proposed, in blocks\\n        uint256 votingDelay;\\n        /// @notice The duration of voting on a proposal, in blocks\\n        uint256 votingPeriod;\\n        /// @notice The number of votes required in order for a voter to become a proposer\\n        uint256 proposalThreshold;\\n    }\\n\\n    /// @notice mapping containing configuration for each proposal type\\n    mapping(uint => ProposalConfig) public proposalConfigs;\\n\\n    /// @notice mapping containing Timelock addresses for each proposal type\\n    mapping(uint => TimelockInterface) public proposalTimelocks;\\n}\\n\\n/**\\n * @title GovernorBravoDelegateStorageV3\\n * @dev For future upgrades, do not change GovernorBravoDelegateStorageV3. Create a new\\n * contract which implements GovernorBravoDelegateStorageV3 and following the naming convention\\n * GovernorBravoDelegateStorageVX.\\n */\\ncontract GovernorBravoDelegateStorageV3 is GovernorBravoDelegateStorageV2 {\\n    struct ValidationParams {\\n        uint256 minVotingPeriod;\\n        uint256 maxVotingPeriod;\\n        uint256 minVotingDelay;\\n        uint256 maxVotingDelay;\\n    }\\n    /// @notice Stores the current minimum and maximum values of voting delay and voting period\\n    ValidationParams public validationParams;\\n}\\n\\n/**\\n * @title TimelockInterface\\n * @author Venus\\n * @notice Interface implemented by the Timelock contract.\\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 XvsVaultInterface {\\n    function getPriorVotes(address account, uint blockNumber) external view returns (uint96);\\n}\\n\\ninterface GovernorAlphaInterface {\\n    /// @notice The total number of proposals\\n    function proposalCount() external returns (uint);\\n}\\n\",\"keccak256\":\"0x62c89309d4351dbeb5516465211fab0b566d83d60dc0148377deaad1f1929b85\"},\"contracts/legacy/GovernorBravoInterfacesV2.sol\":{\"content\":\"pragma solidity ^0.5.16;\\npragma experimental ABIEncoderV2;\\n\\nimport { XvsVaultInterface, TimelockInterface, GovernorAlphaInterface } from \\\"../Governance/GovernorBravoInterfaces.sol\\\";\\n\\n/**\\n * @title GovernorBravoEvents\\n * @author Venus\\n * @notice Set of events emitted by the second GovernorBravo implementation contract.\\n * @dev This contract is included for archival and testing purposes.\\n */\\ncontract GovernorBravoEventsV2 {\\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        uint8 proposalType\\n    );\\n\\n    /// @notice An event emitted when a vote has been cast on a proposal\\n    /// @param voter The address which casted a vote\\n    /// @param proposalId The proposal id which was voted on\\n    /// @param support Support value for the vote. 0=against, 1=for, 2=abstain\\n    /// @param votes Number of votes which were cast by the voter\\n    /// @param reason The reason given for the vote by the voter\\n    event VoteCast(address indexed voter, uint proposalId, uint8 support, uint votes, string reason);\\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    /// @notice An event emitted when the voting delay is set\\n    event VotingDelaySet(uint oldVotingDelay, uint newVotingDelay);\\n\\n    /// @notice An event emitted when the voting period is set\\n    event VotingPeriodSet(uint oldVotingPeriod, uint newVotingPeriod);\\n\\n    /// @notice Emitted when implementation is changed\\n    event NewImplementation(address oldImplementation, address newImplementation);\\n\\n    /// @notice Emitted when proposal threshold is set\\n    event ProposalThresholdSet(uint oldProposalThreshold, uint newProposalThreshold);\\n\\n    /// @notice Emitted when pendingAdmin is changed\\n    event NewPendingAdmin(address oldPendingAdmin, address newPendingAdmin);\\n\\n    /// @notice Emitted when pendingAdmin is accepted, which means admin is updated\\n    event NewAdmin(address oldAdmin, address newAdmin);\\n\\n    /// @notice Emitted when the new guardian address is set\\n    event NewGuardian(address oldGuardian, address newGuardian);\\n\\n    /// @notice Emitted when the maximum number of operations in one proposal is updated\\n    event ProposalMaxOperationsUpdated(uint oldMaxOperations, uint newMaxOperations);\\n}\\n\\n/**\\n * @title GovernorBravoDelegatorStorage\\n * @author Venus\\n * @notice Storage layout of the `GovernorBravoDelegator` contract\\n */\\ncontract GovernorBravoDelegatorStorage {\\n    /// @notice Administrator for this contract\\n    address public admin;\\n\\n    /// @notice Pending administrator for this contract\\n    address public pendingAdmin;\\n\\n    /// @notice Active brains of Governor\\n    address public implementation;\\n}\\n\\n/**\\n * @title GovernorBravoDelegateStorageV1\\n * @dev This contract is included for archival and testing purposes.\\n */\\ncontract GovernorBravoDelegateStorageV1 is GovernorBravoDelegatorStorage {\\n    /// @notice DEPRECATED The delay before voting on a proposal may take place, once proposed, in blocks\\n    uint public votingDelay;\\n\\n    /// @notice DEPRECATED The duration of voting on a proposal, in blocks\\n    uint public votingPeriod;\\n\\n    /// @notice DEPRECATED The number of votes required in order for a voter to become a proposer\\n    uint public proposalThreshold;\\n\\n    /// @notice Initial proposal id set at become\\n    uint public initialProposalId;\\n\\n    /// @notice The total number of proposals\\n    uint public proposalCount;\\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    XvsVaultInterface public xvsVault;\\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    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 Current number of votes for abstaining for this proposal\\n        uint abstainVotes;\\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        /// @notice The type of the proposal\\n        uint8 proposalType;\\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 or abstains\\n        uint8 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 maximum number of actions that can be included in a proposal\\n    uint public proposalMaxOperations;\\n\\n    /// @notice A privileged role that can cancel any proposal\\n    address public guardian;\\n}\\n\\n/**\\n * @title GovernorBravoDelegateStorageV2\\n * @dev For future upgrades, do not change GovernorBravoDelegateStorageV2. Create a new\\n * contract which implements GovernorBravoDelegateStorageV2 and following the naming convention\\n * GovernorBravoDelegateStorageVX.\\n */\\ncontract GovernorBravoDelegateStorageV2 is GovernorBravoDelegateStorageV1 {\\n    enum ProposalType {\\n        NORMAL,\\n        FASTTRACK,\\n        CRITICAL\\n    }\\n\\n    struct ProposalConfig {\\n        /// @notice The delay before voting on a proposal may take place, once proposed, in blocks\\n        uint256 votingDelay;\\n        /// @notice The duration of voting on a proposal, in blocks\\n        uint256 votingPeriod;\\n        /// @notice The number of votes required in order for a voter to become a proposer\\n        uint256 proposalThreshold;\\n    }\\n\\n    /// @notice mapping containing configuration for each proposal type\\n    mapping(uint => ProposalConfig) public proposalConfigs;\\n\\n    /// @notice mapping containing Timelock addresses for each proposal type\\n    mapping(uint => TimelockInterface) public proposalTimelocks;\\n}\\n\",\"keccak256\":\"0x248f56ae02c43a401896c866addaa328bdd6b0265f92038baf32470183ef5736\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"methods":{},"notice":"Set of events emitted by the second GovernorBravo implementation contract."}}}}}}