{"abi": [{"inputs": [{"internalType": "contract ERC20Votes", "name": "_token", "type": "address"}, {"internalType": "contract TimelockController", "name": "_timelock", "type": "address"}], "stateMutability": "nonpayable", "type": "constructor", "name": "constructor"}, {"inputs": [], "name": "Empty", "type": "error"}, {"anonymous": false, "inputs": [{"indexed": false, "internalType": "uint64", "name": "oldVoteExtension", "type": "uint64"}, {"indexed": false, "internalType": "uint64", "name": "newVoteExtension", "type": "uint64"}], "name": "LateQuorumVoteExtensionSet", "type": "event"}, {"anonymous": false, "inputs": [{"indexed": false, "internalType": "uint256", "name": "proposalId", "type": "uint256"}], "name": "ProposalCanceled", "type": "event"}, {"anonymous": false, "inputs": [{"indexed": false, "internalType": "uint256", "name": "proposalId", "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": "proposalId", "type": "uint256"}], "name": "ProposalExecuted", "type": "event"}, {"anonymous": false, "inputs": [{"indexed": true, "internalType": "uint256", "name": "proposalId", "type": "uint256"}, {"indexed": false, "internalType": "uint64", "name": "extendedDeadline", "type": "uint64"}], "name": "ProposalExtended", "type": "event"}, {"anonymous": false, "inputs": [{"indexed": false, "internalType": "uint256", "name": "proposalId", "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": "oldQuorumNumerator", "type": "uint256"}, {"indexed": false, "internalType": "uint256", "name": "newQuorumNumerator", "type": "uint256"}], "name": "QuorumNumeratorUpdated", "type": "event"}, {"anonymous": false, "inputs": [{"indexed": false, "internalType": "address", "name": "oldTimelock", "type": "address"}, {"indexed": false, "internalType": "address", "name": "newTimelock", "type": "address"}], "name": "TimelockChange", "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": "weight", "type": "uint256"}, {"indexed": false, "internalType": "string", "name": "reason", "type": "string"}], "name": "VoteCast", "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": "weight", "type": "uint256"}, {"indexed": false, "internalType": "string", "name": "reason", "type": "string"}, {"indexed": false, "internalType": "bytes", "name": "params", "type": "bytes"}], "name": "VoteCastWithParams", "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"}, {"inputs": [], "name": "BALLOT_TYPEHASH", "outputs": [{"internalType": "bytes32", "name": "", "type": "bytes32"}], "stateMutability": "view", "type": "function"}, {"inputs": [], "name": "COUNTING_MODE", "outputs": [{"internalType": "string", "name": "", "type": "string"}], "stateMutability": "pure", "type": "function"}, {"inputs": [], "name": "EXTENDED_BALLOT_TYPEHASH", "outputs": [{"internalType": "bytes32", "name": "", "type": "bytes32"}], "stateMutability": "view", "type": "function"}, {"inputs": [{"internalType": "uint256", "name": "proposalId", "type": "uint256"}], "name": "cancel", "outputs": [], "stateMutability": "nonpayable", "type": "function"}, {"inputs": [{"internalType": "uint256", "name": "proposalId", "type": "uint256"}, {"internalType": "uint8", "name": "support", "type": "uint8"}], "name": "castVote", "outputs": [{"internalType": "uint256", "name": "", "type": "uint256"}], "stateMutability": "nonpayable", "type": "function"}, {"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": [{"internalType": "uint256", "name": "", "type": "uint256"}], "stateMutability": "nonpayable", "type": "function"}, {"inputs": [{"internalType": "uint256", "name": "proposalId", "type": "uint256"}, {"internalType": "uint8", "name": "support", "type": "uint8"}, {"internalType": "string", "name": "reason", "type": "string"}], "name": "castVoteWithReason", "outputs": [{"internalType": "uint256", "name": "", "type": "uint256"}], "stateMutability": "nonpayable", "type": "function"}, {"inputs": [{"internalType": "uint256", "name": "proposalId", "type": "uint256"}, {"internalType": "uint8", "name": "support", "type": "uint8"}, {"internalType": "string", "name": "reason", "type": "string"}, {"internalType": "bytes", "name": "params", "type": "bytes"}], "name": "castVoteWithReasonAndParams", "outputs": [{"internalType": "uint256", "name": "", "type": "uint256"}], "stateMutability": "nonpayable", "type": "function"}, {"inputs": [{"internalType": "uint256", "name": "proposalId", "type": "uint256"}, {"internalType": "uint8", "name": "support", "type": "uint8"}, {"internalType": "string", "name": "reason", "type": "string"}, {"internalType": "bytes", "name": "params", "type": "bytes"}, {"internalType": "uint8", "name": "v", "type": "uint8"}, {"internalType": "bytes32", "name": "r", "type": "bytes32"}, {"internalType": "bytes32", "name": "s", "type": "bytes32"}], "name": "castVoteWithReasonAndParamsBySig", "outputs": [{"internalType": "uint256", "name": "", "type": "uint256"}], "stateMutability": "nonpayable", "type": "function"}, {"inputs": [{"internalType": "address[]", "name": "targets", "type": "address[]"}, {"internalType": "uint256[]", "name": "values", "type": "uint256[]"}, {"internalType": "bytes[]", "name": "calldatas", "type": "bytes[]"}, {"internalType": "bytes32", "name": "descriptionHash", "type": "bytes32"}], "name": "execute", "outputs": [{"internalType": "uint256", "name": "", "type": "uint256"}], "stateMutability": "payable", "type": "function"}, {"inputs": [{"internalType": "uint256", "name": "proposalId", "type": "uint256"}], "name": "execute", "outputs": [], "stateMutability": "payable", "type": "function"}, {"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[]"}], "stateMutability": "view", "type": "function"}, {"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": "uint256", "name": "votes", "type": "uint256"}], "internalType": "struct IGovernorCompatibilityBravo.Receipt", "name": "", "type": "tuple"}], "stateMutability": "view", "type": "function"}, {"inputs": [{"internalType": "address", "name": "account", "type": "address"}, {"internalType": "uint256", "name": "blockNumber", "type": "uint256"}], "name": "getVotes", "outputs": [{"internalType": "uint256", "name": "", "type": "uint256"}], "stateMutability": "view", "type": "function"}, {"inputs": [{"internalType": "address", "name": "account", "type": "address"}, {"internalType": "uint256", "name": "blockNumber", "type": "uint256"}, {"internalType": "bytes", "name": "params", "type": "bytes"}], "name": "getVotesWithParams", "outputs": [{"internalType": "uint256", "name": "", "type": "uint256"}], "stateMutability": "view", "type": "function"}, {"inputs": [{"internalType": "uint256", "name": "proposalId", "type": "uint256"}, {"internalType": "address", "name": "account", "type": "address"}], "name": "hasVoted", "outputs": [{"internalType": "bool", "name": "", "type": "bool"}], "stateMutability": "view", "type": "function"}, {"inputs": [{"internalType": "address[]", "name": "targets", "type": "address[]"}, {"internalType": "uint256[]", "name": "values", "type": "uint256[]"}, {"internalType": "bytes[]", "name": "calldatas", "type": "bytes[]"}, {"internalType": "bytes32", "name": "descriptionHash", "type": "bytes32"}], "name": "hashProposal", "outputs": [{"internalType": "uint256", "name": "", "type": "uint256"}], "stateMutability": "pure", "type": "function"}, {"inputs": [], "name": "lateQuorumVoteExtension", "outputs": [{"internalType": "uint64", "name": "", "type": "uint64"}], "stateMutability": "view", "type": "function"}, {"inputs": [], "name": "name", "outputs": [{"internalType": "string", "name": "", "type": "string"}], "stateMutability": "view", "type": "function"}, {"inputs": [{"internalType": "address", "name": "", "type": "address"}, {"internalType": "address", "name": "", "type": "address"}, {"internalType": "uint256[]", "name": "", "type": "uint256[]"}, {"internalType": "uint256[]", "name": "", "type": "uint256[]"}, {"internalType": "bytes", "name": "", "type": "bytes"}], "name": "onERC1155BatchReceived", "outputs": [{"internalType": "bytes4", "name": "", "type": "bytes4"}], "stateMutability": "nonpayable", "type": "function"}, {"inputs": [{"internalType": "address", "name": "", "type": "address"}, {"internalType": "address", "name": "", "type": "address"}, {"internalType": "uint256", "name": "", "type": "uint256"}, {"internalType": "uint256", "name": "", "type": "uint256"}, {"internalType": "bytes", "name": "", "type": "bytes"}], "name": "onERC1155Received", "outputs": [{"internalType": "bytes4", "name": "", "type": "bytes4"}], "stateMutability": "nonpayable", "type": "function"}, {"inputs": [{"internalType": "address", "name": "", "type": "address"}, {"internalType": "address", "name": "", "type": "address"}, {"internalType": "uint256", "name": "", "type": "uint256"}, {"internalType": "bytes", "name": "", "type": "bytes"}], "name": "onERC721Received", "outputs": [{"internalType": "bytes4", "name": "", "type": "bytes4"}], "stateMutability": "nonpayable", "type": "function"}, {"inputs": [{"internalType": "uint256", "name": "proposalId", "type": "uint256"}], "name": "proposalDeadline", "outputs": [{"internalType": "uint256", "name": "", "type": "uint256"}], "stateMutability": "view", "type": "function"}, {"inputs": [{"internalType": "uint256", "name": "proposalId", "type": "uint256"}], "name": "proposalEta", "outputs": [{"internalType": "uint256", "name": "", "type": "uint256"}], "stateMutability": "view", "type": "function"}, {"inputs": [{"internalType": "uint256", "name": "proposalId", "type": "uint256"}], "name": "proposalSnapshot", "outputs": [{"internalType": "uint256", "name": "", "type": "uint256"}], "stateMutability": "view", "type": "function"}, {"inputs": [], "name": "proposalThreshold", "outputs": [{"internalType": "uint256", "name": "", "type": "uint256"}], "stateMutability": "view", "type": "function"}, {"inputs": [{"internalType": "uint256", "name": "proposalId", "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"}], "stateMutability": "view", "type": "function"}, {"inputs": [{"internalType": "address[]", "name": "targets", "type": "address[]"}, {"internalType": "uint256[]", "name": "values", "type": "uint256[]"}, {"internalType": "bytes[]", "name": "calldatas", "type": "bytes[]"}, {"internalType": "string", "name": "description", "type": "string"}], "name": "propose", "outputs": [{"internalType": "uint256", "name": "", "type": "uint256"}], "stateMutability": "nonpayable", "type": "function"}, {"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"}], "stateMutability": "nonpayable", "type": "function"}, {"inputs": [{"internalType": "address[]", "name": "targets", "type": "address[]"}, {"internalType": "uint256[]", "name": "values", "type": "uint256[]"}, {"internalType": "bytes[]", "name": "calldatas", "type": "bytes[]"}, {"internalType": "bytes32", "name": "descriptionHash", "type": "bytes32"}], "name": "queue", "outputs": [{"internalType": "uint256", "name": "", "type": "uint256"}], "stateMutability": "nonpayable", "type": "function"}, {"inputs": [{"internalType": "uint256", "name": "proposalId", "type": "uint256"}], "name": "queue", "outputs": [], "stateMutability": "nonpayable", "type": "function"}, {"inputs": [{"internalType": "uint256", "name": "blockNumber", "type": "uint256"}], "name": "quorum", "outputs": [{"internalType": "uint256", "name": "", "type": "uint256"}], "stateMutability": "view", "type": "function"}, {"inputs": [], "name": "quorumDenominator", "outputs": [{"internalType": "uint256", "name": "", "type": "uint256"}], "stateMutability": "view", "type": "function"}, {"inputs": [], "name": "quorumNumerator", "outputs": [{"internalType": "uint256", "name": "", "type": "uint256"}], "stateMutability": "view", "type": "function"}, {"inputs": [], "name": "quorumVotes", "outputs": [{"internalType": "uint256", "name": "", "type": "uint256"}], "stateMutability": "view", "type": "function"}, {"inputs": [{"internalType": "address", "name": "target", "type": "address"}, {"internalType": "uint256", "name": "value", "type": "uint256"}, {"internalType": "bytes", "name": "data", "type": "bytes"}], "name": "relay", "outputs": [], "stateMutability": "nonpayable", "type": "function"}, {"inputs": [{"internalType": "uint64", "name": "newVoteExtension", "type": "uint64"}], "name": "setLateQuorumVoteExtension", "outputs": [], "stateMutability": "nonpayable", "type": "function"}, {"inputs": [{"internalType": "uint256", "name": "newProposalThreshold", "type": "uint256"}], "name": "setProposalThreshold", "outputs": [], "stateMutability": "nonpayable", "type": "function"}, {"inputs": [{"internalType": "uint256", "name": "newVotingDelay", "type": "uint256"}], "name": "setVotingDelay", "outputs": [], "stateMutability": "nonpayable", "type": "function"}, {"inputs": [{"internalType": "uint256", "name": "newVotingPeriod", "type": "uint256"}], "name": "setVotingPeriod", "outputs": [], "stateMutability": "nonpayable", "type": "function"}, {"inputs": [{"internalType": "uint256", "name": "proposalId", "type": "uint256"}], "name": "state", "outputs": [{"internalType": "enum IGovernor.ProposalState", "name": "", "type": "uint8"}], "stateMutability": "view", "type": "function"}, {"inputs": [{"internalType": "bytes4", "name": "interfaceId", "type": "bytes4"}], "name": "supportsInterface", "outputs": [{"internalType": "bool", "name": "", "type": "bool"}], "stateMutability": "view", "type": "function"}, {"inputs": [], "name": "timelock", "outputs": [{"internalType": "address", "name": "", "type": "address"}], "stateMutability": "view", "type": "function"}, {"inputs": [], "name": "token", "outputs": [{"internalType": "contract IVotes", "name": "", "type": "address"}], "stateMutability": "view", "type": "function"}, {"inputs": [{"internalType": "uint256", "name": "newQuorumNumerator", "type": "uint256"}], "name": "updateQuorumNumerator", "outputs": [], "stateMutability": "nonpayable", "type": "function"}, {"inputs": [{"internalType": "contract TimelockController", "name": "newTimelock", "type": "address"}], "name": "updateTimelock", "outputs": [], "stateMutability": "nonpayable", "type": "function"}, {"inputs": [], "name": "version", "outputs": [{"internalType": "string", "name": "", "type": "string"}], "stateMutability": "view", "type": "function"}, {"inputs": [], "name": "votingDelay", "outputs": [{"internalType": "uint256", "name": "", "type": "uint256"}], "stateMutability": "view", "type": "function"}, {"inputs": [], "name": "votingPeriod", "outputs": [{"internalType": "uint256", "name": "", "type": "uint256"}], "stateMutability": "view", "type": "function"}, {"stateMutability": "payable", "type": "receive"}], "allSourcePaths": {"10": "/Users/dvf/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.6.0/contracts/governance/IGovernor.sol", "11": "/Users/dvf/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.6.0/contracts/governance/TimelockController.sol", "12": "/Users/dvf/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.6.0/contracts/governance/extensions/GovernorPreventLateQuorum.sol", "13": "/Users/dvf/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.6.0/contracts/governance/extensions/GovernorSettings.sol", "14": "/Users/dvf/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.6.0/contracts/governance/extensions/GovernorTimelockControl.sol", "15": "/Users/dvf/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.6.0/contracts/governance/extensions/GovernorVotes.sol", "16": "/Users/dvf/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.6.0/contracts/governance/extensions/GovernorVotesQuorumFraction.sol", "17": "/Users/dvf/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.6.0/contracts/governance/extensions/IGovernorTimelock.sol", "18": "/Users/dvf/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.6.0/contracts/governance/utils/IVotes.sol", "19": "/Users/dvf/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.6.0/contracts/token/ERC1155/IERC1155Receiver.sol", "20": "/Users/dvf/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.6.0/contracts/token/ERC20/ERC20.sol", "21": "/Users/dvf/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.6.0/contracts/token/ERC20/IERC20.sol", "22": "/Users/dvf/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.6.0/contracts/token/ERC20/extensions/ERC20Votes.sol", "23": "/Users/dvf/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.6.0/contracts/token/ERC20/extensions/IERC20Metadata.sol", "24": "/Users/dvf/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.6.0/contracts/token/ERC20/extensions/draft-ERC20Permit.sol", "25": "/Users/dvf/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.6.0/contracts/token/ERC20/extensions/draft-IERC20Permit.sol", "26": "/Users/dvf/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.6.0/contracts/token/ERC721/IERC721Receiver.sol", "28": "/Users/dvf/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.6.0/contracts/utils/Context.sol", "29": "/Users/dvf/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.6.0/contracts/utils/Counters.sol", "30": "/Users/dvf/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.6.0/contracts/utils/Strings.sol", "32": "/Users/dvf/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.6.0/contracts/utils/cryptography/ECDSA.sol", "34": "/Users/dvf/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.6.0/contracts/utils/cryptography/draft-EIP712.sol", "35": "/Users/dvf/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.6.0/contracts/utils/introspection/ERC165.sol", "36": "/Users/dvf/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.6.0/contracts/utils/introspection/IERC165.sol", "37": "/Users/dvf/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.6.0/contracts/utils/math/Math.sol", "38": "/Users/dvf/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.6.0/contracts/utils/math/SafeCast.sol", "41": "contracts/Governance.sol", "42": "contracts/GovernorCompatibilityBravo.sol", "43": "contracts/IGovernorCompatibilityBravo.sol", "7": "/Users/dvf/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.6.0/contracts/access/AccessControl.sol", "8": "/Users/dvf/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.6.0/contracts/access/IAccessControl.sol", "9": "/Users/dvf/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.6.0/contracts/governance/Governor.sol"}, "ast": {"absolutePath": "contracts/Governance.sol", "exportedSymbols": {"AccessControl": [8594], "Address": [7519], "Context": [7541], "Counters": [6482], "DoubleEndedQueue": [8274], "ECDSA": [6015], "EIP712": [7909], "ERC165": [7933], "ERC20": [9180], "ERC20Permit": [5608], "ERC20Votes": [2019], "Governance": [243], "Governor": [4295], "GovernorCompatibilityBravo": [2799], "GovernorPreventLateQuorum": [720], "GovernorSettings": [898], "GovernorTimelockControl": [1275], "GovernorVotes": [5358], "GovernorVotesQuorumFraction": [1382], "IAccessControl": [10299], "IERC1155Receiver": [7206], "IERC165": [10226], "IERC20": [6775], "IERC20Metadata": [10324], "IERC20Permit": [9216], "IERC721Receiver": [7224], "IGovernor": [7165], "IGovernorCompatibilityBravo": [6633], "IGovernorTimelock": [5316], "IVotes": [5436], "Math": [4383], "SafeCast": [6408], "Strings": [9419], "TimelockController": [5275], "Timers": [7755]}, "id": 244, "license": "MIT", "nodeType": "SourceUnit", "nodes": [{"id": 1, "literals": ["solidity", "^", "0.8", ".4"], "nodeType": "PragmaDirective", "src": "32:23:41"}, {"absolutePath": "/Users/dvf/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.6.0/contracts/token/ERC20/extensions/ERC20Votes.sol", "file": "OpenZeppelin/openzeppelin-contracts@4.6.0/contracts/token/ERC20/extensions/ERC20Votes.sol", "id": 2, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", "scope": 244, "sourceUnit": 2020, "src": "57:99:41", "symbolAliases": [], "unitAlias": ""}, {"absolutePath": "/Users/dvf/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.6.0/contracts/governance/extensions/GovernorSettings.sol", "file": "OpenZeppelin/openzeppelin-contracts@4.6.0/contracts/governance/extensions/GovernorSettings.sol", "id": 3, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", "scope": 244, "sourceUnit": 899, "src": "157:104:41", "symbolAliases": [], "unitAlias": ""}, {"absolutePath": "/Users/dvf/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.6.0/contracts/governance/extensions/GovernorVotesQuorumFraction.sol", "file": "OpenZeppelin/openzeppelin-contracts@4.6.0/contracts/governance/extensions/GovernorVotesQuorumFraction.sol", "id": 4, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", "scope": 244, "sourceUnit": 1383, "src": "262:115:41", "symbolAliases": [], "unitAlias": ""}, {"absolutePath": "/Users/dvf/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.6.0/contracts/governance/extensions/GovernorTimelockControl.sol", "file": "OpenZeppelin/openzeppelin-contracts@4.6.0/contracts/governance/extensions/GovernorTimelockControl.sol", "id": 5, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", "scope": 244, "sourceUnit": 1276, "src": "378:111:41", "symbolAliases": [], "unitAlias": ""}, {"absolutePath": "/Users/dvf/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.6.0/contracts/governance/extensions/GovernorPreventLateQuorum.sol", "file": "OpenZeppelin/openzeppelin-contracts@4.6.0/contracts/governance/extensions/GovernorPreventLateQuorum.sol", "id": 6, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", "scope": 244, "sourceUnit": 721, "src": "490:113:41", "symbolAliases": [], "unitAlias": ""}, {"absolutePath": "contracts/GovernorCompatibilityBravo.sol", "file": "./GovernorCompatibilityBravo.sol", "id": 7, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", "scope": 244, "sourceUnit": 2800, "src": "604:42:41", "symbolAliases": [], "unitAlias": ""}, {"abstract": false, "baseContracts": [{"baseName": {"id": 8, "name": "GovernorSettings", "nodeType": "IdentifierPath", "referencedDeclaration": 898, "src": "675:16:41"}, "id": 9, "nodeType": "InheritanceSpecifier", "src": "675:16:41"}, {"baseName": {"id": 10, "name": "GovernorCompatibilityBravo", "nodeType": "IdentifierPath", "referencedDeclaration": 2799, "src": "697:26:41"}, "id": 11, "nodeType": "InheritanceSpecifier", "src": "697:26:41"}, {"baseName": {"id": 12, "name": "GovernorVotesQuorumFraction", "nodeType": "IdentifierPath", "referencedDeclaration": 1382, "src": "729:27:41"}, "id": 13, "nodeType": "InheritanceSpecifier", "src": "729:27:41"}, {"baseName": {"id": 14, "name": "GovernorTimelockControl", "nodeType": "IdentifierPath", "referencedDeclaration": 1275, "src": "762:23:41"}, "id": 15, "nodeType": "InheritanceSpecifier", "src": "762:23:41"}, {"baseName": {"id": 16, "name": "GovernorPreventLateQuorum", "nodeType": "IdentifierPath", "referencedDeclaration": 720, "src": "791:25:41"}, "id": 17, "nodeType": "InheritanceSpecifier", "src": "791:25:41"}], "canonicalName": "Governance", "contractDependencies": [], "contractKind": "contract", "fullyImplemented": true, "id": 243, "linearizedBaseContracts": [243, 720, 1275, 1382, 5358, 2799, 898, 4295, 7206, 7224, 6633, 5316, 7165, 7909, 7933, 10226, 7541], "name": "Governance", "nameLocation": "657:10:41", "nodeType": "ContractDefinition", "nodes": [{"body": {"id": 48, "nodeType": "Block", "src": "1323:2:41", "statements": []}, "id": 49, "implemented": true, "kind": "constructor", "modifiers": [{"arguments": [{"hexValue": "4f55534420476f7665726e616e6365", "id": 26, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "901:17:41", "typeDescriptions": {"typeIdentifier": "t_stringliteral_c6e557c1327694b3f821482d5110c0c9018a2738de13e0f863f04392bec7b424", "typeString": "literal_string \"OUSD Governance\""}, "value": "OUSD Governance"}], "id": 27, "kind": "baseConstructorSpecifier", "modifierName": {"id": 25, "name": "Governor", "nodeType": "IdentifierPath", "referencedDeclaration": 4295, "src": "892:8:41"}, "nodeType": "ModifierInvocation", "src": "892:27:41"}, {"arguments": [{"hexValue": "31", "id": 29, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "958:1:41", "typeDescriptions": {"typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1"}, "value": "1"}, {"hexValue": "3137323830", "id": 30, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "987:5:41", "typeDescriptions": {"typeIdentifier": "t_rational_17280_by_1", "typeString": "int_const 17280"}, "value": "17280"}, {"commonType": {"typeIdentifier": "t_rational_10000000000000000000000000_by_1", "typeString": "int_const 10000000000000000000000000"}, "id": 33, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "leftExpression": {"hexValue": "3130303030303030", "id": 31, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "1037:8:41", "typeDescriptions": {"typeIdentifier": "t_rational_10000000_by_1", "typeString": "int_const 10000000"}, "value": "10000000"}, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": {"hexValue": "31653138", "id": 32, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "1048:4:41", "typeDescriptions": {"typeIdentifier": "t_rational_1000000000000000000_by_1", "typeString": "int_const 1000000000000000000"}, "value": "1e18"}, "src": "1037:15:41", "typeDescriptions": {"typeIdentifier": "t_rational_10000000000000000000000000_by_1", "typeString": "int_const 10000000000000000000000000"}}], "id": 34, "kind": "baseConstructorSpecifier", "modifierName": {"id": 28, "name": "GovernorSettings", "nodeType": "IdentifierPath", "referencedDeclaration": 898, "src": "928:16:41"}, "nodeType": "ModifierInvocation", "src": "928:153:41"}, {"arguments": [{"id": 36, "name": "_token", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 20, "src": "1104:6:41", "typeDescriptions": {"typeIdentifier": "t_contract$_ERC20Votes_$2019", "typeString": "contract ERC20Votes"}}], "id": 37, "kind": "baseConstructorSpecifier", "modifierName": {"id": 35, "name": "GovernorVotes", "nodeType": "IdentifierPath", "referencedDeclaration": 5358, "src": "1090:13:41"}, "nodeType": "ModifierInvocation", "src": "1090:21:41"}, {"arguments": [{"hexValue": "3230", "id": 39, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "1148:2:41", "typeDescriptions": {"typeIdentifier": "t_rational_20_by_1", "typeString": "int_const 20"}, "value": "20"}], "id": 40, "kind": "baseConstructorSpecifier", "modifierName": {"id": 38, "name": "GovernorVotesQuorumFraction", "nodeType": "IdentifierPath", "referencedDeclaration": 1382, "src": "1120:27:41"}, "nodeType": "ModifierInvocation", "src": "1120:31:41"}, {"arguments": [{"id": 42, "name": "_timelock", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 23, "src": "1239:9:41", "typeDescriptions": {"typeIdentifier": "t_contract$_TimelockController_$5275", "typeString": "contract TimelockController"}}], "id": 43, "kind": "baseConstructorSpecifier", "modifierName": {"id": 41, "name": "GovernorTimelockControl", "nodeType": "IdentifierPath", "referencedDeclaration": 1275, "src": "1215:23:41"}, "nodeType": "ModifierInvocation", "src": "1215:34:41"}, {"arguments": [{"hexValue": "3131353230", "id": 45, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "1284:5:41", "typeDescriptions": {"typeIdentifier": "t_rational_11520_by_1", "typeString": "int_const 11520"}, "value": "11520"}], "id": 46, "kind": "baseConstructorSpecifier", "modifierName": {"id": 44, "name": "GovernorPreventLateQuorum", "nodeType": "IdentifierPath", "referencedDeclaration": 720, "src": "1258:25:41"}, "nodeType": "ModifierInvocation", "src": "1258:32:41"}], "name": "", "nameLocation": "-1:-1:-1", "nodeType": "FunctionDefinition", "parameters": {"id": 24, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 20, "mutability": "mutable", "name": "_token", "nameLocation": "846:6:41", "nodeType": "VariableDeclaration", "scope": 49, "src": "835:17:41", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_contract$_ERC20Votes_$2019", "typeString": "contract ERC20Votes"}, "typeName": {"id": 19, "nodeType": "UserDefinedTypeName", "pathNode": {"id": 18, "name": "ERC20Votes", "nodeType": "IdentifierPath", "referencedDeclaration": 2019, "src": "835:10:41"}, "referencedDeclaration": 2019, "src": "835:10:41", "typeDescriptions": {"typeIdentifier": "t_contract$_ERC20Votes_$2019", "typeString": "contract ERC20Votes"}}, "visibility": "internal"}, {"constant": false, "id": 23, "mutability": "mutable", "name": "_timelock", "nameLocation": "873:9:41", "nodeType": "VariableDeclaration", "scope": 49, "src": "854:28:41", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_contract$_TimelockController_$5275", "typeString": "contract TimelockController"}, "typeName": {"id": 22, "nodeType": "UserDefinedTypeName", "pathNode": {"id": 21, "name": "TimelockController", "nodeType": "IdentifierPath", "referencedDeclaration": 5275, "src": "854:18:41"}, "referencedDeclaration": 5275, "src": "854:18:41", "typeDescriptions": {"typeIdentifier": "t_contract$_TimelockController_$5275", "typeString": "contract TimelockController"}}, "visibility": "internal"}], "src": "834:49:41"}, "returnParameters": {"id": 47, "nodeType": "ParameterList", "parameters": [], "src": "1323:0:41"}, "scope": 243, "src": "823:502:41", "stateMutability": "nonpayable", "virtual": false, "visibility": "public"}, {"baseFunctions": [1025, 3324, 6990], "body": {"id": 66, "nodeType": "Block", "src": "1561:47:41", "statements": [{"expression": {"arguments": [{"id": 63, "name": "proposalId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 51, "src": "1590:10:41", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_uint256", "typeString": "uint256"}], "expression": {"id": 61, "name": "super", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -25, "src": "1578:5:41", "typeDescriptions": {"typeIdentifier": "t_type$_t_super$_Governance_$243_$", "typeString": "type(contract super Governance)"}}, "id": 62, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "state", "nodeType": "MemberAccess", "referencedDeclaration": 1025, "src": "1578:11:41", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_enum$_ProposalState_$6883_$", "typeString": "function (uint256) view returns (enum IGovernor.ProposalState)"}}, "id": 64, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1578:23:41", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_enum$_ProposalState_$6883", "typeString": "enum IGovernor.ProposalState"}}, "functionReturnParameters": 60, "id": 65, "nodeType": "Return", "src": "1571:30:41"}]}, "functionSelector": "3e4f49e6", "id": 67, "implemented": true, "kind": "function", "modifiers": [], "name": "state", "nameLocation": "1408:5:41", "nodeType": "FunctionDefinition", "overrides": {"id": 56, "nodeType": "OverrideSpecifier", "overrides": [{"id": 53, "name": "Governor", "nodeType": "IdentifierPath", "referencedDeclaration": 4295, "src": "1479:8:41"}, {"id": 54, "name": "IGovernor", "nodeType": "IdentifierPath", "referencedDeclaration": 7165, "src": "1489:9:41"}, {"id": 55, "name": "GovernorTimelockControl", "nodeType": "IdentifierPath", "referencedDeclaration": 1275, "src": "1500:23:41"}], "src": "1470:54:41"}, "parameters": {"id": 52, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 51, "mutability": "mutable", "name": "proposalId", "nameLocation": "1422:10:41", "nodeType": "VariableDeclaration", "scope": 67, "src": "1414:18:41", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 50, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1414:7:41", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "1413:20:41"}, "returnParameters": {"id": 60, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 59, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 67, "src": "1542:13:41", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_enum$_ProposalState_$6883", "typeString": "enum IGovernor.ProposalState"}, "typeName": {"id": 58, "nodeType": "UserDefinedTypeName", "pathNode": {"id": 57, "name": "ProposalState", "nodeType": "IdentifierPath", "referencedDeclaration": 6883, "src": "1542:13:41"}, "referencedDeclaration": 6883, "src": "1542:13:41", "typeDescriptions": {"typeIdentifier": "t_enum$_ProposalState_$6883", "typeString": "enum IGovernor.ProposalState"}}, "visibility": "internal"}], "src": "1541:15:41"}, "scope": 243, "src": "1399:209:41", "stateMutability": "view", "virtual": false, "visibility": "public"}, {"baseFunctions": [2131, 3564, 7075], "body": {"id": 95, "nodeType": "Block", "src": "1884:78:41", "statements": [{"expression": {"arguments": [{"id": 89, "name": "targets", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 70, "src": "1915:7:41", "typeDescriptions": {"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory"}}, {"id": 90, "name": "values", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 73, "src": "1924:6:41", "typeDescriptions": {"typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory"}}, {"id": 91, "name": "calldatas", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 76, "src": "1932:9:41", "typeDescriptions": {"typeIdentifier": "t_array$_t_bytes_memory_ptr_$dyn_memory_ptr", "typeString": "bytes memory[] memory"}}, {"id": 92, "name": "description", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 78, "src": "1943:11:41", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}], "expression": {"argumentTypes": [{"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_bytes_memory_ptr_$dyn_memory_ptr", "typeString": "bytes memory[] memory"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}], "expression": {"id": 87, "name": "super", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -25, "src": "1901:5:41", "typeDescriptions": {"typeIdentifier": "t_type$_t_super$_Governance_$243_$", "typeString": "type(contract super Governance)"}}, "id": 88, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "propose", "nodeType": "MemberAccess", "referencedDeclaration": 2131, "src": "1901:13:41", "typeDescriptions": {"typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$_t_string_memory_ptr_$returns$_t_uint256_$", "typeString": "function (address[] memory,uint256[] memory,bytes memory[] memory,string memory) returns (uint256)"}}, "id": 93, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1901:54:41", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "functionReturnParameters": 86, "id": 94, "nodeType": "Return", "src": "1894:61:41"}]}, "functionSelector": "7d5e81e2", "id": 96, "implemented": true, "kind": "function", "modifiers": [], "name": "propose", "nameLocation": "1623:7:41", "nodeType": "FunctionDefinition", "overrides": {"id": 83, "nodeType": "OverrideSpecifier", "overrides": [{"id": 80, "name": "Governor", "nodeType": "IdentifierPath", "referencedDeclaration": 4295, "src": "1805:8:41"}, {"id": 81, "name": "GovernorCompatibilityBravo", "nodeType": "IdentifierPath", "referencedDeclaration": 2799, "src": "1815:26:41"}, {"id": 82, "name": "IGovernor", "nodeType": "IdentifierPath", "referencedDeclaration": 7165, "src": "1843:9:41"}], "src": "1796:57:41"}, "parameters": {"id": 79, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 70, "mutability": "mutable", "name": "targets", "nameLocation": "1657:7:41", "nodeType": "VariableDeclaration", "scope": 96, "src": "1640:24:41", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[]"}, "typeName": {"baseType": {"id": 68, "name": "address", "nodeType": "ElementaryTypeName", "src": "1640:7:41", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "id": 69, "nodeType": "ArrayTypeName", "src": "1640:9:41", "typeDescriptions": {"typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]"}}, "visibility": "internal"}, {"constant": false, "id": 73, "mutability": "mutable", "name": "values", "nameLocation": "1691:6:41", "nodeType": "VariableDeclaration", "scope": 96, "src": "1674:23:41", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[]"}, "typeName": {"baseType": {"id": 71, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1674:7:41", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "id": 72, "nodeType": "ArrayTypeName", "src": "1674:9:41", "typeDescriptions": {"typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]"}}, "visibility": "internal"}, {"constant": false, "id": 76, "mutability": "mutable", "name": "calldatas", "nameLocation": "1722:9:41", "nodeType": "VariableDeclaration", "scope": 96, "src": "1707:24:41", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_array$_t_bytes_memory_ptr_$dyn_memory_ptr", "typeString": "bytes[]"}, "typeName": {"baseType": {"id": 74, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "1707:5:41", "typeDescriptions": {"typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes"}}, "id": 75, "nodeType": "ArrayTypeName", "src": "1707:7:41", "typeDescriptions": {"typeIdentifier": "t_array$_t_bytes_storage_$dyn_storage_ptr", "typeString": "bytes[]"}}, "visibility": "internal"}, {"constant": false, "id": 78, "mutability": "mutable", "name": "description", "nameLocation": "1755:11:41", "nodeType": "VariableDeclaration", "scope": 96, "src": "1741:25:41", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 77, "name": "string", "nodeType": "ElementaryTypeName", "src": "1741:6:41", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}], "src": "1630:142:41"}, "returnParameters": {"id": 86, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 85, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 96, "src": "1871:7:41", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 84, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1871:7:41", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "1870:9:41"}, "scope": 243, "src": "1614:348:41", "stateMutability": "nonpayable", "virtual": false, "visibility": "public"}, {"baseFunctions": [803, 3367], "body": {"id": 108, "nodeType": "Block", "src": "2100:49:41", "statements": [{"expression": {"arguments": [], "expression": {"argumentTypes": [], "expression": {"id": 104, "name": "super", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -25, "src": "2117:5:41", "typeDescriptions": {"typeIdentifier": "t_type$_t_super$_Governance_$243_$", "typeString": "type(contract super Governance)"}}, "id": 105, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "proposalThreshold", "nodeType": "MemberAccess", "referencedDeclaration": 803, "src": "2117:23:41", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", "typeString": "function () view returns (uint256)"}}, "id": 106, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2117:25:41", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "functionReturnParameters": 103, "id": 107, "nodeType": "Return", "src": "2110:32:41"}]}, "functionSelector": "b58131b0", "id": 109, "implemented": true, "kind": "function", "modifiers": [], "name": "proposalThreshold", "nameLocation": "1977:17:41", "nodeType": "FunctionDefinition", "overrides": {"id": 100, "nodeType": "OverrideSpecifier", "overrides": [{"id": 98, "name": "Governor", "nodeType": "IdentifierPath", "referencedDeclaration": 4295, "src": "2042:8:41"}, {"id": 99, "name": "GovernorSettings", "nodeType": "IdentifierPath", "referencedDeclaration": 898, "src": "2052:16:41"}], "src": "2033:36:41"}, "parameters": {"id": 97, "nodeType": "ParameterList", "parameters": [], "src": "1994:2:41"}, "returnParameters": {"id": 103, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 102, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 109, "src": "2087:7:41", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 101, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2087:7:41", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "2086:9:41"}, "scope": 243, "src": "1968:181:41", "stateMutability": "view", "virtual": false, "visibility": "public"}, {"baseFunctions": [1174, 3709], "body": {"id": 138, "nodeType": "Block", "src": "2394:88:41", "statements": [{"expression": {"arguments": [{"id": 131, "name": "proposalId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 111, "src": "2419:10:41", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 132, "name": "targets", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 114, "src": "2431:7:41", "typeDescriptions": {"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory"}}, {"id": 133, "name": "values", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 117, "src": "2440:6:41", "typeDescriptions": {"typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory"}}, {"id": 134, "name": "calldatas", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 120, "src": "2448:9:41", "typeDescriptions": {"typeIdentifier": "t_array$_t_bytes_memory_ptr_$dyn_memory_ptr", "typeString": "bytes memory[] memory"}}, {"id": 135, "name": "descriptionHash", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 122, "src": "2459:15:41", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"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_bytes_memory_ptr_$dyn_memory_ptr", "typeString": "bytes memory[] memory"}, {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}], "expression": {"id": 128, "name": "super", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -25, "src": "2404:5:41", "typeDescriptions": {"typeIdentifier": "t_type$_t_super$_Governance_$243_$", "typeString": "type(contract super Governance)"}}, "id": 130, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "_execute", "nodeType": "MemberAccess", "referencedDeclaration": 1174, "src": "2404:14:41", "typeDescriptions": {"typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$_t_bytes32_$returns$__$", "typeString": "function (uint256,address[] memory,uint256[] memory,bytes memory[] memory,bytes32)"}}, "id": 136, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2404:71:41", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_tuple$__$", "typeString": "tuple()"}}, "id": 137, "nodeType": "ExpressionStatement", "src": "2404:71:41"}]}, "id": 139, "implemented": true, "kind": "function", "modifiers": [], "name": "_execute", "nameLocation": "2164:8:41", "nodeType": "FunctionDefinition", "overrides": {"id": 126, "nodeType": "OverrideSpecifier", "overrides": [{"id": 124, "name": "Governor", "nodeType": "IdentifierPath", "referencedDeclaration": 4295, "src": "2359:8:41"}, {"id": 125, "name": "GovernorTimelockControl", "nodeType": "IdentifierPath", "referencedDeclaration": 1275, "src": "2369:23:41"}], "src": "2350:43:41"}, "parameters": {"id": 123, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 111, "mutability": "mutable", "name": "proposalId", "nameLocation": "2190:10:41", "nodeType": "VariableDeclaration", "scope": 139, "src": "2182:18:41", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 110, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2182:7:41", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 114, "mutability": "mutable", "name": "targets", "nameLocation": "2227:7:41", "nodeType": "VariableDeclaration", "scope": 139, "src": "2210:24:41", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[]"}, "typeName": {"baseType": {"id": 112, "name": "address", "nodeType": "ElementaryTypeName", "src": "2210:7:41", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "id": 113, "nodeType": "ArrayTypeName", "src": "2210:9:41", "typeDescriptions": {"typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]"}}, "visibility": "internal"}, {"constant": false, "id": 117, "mutability": "mutable", "name": "values", "nameLocation": "2261:6:41", "nodeType": "VariableDeclaration", "scope": 139, "src": "2244:23:41", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[]"}, "typeName": {"baseType": {"id": 115, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2244:7:41", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "id": 116, "nodeType": "ArrayTypeName", "src": "2244:9:41", "typeDescriptions": {"typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]"}}, "visibility": "internal"}, {"constant": false, "id": 120, "mutability": "mutable", "name": "calldatas", "nameLocation": "2292:9:41", "nodeType": "VariableDeclaration", "scope": 139, "src": "2277:24:41", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_array$_t_bytes_memory_ptr_$dyn_memory_ptr", "typeString": "bytes[]"}, "typeName": {"baseType": {"id": 118, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "2277:5:41", "typeDescriptions": {"typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes"}}, "id": 119, "nodeType": "ArrayTypeName", "src": "2277:7:41", "typeDescriptions": {"typeIdentifier": "t_array$_t_bytes_storage_$dyn_storage_ptr", "typeString": "bytes[]"}}, "visibility": "internal"}, {"constant": false, "id": 122, "mutability": "mutable", "name": "descriptionHash", "nameLocation": "2319:15:41", "nodeType": "VariableDeclaration", "scope": 139, "src": "2311:23:41", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, "typeName": {"id": 121, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "2311:7:41", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "visibility": "internal"}], "src": "2172:168:41"}, "returnParameters": {"id": 127, "nodeType": "ParameterList", "parameters": [], "src": "2394:0:41"}, "scope": 243, "src": "2155:327:41", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal"}, {"baseFunctions": [1225, 3872], "body": {"id": 166, "nodeType": "Block", "src": "2716:82:41", "statements": [{"expression": {"arguments": [{"id": 160, "name": "targets", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 142, "src": "2747:7:41", "typeDescriptions": {"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory"}}, {"id": 161, "name": "values", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 145, "src": "2756:6:41", "typeDescriptions": {"typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory"}}, {"id": 162, "name": "calldatas", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 148, "src": "2764:9:41", "typeDescriptions": {"typeIdentifier": "t_array$_t_bytes_memory_ptr_$dyn_memory_ptr", "typeString": "bytes memory[] memory"}}, {"id": 163, "name": "descriptionHash", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 150, "src": "2775:15:41", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}], "expression": {"argumentTypes": [{"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_bytes_memory_ptr_$dyn_memory_ptr", "typeString": "bytes memory[] memory"}, {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}], "expression": {"id": 158, "name": "super", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -25, "src": "2733:5:41", "typeDescriptions": {"typeIdentifier": "t_type$_t_super$_Governance_$243_$", "typeString": "type(contract super Governance)"}}, "id": 159, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "_cancel", "nodeType": "MemberAccess", "referencedDeclaration": 1225, "src": "2733:13:41", "typeDescriptions": {"typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$_t_bytes32_$returns$_t_uint256_$", "typeString": "function (address[] memory,uint256[] memory,bytes memory[] memory,bytes32) returns (uint256)"}}, "id": 164, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2733:58:41", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "functionReturnParameters": 157, "id": 165, "nodeType": "Return", "src": "2726:65:41"}]}, "id": 167, "implemented": true, "kind": "function", "modifiers": [], "name": "_cancel", "nameLocation": "2497:7:41", "nodeType": "FunctionDefinition", "overrides": {"id": 154, "nodeType": "OverrideSpecifier", "overrides": [{"id": 152, "name": "Governor", "nodeType": "IdentifierPath", "referencedDeclaration": 4295, "src": "2663:8:41"}, {"id": 153, "name": "GovernorTimelockControl", "nodeType": "IdentifierPath", "referencedDeclaration": 1275, "src": "2673:23:41"}], "src": "2654:43:41"}, "parameters": {"id": 151, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 142, "mutability": "mutable", "name": "targets", "nameLocation": "2531:7:41", "nodeType": "VariableDeclaration", "scope": 167, "src": "2514:24:41", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[]"}, "typeName": {"baseType": {"id": 140, "name": "address", "nodeType": "ElementaryTypeName", "src": "2514:7:41", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "id": 141, "nodeType": "ArrayTypeName", "src": "2514:9:41", "typeDescriptions": {"typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]"}}, "visibility": "internal"}, {"constant": false, "id": 145, "mutability": "mutable", "name": "values", "nameLocation": "2565:6:41", "nodeType": "VariableDeclaration", "scope": 167, "src": "2548:23:41", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[]"}, "typeName": {"baseType": {"id": 143, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2548:7:41", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "id": 144, "nodeType": "ArrayTypeName", "src": "2548:9:41", "typeDescriptions": {"typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]"}}, "visibility": "internal"}, {"constant": false, "id": 148, "mutability": "mutable", "name": "calldatas", "nameLocation": "2596:9:41", "nodeType": "VariableDeclaration", "scope": 167, "src": "2581:24:41", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_array$_t_bytes_memory_ptr_$dyn_memory_ptr", "typeString": "bytes[]"}, "typeName": {"baseType": {"id": 146, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "2581:5:41", "typeDescriptions": {"typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes"}}, "id": 147, "nodeType": "ArrayTypeName", "src": "2581:7:41", "typeDescriptions": {"typeIdentifier": "t_array$_t_bytes_storage_$dyn_storage_ptr", "typeString": "bytes[]"}}, "visibility": "internal"}, {"constant": false, "id": 150, "mutability": "mutable", "name": "descriptionHash", "nameLocation": "2623:15:41", "nodeType": "VariableDeclaration", "scope": 167, "src": "2615:23:41", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}, "typeName": {"id": 149, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "2615:7:41", "typeDescriptions": {"typeIdentifier": "t_bytes32", "typeString": "bytes32"}}, "visibility": "internal"}], "src": "2504:140:41"}, "returnParameters": {"id": 157, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 156, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 167, "src": "2707:7:41", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 155, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2707:7:41", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "2706:9:41"}, "scope": 243, "src": "2488:310:41", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal"}, {"baseFunctions": [1238, 4228], "body": {"id": 179, "nodeType": "Block", "src": "2937:41:41", "statements": [{"expression": {"arguments": [], "expression": {"argumentTypes": [], "expression": {"id": 175, "name": "super", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -25, "src": "2954:5:41", "typeDescriptions": {"typeIdentifier": "t_type$_t_super$_Governance_$243_$", "typeString": "type(contract super Governance)"}}, "id": 176, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "_executor", "nodeType": "MemberAccess", "referencedDeclaration": 1238, "src": "2954:15:41", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)"}}, "id": 177, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2954:17:41", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "functionReturnParameters": 174, "id": 178, "nodeType": "Return", "src": "2947:24:41"}]}, "id": 180, "implemented": true, "kind": "function", "modifiers": [], "name": "_executor", "nameLocation": "2813:9:41", "nodeType": "FunctionDefinition", "overrides": {"id": 171, "nodeType": "OverrideSpecifier", "overrides": [{"id": 169, "name": "Governor", "nodeType": "IdentifierPath", "referencedDeclaration": 4295, "src": "2872:8:41"}, {"id": 170, "name": "GovernorTimelockControl", "nodeType": "IdentifierPath", "referencedDeclaration": 1275, "src": "2882:23:41"}], "src": "2863:43:41"}, "parameters": {"id": 168, "nodeType": "ParameterList", "parameters": [], "src": "2822:2:41"}, "returnParameters": {"id": 174, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 173, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 180, "src": "2924:7:41", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 172, "name": "address", "nodeType": "ElementaryTypeName", "src": "2924:7:41", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}], "src": "2923:9:41"}, "scope": 243, "src": "2804:174:41", "stateMutability": "view", "virtual": false, "visibility": "internal"}, {"baseFunctions": [958, 3185, 10225], "body": {"id": 196, "nodeType": "Block", "src": "3147:60:41", "statements": [{"expression": {"arguments": [{"id": 193, "name": "interfaceId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 182, "src": "3188:11:41", "typeDescriptions": {"typeIdentifier": "t_bytes4", "typeString": "bytes4"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_bytes4", "typeString": "bytes4"}], "expression": {"id": 191, "name": "super", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -25, "src": "3164:5:41", "typeDescriptions": {"typeIdentifier": "t_type$_t_super$_Governance_$243_$", "typeString": "type(contract super Governance)"}}, "id": 192, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "supportsInterface", "nodeType": "MemberAccess", "referencedDeclaration": 958, "src": "3164:23:41", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_bytes4_$returns$_t_bool_$", "typeString": "function (bytes4) view returns (bool)"}}, "id": 194, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "3164:36:41", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "functionReturnParameters": 190, "id": 195, "nodeType": "Return", "src": "3157:43:41"}]}, "functionSelector": "01ffc9a7", "id": 197, "implemented": true, "kind": "function", "modifiers": [], "name": "supportsInterface", "nameLocation": "2993:17:41", "nodeType": "FunctionDefinition", "overrides": {"id": 187, "nodeType": "OverrideSpecifier", "overrides": [{"id": 184, "name": "Governor", "nodeType": "IdentifierPath", "referencedDeclaration": 4295, "src": "3076:8:41"}, {"id": 185, "name": "IERC165", "nodeType": "IdentifierPath", "referencedDeclaration": 10226, "src": "3086:7:41"}, {"id": 186, "name": "GovernorTimelockControl", "nodeType": "IdentifierPath", "referencedDeclaration": 1275, "src": "3095:23:41"}], "src": "3067:52:41"}, "parameters": {"id": 183, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 182, "mutability": "mutable", "name": "interfaceId", "nameLocation": "3018:11:41", "nodeType": "VariableDeclaration", "scope": 197, "src": "3011:18:41", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bytes4", "typeString": "bytes4"}, "typeName": {"id": 181, "name": "bytes4", "nodeType": "ElementaryTypeName", "src": "3011:6:41", "typeDescriptions": {"typeIdentifier": "t_bytes4", "typeString": "bytes4"}}, "visibility": "internal"}], "src": "3010:20:41"}, "returnParameters": {"id": 190, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 189, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 197, "src": "3137:4:41", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}, "typeName": {"id": 188, "name": "bool", "nodeType": "ElementaryTypeName", "src": "3137:4:41", "typeDescriptions": {"typeIdentifier": "t_bool", "typeString": "bool"}}, "visibility": "internal"}], "src": "3136:6:41"}, "scope": 243, "src": "2984:223:41", "stateMutability": "view", "virtual": false, "visibility": "public"}, {"baseFunctions": [604, 3358, 7006], "body": {"id": 213, "nodeType": "Block", "src": "3398:58:41", "statements": [{"expression": {"arguments": [{"id": 210, "name": "proposalId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 199, "src": "3438:10:41", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_uint256", "typeString": "uint256"}], "expression": {"id": 208, "name": "super", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -25, "src": "3415:5:41", "typeDescriptions": {"typeIdentifier": "t_type$_t_super$_Governance_$243_$", "typeString": "type(contract super Governance)"}}, "id": 209, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "proposalDeadline", "nodeType": "MemberAccess", "referencedDeclaration": 604, "src": "3415:22:41", "typeDescriptions": {"typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256) view returns (uint256)"}}, "id": 211, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "3415:34:41", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "functionReturnParameters": 207, "id": 212, "nodeType": "Return", "src": "3408:41:41"}]}, "functionSelector": "c01f9e37", "id": 214, "implemented": true, "kind": "function", "modifiers": [], "name": "proposalDeadline", "nameLocation": "3222:16:41", "nodeType": "FunctionDefinition", "overrides": {"id": 204, "nodeType": "OverrideSpecifier", "overrides": [{"id": 201, "name": "Governor", "nodeType": "IdentifierPath", "referencedDeclaration": 4295, "src": "3320:8:41"}, {"id": 202, "name": "IGovernor", "nodeType": "IdentifierPath", "referencedDeclaration": 7165, "src": "3330:9:41"}, {"id": 203, "name": "GovernorPreventLateQuorum", "nodeType": "IdentifierPath", "referencedDeclaration": 720, "src": "3341:25:41"}], "src": "3311:56:41"}, "parameters": {"id": 200, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 199, "mutability": "mutable", "name": "proposalId", "nameLocation": "3247:10:41", "nodeType": "VariableDeclaration", "scope": 214, "src": "3239:18:41", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 198, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3239:7:41", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "3238:20:41"}, "returnParameters": {"id": 207, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 206, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 214, "src": "3385:7:41", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 205, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3385:7:41", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "3384:9:41"}, "scope": 243, "src": "3213:243:41", "stateMutability": "view", "virtual": true, "visibility": "public"}, {"baseFunctions": [681, 4195], "body": {"id": 241, "nodeType": "Block", "src": "3739:85:41", "statements": [{"expression": {"arguments": [{"id": 234, "name": "proposalId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 216, "src": "3772:10:41", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, {"id": 235, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 218, "src": "3784:7:41", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, {"id": 236, "name": "support", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 220, "src": "3793:7:41", "typeDescriptions": {"typeIdentifier": "t_uint8", "typeString": "uint8"}}, {"id": 237, "name": "reason", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 222, "src": "3802:6:41", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}}, {"id": 238, "name": "params", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 224, "src": "3810:6:41", "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}}], "expression": {"argumentTypes": [{"typeIdentifier": "t_uint256", "typeString": "uint256"}, {"typeIdentifier": "t_address", "typeString": "address"}, {"typeIdentifier": "t_uint8", "typeString": "uint8"}, {"typeIdentifier": "t_string_memory_ptr", "typeString": "string memory"}, {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory"}], "expression": {"id": 232, "name": "super", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -25, "src": "3756:5:41", "typeDescriptions": {"typeIdentifier": "t_type$_t_super$_Governance_$243_$", "typeString": "type(contract super Governance)"}}, "id": 233, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "_castVote", "nodeType": "MemberAccess", "referencedDeclaration": 681, "src": "3756:15:41", "typeDescriptions": {"typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_address_$_t_uint8_$_t_string_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_uint256_$", "typeString": "function (uint256,address,uint8,string memory,bytes memory) returns (uint256)"}}, "id": 239, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "3756:61:41", "tryCall": false, "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "functionReturnParameters": 231, "id": 240, "nodeType": "Return", "src": "3749:68:41"}]}, "id": 242, "implemented": true, "kind": "function", "modifiers": [], "name": "_castVote", "nameLocation": "3471:9:41", "nodeType": "FunctionDefinition", "overrides": {"id": 228, "nodeType": "OverrideSpecifier", "overrides": [{"id": 226, "name": "Governor", "nodeType": "IdentifierPath", "referencedDeclaration": 4295, "src": "3672:8:41"}, {"id": 227, "name": "GovernorPreventLateQuorum", "nodeType": "IdentifierPath", "referencedDeclaration": 720, "src": "3682:25:41"}], "src": "3663:45:41"}, "parameters": {"id": 225, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 216, "mutability": "mutable", "name": "proposalId", "nameLocation": "3498:10:41", "nodeType": "VariableDeclaration", "scope": 242, "src": "3490:18:41", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 215, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3490:7:41", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}, {"constant": false, "id": 218, "mutability": "mutable", "name": "account", "nameLocation": "3526:7:41", "nodeType": "VariableDeclaration", "scope": 242, "src": "3518:15:41", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}, "typeName": {"id": 217, "name": "address", "nodeType": "ElementaryTypeName", "src": "3518:7:41", "stateMutability": "nonpayable", "typeDescriptions": {"typeIdentifier": "t_address", "typeString": "address"}}, "visibility": "internal"}, {"constant": false, "id": 220, "mutability": "mutable", "name": "support", "nameLocation": "3549:7:41", "nodeType": "VariableDeclaration", "scope": 242, "src": "3543:13:41", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint8", "typeString": "uint8"}, "typeName": {"id": 219, "name": "uint8", "nodeType": "ElementaryTypeName", "src": "3543:5:41", "typeDescriptions": {"typeIdentifier": "t_uint8", "typeString": "uint8"}}, "visibility": "internal"}, {"constant": false, "id": 222, "mutability": "mutable", "name": "reason", "nameLocation": "3580:6:41", "nodeType": "VariableDeclaration", "scope": 242, "src": "3566:20:41", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_string_memory_ptr", "typeString": "string"}, "typeName": {"id": 221, "name": "string", "nodeType": "ElementaryTypeName", "src": "3566:6:41", "typeDescriptions": {"typeIdentifier": "t_string_storage_ptr", "typeString": "string"}}, "visibility": "internal"}, {"constant": false, "id": 224, "mutability": "mutable", "name": "params", "nameLocation": "3609:6:41", "nodeType": "VariableDeclaration", "scope": 242, "src": "3596:19:41", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": {"typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes"}, "typeName": {"id": 223, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "3596:5:41", "typeDescriptions": {"typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes"}}, "visibility": "internal"}], "src": "3480:141:41"}, "returnParameters": {"id": 231, "nodeType": "ParameterList", "parameters": [{"constant": false, "id": 230, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 242, "src": "3726:7:41", "stateVariable": false, "storageLocation": "default", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}, "typeName": {"id": 229, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3726:7:41", "typeDescriptions": {"typeIdentifier": "t_uint256", "typeString": "uint256"}}, "visibility": "internal"}], "src": "3725:9:41"}, "scope": 243, "src": "3462:362:41", "stateMutability": "nonpayable", "virtual": true, "visibility": "internal"}], "scope": 244, "src": "648:3178:41", "usedErrors": [7940]}], "src": "32:3795:41"}, "bytecode": "6101606040523480156200001257600080fd5b50604051620054423803806200544283398101604081905262000035916200052b565b612d008160148460016143806a084595161401484a0000006040518060400160405280600f81526020016e4f55534420476f7665726e616e636560881b81525080620000866200018c60201b60201c565b815160208084019190912082518383012060e08290526101008190524660a0818152604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f81880181905281830187905260608201869052608082019490945230818401528151808203909301835260c00190528051940193909320919290916080523060c05261012052505082516200012c92506000915060208401906200046c565b506200013a905083620001a7565b6200014582620001e8565b62000150816200028f565b5050506001600160a01b0316610140526200016b81620002d0565b5062000177816200039a565b50620001838162000403565b505050620005a6565b6040805180820190915260018152603160f81b602082015290565b60045460408051918252602082018390527fc565b045403dc03c2eea82b81a0465edad9e2e7fc4d97e11421c209da93d7a93910160405180910390a1600455565b600081116200024e5760405162461bcd60e51b815260206004820152602760248201527f476f7665726e6f7253657474696e67733a20766f74696e6720706572696f6420604482015266746f6f206c6f7760c81b60648201526084015b60405180910390fd5b60055460408051918252602082018390527f7e3f7f0708a84de9203036abaa450dccc85ad5ff52f78c170f3edb55cf5e8828910160405180910390a1600555565b60065460408051918252602082018390527fccb45da8d5717e6c4544694297c4ba5cf151d455c9bb0ed4fc7a38411bc05461910160405180910390a1600655565b6064811115620003555760405162461bcd60e51b815260206004820152604360248201527f476f7665726e6f72566f74657351756f72756d4672616374696f6e3a2071756f60448201527f72756d4e756d657261746f72206f7665722071756f72756d44656e6f6d696e616064820152623a37b960e91b608482015260a40162000245565b600880549082905560408051828152602081018490527f0553476bf02ef2726e8ce5ced78d63e26e602e4a2257b1f559418e24b4633997910160405180910390a15050565b600954604080516001600160a01b03928316815291831660208301527f08f74ea46ef7894f65eabfb5e6e695de773a000b47c529ab559178069b226401910160405180910390a1600980546001600160a01b0319166001600160a01b0392909216919091179055565b600b54604080516001600160401b03928316815291831660208301527f7ca4ac117ed3cdce75c1161d8207c440389b1a15d69d096831664657c07dafc2910160405180910390a1600b80546001600160401b0319166001600160401b0392909216919091179055565b8280546200047a906200056a565b90600052602060002090601f0160209004810192826200049e5760008555620004e9565b82601f10620004b957805160ff1916838001178555620004e9565b82800160010185558215620004e9579182015b82811115620004e9578251825591602001919060010190620004cc565b50620004f7929150620004fb565b5090565b5b80821115620004f75760008155600101620004fc565b6001600160a01b03811681146200052857600080fd5b50565b600080604083850312156200053f57600080fd5b82516200054c8162000512565b60208401519092506200055f8162000512565b809150509250929050565b600181811c908216806200057f57607f821691505b602082108103620005a057634e487b7160e01b600052602260045260246000fd5b50919050565b60805160a05160c05160e051610100516101205161014051614e336200060f60003960008181610a7e01528181611f1c015261285e01526000612c9401526000612ce301526000612cbe01526000612c1701526000612c4101526000612c6b0152614e336000f3fe6080604052600436106102b25760003560e01c80637d5e81e211610175578063d33219b4116100dc578063ea0217cf11610095578063f23a6e611161006f578063f23a6e6114610a20578063f8ce560a14610a4c578063fc0c546a14610a6c578063fe0d94c114610aa057600080fd5b8063ea0217cf146109c0578063eb9019d4146109e0578063ece40cc114610a0057600080fd5b8063d33219b41461081e578063da95691a14610850578063dd4e2ba514610870578063ddf0b009146108b6578063deaaa7cc146108d6578063e23a9a521461090a57600080fd5b8063b58131b01161012e578063b58131b01461075d578063bc197c8114610772578063c01f9e371461079e578063c28bc2fa146107be578063c59057e4146107de578063d07f91e9146107fe57600080fd5b80637d5e81e2146106b457806397c3d334146106d45780639a802a6d146106e8578063a7713a7014610708578063a890c9101461071d578063ab58fb8e1461073d57600080fd5b8063328dd9821161021957806343859632116101d257806343859632146105c057806354fd4d501461060a57806356781388146106345780635f398a141461065457806370b0f660146106745780637b3c71d31461069457600080fd5b8063328dd982146104e657806332b8113e146105165780633932abb11461053e5780633bccf4fd146105535780633e4f49e61461057357806340e58ee5146105a057600080fd5b8063150b7a021161026b578063150b7a0214610406578063160cbed71461044a57806324bc1a641461046a5780632656227d1461047f5780632d63f693146104925780632fe3e261146104b257600080fd5b8063013cf08b146102da57806301ffc9a71461035557806302a251a31461038557806303420181146103a457806306f3f9e6146103c457806306fdde03146103e457600080fd5b366102d557306102c0610ab3565b6001600160a01b0316146102d357600080fd5b005b600080fd5b3480156102e657600080fd5b506102fa6102f5366004613e64565b610acc565b604080519a8b526001600160a01b0390991660208b0152978901969096526060880194909452608087019290925260a086015260c085015260e084015215156101008301521515610120820152610140015b60405180910390f35b34801561036157600080fd5b50610375610370366004613e7d565b610b77565b604051901515815260200161034c565b34801561039157600080fd5b506005545b60405190815260200161034c565b3480156103b057600080fd5b506103966103bf366004613fba565b610b88565b3480156103d057600080fd5b506102d36103df366004613e64565b610c80565b3480156103f057600080fd5b506103f9610d13565b60405161034c91906140bc565b34801561041257600080fd5b506104316104213660046140e4565b630a85bd0160e11b949350505050565b6040516001600160e01b0319909116815260200161034c565b34801561045657600080fd5b506103966104653660046142b5565b610da5565b34801561047657600080fd5b50610396610fa6565b61039661048d3660046142b5565b610fb6565b34801561049e57600080fd5b506103966104ad366004613e64565b6110a3565b3480156104be57600080fd5b506103967fb3b3f3b703cd84ce352197dcff232b1b5d3cfb2025ce47cf04742d0651f1af8881565b3480156104f257600080fd5b50610506610501366004613e64565b6110da565b60405161034c949392919061440d565b34801561052257600080fd5b50600b546040516001600160401b03909116815260200161034c565b34801561054a57600080fd5b50600454610396565b34801561055f57600080fd5b5061039661056e36600461445a565b61136b565b34801561057f57600080fd5b5061059361058e366004613e64565b6113e1565b60405161034c91906144be565b3480156105ac57600080fd5b506102d36105bb366004613e64565b6113ec565b3480156105cc57600080fd5b506103756105db3660046144e6565b60008281526007602090815260408083206001600160a01b038516845260080190915290205460ff1692915050565b34801561061657600080fd5b506040805180820190915260018152603160f81b60208201526103f9565b34801561064057600080fd5b5061039661064f366004614516565b611704565b34801561066057600080fd5b5061039661066f366004614542565b61172d565b34801561068057600080fd5b506102d361068f366004613e64565b611777565b3480156106a057600080fd5b506103966106af3660046145c5565b6117fe565b3480156106c057600080fd5b506103966106cf36600461461e565b611850565b3480156106e057600080fd5b506064610396565b3480156106f457600080fd5b506103966107033660046146be565b611867565b34801561071457600080fd5b50600854610396565b34801561072957600080fd5b506102d3610738366004614716565b61187e565b34801561074957600080fd5b50610396610758366004613e64565b611905565b34801561076957600080fd5b5061039661199f565b34801561077e57600080fd5b5061043161078d366004614733565b63bc197c8160e01b95945050505050565b3480156107aa57600080fd5b506103966107b9366004613e64565b6119aa565b3480156107ca57600080fd5b506102d36107d93660046147c6565b6119b5565b3480156107ea57600080fd5b506103966107f93660046142b5565b611a7c565b34801561080a57600080fd5b506102d3610819366004614809565b611ab6565b34801561082a57600080fd5b506009546001600160a01b03165b6040516001600160a01b03909116815260200161034c565b34801561085c57600080fd5b5061039661086b366004614832565b611b3d565b34801561087c57600080fd5b5060408051808201909152601a81527f737570706f72743d627261766f2671756f72756d3d627261766f00000000000060208201526103f9565b3480156108c257600080fd5b506102d36108d1366004613e64565b611b62565b3480156108e257600080fd5b506103967f150214d74d59b7d1e90c73fc22ef3d991dd0a76b046543d4d80ab92d2a50328f81565b34801561091657600080fd5b506109996109253660046144e6565b60408051606081018252600080825260208201819052918101919091525060009182526007602090815260408084206001600160a01b0393909316845260089092018152918190208151606081018352815460ff808216151583526101009091041693810193909352600101549082015290565b6040805182511515815260208084015160ff1690820152918101519082015260600161034c565b3480156109cc57600080fd5b506102d36109db366004613e64565b611dd0565b3480156109ec57600080fd5b506103966109fb3660046148d3565b611e57565b348015610a0c57600080fd5b506102d3610a1b366004613e64565b611e78565b348015610a2c57600080fd5b50610431610a3b3660046148ff565b63f23a6e6160e01b95945050505050565b348015610a5857600080fd5b50610396610a67366004613e64565b611eff565b348015610a7857600080fd5b506108387f000000000000000000000000000000000000000000000000000000000000000081565b6102d3610aae366004613e64565b611fa3565b6000610ac76009546001600160a01b031690565b905090565b8060008080808080808080610ae08a611905565b9750610aeb8b6110a3565b9650610af68b6119aa565b60008c81526007602081905260408220805460058201546006830154938301546001600160a01b039092169e50949a50939850909650919450610b388d6113e1565b90506002816007811115610b4e57610b4e6144a8565b1493506007816007811115610b6557610b656144a8565b14925050509193959799509193959799565b6000610b8282612211565b92915050565b600080610c2c610c247fb3b3f3b703cd84ce352197dcff232b1b5d3cfb2025ce47cf04742d0651f1af888c8c8c8c604051610bc4929190614967565b60405180910390208b80519060200120604051602001610c09959493929190948552602085019390935260ff9190911660408401526060830152608082015260a00190565b60405160208183030381529060405280519060200120612236565b868686612284565b9050610c728a828b8b8b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508d92506122a2915050565b9a9950505050505050505050565b610c88610ab3565b6001600160a01b0316336001600160a01b031614610cc15760405162461bcd60e51b8152600401610cb890614977565b60405180910390fd5b30610cca610ab3565b6001600160a01b031614610d075760008036604051610cea929190614967565b604051809103902090505b80610d0060026122b1565b03610cf557505b610d1081612330565b50565b606060008054610d22906149ae565b80601f0160208091040260200160405190810160405280929190818152602001828054610d4e906149ae565b8015610d9b5780601f10610d7057610100808354040283529160200191610d9b565b820191906000526020600020905b815481529060010190602001808311610d7e57829003601f168201915b5050505050905090565b600080610db486868686611a7c565b90506004610dc1826113e1565b6007811115610dd257610dd26144a8565b14610def5760405162461bcd60e51b8152600401610cb8906149e8565b6009546040805163793d064960e11b815290516000926001600160a01b03169163f27a0c929160048083019260209291908290030181865afa158015610e39573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e5d9190614a29565b60095460405163b1c5f42760e01b81529192506001600160a01b03169063b1c5f42790610e97908a908a908a906000908b90600401614a42565b602060405180830381865afa158015610eb4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ed89190614a29565b6000838152600a60205260408082209290925560095491516308f2a0bb60e41b81526001600160a01b0390921691638f2a0bb091610f23918b918b918b91908b908990600401614a90565b600060405180830381600087803b158015610f3d57600080fd5b505af1158015610f51573d6000803e3d6000fd5b505050507f9a2e42fd6722813d69113e7d0079d3d940171428df7373df9c7f7617cfda2892828242610f839190614afe565b604080519283526020830191909152015b60405180910390a15095945050505050565b6000610ac7610a67600143614b16565b600080610fc586868686611a7c565b90506000610fd2826113e1565b90506004816007811115610fe857610fe86144a8565b148061100557506005816007811115611003576110036144a8565b145b6110215760405162461bcd60e51b8152600401610cb8906149e8565b600082815260016020818152604092839020600201805460ff191690921790915590518381527f712ae1383f79ac853f8d882153778e0260ef8f03b504e2866e0593e04d2b291f910160405180910390a161107f82888888886123f8565b61108c8288888888612499565b61109982888888886124a6565b5095945050505050565b60008181526001602090815260408083208151928301909152546001600160401b0316908190525b6001600160401b031692915050565b6060806060806000600760008781526020019081526020016000209050806001018160020182600301836004018380548060200260200160405190810160405280929190818152602001828054801561115c57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161113e575b50505050509350828054806020026020016040519081016040528092919081815260200182805480156111ae57602002820191906000526020600020905b81548152602001906001019080831161119a575b5050505050925081805480602002602001604051908101604052809291908181526020016000905b828210156112825783829060005260206000200180546111f5906149ae565b80601f0160208091040260200160405190810160405280929190818152602001828054611221906149ae565b801561126e5780601f106112435761010080835404028352916020019161126e565b820191906000526020600020905b81548152906001019060200180831161125157829003601f168201915b5050505050815260200190600101906111d6565b50505050915080805480602002602001604051908101604052809291908181526020016000905b828210156113555783829060005260206000200180546112c8906149ae565b80601f01602080910402602001604051908101604052809291908181526020018280546112f4906149ae565b80156113415780601f1061131657610100808354040283529160200191611341565b820191906000526020600020905b81548152906001019060200180831161132457829003601f168201915b5050505050815260200190600101906112a9565b5050505090509450945094509450509193509193565b604080517f150214d74d59b7d1e90c73fc22ef3d991dd0a76b046543d4d80ab92d2a50328f602082015290810186905260ff8516606082015260009081906113b990610c2490608001610c09565b90506113d6878288604051806020016040528060008152506124df565b979650505050505050565b6000610b8282612502565b600081815260076020526040902080546001600160a01b0316336001600160a01b0316148061143a575061141e61199f565b8154611438906001600160a01b03166109fb600143614b16565b105b6114965760405162461bcd60e51b815260206004820152602760248201527f476f7665726e6f72427261766f3a2070726f706f7365722061626f76652074686044820152661c995cda1bdb1960ca1b6064820152608401610cb8565b6116ff816001018054806020026020016040519081016040528092919081815260200182805480156114f157602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116114d3575b50505050508260020180548060200260200160405190810160405280929190818152602001828054801561154457602002820191906000526020600020905b815481526020019060010190808311611530575b50505050506116f584600301805480602002602001604051908101604052809291908181526020016000905b8282101561161c57838290600052602060002001805461158f906149ae565b80601f01602080910402602001604051908101604052809291908181526020018280546115bb906149ae565b80156116085780601f106115dd57610100808354040283529160200191611608565b820191906000526020600020905b8154815290600101906020018083116115eb57829003601f168201915b505050505081526020019060010190611570565b50505060048701805460408051602080840282018101909252828152935060009084015b828210156116ec57838290600052602060002001805461165f906149ae565b80601f016020809104026020016040519081016040528092919081815260200182805461168b906149ae565b80156116d85780601f106116ad576101008083540402835291602001916116d8565b820191906000526020600020905b8154815290600101906020018083116116bb57829003601f168201915b505050505081526020019060010190611640565b5050505061264c565b846009015461277e565b505050565b600080339050611725848285604051806020016040528060008152506124df565b949350505050565b6000803390506113d687828888888080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508a92506122a2915050565b61177f610ab3565b6001600160a01b0316336001600160a01b0316146117af5760405162461bcd60e51b8152600401610cb890614977565b306117b8610ab3565b6001600160a01b0316146117f557600080366040516117d8929190614967565b604051809103902090505b806117ee60026122b1565b036117e357505b610d108161278c565b60008033905061184686828787878080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506124df92505050565b9695505050505050565b600061185e858585856127cd565b95945050505050565b6000611874848484612835565b90505b9392505050565b611886610ab3565b6001600160a01b0316336001600160a01b0316146118b65760405162461bcd60e51b8152600401610cb890614977565b306118bf610ab3565b6001600160a01b0316146118fc57600080366040516118df929190614967565b604051809103902090505b806118f560026122b1565b036118ea57505b610d10816128cb565b6009546000828152600a602052604080822054905163d45c443560e01b81526004810191909152909182916001600160a01b039091169063d45c443590602401602060405180830381865afa158015611962573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119869190614a29565b9050806001146119965780611877565b60009392505050565b6000610ac760065490565b6000610b8282612934565b6119bd610ab3565b6001600160a01b0316336001600160a01b0316146119ed5760405162461bcd60e51b8152600401610cb890614977565b306119f6610ab3565b6001600160a01b031614611a335760008036604051611a16929190614967565b604051809103902090505b80611a2c60026122b1565b03611a2157505b611a758483838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250889250612970915050565b5050505050565b600084848484604051602001611a959493929190614b2d565b60408051601f19818403018152919052805160209091012095945050505050565b611abe610ab3565b6001600160a01b0316336001600160a01b031614611aee5760405162461bcd60e51b8152600401610cb890614977565b30611af7610ab3565b6001600160a01b031614611b345760008036604051611b17929190614967565b604051809103902090505b80611b2d60026122b1565b03611b2257505b610d1081612996565b6000611b4d338787878787612a00565b6118468686611b5c878761264c565b85611850565b60008181526007602090815260409182902060018101805484518185028101850190955280855291936116ff93909290830182828015611bcb57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611bad575b505050505082600201805480602002602001604051908101604052809291908181526020018280548015611c1e57602002820191906000526020600020905b815481526020019060010190808311611c0a575b5050505050611dc684600301805480602002602001604051908101604052809291908181526020016000905b82821015611cf6578382906000526020600020018054611c69906149ae565b80601f0160208091040260200160405190810160405280929190818152602001828054611c95906149ae565b8015611ce25780601f10611cb757610100808354040283529160200191611ce2565b820191906000526020600020905b815481529060010190602001808311611cc557829003601f168201915b505050505081526020019060010190611c4a565b50505060048701805460408051602080840282018101909252828152935060009084015b828210156116ec578382906000526020600020018054611d39906149ae565b80601f0160208091040260200160405190810160405280929190818152602001828054611d65906149ae565b8015611db25780601f10611d8757610100808354040283529160200191611db2565b820191906000526020600020905b815481529060010190602001808311611d9557829003601f168201915b505050505081526020019060010190611d1a565b8460090154610da5565b611dd8610ab3565b6001600160a01b0316336001600160a01b031614611e085760405162461bcd60e51b8152600401610cb890614977565b30611e11610ab3565b6001600160a01b031614611e4e5760008036604051611e31929190614967565b604051809103902090505b80611e4760026122b1565b03611e3c57505b610d1081612abd565b60006118778383611e7360408051602081019091526000815290565b612835565b611e80610ab3565b6001600160a01b0316336001600160a01b031614611eb05760405162461bcd60e51b8152600401610cb890614977565b30611eb9610ab3565b6001600160a01b031614611ef65760008036604051611ed9929190614967565b604051809103902090505b80611eef60026122b1565b03611ee457505b610d1081612b5e565b60006064600854604051632394e7a360e21b8152600481018590527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690638e539e8c90602401602060405180830381865afa158015611f6b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f8f9190614a29565b611f999190614b78565b610b829190614b97565b60008181526007602090815260409182902060018101805484518185028101850190955280855291936116ff9390929083018282801561200c57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611fee575b50505050508260020180548060200260200160405190810160405280929190818152602001828054801561205f57602002820191906000526020600020905b81548152602001906001019080831161204b575b505050505061220784600301805480602002602001604051908101604052809291908181526020016000905b828210156121375783829060005260206000200180546120aa906149ae565b80601f01602080910402602001604051908101604052809291908181526020018280546120d6906149ae565b80156121235780601f106120f857610100808354040283529160200191612123565b820191906000526020600020905b81548152906001019060200180831161210657829003601f168201915b50505050508152602001906001019061208b565b50505060048701805460408051602080840282018101909252828152935060009084015b828210156116ec57838290600052602060002001805461217a906149ae565b80601f01602080910402602001604051908101604052809291908181526020018280546121a6906149ae565b80156121f35780601f106121c8576101008083540402835291602001916121f3565b820191906000526020600020905b8154815290600101906020018083116121d657829003601f168201915b50505050508152602001906001019061215b565b8460090154610fb6565b60006001600160e01b03198216636e665ced60e01b1480610b825750610b8282612b9f565b6000610b82612243612c0a565b8360405161190160f01b6020820152602281018390526042810182905260009060620160405160208183030381529060405280519060200120905092915050565b600080600061229587878787612d31565b9150915061109981612e1e565b60006118468686868686612fd4565b60006122cc8254600f81810b600160801b909204900b131590565b156122ea57604051631ed9509560e11b815260040160405180910390fd5b508054600f0b6000818152600180840160205260408220805492905583546fffffffffffffffffffffffffffffffff191692016001600160801b03169190911790915590565b60648111156123b35760405162461bcd60e51b815260206004820152604360248201527f476f7665726e6f72566f74657351756f72756d4672616374696f6e3a2071756f60448201527f72756d4e756d657261746f72206f7665722071756f72756d44656e6f6d696e616064820152623a37b960e91b608482015260a401610cb8565b600880549082905560408051828152602081018490527f0553476bf02ef2726e8ce5ced78d63e26e602e4a2257b1f559418e24b4633997910160405180910390a15050565b30612401610ab3565b6001600160a01b031614611a755760005b845181101561249157306001600160a01b031685828151811061243757612437614bb9565b60200260200101516001600160a01b0316036124815761248183828151811061246257612462614bb9565b60200260200101518051906020012060026130bf90919063ffffffff16565b61248a81614bcf565b9050612412565b505050505050565b611a7585858585856130fb565b306124af610ab3565b6001600160a01b031614611a7557600254600f81810b600160801b909204900b1315611a75576000600255611a75565b600061185e858585856124fd60408051602081019091526000815290565b6122a2565b60008061250e8361316f565b90506004816007811115612524576125246144a8565b1461252f5792915050565b6000838152600a60205260409020548061254a575092915050565b600954604051632ab0f52960e01b8152600481018390526001600160a01b0390911690632ab0f52990602401602060405180830381865afa158015612593573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125b79190614be8565b156125c6575060079392505050565b600954604051632c258a9f60e11b8152600481018390526001600160a01b039091169063584b153e90602401602060405180830381865afa15801561260f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126339190614be8565b15612642575060059392505050565b5060029392505050565b6060600082516001600160401b0381111561266957612669613f05565b60405190808252806020026020018201604052801561269c57816020015b60608152602001906001900390816126875790505b50905060005b8451811015612776578481815181106126bd576126bd614bb9565b60200260200101515160001461272d578481815181106126df576126df614bb9565b60200260200101518051906020012084828151811061270057612700614bb9565b6020026020010151604051602001612719929190614c0a565b604051602081830303815290604052612748565b83818151811061273f5761273f614bb9565b60200260200101515b82828151811061275a5761275a614bb9565b60200260200101819052508061276f90614bcf565b90506126a2565b509392505050565b600061185e85858585613281565b60045460408051918252602082018390527fc565b045403dc03c2eea82b81a0465edad9e2e7fc4d97e11421c209da93d7a93910160405180910390a1600455565b600061282933868686516001600160401b038111156127ee576127ee613f05565b60405190808252806020026020018201604052801561282157816020015b606081526020019060019003908161280c5790505b508787612a00565b61185e85858585613333565b604051630748d63560e31b81526001600160a01b038481166004830152602482018490526000917f000000000000000000000000000000000000000000000000000000000000000090911690633a46b1a890604401602060405180830381865afa1580156128a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118749190614a29565b600954604080516001600160a01b03928316815291831660208301527f08f74ea46ef7894f65eabfb5e6e695de773a000b47c529ab559178069b226401910160405180910390a1600980546001600160a01b0319166001600160a01b0392909216919091179055565b6000610b82612942836135d7565b6000848152600c6020908152604091829020825191820190925290546001600160401b031690819052613606565b6060611874848484604051806060016040528060298152602001614dd56029913961361d565b600b54604080516001600160401b03928316815291831660208301527f7ca4ac117ed3cdce75c1161d8207c440389b1a15d69d096831664657c07dafc2910160405180910390a1600b805467ffffffffffffffff19166001600160401b0392909216919091179055565b805160208201206000612a1e8787612a18888861264c565b85611a7c565b6000818152600760205260409020600981015491925090612ab25780546001600160a01b0319166001600160a01b038a161781558751612a6790600183019060208b0190613c1a565b508651612a7d90600283019060208a0190613c7b565b508551612a939060038301906020890190613cb6565b508451612aa99060048301906020880190613d0f565b50600981018390555b505050505050505050565b60008111612b1d5760405162461bcd60e51b815260206004820152602760248201527f476f7665726e6f7253657474696e67733a20766f74696e6720706572696f6420604482015266746f6f206c6f7760c81b6064820152608401610cb8565b60055460408051918252602082018390527f7e3f7f0708a84de9203036abaa450dccc85ad5ff52f78c170f3edb55cf5e8828910160405180910390a1600555565b60065460408051918252602082018390527fccb45da8d5717e6c4544694297c4ba5cf151d455c9bb0ed4fc7a38411bc05461910160405180910390a1600655565b60006001600160e01b0319821663bf26d89760e01b1480612bd057506001600160e01b031982166379dd796f60e01b145b80612beb57506001600160e01b03198216630271189760e51b145b80610b8257506301ffc9a760e01b6001600160e01b0319831614610b82565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148015612c6357507f000000000000000000000000000000000000000000000000000000000000000046145b15612c8d57507f000000000000000000000000000000000000000000000000000000000000000090565b50604080517f00000000000000000000000000000000000000000000000000000000000000006020808301919091527f0000000000000000000000000000000000000000000000000000000000000000828401527f000000000000000000000000000000000000000000000000000000000000000060608301524660808301523060a0808401919091528351808403909101815260c0909201909252805191012090565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0831115612d685750600090506003612e15565b8460ff16601b14158015612d8057508460ff16601c14155b15612d915750600090506004612e15565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015612de5573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116612e0e57600060019250925050612e15565b9150600090505b94509492505050565b6000816004811115612e3257612e326144a8565b03612e3a5750565b6001816004811115612e4e57612e4e6144a8565b03612e9b5760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610cb8565b6002816004811115612eaf57612eaf6144a8565b03612efc5760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610cb8565b6003816004811115612f1057612f106144a8565b03612f685760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610cb8565b6004816004811115612f7c57612f7c6144a8565b03610d105760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b6064820152608401610cb8565b600080612fe48787878787613743565b6000888152600c6020908152604091829020825191820190925281546001600160401b031690819052919250901580156130225750613022886138a8565b156130b457600061303b600b546001600160401b031690565b613044436138d0565b61304e9190614c3b565b9050613059896119aa565b816001600160401b031611156130a8576040516001600160401b038216815289907f541f725fb9f7c98a30cc9c0ff32fbb14358cd7159c847a3aa20a2bdc442ba5119060200160405180910390a25b6130b2828261393c565b505b509695505050505050565b8154600160801b90819004600f0b6000818152600180860160205260409091209390935583546001600160801b03908116939091011602179055565b60095460405163e38335e560e01b81526001600160a01b039091169063e38335e5903490613136908890889088906000908990600401614a42565b6000604051808303818588803b15801561314f57600080fd5b505af1158015613163573d6000803e3d6000fd5b50505050505050505050565b6000818152600160205260408120600281015460ff16156131935750600792915050565b6002810154610100900460ff16156131ae5750600292915050565b60006131b9846110a3565b90508060000361320b5760405162461bcd60e51b815260206004820152601d60248201527f476f7665726e6f723a20756e6b6e6f776e2070726f706f73616c2069640000006044820152606401610cb8565b43811061321c575060009392505050565b6000613227856119aa565b905043811061323b57506001949350505050565b613244856138a8565b8015613266575060008581526007602052604090206006810154600590910154115b1561327657506004949350505050565b506003949350505050565b6000806132908686868661395a565b6000818152600a60205260409020549091501561185e576009546000828152600a60205260409081902054905163c4d252f560e01b81526001600160a01b039092169163c4d252f5916132e99160040190815260200190565b600060405180830381600087803b15801561330357600080fd5b505af1158015613317573d6000803e3d6000fd5b5050506000828152600a60205260408120555095945050505050565b600061333d61199f565b61334c336109fb600143614b16565b10156133b45760405162461bcd60e51b815260206004820152603160248201527f476f7665726e6f723a2070726f706f73657220766f7465732062656c6f7720706044820152701c9bdc1bdcd85b081d1a1c995cda1bdb19607a1b6064820152608401610cb8565b60006133c98686868680519060200120611a7c565b905084518651146133ec5760405162461bcd60e51b8152600401610cb890614c66565b835186511461340d5760405162461bcd60e51b8152600401610cb890614c66565b600086511161345e5760405162461bcd60e51b815260206004820152601860248201527f476f7665726e6f723a20656d7074792070726f706f73616c00000000000000006044820152606401610cb8565b600081815260016020908152604091829020825191820190925281546001600160401b031690819052156134de5760405162461bcd60e51b815260206004820152602160248201527f476f7665726e6f723a2070726f706f73616c20616c72656164792065786973746044820152607360f81b6064820152608401610cb8565b60006134f16134ec60045490565b6138d0565b6134fa436138d0565b6135049190614c3b565b905060006135146134ec60055490565b61351e9083614c3b565b905061352a838361393c565b613537600184018261393c565b7f7d84a6263ae0d98d3329bd7b46bb4e8d6f98cd35a7adb45c274c8b7fd5ebd5e084338b8b8d516001600160401b0381111561357557613575613f05565b6040519080825280602002602001820160405280156135a857816020015b60608152602001906001900390816135935790505b508c88888e6040516135c299989796959493929190614ca7565b60405180910390a15091979650505050505050565b60008181526001602081815260408084208151928301909152909101546001600160401b0316908190526110cb565b6000818310156136165781611877565b5090919050565b60608247101561367e5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610cb8565b6001600160a01b0385163b6136d55760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610cb8565b600080866001600160a01b031685876040516136f19190614d4a565b60006040518083038185875af1925050503d806000811461372e576040519150601f19603f3d011682016040523d82523d6000602084013e613733565b606091505b50915091506113d6828286613a66565b600085815260016020819052604082209061375d886113e1565b600781111561376e5761376e6144a8565b146137c75760405162461bcd60e51b815260206004820152602360248201527f476f7665726e6f723a20766f7465206e6f742063757272656e746c792061637460448201526269766560e81b6064820152608401610cb8565b604080516020810190915281546001600160401b0316908190526000906137f090889086612835565b90506137ff8888888488613a9f565b835160000361385457866001600160a01b03167fb8e138887d0aa13bab447e82de9d5c1777041ecd21ca36ba824ff1e6c07ddda4898884896040516138479493929190614d66565b60405180910390a26113d6565b866001600160a01b03167fe2babfbac5889a709b63bb7f598b324e08bc5a4fb9ec647fb3cbc9ec07eb87128988848989604051613895959493929190614d8e565b60405180910390a2979650505050505050565b600081815260076020526040812060058101546138c7610a67856110a3565b11159392505050565b60006001600160401b038211156139385760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203660448201526534206269747360d01b6064820152608401610cb8565b5090565b815467ffffffffffffffff19166001600160401b0391909116179055565b60008061396986868686611a7c565b90506000613976826113e1565b9050600281600781111561398c5761398c6144a8565b141580156139ac575060068160078111156139a9576139a96144a8565b14155b80156139ca575060078160078111156139c7576139c76144a8565b14155b613a165760405162461bcd60e51b815260206004820152601d60248201527f476f7665726e6f723a2070726f706f73616c206e6f74206163746976650000006044820152606401610cb8565b60008281526001602052604090819020600201805461ff001916610100179055517f789cf55be980739dad1d0699b93b58e806b51c9d96619bfa8fe0a28abaa7b30c90610f949084815260200190565b60608315613a75575081611877565b825115613a855782518084602001fd5b8160405162461bcd60e51b8152600401610cb891906140bc565b60008581526007602090815260408083206001600160a01b038816845260088101909252909120805460ff1615613b2e5760405162461bcd60e51b815260206004820152602d60248201527f476f7665726e6f72436f6d7061746962696c697479427261766f3a20766f746560448201526c08185b1c9958591e4818d85cdd609a1b6064820152608401610cb8565b805460ff8616610100810261ffff1990921691909117600190811783558201859055613b735783826006016000828254613b689190614afe565b90915550613c119050565b60001960ff861601613b935783826005016000828254613b689190614afe565b60011960ff861601613bb35783826007016000828254613b689190614afe565b60405162461bcd60e51b815260206004820152602d60248201527f476f7665726e6f72436f6d7061746962696c697479427261766f3a20696e766160448201526c6c696420766f7465207479706560981b6064820152608401610cb8565b50505050505050565b828054828255906000526020600020908101928215613c6f579160200282015b82811115613c6f57825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190613c3a565b50613938929150613d68565b828054828255906000526020600020908101928215613c6f579160200282015b82811115613c6f578251825591602001919060010190613c9b565b828054828255906000526020600020908101928215613d03579160200282015b82811115613d035782518051613cf3918491602090910190613d7d565b5091602001919060010190613cd6565b50613938929150613df0565b828054828255906000526020600020908101928215613d5c579160200282015b82811115613d5c5782518051613d4c918491602090910190613d7d565b5091602001919060010190613d2f565b50613938929150613e0d565b5b808211156139385760008155600101613d69565b828054613d89906149ae565b90600052602060002090601f016020900481019282613dab5760008555613c6f565b82601f10613dc457805160ff1916838001178555613c6f565b82800160010185558215613c6f5791820182811115613c6f578251825591602001919060010190613c9b565b80821115613938576000613e048282613e2a565b50600101613df0565b80821115613938576000613e218282613e2a565b50600101613e0d565b508054613e36906149ae565b6000825580601f10613e46575050565b601f016020900490600052602060002090810190610d109190613d68565b600060208284031215613e7657600080fd5b5035919050565b600060208284031215613e8f57600080fd5b81356001600160e01b03198116811461187757600080fd5b803560ff81168114613eb857600080fd5b919050565b60008083601f840112613ecf57600080fd5b5081356001600160401b03811115613ee657600080fd5b602083019150836020828501011115613efe57600080fd5b9250929050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715613f4357613f43613f05565b604052919050565b600082601f830112613f5c57600080fd5b81356001600160401b03811115613f7557613f75613f05565b613f88601f8201601f1916602001613f1b565b818152846020838601011115613f9d57600080fd5b816020850160208301376000918101602001919091529392505050565b60008060008060008060008060e0898b031215613fd657600080fd5b88359750613fe660208a01613ea7565b965060408901356001600160401b038082111561400257600080fd5b61400e8c838d01613ebd565b909850965060608b013591508082111561402757600080fd5b506140348b828c01613f4b565b94505061404360808a01613ea7565b925060a0890135915060c089013590509295985092959890939650565b60005b8381101561407b578181015183820152602001614063565b8381111561408a576000848401525b50505050565b600081518084526140a8816020860160208601614060565b601f01601f19169290920160200192915050565b6020815260006118776020830184614090565b6001600160a01b0381168114610d1057600080fd5b600080600080608085870312156140fa57600080fd5b8435614105816140cf565b93506020850135614115816140cf565b92506040850135915060608501356001600160401b0381111561413757600080fd5b61414387828801613f4b565b91505092959194509250565b60006001600160401b0382111561416857614168613f05565b5060051b60200190565b600082601f83011261418357600080fd5b813560206141986141938361414f565b613f1b565b82815260059290921b840181019181810190868411156141b757600080fd5b8286015b848110156130b45780356141ce816140cf565b83529183019183016141bb565b600082601f8301126141ec57600080fd5b813560206141fc6141938361414f565b82815260059290921b8401810191818101908684111561421b57600080fd5b8286015b848110156130b4578035835291830191830161421f565b600082601f83011261424757600080fd5b813560206142576141938361414f565b82815260059290921b8401810191818101908684111561427657600080fd5b8286015b848110156130b45780356001600160401b038111156142995760008081fd5b6142a78986838b0101613f4b565b84525091830191830161427a565b600080600080608085870312156142cb57600080fd5b84356001600160401b03808211156142e257600080fd5b6142ee88838901614172565b9550602087013591508082111561430457600080fd5b614310888389016141db565b9450604087013591508082111561432657600080fd5b5061433387828801614236565b949793965093946060013593505050565b600081518084526020808501945080840160005b8381101561437d5781516001600160a01b031687529582019590820190600101614358565b509495945050505050565b600081518084526020808501945080840160005b8381101561437d5781518752958201959082019060010161439c565b600081518084526020808501808196508360051b8101915082860160005b858110156144005782840389526143ee848351614090565b988501989350908401906001016143d6565b5091979650505050505050565b6080815260006144206080830187614344565b82810360208401526144328187614388565b9050828103604084015261444681866143b8565b905082810360608401526113d681856143b8565b600080600080600060a0868803121561447257600080fd5b8535945061448260208701613ea7565b935061449060408701613ea7565b94979396509394606081013594506080013592915050565b634e487b7160e01b600052602160045260246000fd5b60208101600883106144e057634e487b7160e01b600052602160045260246000fd5b91905290565b600080604083850312156144f957600080fd5b82359150602083013561450b816140cf565b809150509250929050565b6000806040838503121561452957600080fd5b8235915061453960208401613ea7565b90509250929050565b60008060008060006080868803121561455a57600080fd5b8535945061456a60208701613ea7565b935060408601356001600160401b038082111561458657600080fd5b61459289838a01613ebd565b909550935060608801359150808211156145ab57600080fd5b506145b888828901613f4b565b9150509295509295909350565b600080600080606085870312156145db57600080fd5b843593506145eb60208601613ea7565b925060408501356001600160401b0381111561460657600080fd5b61461287828801613ebd565b95989497509550505050565b6000806000806080858703121561463457600080fd5b84356001600160401b038082111561464b57600080fd5b61465788838901614172565b9550602087013591508082111561466d57600080fd5b614679888389016141db565b9450604087013591508082111561468f57600080fd5b61469b88838901614236565b935060608701359150808211156146b157600080fd5b5061414387828801613f4b565b6000806000606084860312156146d357600080fd5b83356146de816140cf565b92506020840135915060408401356001600160401b0381111561470057600080fd5b61470c86828701613f4b565b9150509250925092565b60006020828403121561472857600080fd5b8135611877816140cf565b600080600080600060a0868803121561474b57600080fd5b8535614756816140cf565b94506020860135614766816140cf565b935060408601356001600160401b038082111561478257600080fd5b61478e89838a016141db565b945060608801359150808211156147a457600080fd5b6147b089838a016141db565b935060808801359150808211156145ab57600080fd5b600080600080606085870312156147dc57600080fd5b84356147e7816140cf565b93506020850135925060408501356001600160401b0381111561460657600080fd5b60006020828403121561481b57600080fd5b81356001600160401b038116811461187757600080fd5b600080600080600060a0868803121561484a57600080fd5b85356001600160401b038082111561486157600080fd5b61486d89838a01614172565b9650602088013591508082111561488357600080fd5b61488f89838a016141db565b955060408801359150808211156148a557600080fd5b6148b189838a01614236565b945060608801359150808211156148c757600080fd5b6147b089838a01614236565b600080604083850312156148e657600080fd5b82356148f1816140cf565b946020939093013593505050565b600080600080600060a0868803121561491757600080fd5b8535614922816140cf565b94506020860135614932816140cf565b9350604086013592506060860135915060808601356001600160401b0381111561495b57600080fd5b6145b888828901613f4b565b8183823760009101908152919050565b60208082526018908201527f476f7665726e6f723a206f6e6c79476f7665726e616e63650000000000000000604082015260600190565b600181811c908216806149c257607f821691505b6020821081036149e257634e487b7160e01b600052602260045260246000fd5b50919050565b60208082526021908201527f476f7665726e6f723a2070726f706f73616c206e6f74207375636365737366756040820152601b60fa1b606082015260800190565b600060208284031215614a3b57600080fd5b5051919050565b60a081526000614a5560a0830188614344565b8281036020840152614a678188614388565b90508281036040840152614a7b81876143b8565b60608401959095525050608001529392505050565b60c081526000614aa360c0830189614344565b8281036020840152614ab58189614388565b90508281036040840152614ac981886143b8565b60608401969096525050608081019290925260a0909101529392505050565b634e487b7160e01b600052601160045260246000fd5b60008219821115614b1157614b11614ae8565b500190565b600082821015614b2857614b28614ae8565b500390565b608081526000614b406080830187614344565b8281036020840152614b528187614388565b90508281036040840152614b6681866143b8565b91505082606083015295945050505050565b6000816000190483118215151615614b9257614b92614ae8565b500290565b600082614bb457634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b600060018201614be157614be1614ae8565b5060010190565b600060208284031215614bfa57600080fd5b8151801515811461187757600080fd5b6001600160e01b0319831681528151600090614c2d816004850160208701614060565b919091016004019392505050565b60006001600160401b03808316818516808303821115614c5d57614c5d614ae8565b01949350505050565b60208082526021908201527f476f7665726e6f723a20696e76616c69642070726f706f73616c206c656e67746040820152600d60fb1b606082015260800190565b8981526001600160a01b038916602082015261012060408201819052600090614cd28382018b614344565b90508281036060840152614ce6818a614388565b90508281036080840152614cfa81896143b8565b905082810360a0840152614d0e81886143b8565b6001600160401b0387811660c0860152861660e08501528381036101008501529050614d3a8185614090565b9c9b505050505050505050505050565b60008251614d5c818460208701614060565b9190910192915050565b84815260ff841660208201528260408201526080606082015260006118466080830184614090565b85815260ff8516602082015283604082015260a060608201526000614db660a0830185614090565b8281036080840152614dc88185614090565b9897505050505050505056fe416464726573733a206c6f772d6c6576656c2063616c6c20776974682076616c7565206661696c6564a2646970667358221220c8b5da0065247a739d841193a580309f398aa5fcfaac0615db49a6cb51a875c364736f6c634300080d0033", "bytecodeSha1": "d5abd163ec05ecf37df4d90f9b611590ec2b7838", "compiler": {"evm_version": "istanbul", "optimizer": {"enabled": true, "runs": 200}, "version": "0.8.13+commit.abaa5c0e"}, "contractName": "Governance", "coverageMap": {"branches": {"10": {}, "11": {}, "12": {"GovernorPreventLateQuorum._castVote": {"211": [2906, 2932, false], "212": [3049, 3101, false]}}, "13": {"GovernorSettings._setVotingPeriod": {"213": [3056, 3075, true]}}, "14": {"GovernorTimelockControl._cancel": {"219": [5506, 5535, false]}, "GovernorTimelockControl.proposalEta": {"215": [3448, 3456, true]}, "GovernorTimelockControl.queue": {"214": [3914, 3958, true]}, "GovernorTimelockControl.state": {"216": [2420, 2453, false], "217": [2730, 2764, false], "218": [2830, 2867, false]}}, "15": {}, "16": {"GovernorVotesQuorumFraction._updateQuorumNumerator": {"220": [2547, 2588, true]}}, "17": {}, "18": {}, "19": {}, "20": {}, "21": {}, "22": {}, "23": {}, "24": {}, "25": {}, "26": {}, "28": {}, "29": {}, "30": {}, "32": {"ECDSA._throwError": {"174": [616, 645, false], "175": [712, 750, false], "176": [821, 865, false], "177": [943, 982, false], "178": [1063, 1102, false]}, "ECDSA.tryRecover": {"170": [6753, 6832, false], "171": [6923, 6930, false], "172": [6934, 6941, false], "173": [7168, 7188, false]}}, "34": {"EIP712._domainSeparatorV4": {"179": [3219, 3248, false], "180": [3252, 3285, false]}}, "35": {}, "36": {}, "37": {"Math.max": {"221": [369, 375, true]}}, "38": {"SafeCast.toUint64": {"222": [2653, 2678, true]}}, "41": {}, "42": {"GovernorCompatibilityBravo._countVote": {"208": [10126, 10143, true], "209": [10430, 10460, false], "210": [10523, 10557, false]}, "GovernorCompatibilityBravo._encodeCalldata": {"207": [4962, 4994, true]}, "GovernorCompatibilityBravo.cancel": {"205": [4179, 4211, true], "206": [4231, 4313, true]}}, "43": {}, "7": {}, "8": {}, "9": {"Context._msgSender": {"184": [3013, 3040, true], "185": [3083, 3111, false]}, "Governor.": {"181": [3732, 3760, true]}, "Governor._afterExecute": {"188": [13133, 13161, false]}, "Governor._beforeExecute": {"186": [12554, 12582, false], "187": [12665, 12692, false]}, "Governor._cancel": {"202": [13908, 13940, false], "203": [13944, 13975, false], "204": [13979, 14011, true]}, "Governor._castVote": {"200": [18194, 18235, true], "201": [18444, 18462, false]}, "Governor.execute": {"182": [11089, 11122, true], "183": [11126, 11156, true]}, "Governor.propose": {"196": [9477, 9540, true], "197": [9737, 9768, true], "198": [9824, 9858, true], "199": [9914, 9932, true]}, "Governor.state": {"189": [6362, 6379, false], "190": [6449, 6466, false], "191": [6594, 6607, false], "192": [6687, 6711, false], "193": [6838, 6862, false], "194": [6930, 6956, false], "195": [6960, 6986, false]}}}, "statements": {"10": {}, "11": {}, "12": {"GovernorPreventLateQuorum._castVote": {"125": [3121, 3177], "126": [3206, 3257], "127": [3278, 3291]}, "GovernorPreventLateQuorum._setLateQuorumVoteExtension": {"99": [4400, 4465], "100": [4475, 4508]}, "GovernorPreventLateQuorum.lateQuorumVoteExtension": {"2": [3597, 3618]}, "GovernorPreventLateQuorum.proposalDeadline": {"98": [2159, 2256]}, "GovernorPreventLateQuorum.setLateQuorumVoteExtension": {"59": [3970, 4015]}}, "13": {"GovernorSettings._setProposalThreshold": {"110": [3447, 3514], "111": [3524, 3565]}, "GovernorSettings._setVotingDelay": {"91": [2698, 2747], "92": [2757, 2786]}, "GovernorSettings._setVotingPeriod": {"107": [3048, 3119], "108": [3129, 3181], "109": [3191, 3222]}, "GovernorSettings.proposalThreshold": {"55": [1533, 1558]}, "GovernorSettings.setProposalThreshold": {"66": [2454, 2497]}, "GovernorSettings.setVotingDelay": {"48": [1826, 1857]}, "GovernorSettings.setVotingPeriod": {"63": [2129, 2162]}, "GovernorSettings.votingDelay": {"3": [1181, 1200]}, "GovernorSettings.votingPeriod": {"1": [1352, 1372]}}, "14": {"GovernorTimelockControl._cancel": {"137": [5551, 5593], "138": [5607, 5638], "139": [5659, 5676]}, "GovernorTimelockControl._execute": {"128": [4698, 4786]}, "GovernorTimelockControl._updateTimelock": {"96": [6461, 6522], "97": [6532, 6555]}, "GovernorTimelockControl.proposalEta": {"53": [3441, 3466]}, "GovernorTimelockControl.queue": {"27": [3906, 3996], "28": [4056, 4159], "29": [4169, 4247], "30": [4258, 4314], "31": [4325, 4342]}, "GovernorTimelockControl.state": {"82": [2469, 2482], "83": [2696, 2709], "84": [2780, 2809], "85": [2883, 2910], "86": [2941, 2970]}, "GovernorTimelockControl.supportsInterface": {"69": [2006, 2103]}, "GovernorTimelockControl.timelock": {"8": [3151, 3176]}, "GovernorTimelockControl.updateTimelock": {"52": [6345, 6373]}}, "15": {"GovernorVotes._getVotes": {"95": [822, 869]}}, "16": {"GovernorVotesQuorumFraction._updateQuorumNumerator": {"74": [2526, 2681], "75": [2747, 2784], "76": [2795, 2862]}, "GovernorVotesQuorumFraction.quorum": {"67": [1697, 1785]}, "GovernorVotesQuorumFraction.quorumDenominator": {"6": [1448, 1458]}, "GovernorVotesQuorumFraction.quorumNumerator": {"7": [1235, 1258]}, "GovernorVotesQuorumFraction.updateQuorumNumerator": {"25": [2169, 2211]}}, "17": {}, "18": {}, "19": {}, "20": {}, "21": {}, "22": {}, "23": {}, "24": {}, "25": {}, "26": {}, "28": {"Context._msgSender": {"24": [712, 729]}}, "29": {}, "30": {}, "32": {"ECDSA._throwError": {"121": [766, 800], "122": [881, 922], "123": [998, 1042], "124": [1118, 1162]}, "ECDSA.recover": {"72": [7671, 7689]}, "ECDSA.toTypedDataHash": {"71": [9209, 9284]}, "ECDSA.tryRecover": {"117": [6848, 6899], "118": [6957, 7008], "119": [7204, 7254], "120": [7275, 7312]}}, "34": {"EIP712._buildDomainSeparator": {"115": [3616, 3707]}, "EIP712._domainSeparatorV4": {"114": [3301, 3332], "116": [3363, 3434]}, "EIP712._hashTypedDataV4": {"70": [4435, 4497]}}, "35": {"ERC165.supportsInterface": {"113": [930, 977]}}, "36": {}, "37": {"Math.max": {"150": [362, 383]}}, "38": {"SafeCast.toUint64": {"157": [2645, 2721], "158": [2731, 2751]}}, "41": {"Governance._cancel": {"90": [2726, 2791]}, "Governance._castVote": {"73": [3749, 3817]}, "Governance._execute": {"79": [2404, 2475]}, "Governance._executor": {"11": [2947, 2971]}, "Governance.proposalDeadline": {"56": [3408, 3449]}, "Governance.proposalThreshold": {"54": [2110, 2142]}, "Governance.propose": {"50": [1894, 1955]}, "Governance.state": {"43": [1571, 1601]}, "Governance.supportsInterface": {"22": [3157, 3200]}}, "42": {"GovernorCompatibilityBravo.COUNTING_MODE": {"9": [1803, 1838]}, "GovernorCompatibilityBravo._countVote": {"162": [10105, 10214], "163": [10224, 10247], "164": [10257, 10282], "165": [10292, 10314], "166": [10379, 10409], "167": [10476, 10502], "168": [10573, 10603], "169": [10634, 10689]}, "GovernorCompatibilityBravo._encodeCalldata": {"87": [4943, 5173], "88": [4924, 4927], "89": [5194, 5214]}, "GovernorCompatibilityBravo._quorumReached": {"156": [9192, 9255]}, "GovernorCompatibilityBravo._storeProposal": {"101": [5912, 5939], "102": [5953, 5978], "103": [5992, 6015], "104": [6029, 6060], "105": [6074, 6103], "106": [6117, 6158]}, "GovernorCompatibilityBravo._voteSucceeded": {"134": [9611, 9657]}, "GovernorCompatibilityBravo.cancel": {"44": [4158, 4378], "45": [4389, 4568]}, "GovernorCompatibilityBravo.execute": {"68": [3823, 4002]}, "GovernorCompatibilityBravo.getActions": {"41": [7810, 7947]}, "GovernorCompatibilityBravo.getReceipt": {"10": [8197, 8248]}, "GovernorCompatibilityBravo.hasVoted": {"4": [8787, 8849]}, "GovernorCompatibilityBravo.proposals": {"12": [6808, 6823], "13": [6833, 6862], "14": [6872, 6913], "15": [6923, 6962], "16": [7045, 7072], "17": [7082, 7109], "18": [7119, 7154], "19": [7164, 7199], "20": [7260, 7303], "21": [7313, 7356]}, "GovernorCompatibilityBravo.propose": {"60": [2841, 3004], "61": [3014, 3188], "93": [2256, 2439], "94": [2449, 2510]}, "GovernorCompatibilityBravo.queue": {"62": [3411, 3588]}, "GovernorCompatibilityBravo.quorumVotes": {"32": [8416, 8447]}}, "43": {}, "7": {}, "8": {}, "9": {"Governor.": {"0": [3724, 3761]}, "Governor._afterExecute": {"80": [13225, 13248]}, "Governor._beforeExecute": {"77": [12716, 12765], "78": [12638, 12641]}, "Governor._cancel": {"159": [13887, 14066], "160": [14076, 14114], "161": [14125, 14158]}, "Governor._castVote": {"81": [17556, 17628], "151": [18186, 18275], "152": [18373, 18429], "153": [18478, 18537], "154": [18568, 18645], "155": [18666, 18679]}, "Governor._defaultParams": {"65": [9170, 9179]}, "Governor.castVote": {"46": [14929, 14977]}, "Governor.castVoteBySig": {"42": [16148, 16196]}, "Governor.castVoteWithReason": {"49": [15261, 15313]}, "Governor.castVoteWithReasonAndParams": {"47": [15644, 15704]}, "Governor.castVoteWithReasonAndParamsBySig": {"23": [17004, 17064]}, "Governor.execute": {"33": [11068, 11215], "34": [11225, 11263], "35": [11274, 11307], "36": [11318, 11389], "37": [11399, 11464], "38": [11474, 11544], "39": [11555, 11572]}, "Governor.getVotes": {"64": [14366, 14422]}, "Governor.getVotesWithParams": {"51": [14673, 14719]}, "Governor.hashProposal": {"58": [6049, 6131]}, "Governor.name": {"26": [4708, 4720]}, "Governor.proposalDeadline": {"149": [7511, 7562]}, "Governor.proposalSnapshot": {"40": [7280, 7333]}, "Governor.propose": {"140": [9456, 9615], "141": [9729, 9806], "142": [9816, 9896], "143": [9906, 9961], "144": [10036, 10110], "145": [10264, 10304], "146": [10314, 10352], "147": [10363, 10618], "148": [10629, 10646]}, "Governor.relay": {"57": [19276, 19326]}, "Governor.state": {"129": [6395, 6424], "130": [6482, 6511], "131": [6623, 6662], "132": [6727, 6755], "133": [6878, 6905], "135": [7002, 7032], "136": [7063, 7092]}, "Governor.supportsInterface": {"112": [4140, 4566]}, "Governor.version": {"5": [4868, 4878]}}}}, "dependencies": ["OpenZeppelin/openzeppelin-contracts@4.6.0/AccessControl", "OpenZeppelin/openzeppelin-contracts@4.6.0/Context", "OpenZeppelin/openzeppelin-contracts@4.6.0/Counters", "OpenZeppelin/openzeppelin-contracts@4.6.0/ECDSA", "OpenZeppelin/openzeppelin-contracts@4.6.0/EIP712", "OpenZeppelin/openzeppelin-contracts@4.6.0/ERC165", "OpenZeppelin/openzeppelin-contracts@4.6.0/ERC20", "OpenZeppelin/openzeppelin-contracts@4.6.0/ERC20Permit", "OpenZeppelin/openzeppelin-contracts@4.6.0/ERC20Votes", "OpenZeppelin/openzeppelin-contracts@4.6.0/Governor", "GovernorCompatibilityBravo", "OpenZeppelin/openzeppelin-contracts@4.6.0/GovernorPreventLateQuorum", "OpenZeppelin/openzeppelin-contracts@4.6.0/GovernorSettings", "OpenZeppelin/openzeppelin-contracts@4.6.0/GovernorTimelockControl", "OpenZeppelin/openzeppelin-contracts@4.6.0/GovernorVotes", "OpenZeppelin/openzeppelin-contracts@4.6.0/GovernorVotesQuorumFraction", "OpenZeppelin/openzeppelin-contracts@4.6.0/IAccessControl", "OpenZeppelin/openzeppelin-contracts@4.6.0/IERC1155Receiver", "OpenZeppelin/openzeppelin-contracts@4.6.0/IERC165", "OpenZeppelin/openzeppelin-contracts@4.6.0/IERC20", "OpenZeppelin/openzeppelin-contracts@4.6.0/IERC20Metadata", "OpenZeppelin/openzeppelin-contracts@4.6.0/IERC20Permit", "OpenZeppelin/openzeppelin-contracts@4.6.0/IERC721Receiver", "OpenZeppelin/openzeppelin-contracts@4.6.0/IGovernor", "IGovernorCompatibilityBravo", "OpenZeppelin/openzeppelin-contracts@4.6.0/IGovernorTimelock", "OpenZeppelin/openzeppelin-contracts@4.6.0/IVotes", "OpenZeppelin/openzeppelin-contracts@4.6.0/Math", "OpenZeppelin/openzeppelin-contracts@4.6.0/SafeCast", "OpenZeppelin/openzeppelin-contracts@4.6.0/Strings", "OpenZeppelin/openzeppelin-contracts@4.6.0/TimelockController"], "deployedBytecode": "6080604052600436106102b25760003560e01c80637d5e81e211610175578063d33219b4116100dc578063ea0217cf11610095578063f23a6e611161006f578063f23a6e6114610a20578063f8ce560a14610a4c578063fc0c546a14610a6c578063fe0d94c114610aa057600080fd5b8063ea0217cf146109c0578063eb9019d4146109e0578063ece40cc114610a0057600080fd5b8063d33219b41461081e578063da95691a14610850578063dd4e2ba514610870578063ddf0b009146108b6578063deaaa7cc146108d6578063e23a9a521461090a57600080fd5b8063b58131b01161012e578063b58131b01461075d578063bc197c8114610772578063c01f9e371461079e578063c28bc2fa146107be578063c59057e4146107de578063d07f91e9146107fe57600080fd5b80637d5e81e2146106b457806397c3d334146106d45780639a802a6d146106e8578063a7713a7014610708578063a890c9101461071d578063ab58fb8e1461073d57600080fd5b8063328dd9821161021957806343859632116101d257806343859632146105c057806354fd4d501461060a57806356781388146106345780635f398a141461065457806370b0f660146106745780637b3c71d31461069457600080fd5b8063328dd982146104e657806332b8113e146105165780633932abb11461053e5780633bccf4fd146105535780633e4f49e61461057357806340e58ee5146105a057600080fd5b8063150b7a021161026b578063150b7a0214610406578063160cbed71461044a57806324bc1a641461046a5780632656227d1461047f5780632d63f693146104925780632fe3e261146104b257600080fd5b8063013cf08b146102da57806301ffc9a71461035557806302a251a31461038557806303420181146103a457806306f3f9e6146103c457806306fdde03146103e457600080fd5b366102d557306102c0610ab3565b6001600160a01b0316146102d357600080fd5b005b600080fd5b3480156102e657600080fd5b506102fa6102f5366004613e64565b610acc565b604080519a8b526001600160a01b0390991660208b0152978901969096526060880194909452608087019290925260a086015260c085015260e084015215156101008301521515610120820152610140015b60405180910390f35b34801561036157600080fd5b50610375610370366004613e7d565b610b77565b604051901515815260200161034c565b34801561039157600080fd5b506005545b60405190815260200161034c565b3480156103b057600080fd5b506103966103bf366004613fba565b610b88565b3480156103d057600080fd5b506102d36103df366004613e64565b610c80565b3480156103f057600080fd5b506103f9610d13565b60405161034c91906140bc565b34801561041257600080fd5b506104316104213660046140e4565b630a85bd0160e11b949350505050565b6040516001600160e01b0319909116815260200161034c565b34801561045657600080fd5b506103966104653660046142b5565b610da5565b34801561047657600080fd5b50610396610fa6565b61039661048d3660046142b5565b610fb6565b34801561049e57600080fd5b506103966104ad366004613e64565b6110a3565b3480156104be57600080fd5b506103967fb3b3f3b703cd84ce352197dcff232b1b5d3cfb2025ce47cf04742d0651f1af8881565b3480156104f257600080fd5b50610506610501366004613e64565b6110da565b60405161034c949392919061440d565b34801561052257600080fd5b50600b546040516001600160401b03909116815260200161034c565b34801561054a57600080fd5b50600454610396565b34801561055f57600080fd5b5061039661056e36600461445a565b61136b565b34801561057f57600080fd5b5061059361058e366004613e64565b6113e1565b60405161034c91906144be565b3480156105ac57600080fd5b506102d36105bb366004613e64565b6113ec565b3480156105cc57600080fd5b506103756105db3660046144e6565b60008281526007602090815260408083206001600160a01b038516845260080190915290205460ff1692915050565b34801561061657600080fd5b506040805180820190915260018152603160f81b60208201526103f9565b34801561064057600080fd5b5061039661064f366004614516565b611704565b34801561066057600080fd5b5061039661066f366004614542565b61172d565b34801561068057600080fd5b506102d361068f366004613e64565b611777565b3480156106a057600080fd5b506103966106af3660046145c5565b6117fe565b3480156106c057600080fd5b506103966106cf36600461461e565b611850565b3480156106e057600080fd5b506064610396565b3480156106f457600080fd5b506103966107033660046146be565b611867565b34801561071457600080fd5b50600854610396565b34801561072957600080fd5b506102d3610738366004614716565b61187e565b34801561074957600080fd5b50610396610758366004613e64565b611905565b34801561076957600080fd5b5061039661199f565b34801561077e57600080fd5b5061043161078d366004614733565b63bc197c8160e01b95945050505050565b3480156107aa57600080fd5b506103966107b9366004613e64565b6119aa565b3480156107ca57600080fd5b506102d36107d93660046147c6565b6119b5565b3480156107ea57600080fd5b506103966107f93660046142b5565b611a7c565b34801561080a57600080fd5b506102d3610819366004614809565b611ab6565b34801561082a57600080fd5b506009546001600160a01b03165b6040516001600160a01b03909116815260200161034c565b34801561085c57600080fd5b5061039661086b366004614832565b611b3d565b34801561087c57600080fd5b5060408051808201909152601a81527f737570706f72743d627261766f2671756f72756d3d627261766f00000000000060208201526103f9565b3480156108c257600080fd5b506102d36108d1366004613e64565b611b62565b3480156108e257600080fd5b506103967f150214d74d59b7d1e90c73fc22ef3d991dd0a76b046543d4d80ab92d2a50328f81565b34801561091657600080fd5b506109996109253660046144e6565b60408051606081018252600080825260208201819052918101919091525060009182526007602090815260408084206001600160a01b0393909316845260089092018152918190208151606081018352815460ff808216151583526101009091041693810193909352600101549082015290565b6040805182511515815260208084015160ff1690820152918101519082015260600161034c565b3480156109cc57600080fd5b506102d36109db366004613e64565b611dd0565b3480156109ec57600080fd5b506103966109fb3660046148d3565b611e57565b348015610a0c57600080fd5b506102d3610a1b366004613e64565b611e78565b348015610a2c57600080fd5b50610431610a3b3660046148ff565b63f23a6e6160e01b95945050505050565b348015610a5857600080fd5b50610396610a67366004613e64565b611eff565b348015610a7857600080fd5b506108387f000000000000000000000000000000000000000000000000000000000000000081565b6102d3610aae366004613e64565b611fa3565b6000610ac76009546001600160a01b031690565b905090565b8060008080808080808080610ae08a611905565b9750610aeb8b6110a3565b9650610af68b6119aa565b60008c81526007602081905260408220805460058201546006830154938301546001600160a01b039092169e50949a50939850909650919450610b388d6113e1565b90506002816007811115610b4e57610b4e6144a8565b1493506007816007811115610b6557610b656144a8565b14925050509193959799509193959799565b6000610b8282612211565b92915050565b600080610c2c610c247fb3b3f3b703cd84ce352197dcff232b1b5d3cfb2025ce47cf04742d0651f1af888c8c8c8c604051610bc4929190614967565b60405180910390208b80519060200120604051602001610c09959493929190948552602085019390935260ff9190911660408401526060830152608082015260a00190565b60405160208183030381529060405280519060200120612236565b868686612284565b9050610c728a828b8b8b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508d92506122a2915050565b9a9950505050505050505050565b610c88610ab3565b6001600160a01b0316336001600160a01b031614610cc15760405162461bcd60e51b8152600401610cb890614977565b60405180910390fd5b30610cca610ab3565b6001600160a01b031614610d075760008036604051610cea929190614967565b604051809103902090505b80610d0060026122b1565b03610cf557505b610d1081612330565b50565b606060008054610d22906149ae565b80601f0160208091040260200160405190810160405280929190818152602001828054610d4e906149ae565b8015610d9b5780601f10610d7057610100808354040283529160200191610d9b565b820191906000526020600020905b815481529060010190602001808311610d7e57829003601f168201915b5050505050905090565b600080610db486868686611a7c565b90506004610dc1826113e1565b6007811115610dd257610dd26144a8565b14610def5760405162461bcd60e51b8152600401610cb8906149e8565b6009546040805163793d064960e11b815290516000926001600160a01b03169163f27a0c929160048083019260209291908290030181865afa158015610e39573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e5d9190614a29565b60095460405163b1c5f42760e01b81529192506001600160a01b03169063b1c5f42790610e97908a908a908a906000908b90600401614a42565b602060405180830381865afa158015610eb4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ed89190614a29565b6000838152600a60205260408082209290925560095491516308f2a0bb60e41b81526001600160a01b0390921691638f2a0bb091610f23918b918b918b91908b908990600401614a90565b600060405180830381600087803b158015610f3d57600080fd5b505af1158015610f51573d6000803e3d6000fd5b505050507f9a2e42fd6722813d69113e7d0079d3d940171428df7373df9c7f7617cfda2892828242610f839190614afe565b604080519283526020830191909152015b60405180910390a15095945050505050565b6000610ac7610a67600143614b16565b600080610fc586868686611a7c565b90506000610fd2826113e1565b90506004816007811115610fe857610fe86144a8565b148061100557506005816007811115611003576110036144a8565b145b6110215760405162461bcd60e51b8152600401610cb8906149e8565b600082815260016020818152604092839020600201805460ff191690921790915590518381527f712ae1383f79ac853f8d882153778e0260ef8f03b504e2866e0593e04d2b291f910160405180910390a161107f82888888886123f8565b61108c8288888888612499565b61109982888888886124a6565b5095945050505050565b60008181526001602090815260408083208151928301909152546001600160401b0316908190525b6001600160401b031692915050565b6060806060806000600760008781526020019081526020016000209050806001018160020182600301836004018380548060200260200160405190810160405280929190818152602001828054801561115c57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161113e575b50505050509350828054806020026020016040519081016040528092919081815260200182805480156111ae57602002820191906000526020600020905b81548152602001906001019080831161119a575b5050505050925081805480602002602001604051908101604052809291908181526020016000905b828210156112825783829060005260206000200180546111f5906149ae565b80601f0160208091040260200160405190810160405280929190818152602001828054611221906149ae565b801561126e5780601f106112435761010080835404028352916020019161126e565b820191906000526020600020905b81548152906001019060200180831161125157829003601f168201915b5050505050815260200190600101906111d6565b50505050915080805480602002602001604051908101604052809291908181526020016000905b828210156113555783829060005260206000200180546112c8906149ae565b80601f01602080910402602001604051908101604052809291908181526020018280546112f4906149ae565b80156113415780601f1061131657610100808354040283529160200191611341565b820191906000526020600020905b81548152906001019060200180831161132457829003601f168201915b5050505050815260200190600101906112a9565b5050505090509450945094509450509193509193565b604080517f150214d74d59b7d1e90c73fc22ef3d991dd0a76b046543d4d80ab92d2a50328f602082015290810186905260ff8516606082015260009081906113b990610c2490608001610c09565b90506113d6878288604051806020016040528060008152506124df565b979650505050505050565b6000610b8282612502565b600081815260076020526040902080546001600160a01b0316336001600160a01b0316148061143a575061141e61199f565b8154611438906001600160a01b03166109fb600143614b16565b105b6114965760405162461bcd60e51b815260206004820152602760248201527f476f7665726e6f72427261766f3a2070726f706f7365722061626f76652074686044820152661c995cda1bdb1960ca1b6064820152608401610cb8565b6116ff816001018054806020026020016040519081016040528092919081815260200182805480156114f157602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116114d3575b50505050508260020180548060200260200160405190810160405280929190818152602001828054801561154457602002820191906000526020600020905b815481526020019060010190808311611530575b50505050506116f584600301805480602002602001604051908101604052809291908181526020016000905b8282101561161c57838290600052602060002001805461158f906149ae565b80601f01602080910402602001604051908101604052809291908181526020018280546115bb906149ae565b80156116085780601f106115dd57610100808354040283529160200191611608565b820191906000526020600020905b8154815290600101906020018083116115eb57829003601f168201915b505050505081526020019060010190611570565b50505060048701805460408051602080840282018101909252828152935060009084015b828210156116ec57838290600052602060002001805461165f906149ae565b80601f016020809104026020016040519081016040528092919081815260200182805461168b906149ae565b80156116d85780601f106116ad576101008083540402835291602001916116d8565b820191906000526020600020905b8154815290600101906020018083116116bb57829003601f168201915b505050505081526020019060010190611640565b5050505061264c565b846009015461277e565b505050565b600080339050611725848285604051806020016040528060008152506124df565b949350505050565b6000803390506113d687828888888080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508a92506122a2915050565b61177f610ab3565b6001600160a01b0316336001600160a01b0316146117af5760405162461bcd60e51b8152600401610cb890614977565b306117b8610ab3565b6001600160a01b0316146117f557600080366040516117d8929190614967565b604051809103902090505b806117ee60026122b1565b036117e357505b610d108161278c565b60008033905061184686828787878080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506124df92505050565b9695505050505050565b600061185e858585856127cd565b95945050505050565b6000611874848484612835565b90505b9392505050565b611886610ab3565b6001600160a01b0316336001600160a01b0316146118b65760405162461bcd60e51b8152600401610cb890614977565b306118bf610ab3565b6001600160a01b0316146118fc57600080366040516118df929190614967565b604051809103902090505b806118f560026122b1565b036118ea57505b610d10816128cb565b6009546000828152600a602052604080822054905163d45c443560e01b81526004810191909152909182916001600160a01b039091169063d45c443590602401602060405180830381865afa158015611962573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119869190614a29565b9050806001146119965780611877565b60009392505050565b6000610ac760065490565b6000610b8282612934565b6119bd610ab3565b6001600160a01b0316336001600160a01b0316146119ed5760405162461bcd60e51b8152600401610cb890614977565b306119f6610ab3565b6001600160a01b031614611a335760008036604051611a16929190614967565b604051809103902090505b80611a2c60026122b1565b03611a2157505b611a758483838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250889250612970915050565b5050505050565b600084848484604051602001611a959493929190614b2d565b60408051601f19818403018152919052805160209091012095945050505050565b611abe610ab3565b6001600160a01b0316336001600160a01b031614611aee5760405162461bcd60e51b8152600401610cb890614977565b30611af7610ab3565b6001600160a01b031614611b345760008036604051611b17929190614967565b604051809103902090505b80611b2d60026122b1565b03611b2257505b610d1081612996565b6000611b4d338787878787612a00565b6118468686611b5c878761264c565b85611850565b60008181526007602090815260409182902060018101805484518185028101850190955280855291936116ff93909290830182828015611bcb57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611bad575b505050505082600201805480602002602001604051908101604052809291908181526020018280548015611c1e57602002820191906000526020600020905b815481526020019060010190808311611c0a575b5050505050611dc684600301805480602002602001604051908101604052809291908181526020016000905b82821015611cf6578382906000526020600020018054611c69906149ae565b80601f0160208091040260200160405190810160405280929190818152602001828054611c95906149ae565b8015611ce25780601f10611cb757610100808354040283529160200191611ce2565b820191906000526020600020905b815481529060010190602001808311611cc557829003601f168201915b505050505081526020019060010190611c4a565b50505060048701805460408051602080840282018101909252828152935060009084015b828210156116ec578382906000526020600020018054611d39906149ae565b80601f0160208091040260200160405190810160405280929190818152602001828054611d65906149ae565b8015611db25780601f10611d8757610100808354040283529160200191611db2565b820191906000526020600020905b815481529060010190602001808311611d9557829003601f168201915b505050505081526020019060010190611d1a565b8460090154610da5565b611dd8610ab3565b6001600160a01b0316336001600160a01b031614611e085760405162461bcd60e51b8152600401610cb890614977565b30611e11610ab3565b6001600160a01b031614611e4e5760008036604051611e31929190614967565b604051809103902090505b80611e4760026122b1565b03611e3c57505b610d1081612abd565b60006118778383611e7360408051602081019091526000815290565b612835565b611e80610ab3565b6001600160a01b0316336001600160a01b031614611eb05760405162461bcd60e51b8152600401610cb890614977565b30611eb9610ab3565b6001600160a01b031614611ef65760008036604051611ed9929190614967565b604051809103902090505b80611eef60026122b1565b03611ee457505b610d1081612b5e565b60006064600854604051632394e7a360e21b8152600481018590527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690638e539e8c90602401602060405180830381865afa158015611f6b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f8f9190614a29565b611f999190614b78565b610b829190614b97565b60008181526007602090815260409182902060018101805484518185028101850190955280855291936116ff9390929083018282801561200c57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611fee575b50505050508260020180548060200260200160405190810160405280929190818152602001828054801561205f57602002820191906000526020600020905b81548152602001906001019080831161204b575b505050505061220784600301805480602002602001604051908101604052809291908181526020016000905b828210156121375783829060005260206000200180546120aa906149ae565b80601f01602080910402602001604051908101604052809291908181526020018280546120d6906149ae565b80156121235780601f106120f857610100808354040283529160200191612123565b820191906000526020600020905b81548152906001019060200180831161210657829003601f168201915b50505050508152602001906001019061208b565b50505060048701805460408051602080840282018101909252828152935060009084015b828210156116ec57838290600052602060002001805461217a906149ae565b80601f01602080910402602001604051908101604052809291908181526020018280546121a6906149ae565b80156121f35780601f106121c8576101008083540402835291602001916121f3565b820191906000526020600020905b8154815290600101906020018083116121d657829003601f168201915b50505050508152602001906001019061215b565b8460090154610fb6565b60006001600160e01b03198216636e665ced60e01b1480610b825750610b8282612b9f565b6000610b82612243612c0a565b8360405161190160f01b6020820152602281018390526042810182905260009060620160405160208183030381529060405280519060200120905092915050565b600080600061229587878787612d31565b9150915061109981612e1e565b60006118468686868686612fd4565b60006122cc8254600f81810b600160801b909204900b131590565b156122ea57604051631ed9509560e11b815260040160405180910390fd5b508054600f0b6000818152600180840160205260408220805492905583546fffffffffffffffffffffffffffffffff191692016001600160801b03169190911790915590565b60648111156123b35760405162461bcd60e51b815260206004820152604360248201527f476f7665726e6f72566f74657351756f72756d4672616374696f6e3a2071756f60448201527f72756d4e756d657261746f72206f7665722071756f72756d44656e6f6d696e616064820152623a37b960e91b608482015260a401610cb8565b600880549082905560408051828152602081018490527f0553476bf02ef2726e8ce5ced78d63e26e602e4a2257b1f559418e24b4633997910160405180910390a15050565b30612401610ab3565b6001600160a01b031614611a755760005b845181101561249157306001600160a01b031685828151811061243757612437614bb9565b60200260200101516001600160a01b0316036124815761248183828151811061246257612462614bb9565b60200260200101518051906020012060026130bf90919063ffffffff16565b61248a81614bcf565b9050612412565b505050505050565b611a7585858585856130fb565b306124af610ab3565b6001600160a01b031614611a7557600254600f81810b600160801b909204900b1315611a75576000600255611a75565b600061185e858585856124fd60408051602081019091526000815290565b6122a2565b60008061250e8361316f565b90506004816007811115612524576125246144a8565b1461252f5792915050565b6000838152600a60205260409020548061254a575092915050565b600954604051632ab0f52960e01b8152600481018390526001600160a01b0390911690632ab0f52990602401602060405180830381865afa158015612593573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125b79190614be8565b156125c6575060079392505050565b600954604051632c258a9f60e11b8152600481018390526001600160a01b039091169063584b153e90602401602060405180830381865afa15801561260f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126339190614be8565b15612642575060059392505050565b5060029392505050565b6060600082516001600160401b0381111561266957612669613f05565b60405190808252806020026020018201604052801561269c57816020015b60608152602001906001900390816126875790505b50905060005b8451811015612776578481815181106126bd576126bd614bb9565b60200260200101515160001461272d578481815181106126df576126df614bb9565b60200260200101518051906020012084828151811061270057612700614bb9565b6020026020010151604051602001612719929190614c0a565b604051602081830303815290604052612748565b83818151811061273f5761273f614bb9565b60200260200101515b82828151811061275a5761275a614bb9565b60200260200101819052508061276f90614bcf565b90506126a2565b509392505050565b600061185e85858585613281565b60045460408051918252602082018390527fc565b045403dc03c2eea82b81a0465edad9e2e7fc4d97e11421c209da93d7a93910160405180910390a1600455565b600061282933868686516001600160401b038111156127ee576127ee613f05565b60405190808252806020026020018201604052801561282157816020015b606081526020019060019003908161280c5790505b508787612a00565b61185e85858585613333565b604051630748d63560e31b81526001600160a01b038481166004830152602482018490526000917f000000000000000000000000000000000000000000000000000000000000000090911690633a46b1a890604401602060405180830381865afa1580156128a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118749190614a29565b600954604080516001600160a01b03928316815291831660208301527f08f74ea46ef7894f65eabfb5e6e695de773a000b47c529ab559178069b226401910160405180910390a1600980546001600160a01b0319166001600160a01b0392909216919091179055565b6000610b82612942836135d7565b6000848152600c6020908152604091829020825191820190925290546001600160401b031690819052613606565b6060611874848484604051806060016040528060298152602001614dd56029913961361d565b600b54604080516001600160401b03928316815291831660208301527f7ca4ac117ed3cdce75c1161d8207c440389b1a15d69d096831664657c07dafc2910160405180910390a1600b805467ffffffffffffffff19166001600160401b0392909216919091179055565b805160208201206000612a1e8787612a18888861264c565b85611a7c565b6000818152600760205260409020600981015491925090612ab25780546001600160a01b0319166001600160a01b038a161781558751612a6790600183019060208b0190613c1a565b508651612a7d90600283019060208a0190613c7b565b508551612a939060038301906020890190613cb6565b508451612aa99060048301906020880190613d0f565b50600981018390555b505050505050505050565b60008111612b1d5760405162461bcd60e51b815260206004820152602760248201527f476f7665726e6f7253657474696e67733a20766f74696e6720706572696f6420604482015266746f6f206c6f7760c81b6064820152608401610cb8565b60055460408051918252602082018390527f7e3f7f0708a84de9203036abaa450dccc85ad5ff52f78c170f3edb55cf5e8828910160405180910390a1600555565b60065460408051918252602082018390527fccb45da8d5717e6c4544694297c4ba5cf151d455c9bb0ed4fc7a38411bc05461910160405180910390a1600655565b60006001600160e01b0319821663bf26d89760e01b1480612bd057506001600160e01b031982166379dd796f60e01b145b80612beb57506001600160e01b03198216630271189760e51b145b80610b8257506301ffc9a760e01b6001600160e01b0319831614610b82565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148015612c6357507f000000000000000000000000000000000000000000000000000000000000000046145b15612c8d57507f000000000000000000000000000000000000000000000000000000000000000090565b50604080517f00000000000000000000000000000000000000000000000000000000000000006020808301919091527f0000000000000000000000000000000000000000000000000000000000000000828401527f000000000000000000000000000000000000000000000000000000000000000060608301524660808301523060a0808401919091528351808403909101815260c0909201909252805191012090565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0831115612d685750600090506003612e15565b8460ff16601b14158015612d8057508460ff16601c14155b15612d915750600090506004612e15565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015612de5573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116612e0e57600060019250925050612e15565b9150600090505b94509492505050565b6000816004811115612e3257612e326144a8565b03612e3a5750565b6001816004811115612e4e57612e4e6144a8565b03612e9b5760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610cb8565b6002816004811115612eaf57612eaf6144a8565b03612efc5760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610cb8565b6003816004811115612f1057612f106144a8565b03612f685760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610cb8565b6004816004811115612f7c57612f7c6144a8565b03610d105760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b6064820152608401610cb8565b600080612fe48787878787613743565b6000888152600c6020908152604091829020825191820190925281546001600160401b031690819052919250901580156130225750613022886138a8565b156130b457600061303b600b546001600160401b031690565b613044436138d0565b61304e9190614c3b565b9050613059896119aa565b816001600160401b031611156130a8576040516001600160401b038216815289907f541f725fb9f7c98a30cc9c0ff32fbb14358cd7159c847a3aa20a2bdc442ba5119060200160405180910390a25b6130b2828261393c565b505b509695505050505050565b8154600160801b90819004600f0b6000818152600180860160205260409091209390935583546001600160801b03908116939091011602179055565b60095460405163e38335e560e01b81526001600160a01b039091169063e38335e5903490613136908890889088906000908990600401614a42565b6000604051808303818588803b15801561314f57600080fd5b505af1158015613163573d6000803e3d6000fd5b50505050505050505050565b6000818152600160205260408120600281015460ff16156131935750600792915050565b6002810154610100900460ff16156131ae5750600292915050565b60006131b9846110a3565b90508060000361320b5760405162461bcd60e51b815260206004820152601d60248201527f476f7665726e6f723a20756e6b6e6f776e2070726f706f73616c2069640000006044820152606401610cb8565b43811061321c575060009392505050565b6000613227856119aa565b905043811061323b57506001949350505050565b613244856138a8565b8015613266575060008581526007602052604090206006810154600590910154115b1561327657506004949350505050565b506003949350505050565b6000806132908686868661395a565b6000818152600a60205260409020549091501561185e576009546000828152600a60205260409081902054905163c4d252f560e01b81526001600160a01b039092169163c4d252f5916132e99160040190815260200190565b600060405180830381600087803b15801561330357600080fd5b505af1158015613317573d6000803e3d6000fd5b5050506000828152600a60205260408120555095945050505050565b600061333d61199f565b61334c336109fb600143614b16565b10156133b45760405162461bcd60e51b815260206004820152603160248201527f476f7665726e6f723a2070726f706f73657220766f7465732062656c6f7720706044820152701c9bdc1bdcd85b081d1a1c995cda1bdb19607a1b6064820152608401610cb8565b60006133c98686868680519060200120611a7c565b905084518651146133ec5760405162461bcd60e51b8152600401610cb890614c66565b835186511461340d5760405162461bcd60e51b8152600401610cb890614c66565b600086511161345e5760405162461bcd60e51b815260206004820152601860248201527f476f7665726e6f723a20656d7074792070726f706f73616c00000000000000006044820152606401610cb8565b600081815260016020908152604091829020825191820190925281546001600160401b031690819052156134de5760405162461bcd60e51b815260206004820152602160248201527f476f7665726e6f723a2070726f706f73616c20616c72656164792065786973746044820152607360f81b6064820152608401610cb8565b60006134f16134ec60045490565b6138d0565b6134fa436138d0565b6135049190614c3b565b905060006135146134ec60055490565b61351e9083614c3b565b905061352a838361393c565b613537600184018261393c565b7f7d84a6263ae0d98d3329bd7b46bb4e8d6f98cd35a7adb45c274c8b7fd5ebd5e084338b8b8d516001600160401b0381111561357557613575613f05565b6040519080825280602002602001820160405280156135a857816020015b60608152602001906001900390816135935790505b508c88888e6040516135c299989796959493929190614ca7565b60405180910390a15091979650505050505050565b60008181526001602081815260408084208151928301909152909101546001600160401b0316908190526110cb565b6000818310156136165781611877565b5090919050565b60608247101561367e5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610cb8565b6001600160a01b0385163b6136d55760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610cb8565b600080866001600160a01b031685876040516136f19190614d4a565b60006040518083038185875af1925050503d806000811461372e576040519150601f19603f3d011682016040523d82523d6000602084013e613733565b606091505b50915091506113d6828286613a66565b600085815260016020819052604082209061375d886113e1565b600781111561376e5761376e6144a8565b146137c75760405162461bcd60e51b815260206004820152602360248201527f476f7665726e6f723a20766f7465206e6f742063757272656e746c792061637460448201526269766560e81b6064820152608401610cb8565b604080516020810190915281546001600160401b0316908190526000906137f090889086612835565b90506137ff8888888488613a9f565b835160000361385457866001600160a01b03167fb8e138887d0aa13bab447e82de9d5c1777041ecd21ca36ba824ff1e6c07ddda4898884896040516138479493929190614d66565b60405180910390a26113d6565b866001600160a01b03167fe2babfbac5889a709b63bb7f598b324e08bc5a4fb9ec647fb3cbc9ec07eb87128988848989604051613895959493929190614d8e565b60405180910390a2979650505050505050565b600081815260076020526040812060058101546138c7610a67856110a3565b11159392505050565b60006001600160401b038211156139385760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203660448201526534206269747360d01b6064820152608401610cb8565b5090565b815467ffffffffffffffff19166001600160401b0391909116179055565b60008061396986868686611a7c565b90506000613976826113e1565b9050600281600781111561398c5761398c6144a8565b141580156139ac575060068160078111156139a9576139a96144a8565b14155b80156139ca575060078160078111156139c7576139c76144a8565b14155b613a165760405162461bcd60e51b815260206004820152601d60248201527f476f7665726e6f723a2070726f706f73616c206e6f74206163746976650000006044820152606401610cb8565b60008281526001602052604090819020600201805461ff001916610100179055517f789cf55be980739dad1d0699b93b58e806b51c9d96619bfa8fe0a28abaa7b30c90610f949084815260200190565b60608315613a75575081611877565b825115613a855782518084602001fd5b8160405162461bcd60e51b8152600401610cb891906140bc565b60008581526007602090815260408083206001600160a01b038816845260088101909252909120805460ff1615613b2e5760405162461bcd60e51b815260206004820152602d60248201527f476f7665726e6f72436f6d7061746962696c697479427261766f3a20766f746560448201526c08185b1c9958591e4818d85cdd609a1b6064820152608401610cb8565b805460ff8616610100810261ffff1990921691909117600190811783558201859055613b735783826006016000828254613b689190614afe565b90915550613c119050565b60001960ff861601613b935783826005016000828254613b689190614afe565b60011960ff861601613bb35783826007016000828254613b689190614afe565b60405162461bcd60e51b815260206004820152602d60248201527f476f7665726e6f72436f6d7061746962696c697479427261766f3a20696e766160448201526c6c696420766f7465207479706560981b6064820152608401610cb8565b50505050505050565b828054828255906000526020600020908101928215613c6f579160200282015b82811115613c6f57825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190613c3a565b50613938929150613d68565b828054828255906000526020600020908101928215613c6f579160200282015b82811115613c6f578251825591602001919060010190613c9b565b828054828255906000526020600020908101928215613d03579160200282015b82811115613d035782518051613cf3918491602090910190613d7d565b5091602001919060010190613cd6565b50613938929150613df0565b828054828255906000526020600020908101928215613d5c579160200282015b82811115613d5c5782518051613d4c918491602090910190613d7d565b5091602001919060010190613d2f565b50613938929150613e0d565b5b808211156139385760008155600101613d69565b828054613d89906149ae565b90600052602060002090601f016020900481019282613dab5760008555613c6f565b82601f10613dc457805160ff1916838001178555613c6f565b82800160010185558215613c6f5791820182811115613c6f578251825591602001919060010190613c9b565b80821115613938576000613e048282613e2a565b50600101613df0565b80821115613938576000613e218282613e2a565b50600101613e0d565b508054613e36906149ae565b6000825580601f10613e46575050565b601f016020900490600052602060002090810190610d109190613d68565b600060208284031215613e7657600080fd5b5035919050565b600060208284031215613e8f57600080fd5b81356001600160e01b03198116811461187757600080fd5b803560ff81168114613eb857600080fd5b919050565b60008083601f840112613ecf57600080fd5b5081356001600160401b03811115613ee657600080fd5b602083019150836020828501011115613efe57600080fd5b9250929050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715613f4357613f43613f05565b604052919050565b600082601f830112613f5c57600080fd5b81356001600160401b03811115613f7557613f75613f05565b613f88601f8201601f1916602001613f1b565b818152846020838601011115613f9d57600080fd5b816020850160208301376000918101602001919091529392505050565b60008060008060008060008060e0898b031215613fd657600080fd5b88359750613fe660208a01613ea7565b965060408901356001600160401b038082111561400257600080fd5b61400e8c838d01613ebd565b909850965060608b013591508082111561402757600080fd5b506140348b828c01613f4b565b94505061404360808a01613ea7565b925060a0890135915060c089013590509295985092959890939650565b60005b8381101561407b578181015183820152602001614063565b8381111561408a576000848401525b50505050565b600081518084526140a8816020860160208601614060565b601f01601f19169290920160200192915050565b6020815260006118776020830184614090565b6001600160a01b0381168114610d1057600080fd5b600080600080608085870312156140fa57600080fd5b8435614105816140cf565b93506020850135614115816140cf565b92506040850135915060608501356001600160401b0381111561413757600080fd5b61414387828801613f4b565b91505092959194509250565b60006001600160401b0382111561416857614168613f05565b5060051b60200190565b600082601f83011261418357600080fd5b813560206141986141938361414f565b613f1b565b82815260059290921b840181019181810190868411156141b757600080fd5b8286015b848110156130b45780356141ce816140cf565b83529183019183016141bb565b600082601f8301126141ec57600080fd5b813560206141fc6141938361414f565b82815260059290921b8401810191818101908684111561421b57600080fd5b8286015b848110156130b4578035835291830191830161421f565b600082601f83011261424757600080fd5b813560206142576141938361414f565b82815260059290921b8401810191818101908684111561427657600080fd5b8286015b848110156130b45780356001600160401b038111156142995760008081fd5b6142a78986838b0101613f4b565b84525091830191830161427a565b600080600080608085870312156142cb57600080fd5b84356001600160401b03808211156142e257600080fd5b6142ee88838901614172565b9550602087013591508082111561430457600080fd5b614310888389016141db565b9450604087013591508082111561432657600080fd5b5061433387828801614236565b949793965093946060013593505050565b600081518084526020808501945080840160005b8381101561437d5781516001600160a01b031687529582019590820190600101614358565b509495945050505050565b600081518084526020808501945080840160005b8381101561437d5781518752958201959082019060010161439c565b600081518084526020808501808196508360051b8101915082860160005b858110156144005782840389526143ee848351614090565b988501989350908401906001016143d6565b5091979650505050505050565b6080815260006144206080830187614344565b82810360208401526144328187614388565b9050828103604084015261444681866143b8565b905082810360608401526113d681856143b8565b600080600080600060a0868803121561447257600080fd5b8535945061448260208701613ea7565b935061449060408701613ea7565b94979396509394606081013594506080013592915050565b634e487b7160e01b600052602160045260246000fd5b60208101600883106144e057634e487b7160e01b600052602160045260246000fd5b91905290565b600080604083850312156144f957600080fd5b82359150602083013561450b816140cf565b809150509250929050565b6000806040838503121561452957600080fd5b8235915061453960208401613ea7565b90509250929050565b60008060008060006080868803121561455a57600080fd5b8535945061456a60208701613ea7565b935060408601356001600160401b038082111561458657600080fd5b61459289838a01613ebd565b909550935060608801359150808211156145ab57600080fd5b506145b888828901613f4b565b9150509295509295909350565b600080600080606085870312156145db57600080fd5b843593506145eb60208601613ea7565b925060408501356001600160401b0381111561460657600080fd5b61461287828801613ebd565b95989497509550505050565b6000806000806080858703121561463457600080fd5b84356001600160401b038082111561464b57600080fd5b61465788838901614172565b9550602087013591508082111561466d57600080fd5b614679888389016141db565b9450604087013591508082111561468f57600080fd5b61469b88838901614236565b935060608701359150808211156146b157600080fd5b5061414387828801613f4b565b6000806000606084860312156146d357600080fd5b83356146de816140cf565b92506020840135915060408401356001600160401b0381111561470057600080fd5b61470c86828701613f4b565b9150509250925092565b60006020828403121561472857600080fd5b8135611877816140cf565b600080600080600060a0868803121561474b57600080fd5b8535614756816140cf565b94506020860135614766816140cf565b935060408601356001600160401b038082111561478257600080fd5b61478e89838a016141db565b945060608801359150808211156147a457600080fd5b6147b089838a016141db565b935060808801359150808211156145ab57600080fd5b600080600080606085870312156147dc57600080fd5b84356147e7816140cf565b93506020850135925060408501356001600160401b0381111561460657600080fd5b60006020828403121561481b57600080fd5b81356001600160401b038116811461187757600080fd5b600080600080600060a0868803121561484a57600080fd5b85356001600160401b038082111561486157600080fd5b61486d89838a01614172565b9650602088013591508082111561488357600080fd5b61488f89838a016141db565b955060408801359150808211156148a557600080fd5b6148b189838a01614236565b945060608801359150808211156148c757600080fd5b6147b089838a01614236565b600080604083850312156148e657600080fd5b82356148f1816140cf565b946020939093013593505050565b600080600080600060a0868803121561491757600080fd5b8535614922816140cf565b94506020860135614932816140cf565b9350604086013592506060860135915060808601356001600160401b0381111561495b57600080fd5b6145b888828901613f4b565b8183823760009101908152919050565b60208082526018908201527f476f7665726e6f723a206f6e6c79476f7665726e616e63650000000000000000604082015260600190565b600181811c908216806149c257607f821691505b6020821081036149e257634e487b7160e01b600052602260045260246000fd5b50919050565b60208082526021908201527f476f7665726e6f723a2070726f706f73616c206e6f74207375636365737366756040820152601b60fa1b606082015260800190565b600060208284031215614a3b57600080fd5b5051919050565b60a081526000614a5560a0830188614344565b8281036020840152614a678188614388565b90508281036040840152614a7b81876143b8565b60608401959095525050608001529392505050565b60c081526000614aa360c0830189614344565b8281036020840152614ab58189614388565b90508281036040840152614ac981886143b8565b60608401969096525050608081019290925260a0909101529392505050565b634e487b7160e01b600052601160045260246000fd5b60008219821115614b1157614b11614ae8565b500190565b600082821015614b2857614b28614ae8565b500390565b608081526000614b406080830187614344565b8281036020840152614b528187614388565b90508281036040840152614b6681866143b8565b91505082606083015295945050505050565b6000816000190483118215151615614b9257614b92614ae8565b500290565b600082614bb457634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b600060018201614be157614be1614ae8565b5060010190565b600060208284031215614bfa57600080fd5b8151801515811461187757600080fd5b6001600160e01b0319831681528151600090614c2d816004850160208701614060565b919091016004019392505050565b60006001600160401b03808316818516808303821115614c5d57614c5d614ae8565b01949350505050565b60208082526021908201527f476f7665726e6f723a20696e76616c69642070726f706f73616c206c656e67746040820152600d60fb1b606082015260800190565b8981526001600160a01b038916602082015261012060408201819052600090614cd28382018b614344565b90508281036060840152614ce6818a614388565b90508281036080840152614cfa81896143b8565b905082810360a0840152614d0e81886143b8565b6001600160401b0387811660c0860152861660e08501528381036101008501529050614d3a8185614090565b9c9b505050505050505050505050565b60008251614d5c818460208701614060565b9190910192915050565b84815260ff841660208201528260408201526080606082015260006118466080830184614090565b85815260ff8516602082015283604082015260a060608201526000614db660a0830185614090565b8281036080840152614dc88185614090565b9897505050505050505056fe416464726573733a206c6f772d6c6576656c2063616c6c20776974682076616c7565206661696c6564a2646970667358221220c8b5da0065247a739d841193a580309f398aa5fcfaac0615db49a6cb51a875c364736f6c634300080d0033", "deployedSourceMap": "648:3178:41:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3755:4:9;3732:11;:9;:11::i;:::-;-1:-1:-1;;;;;3732:28:9;;3724:37;;;;;;648:3178:41;;;;;6374:989:42;;;;;;;;;;-1:-1:-1;6374:989:42;;;;;:::i;:::-;;:::i;:::-;;;;586:25:46;;;-1:-1:-1;;;;;647:32:46;;;642:2;627:18;;620:60;696:18;;;689:34;;;;754:2;739:18;;732:34;;;;797:3;782:19;;775:35;;;;667:3;826:19;;819:35;885:3;870:19;;863:35;929:3;914:19;;907:35;986:14;979:22;973:3;958:19;;951:51;1046:14;1039:22;1033:3;1018:19;;1011:51;573:3;558:19;6374:989:42;;;;;;;;2984:223:41;;;;;;;;;;-1:-1:-1;2984:223:41;;;;;:::i;:::-;;:::i;:::-;;;1529:14:46;;1522:22;1504:41;;1492:2;1477:18;2984:223:41;1364:187:46;1271:108:13;;;;;;;;;;-1:-1:-1;1359:13:13;;1271:108;;;1702:25:46;;;1690:2;1675:18;1271:108:13;1556:177:46;16287:784:9;;;;;;;;;;-1:-1:-1;16287:784:9;;;;;:::i;:::-;;:::i;2068:150:16:-;;;;;;;;;;-1:-1:-1;2068:150:16;;;;;:::i;:::-;;:::i;4629:98:9:-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;19693:200::-;;;;;;;;;;-1:-1:-1;19693:200:9;;;;;:::i;:::-;-1:-1:-1;;;19693:200:9;;;;;;;;;;-1:-1:-1;;;;;;5901:33:46;;;5883:52;;5871:2;5856:18;19693:200:9;5739:202:46;3610:739:14;;;;;;;;;;-1:-1:-1;3610:739:14;;;;;:::i;:::-;;:::i;8336:118:42:-;;;;;;;;;;;;;:::i;10712:867:9:-;;;;;;:::i;:::-;;:::i;7177:163::-;;;;;;;;;;-1:-1:-1;7177:163:9;;;;;:::i;:::-;;:::i;1347:147::-;;;;;;;;;;;;1406:88;1347:147;;7443:511:42;;;;;;;;;;-1:-1:-1;7443:511:42;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;:::i;3515:110:12:-;;;;;;;;;;-1:-1:-1;3604:14:12;;3515:110;;-1:-1:-1;;;;;3604:14:12;;;12105:50:46;;12093:2;12078:18;3515:110:12;11961:200:46;1101:106:13;;;;;;;;;;-1:-1:-1;1188:12:13;;1101:106;;15776:427:9;;;;;;;;;;-1:-1:-1;15776:427:9;;;;;:::i;:::-;;:::i;1399:209:41:-;;;;;;;;;;-1:-1:-1;1399:209:41;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;4015:560:42:-;;;;;;;;;;-1:-1:-1;4015:560:42;;;;;:::i;:::-;;:::i;8634:222::-;;;;;;;;;;-1:-1:-1;8634:222:42;;;;;:::i;:::-;8767:4;8794:28;;;:16;:28;;;;;;;;-1:-1:-1;;;;;8794:46:42;;;;:37;;:46;;;;;:55;;;8634:222;;;;;4786:99:9;;;;;;;;;;-1:-1:-1;4868:10:9;;;;;;;;;;;;-1:-1:-1;;;4868:10:9;;;;4786:99;;14786:198;;;;;;;;;;-1:-1:-1;14786:198:9;;;;;:::i;:::-;;:::i;15399:312::-;;;;;;;;;;-1:-1:-1;15399:312:9;;;;;:::i;:::-;;:::i;1738:126:13:-;;;;;;;;;;-1:-1:-1;1738:126:13;;;;;:::i;:::-;;:::i;15054:266:9:-;;;;;;;;;;-1:-1:-1;15054:266:9;;;;;:::i;:::-;;:::i;1614:348:41:-;;;;;;;;;;-1:-1:-1;1614:348:41;;;;;:::i;:::-;;:::i;1371:94:16:-;;;;;;;;;;-1:-1:-1;1455:3:16;1371:94;;14499:227:9;;;;;;;;;;-1:-1:-1;14499:227:9;;;;;:::i;:::-;;:::i;1160:105:16:-;;;;;;;;;;-1:-1:-1;1242:16:16;;1160:105;;6247:133:14;;;;;;;;;;-1:-1:-1;6247:133:14;;;;;:::i;:::-;;:::i;3271:259::-;;;;;;;;;;-1:-1:-1;3271:259:14;;;;;:::i;:::-;;:::i;1968:181:41:-;;;;;;;;;;;;;:::i;20269:247:9:-;;;;;;;;;;-1:-1:-1;20269:247:9;;;;;:::i;:::-;-1:-1:-1;;;20269:247:9;;;;;;;;3213:243:41;;;;;;;;;;-1:-1:-1;3213:243:41;;;;;:::i;:::-;;:::i;19137:196:9:-;;;;;;;;;;-1:-1:-1;19137:196:9;;;;;:::i;:::-;;:::i;5830:308::-;;;;;;;;;;-1:-1:-1;5830:308:9;;;;;:::i;:::-;;:::i;3869:153:12:-;;;;;;;;;;-1:-1:-1;3869:153:12;;;;;:::i;:::-;;:::i;3074:109:14:-;;;;;;;;;;-1:-1:-1;3166:9:14;;-1:-1:-1;;;;;3166:9:14;3074:109;;;-1:-1:-1;;;;;19002:32:46;;;18984:51;;18972:2;18957:18;3074:109:14;18838:203:46;2594:601:42;;;;;;;;;;-1:-1:-1;2594:601:42;;;;;:::i;:::-;;:::i;1671:174::-;;;;;;;;;;-1:-1:-1;1803:35:42;;;;;;;;;;;;;;;;;1671:174;;3270:325;;;;;;;;;;-1:-1:-1;3270:325:42;;;;;:::i;:::-;;:::i;1246:95:9:-;;;;;;;;;;;;1288:53;1246:95;;8034:221:42;;;;;;;;;;-1:-1:-1;8034:221:42;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;8204:28:42;;;;:16;:28;;;;;;;;-1:-1:-1;;;;;8204:44:42;;;;;;:37;;;;:44;;;;;;8197:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8034:221;;;;;20542:13:46;;20535:21;20528:29;20510:48;;20618:4;20606:17;;;20600:24;20626:4;20596:35;20574:20;;;20567:65;20676:17;;;20670:24;20648:20;;;20641:54;20498:2;20483:18;8034:221:42;20314:387:46;2039:130:13;;;;;;;;;;-1:-1:-1;2039:130:13;;;;;:::i;:::-;;:::i;14253:176:9:-;;;;;;;;;;-1:-1:-1;14253:176:9;;;;;:::i;:::-;;:::i;2354:150:13:-;;;;;;;;;;-1:-1:-1;2354:150:13;;;;;:::i;:::-;;:::i;19969:219:9:-;;;;;;;;;;-1:-1:-1;19969:219:9;;;;;:::i;:::-;-1:-1:-1;;;19969:219:9;;;;;;;;1603:189:16;;;;;;;;;;-1:-1:-1;1603:189:16;;;;;:::i;:::-;;:::i;420:29:15:-;;;;;;;;;;;;;;;3672:337:42;;;;;;:::i;:::-;;:::i;2804:174:41:-;2924:7;2954:17;3166:9:14;;-1:-1:-1;;;;;3166:9:14;;3074:109;2954:17:41;2947:24;;2804:174;:::o;6374:989:42:-;6813:10;6504;;;;;;;;;6839:23;6813:10;6839:11;:23::i;:::-;6833:29;;6885:28;6902:10;6885:16;:28::i;:::-;6872:41;;6934:28;6951:10;6934:16;:28::i;:::-;6973:31;7007:28;;;:16;:28;;;;;;;7056:16;;7093;;;;7134:20;;;;7179;;;;-1:-1:-1;;;;;7056:16:42;;;;-1:-1:-1;6923:39:42;;-1:-1:-1;7093:16:42;;-1:-1:-1;7134:20:42;;-1:-1:-1;7179:20:42;;-1:-1:-1;7233:17:42;7024:10;7233:5;:17::i;:::-;7210:40;-1:-1:-1;7281:22:42;7271:6;:32;;;;;;;;:::i;:::-;;;-1:-1:-1;7334:22:42;7324:6;:32;;;;;;;;:::i;:::-;;7313:43;;6798:565;;6374:989;;;;;;;;;;;:::o;2984:223:41:-;3137:4;3164:36;3188:11;3164:23;:36::i;:::-;3157:43;2984:223;-1:-1:-1;;2984:223:41:o;16287:784:9:-;16535:7;16554:13;16570:423;16597:341;1406:88;16748:10;16784:7;16833:6;;16817:24;;;;;;;:::i;:::-;;;;;;;;16877:6;16867:17;;;;;;16662:244;;;;;;;;;;;22519:25:46;;;22575:2;22560:18;;22553:34;;;;22635:4;22623:17;;;;22618:2;22603:18;;22596:45;22672:2;22657:18;;22650:34;22715:3;22700:19;;22693:35;22506:3;22491:19;;22264:470;16662:244:9;;;;;;;;;;;;;16631:293;;;;;;16597:16;:341::i;:::-;16952:1;16967;16982;16570:13;:423::i;:::-;16554:439;;17011:53;17021:10;17033:5;17040:7;17049:6;;17011:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;17057:6:9;;-1:-1:-1;17011:9:9;;-1:-1:-1;;17011:53:9:i;:::-;17004:60;16287:784;-1:-1:-1;;;;;;;;;;16287:784:9:o;2068:150:16:-;3029:11:9;:9;:11::i;:::-;-1:-1:-1;;;;;3013:27:9;719:10:28;-1:-1:-1;;;;;3013:27:9;;3005:64;;;;-1:-1:-1;;;3005:64:9;;;;;;;:::i;:::-;;;;;;;;;3106:4;3083:11;:9;:11::i;:::-;-1:-1:-1;;;;;3083:28:9;;3079:277;;3127:19;;793:14:28;3149:21:9;;;;;;;:::i;:::-;;;;;;;;3127:43;;3294:52;3331:11;3301:26;:15;:24;:26::i;:::-;:41;3294:52;;3113:243;3079:277;2169:42:16::1;2192:18;2169:22;:42::i;:::-;2068:150:::0;:::o;4629:98:9:-;4683:13;4715:5;4708:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4629:98;:::o;3610:739:14:-;3798:7;3817:18;3838:57;3851:7;3860:6;3868:9;3879:15;3838:12;:57::i;:::-;3817:78;-1:-1:-1;3935:23:14;3914:17;3920:10;3914:5;:17::i;:::-;:44;;;;;;;;:::i;:::-;;3906:90;;;;-1:-1:-1;;;3906:90:14;;;;;;;:::i;:::-;4023:9;;:23;;;-1:-1:-1;;;4023:23:14;;;;4007:13;;-1:-1:-1;;;;;4023:9:14;;:21;;:23;;;;;;;;;;;;;;:9;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4083:9;;:76;;-1:-1:-1;;;4083:76:14;;4007:39;;-1:-1:-1;;;;;;4083:9:14;;:28;;:76;;4112:7;;4121:6;;4129:9;;4083;;4143:15;;4083:76;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4056:24;;;;:12;:24;;;;;;:103;;;;4169:9;;:78;;-1:-1:-1;;;4169:78:14;;-1:-1:-1;;;;;4169:9:14;;;;:23;;:78;;4193:7;;4202:6;;4210:9;;4056:24;4224:15;;4241:5;;4169:78;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4263:51;4278:10;4308:5;4290:15;:23;;;;:::i;:::-;4263:51;;;26456:25:46;;;26512:2;26497:18;;26490:34;;;;26429:18;4263:51:14;;;;;;;;-1:-1:-1;4332:10:14;3610:739;-1:-1:-1;;;;;3610:739:14:o;8336:118:42:-;8397:7;8423:24;8430:16;8445:1;8430:12;:16;:::i;10712:867:9:-;10910:7;10929:18;10950:57;10963:7;10972:6;10980:9;10991:15;10950:12;:57::i;:::-;10929:78;;11018:20;11041:17;11047:10;11041:5;:17::i;:::-;11018:40;-1:-1:-1;11099:23:9;11089:6;:33;;;;;;;;:::i;:::-;;:67;;;-1:-1:-1;11136:20:9;11126:6;:30;;;;;;;;:::i;:::-;;11089:67;11068:147;;;;-1:-1:-1;;;11068:147:9;;;;;;;:::i;:::-;11225:22;;;;11259:4;11225:22;;;;;;;;;:31;;:38;;-1:-1:-1;;11225:38:9;;;;;;;11279:28;;1702:25:46;;;11279:28:9;;1675:18:46;11279:28:9;;;;;;;11318:71;11333:10;11345:7;11354:6;11362:9;11373:15;11318:14;:71::i;:::-;11399:65;11408:10;11420:7;11429:6;11437:9;11448:15;11399:8;:65::i;:::-;11474:70;11488:10;11500:7;11509:6;11517:9;11528:15;11474:13;:70::i;:::-;-1:-1:-1;11562:10:9;10712:867;-1:-1:-1;;;;;10712:867:9:o;7177:163::-;7261:7;7287:22;;;:10;:22;;;;;;;;:44;;;;;;;;;-1:-1:-1;;;;;7287:44:9;;;;;:46;-1:-1:-1;;;;;7280:53:9;;7177:163;-1:-1:-1;;7177:163:9:o;7443:511:42:-;7574:24;7612:23;7649:26;7689:24;7738:31;7772:16;:28;7789:10;7772:28;;;;;;;;;;;7738:62;;7831:7;:15;;7860:7;:14;;7888:7;:18;;7920:7;:17;;7810:137;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7810:137:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7443:511;;;;;:::o;15776:427:9:-;16033:48;;;1288:53;16033:48;;;26863:25:46;26904:18;;;26897:34;;;26979:4;26967:17;;26947:18;;;26940:45;15944:7:9;;;;15979:159;;16006:77;;26836:18:46;;16033:48:9;26665:326:46;15979:159:9;15963:175;;16155:41;16165:10;16177:5;16184:7;16155:41;;;;;;;;;;;;:9;:41::i;:::-;16148:48;15776:427;-1:-1:-1;;;;;;;15776:427:9:o;1399:209:41:-;1542:13;1578:23;1590:10;1578:11;:23::i;4015:560:42:-;4085:31;4119:28;;;:16;:28;;;;;4195:16;;-1:-1:-1;;;;;4195:16:42;719:10:28;-1:-1:-1;;;;;4179:32:42;;:134;;;;4294:19;:17;:19::i;:::-;4240:16;;4231:44;;-1:-1:-1;;;;;4240:16:42;4258;4240;4258:12;:16;:::i;4231:44::-;:82;4179:134;4158:220;;;;-1:-1:-1;;;4158:220:42;;27198:2:46;4158:220:42;;;27180:21:46;27237:2;27217:18;;;27210:30;27276:34;27256:18;;;27249:62;-1:-1:-1;;;27327:18:46;;;27320:37;27374:19;;4158:220:42;26996:403:46;4158:220:42;4389:179;4410:7;:15;;4389:179;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4389:179:42;;;;;;;;;;;;;;;;;;;;;4439:7;:14;;4389:179;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4467:54;4483:7;:18;;4467:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;4503:17:42;;;4467:54;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;4467:54:42;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:15;:54::i;:::-;4535:7;:23;;;4389:7;:179::i;:::-;;4075:500;4015:560;:::o;14786:198:9:-;14872:7;;719:10:28;14891:28:9;;14936:41;14946:10;14958:5;14965:7;14936:41;;;;;;;;;;;;:9;:41::i;:::-;14929:48;14786:198;-1:-1:-1;;;;14786:198:9:o;15399:312::-;15587:7;;719:10:28;15606:28:9;;15651:53;15661:10;15673:5;15680:7;15689:6;;15651:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;15697:6:9;;-1:-1:-1;15651:9:9;;-1:-1:-1;;15651:53:9:i;1738:126:13:-;3029:11:9;:9;:11::i;:::-;-1:-1:-1;;;;;3013:27:9;719:10:28;-1:-1:-1;;;;;3013:27:9;;3005:64;;;;-1:-1:-1;;;3005:64:9;;;;;;;:::i;:::-;3106:4;3083:11;:9;:11::i;:::-;-1:-1:-1;;;;;3083:28:9;;3079:277;;3127:19;;793:14:28;3149:21:9;;;;;;;:::i;:::-;;;;;;;;3127:43;;3294:52;3331:11;3301:26;:15;:24;:26::i;:::-;:41;3294:52;;3113:243;3079:277;1826:31:13::1;1842:14;1826:15;:31::i;15054:266:9:-:0;15204:7;;719:10:28;15223:28:9;;15268:45;15278:10;15290:5;15297:7;15306:6;;15268:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;15268:9:9;;-1:-1:-1;;;15268:45:9:i;:::-;15261:52;15054:266;-1:-1:-1;;;;;;15054:266:9:o;1614:348:41:-;1871:7;1901:54;1915:7;1924:6;1932:9;1943:11;1901:13;:54::i;:::-;1894:61;1614:348;-1:-1:-1;;;;;1614:348:41:o;14499:227:9:-;14654:7;14680:39;14690:7;14699:11;14712:6;14680:9;:39::i;:::-;14673:46;;14499:227;;;;;;:::o;6247:133:14:-;3029:11:9;:9;:11::i;:::-;-1:-1:-1;;;;;3013:27:9;719:10:28;-1:-1:-1;;;;;3013:27:9;;3005:64;;;;-1:-1:-1;;;3005:64:9;;;;;;;:::i;:::-;3106:4;3083:11;:9;:11::i;:::-;-1:-1:-1;;;;;3083:28:9;;3079:277;;3127:19;;793:14:28;3149:21:9;;;;;;;:::i;:::-;;;;;;;;3127:43;;3294:52;3331:11;3301:26;:15;:24;:26::i;:::-;:41;3294:52;;3113:243;3079:277;6345:28:14::1;6361:11;6345:15;:28::i;3271:259::-:0;3383:9;;3350:7;3406:24;;;:12;:24;;;;;;;3383:48;;-1:-1:-1;;;3383:48:14;;;;;1702:25:46;;;;3350:7:14;;;;-1:-1:-1;;;;;3383:9:14;;;;:22;;1675:18:46;;3383:48:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3369:62;;3448:3;3455:1;3448:8;:18;;3463:3;3448:18;;;3459:1;3441:25;3271:259;-1:-1:-1;;;3271:259:14:o;1968:181:41:-;2087:7;2117:25;1540:18:13;;;1447:118;3213:243:41;3385:7;3415:34;3438:10;3415:22;:34::i;19137:196:9:-;3029:11;:9;:11::i;:::-;-1:-1:-1;;;;;3013:27:9;719:10:28;-1:-1:-1;;;;;3013:27:9;;3005:64;;;;-1:-1:-1;;;3005:64:9;;;;;;;:::i;:::-;3106:4;3083:11;:9;:11::i;:::-;-1:-1:-1;;;;;3083:28:9;;3079:277;;3127:19;;793:14:28;3149:21:9;;;;;;;:::i;:::-;;;;;;;;3127:43;;3294:52;3331:11;3301:26;:15;:24;:26::i;:::-;:41;3294:52;;3113:243;3079:277;19276:50:::1;19306:6;19314:4;;19276:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;19320:5:9;;-1:-1:-1;19276:29:9::1;::::0;-1:-1:-1;;19276:50:9:i:1;:::-;;19137:196:::0;;;;:::o;5830:308::-;6030:7;6085;6094:6;6102:9;6113:15;6074:55;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;6074:55:9;;;;;;;;;6064:66;;6074:55;6064:66;;;;;5830:308;-1:-1:-1;;;;;5830:308:9:o;3869:153:12:-;3029:11:9;:9;:11::i;:::-;-1:-1:-1;;;;;3013:27:9;719:10:28;-1:-1:-1;;;;;3013:27:9;;3005:64;;;;-1:-1:-1;;;3005:64:9;;;;;;;:::i;:::-;3106:4;3083:11;:9;:11::i;:::-;-1:-1:-1;;;;;3083:28:9;;3079:277;;3127:19;;793:14:28;3149:21:9;;;;;;;:::i;:::-;;;;;;;;3127:43;;3294:52;3331:11;3301:26;:15;:24;:26::i;:::-;:41;3294:52;;3113:243;3079:277;3970:45:12::1;3998:16;3970:27;:45::i;2594:601:42:-:0;2822:7;2841:163;719:10:28;2895:7:42;2916:6;2936:10;2960:9;2983:11;2841:14;:163::i;:::-;3033:155;3058:7;3083:6;3107:38;3123:10;3135:9;3107:15;:38::i;:::-;3163:11;3033:7;:155::i;3270:325::-;3339:31;3373:28;;;:16;:28;;;;;;;;;3430:15;;;3411:177;;;;;;;;;;;;;;;;;3373:28;;3411:177;;;;;;;3430:15;3411:177;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3411:177:42;;;;;;;;;;;;;;;;;;;;;3459:7;:14;;3411:177;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3487:54;3503:7;:18;;3487:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3523:17:42;;;3487:54;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3487:54:42;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3555:7;:23;;;3411:5;:177::i;2039:130:13:-;3029:11:9;:9;:11::i;:::-;-1:-1:-1;;;;;3013:27:9;719:10:28;-1:-1:-1;;;;;3013:27:9;;3005:64;;;;-1:-1:-1;;;3005:64:9;;;;;;;:::i;:::-;3106:4;3083:11;:9;:11::i;:::-;-1:-1:-1;;;;;3083:28:9;;3079:277;;3127:19;;793:14:28;3149:21:9;;;;;;;:::i;:::-;;;;;;;;3127:43;;3294:52;3331:11;3301:26;:15;:24;:26::i;:::-;:41;3294:52;;3113:243;3079:277;2129:33:13::1;2146:15;2129:16;:33::i;14253:176:9:-:0;14347:7;14373:49;14383:7;14392:11;14405:16;9170:9;;;;;;;;;-1:-1:-1;9170:9:9;;;9089:97;14405:16;14373:9;:49::i;2354:150:13:-;3029:11:9;:9;:11::i;:::-;-1:-1:-1;;;;;3013:27:9;719:10:28;-1:-1:-1;;;;;3013:27:9;;3005:64;;;;-1:-1:-1;;;3005:64:9;;;;;;;:::i;:::-;3106:4;3083:11;:9;:11::i;:::-;-1:-1:-1;;;;;3083:28:9;;3079:277;;3127:19;;793:14:28;3149:21:9;;;;;;;:::i;:::-;;;;;;;;3127:43;;3294:52;3331:11;3301:26;:15;:24;:26::i;:::-;:41;3294:52;;3113:243;3079:277;2454:43:13::1;2476:20;2454:21;:43::i;1603:189:16:-:0;1678:7;1455:3;1242:16;;1705:37;;-1:-1:-1;;;1705:37:16;;;;;1702:25:46;;;1705:5:16;-1:-1:-1;;;;;1705:24:16;;;;1675:18:46;;1705:37:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:57;;;;:::i;:::-;1704:81;;;;:::i;3672:337:42:-;3751:31;3785:28;;;:16;:28;;;;;;;;;3844:15;;;3823:179;;;;;;;;;;;;;;;;;3785:28;;3823:179;;;;;;;3844:15;3823:179;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3823:179:42;;;;;;;;;;;;;;;;;;;;;3873:7;:14;;3823:179;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3901:54;3917:7;:18;;3901:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3937:17:42;;;3901:54;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3901:54:42;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3969:7;:23;;;3823:7;:179::i;1886:224:14:-;1990:4;-1:-1:-1;;;;;;2013:50:14;;-1:-1:-1;;;2013:50:14;;:90;;;2067:36;2091:11;2067:23;:36::i;4339:165:34:-;4416:7;4442:55;4464:20;:18;:20::i;:::-;4486:10;9226:57:32;;-1:-1:-1;;;9226:57:32;;;31527:27:46;31570:11;;;31563:27;;;31606:12;;;31599:28;;;9190:7:32;;31643:12:46;;9226:57:32;;;;;;;;;;;;9216:68;;;;;;9209:75;;9097:194;;;;;7452:270;7575:7;7595:17;7614:18;7636:25;7647:4;7653:1;7656;7659;7636:10;:25::i;:::-;7594:67;;;;7671:18;7683:5;7671:11;:18::i;3462:362:41:-;3726:7;3756:61;3772:10;3784:7;3793;3802:6;3810;3756:15;:61::i;3287:324:39:-;3351:13;3380:12;3386:5;5880:12;;;;;-1:-1:-1;;;5866:10:39;;;;;:26;;;5777:122;3380:12;3376:32;;;3401:7;;-1:-1:-1;;;3401:7:39;;;;;;;;;;;3376:32;-1:-1:-1;3438:12:39;;;;3418:17;3468:23;;;3438:12;3468:11;;;:23;;;;;;;3501:30;;;3565:29;;-1:-1:-1;;3565:29:39;3580:14;;-1:-1:-1;;;;;3565:29:39;;;;;;;;3468:23;3287:324::o;2439:430:16:-;1455:3;2547:18;:41;;2526:155;;;;-1:-1:-1;;;2526:155:16;;28765:2:46;2526:155:16;;;28747:21:46;28804:2;28784:18;;;28777:30;28843:34;28823:18;;;28816:62;28914:34;28894:18;;;28887:62;-1:-1:-1;;;28965:19:46;;;28958:34;29009:19;;2526:155:16;28563:471:46;2526:155:16;2721:16;;;2747:37;;;;2800:62;;;26456:25:46;;;26512:2;26497:18;;26490:34;;;2800:62:16;;26429:18:46;2800:62:16;;;;;;;2516:353;2439:430;:::o;12315:499:9:-;12577:4;12554:11;:9;:11::i;:::-;-1:-1:-1;;;;;12554:28:9;;12550:258;;12603:9;12598:200;12622:7;:14;12618:1;:18;12598:200;;;12687:4;-1:-1:-1;;;;;12665:27:9;:7;12673:1;12665:10;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;12665:27:9;;12661:123;;12716:49;12751:9;12761:1;12751:12;;;;;;;;:::i;:::-;;;;;;;12741:23;;;;;;12716:15;:24;;:49;;;;:::i;:::-;12638:3;;;:::i;:::-;;;12598:200;;;;12315:499;;;;;:::o;2155:327:41:-;2404:71;2419:10;2431:7;2440:6;2448:9;2459:15;2404:14;:71::i;12883:396:9:-;13156:4;13133:11;:9;:11::i;:::-;-1:-1:-1;;;;;13133:28:9;;13129:144;;13182:15;5880:12:39;;;;;-1:-1:-1;;;5866:10:39;;;;;:26;;13177:86:9;;5236:1:39;13225:15:9;5247:14:39;13225:23:9;5159:109:39;17380:255:9;17537:7;17563:65;17573:10;17585:7;17594;17603:6;17611:16;9170:9;;;;;;;;;-1:-1:-1;9170:9:9;;;9089:97;17611:16;17563:9;:65::i;2240:747:14:-;2334:13;2359:20;2382:23;2394:10;2382:11;:23::i;:::-;2359:46;-1:-1:-1;2430:23:14;2420:6;:33;;;;;;;;:::i;:::-;;2416:77;;2476:6;2240:747;-1:-1:-1;;2240:747:14:o;2416:77::-;2603:15;2621:24;;;:12;:24;;;;;;;2655:326;;-1:-1:-1;2703:6:14;2240:747;-1:-1:-1;;2240:747:14:o;2655:326::-;2730:9;;:34;;-1:-1:-1;;;2730:34:14;;;;;1702:25:46;;;-1:-1:-1;;;;;2730:9:14;;;;:25;;1675:18:46;;2730:34:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2726:255;;;-1:-1:-1;2787:22:14;;2240:747;-1:-1:-1;;;2240:747:14:o;2726:255::-;2830:9;;:37;;-1:-1:-1;;;2830:37:14;;;;;1702:25:46;;;-1:-1:-1;;;;;2830:9:14;;;;:28;;1675:18:46;;2830:37:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2826:155;;;-1:-1:-1;2890:20:14;;2240:747;-1:-1:-1;;;2240:747:14:o;2826:155::-;-1:-1:-1;2948:22:14;;2240:747;-1:-1:-1;;;2240:747:14:o;4661:560:42:-;4784:14;4810:28;4853:9;:16;-1:-1:-1;;;;;4841:29:42;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4810:60;;4886:9;4881:303;4905:10;:17;4901:1;:21;4881:303;;;4968:10;4979:1;4968:13;;;;;;;;:::i;:::-;;;;;;;4962:27;4993:1;4962:32;:211;;5105:10;5116:1;5105:13;;;;;;;;:::i;:::-;;;;;;;5089:31;;;;;;5143:9;5153:1;5143:12;;;;;;;;:::i;:::-;;;;;;;5044:129;;;;;;;;;:::i;:::-;;;;;;;;;;;;;4962:211;;;5013:9;5023:1;5013:12;;;;;;;;:::i;:::-;;;;;;;4962:211;4943:13;4957:1;4943:16;;;;;;;;:::i;:::-;;;;;;:230;;;;4924:3;;;;:::i;:::-;;;4881:303;;;-1:-1:-1;5201:13:42;4661:560;-1:-1:-1;;;4661:560:42:o;2488:310:41:-;2707:7;2733:58;2747:7;2756:6;2764:9;2775:15;2733:13;:58::i;2622:171:13:-;2718:12;;2703:44;;;26456:25:46;;;26512:2;26497:18;;26490:34;;;2703:44:13;;26429:18:46;2703:44:13;;;;;;;2757:12;:29;2622:171::o;2024:493:42:-;2237:7;2256:183;719:10:28;2310:7:42;2331:6;2364:9;:16;-1:-1:-1;;;;;2351:30:42;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2395:9;2418:11;2256:14;:183::i;:::-;2456:54;2470:7;2479:6;2487:9;2498:11;2456:13;:54::i;651:225:15:-;829:40;;-1:-1:-1;;;829:40:15;;-1:-1:-1;;;;;30161:32:46;;;829:40:15;;;30143:51:46;30210:18;;;30203:34;;;803:7:15;;829:5;:18;;;;;;30116::46;;829:40:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;6386:176:14:-;6489:9;;6466:56;;;-1:-1:-1;;;;;6489:9:14;;;30460:34:46;;30530:15;;;30525:2;30510:18;;30503:43;6466:56:14;;30395:18:46;6466:56:14;;;;;;;6532:9;:23;;-1:-1:-1;;;;;;6532:23:14;-1:-1:-1;;;;;6532:23:14;;;;;;;;;;6386:176::o;2056:207:12:-;2140:7;2166:90;2175:34;2198:10;2175:22;:34::i;:::-;2211:30;;;;:18;:30;;;;;;;;;:42;;;;;;;;;;-1:-1:-1;;;;;2211:42:12;;;;;2166:8;:90::i;4446:254:27:-;4575:12;4606:87;4628:6;4636:4;4642:5;4606:87;;;;;;;;;;;;;;;;;:21;:87::i;4311:204:12:-;4432:14;;4405:60;;;-1:-1:-1;;;;;4432:14:12;;;30764:34:46;;30834:15;;;30829:2;30814:18;;30807:43;4405:60:12;;30700:18:46;4405:60:12;;;;;;;4475:14;:33;;-1:-1:-1;;4475:33:12;-1:-1:-1;;;;;4475:33:12;;;;;;;;;;4311:204::o;5296:879:42:-;5568:29;;;;;;5542:23;5628:144;5654:7;5675:6;5695:38;5711:10;5723:9;5695:15;:38::i;:::-;5747:15;5628:12;:144::i;:::-;5783:31;5817:28;;;:16;:28;;;;;5859:23;;;;5607:165;;-1:-1:-1;5817:28:42;5855:314;;5912:27;;-1:-1:-1;;;;;;5912:27:42;-1:-1:-1;;;;;5912:27:42;;;;;5953:25;;;;-1:-1:-1;5953:15:42;;;:25;;;;;:::i;:::-;-1:-1:-1;5992:23:42;;;;:14;;;;:23;;;;;:::i;:::-;-1:-1:-1;6029:31:42;;;;:18;;;;:31;;;;;:::i;:::-;-1:-1:-1;6074:29:42;;;;:17;;;;:29;;;;;:::i;:::-;-1:-1:-1;6117:23:42;;;:41;;;5855:314;5532:643;;;5296:879;;;;;;:::o;2913:316:13:-;3074:1;3056:15;:19;3048:71;;;;-1:-1:-1;;;3048:71:13;;31063:2:46;3048:71:13;;;31045:21:46;31102:2;31082:18;;;31075:30;31141:34;31121:18;;;31114:62;-1:-1:-1;;;31192:18:46;;;31185:37;31239:19;;3048:71:13;30861:403:46;3048:71:13;3150:13;;3134:47;;;26456:25:46;;;26512:2;26497:18;;26490:34;;;3134:47:13;;26429:18:46;3134:47:13;;;;;;;3191:13;:31;2913:316::o;3359:213::-;3473:18;;3452:62;;;26456:25:46;;;26512:2;26497:18;;26490:34;;;3452:62:13;;26429:18:46;3452:62:13;;;;;;;3524:18;:41;3359:213::o;3835:738:9:-;3937:4;-1:-1:-1;;;;;;4159:232:9;;-1:-1:-1;;;4159:232:9;;:290;;-1:-1:-1;;;;;;;4407:42:9;;-1:-1:-1;;;4407:42:9;4159:290;:355;;;-1:-1:-1;;;;;;;4465:49:9;;-1:-1:-1;;;4465:49:9;4159:355;:407;;;-1:-1:-1;;;;;;;;;;937:40:35;;;4530:36:9;829:155:35;3143:308:34;3196:7;3227:4;-1:-1:-1;;;;;3236:12:34;3219:29;;:66;;;;;3269:16;3252:13;:33;3219:66;3215:230;;;-1:-1:-1;3308:24:34;;3143:308::o;3215:230::-;-1:-1:-1;3633:73:34;;;3392:10;3633:73;;;;38532:25:46;;;;3404:12:34;38573:18:46;;;38566:34;3418:15:34;38616:18:46;;;38609:34;3677:13:34;38659:18:46;;;38652:34;3700:4:34;38702:19:46;;;;38695:61;;;;3633:73:34;;;;;;;;;;38504:19:46;;;;3633:73:34;;;3623:84;;;;;;2804:174:41:o;5716:1603:32:-;5842:7;;6766:66;6753:79;;6749:161;;;-1:-1:-1;6864:1:32;;-1:-1:-1;6868:30:32;6848:51;;6749:161;6923:1;:7;;6928:2;6923:7;;:18;;;;;6934:1;:7;;6939:2;6934:7;;6923:18;6919:100;;;-1:-1:-1;6973:1:32;;-1:-1:-1;6977:30:32;6957:51;;6919:100;7130:24;;;7113:14;7130:24;;;;;;;;;31893:25:46;;;31966:4;31954:17;;31934:18;;;31927:45;;;;31988:18;;;31981:34;;;32031:18;;;32024:34;;;7130:24:32;;31865:19:46;;7130:24:32;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;7130:24:32;;-1:-1:-1;;7130:24:32;;;-1:-1:-1;;;;;;;7168:20:32;;7164:101;;7220:1;7224:29;7204:50;;;;;;;7164:101;7283:6;-1:-1:-1;7291:20:32;;-1:-1:-1;5716:1603:32;;;;;;;;:::o;548:631::-;625:20;616:5;:29;;;;;;;;:::i;:::-;;612:561;;548:631;:::o;612:561::-;721:29;712:5;:38;;;;;;;;:::i;:::-;;708:465;;766:34;;-1:-1:-1;;;766:34:32;;32271:2:46;766:34:32;;;32253:21:46;32310:2;32290:18;;;32283:30;32349:26;32329:18;;;32322:54;32393:18;;766:34:32;32069:348:46;708:465:32;830:35;821:5;:44;;;;;;;;:::i;:::-;;817:356;;881:41;;-1:-1:-1;;;881:41:32;;32624:2:46;881:41:32;;;32606:21:46;32663:2;32643:18;;;32636:30;32702:33;32682:18;;;32675:61;32753:18;;881:41:32;32422:355:46;817:356:32;952:30;943:5;:39;;;;;;;;:::i;:::-;;939:234;;998:44;;-1:-1:-1;;;998:44:32;;32984:2:46;998:44:32;;;32966:21:46;33023:2;33003:18;;;32996:30;33062:34;33042:18;;;33035:62;-1:-1:-1;;;33113:18:46;;;33106:32;33155:19;;998:44:32;32782:398:46;939:234:32;1072:30;1063:5;:39;;;;;;;;:::i;:::-;;1059:114;;1118:44;;-1:-1:-1;;;1118:44:32;;33387:2:46;1118:44:32;;;33369:21:46;33426:2;33406:18;;;33399:30;33465:34;33445:18;;;33438:62;-1:-1:-1;;;33516:18:46;;;33509:32;33558:19;;1118:44:32;33185:398:46;2482:816:12;2677:7;2696:14;2713:61;2729:10;2741:7;2750;2759:6;2767;2713:15;:61::i;:::-;2785:43;2831:30;;;:18;:30;;;;;;;;;2876:24;;;;;;;;;;-1:-1:-1;;;;;2876:24:12;;;;;2696:78;;-1:-1:-1;2831:30:12;1600:20:31;2876:56:12;;;;;2906:26;2921:10;2906:14;:26::i;:::-;2872:396;;;2948:28;3005:25;3604:14;;-1:-1:-1;;;;;3604:14:12;;3515:110;3005:25;2979:23;:12;:21;:23::i;:::-;:51;;;;:::i;:::-;2948:82;;3073:28;3090:10;3073:16;:28::i;:::-;3049:21;-1:-1:-1;;;;;3049:52:12;;3045:147;;;3126:51;;-1:-1:-1;;;;;12123:31:46;;12105:50;;3143:10:12;;3126:51;;12093:2:46;12078:18;3126:51:12;;;;;;;3045:147;3206:51;:16;3235:21;3206:28;:51::i;:::-;2934:334;2872:396;-1:-1:-1;3285:6:12;2482:816;-1:-1:-1;;;;;;2482:816:12:o;2088:226:39:-;2187:10;;-1:-1:-1;;;2187:10:39;;;;;;2168:16;2207:22;;;:11;;;;:22;;;;;;:30;;;;2271:26;;-1:-1:-1;;;;;2271:26:39;;;2284:13;;;;2271:26;;;;;2088:226::o;4470:323:14:-;4698:9;;:88;;-1:-1:-1;;;4698:88:14;;-1:-1:-1;;;;;4698:9:14;;;;:22;;4728:9;;4698:88;;4739:7;;4748:6;;4756:9;;4698;;4770:15;;4698:88;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4470:323;;;;;:::o;6195:914:9:-;6268:13;6325:22;;;:10;:22;;;;;6362:17;;;;;;6358:77;;;-1:-1:-1;6402:22:9;;6195:914;-1:-1:-1;;6195:914:9:o;6358:77::-;6449:17;;;;;;;;;6445:77;;;-1:-1:-1;6489:22:9;;6195:914;-1:-1:-1;;6195:914:9:o;6445:77::-;6532:16;6551:28;6568:10;6551:16;:28::i;:::-;6532:47;;6594:8;6606:1;6594:13;6590:83;;6623:39;;-1:-1:-1;;;6623:39:9;;34031:2:46;6623:39:9;;;34013:21:46;34070:2;34050:18;;;34043:30;34109:31;34089:18;;;34082:59;34158:18;;6623:39:9;33829:353:46;6590:83:9;6699:12;6687:8;:24;6683:83;;-1:-1:-1;6734:21:9;;6195:914;-1:-1:-1;;;6195:914:9:o;6683:83::-;6776:16;6795:28;6812:10;6795:16;:28::i;:::-;6776:47;;6850:12;6838:8;:24;6834:82;;-1:-1:-1;6885:20:9;;6195:914;-1:-1:-1;;;;6195:914:9:o;6834:82::-;6930:26;6945:10;6930:14;:26::i;:::-;:56;;;;-1:-1:-1;9519:4:42;9573:28;;;:16;:28;;;;;9637:20;;;;9618:16;;;;;:39;6960:26:9;6926:177;;;-1:-1:-1;7009:23:9;;6195:914;-1:-1:-1;;;;6195:914:9:o;6926:177::-;-1:-1:-1;7070:22:9;;6195:914;-1:-1:-1;;;;6195:914:9:o;5201:482:14:-;5393:7;5412:18;5433:58;5447:7;5456:6;5464:9;5475:15;5433:13;:58::i;:::-;5506:24;;;;:12;:24;;;;;;5412:79;;-1:-1:-1;5506:29:14;5502:147;;5551:9;;;5568:24;;;:12;:24;;;;;;;;5551:42;;-1:-1:-1;;;5551:42:14;;-1:-1:-1;;;;;5551:9:14;;;;:16;;:42;;;;1702:25:46;;;1690:2;1675:18;;1556:177;5551:42:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5614:24:14;;;;:12;:24;;;;;5607:31;-1:-1:-1;5666:10:14;5201:482;-1:-1:-1;;;;;5201:482:14:o;9245:1408:9:-;9437:7;9521:19;:17;:19::i;:::-;9477:40;719:10:28;9500:16:9;9515:1;9500:12;:16;:::i;9477:40::-;:63;;9456:159;;;;-1:-1:-1;;;9456:159:9;;34389:2:46;9456:159:9;;;34371:21:46;34428:2;34408:18;;;34401:30;34467:34;34447:18;;;34440:62;-1:-1:-1;;;34518:18:46;;;34511:47;34575:19;;9456:159:9;34187:413:46;9456:159:9;9626:18;9647:71;9660:7;9669:6;9677:9;9704:11;9688:29;;;;;;9647:12;:71::i;:::-;9626:92;;9755:6;:13;9737:7;:14;:31;9729:77;;;;-1:-1:-1;;;9729:77:9;;;;;;;:::i;:::-;9842:9;:16;9824:7;:14;:34;9816:80;;;;-1:-1:-1;;;9816:80:9;;;;;;;:::i;:::-;9931:1;9914:7;:14;:18;9906:55;;;;-1:-1:-1;;;9906:55:9;;35209:2:46;9906:55:9;;;35191:21:46;35248:2;35228:18;;;35221:30;35287:26;35267:18;;;35260:54;35331:18;;9906:55:9;35007:348:46;9906:55:9;9972:29;10004:22;;;:10;:22;;;;;;;;;10044:26;;;;;;;;;;-1:-1:-1;;;;;10044:26:9;;;;;1600:20:31;10036:74:9;;;;-1:-1:-1;;;10036:74:9;;35562:2:46;10036:74:9;;;35544:21:46;35601:2;35581:18;;;35574:30;35640:34;35620:18;;;35613:62;-1:-1:-1;;;35691:18:46;;;35684:31;35732:19;;10036:74:9;35360:397:46;10036:74:9;10121:15;10165:24;:13;1188:12:13;;;1101:106;10165:13:9;:22;:24::i;:::-;10139:23;:12;:21;:23::i;:::-;:50;;;;:::i;:::-;10121:68;;10199:15;10228:25;:14;1359:13:13;;;1271:108;10228:25:9;10217:36;;:8;:36;:::i;:::-;10199:54;-1:-1:-1;10264:40:9;:8;10295;10264:30;:40::i;:::-;10314:38;:16;;;10343:8;10314:28;:38::i;:::-;10368:250;10397:10;719::28;10447:7:9;10468:6;10501:7;:14;-1:-1:-1;;;;;10488:28:9;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10530:9;10553:8;10575;10597:11;10368:250;;;;;;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;10636:10:9;;9245:1408;-1:-1:-1;;;;;;;9245:1408:9:o;7408:161::-;7492:7;7518:22;;;:10;:22;;;;;;;;:42;;;;;;;;:30;;;:42;-1:-1:-1;;;;;7518:42:9;;;;;:44;1170:117:31;285:105:37;343:7;374:1;369;:6;;:14;;382:1;369:14;;;-1:-1:-1;378:1:37;;285:105;-1:-1:-1;285:105:37:o;4948:499:27:-;5113:12;5170:5;5145:21;:30;;5137:81;;;;-1:-1:-1;;;5137:81:27;;37431:2:46;5137:81:27;;;37413:21:46;37470:2;37450:18;;;37443:30;37509:34;37489:18;;;37482:62;-1:-1:-1;;;37560:18:46;;;37553:36;37606:19;;5137:81:27;37229:402:46;5137:81:27;-1:-1:-1;;;;;1465:19:27;;;5228:60;;;;-1:-1:-1;;;5228:60:27;;37838:2:46;5228:60:27;;;37820:21:46;37877:2;37857:18;;;37850:30;37916:31;37896:18;;;37889:59;37965:18;;5228:60:27;37636:353:46;5228:60:27;5300:12;5314:23;5341:6;-1:-1:-1;;;;;5341:11:27;5360:5;5367:4;5341:31;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5299:73;;;;5389:51;5406:7;5415:10;5427:12;5389:16;:51::i;17917:769:9:-;18103:7;18154:22;;;:10;:22;;;;;;;;18194:17;18200:10;18194:5;:17::i;:::-;:41;;;;;;;;:::i;:::-;;18186:89;;;;-1:-1:-1;;;18186:89:9;;38969:2:46;18186:89:9;;;38951:21:46;39008:2;38988:18;;;38981:30;39047:34;39027:18;;;39020:62;-1:-1:-1;;;39098:18:46;;;39091:33;39141:19;;18186:89:9;38767:399:46;18186:89:9;18322:30;;;;;;;;;;;-1:-1:-1;;;;;18322:30:9;;;;;-1:-1:-1;;18303:60:9;;18313:7;;18356:6;18303:9;:60::i;:::-;18286:77;;18373:56;18384:10;18396:7;18405;18414:6;18422;18373:10;:56::i;:::-;18444:6;:13;18461:1;18444:18;18440:216;;18492:7;-1:-1:-1;;;;;18483:54:9;;18501:10;18513:7;18522:6;18530;18483:54;;;;;;;;;:::i;:::-;;;;;;;;18440:216;;;18592:7;-1:-1:-1;;;;;18573:72:9;;18601:10;18613:7;18622:6;18630;18638;18573:72;;;;;;;;;;:::i;:::-;;;;;;;;18673:6;17917:769;-1:-1:-1;;;;;;;17917:769:9:o;8976:286:42:-;9100:4;9154:28;;;:16;:28;;;;;9239:16;;;;9199:36;9206:28;9171:10;9206:16;:28::i;9199:36::-;:56;;;8976:286;-1:-1:-1;;;8976:286:42:o;2571:187:38:-;2627:6;-1:-1:-1;;;;;2653:25:38;;;2645:76;;;;-1:-1:-1;;;2645:76:38;;40429:2:46;2645:76:38;;;40411:21:46;40468:2;40448:18;;;40441:30;40507:34;40487:18;;;40480:62;-1:-1:-1;;;40558:18:46;;;40551:36;40604:19;;2645:76:38;40227:402:46;2645:76:38;-1:-1:-1;2745:5:38;2571:187::o;1293:119:31:-;1378:27;;-1:-1:-1;;1378:27:31;-1:-1:-1;;;;;1378:27:31;;;;;;;1293:119::o;13546:647:9:-;13729:7;13748:18;13769:57;13782:7;13791:6;13799:9;13810:15;13769:12;:57::i;:::-;13748:78;;13836:20;13859:17;13865:10;13859:5;:17::i;:::-;13836:40;-1:-1:-1;13918:22:9;13908:6;:32;;;;;;;;:::i;:::-;;;:67;;;;-1:-1:-1;13954:21:9;13944:6;:31;;;;;;;;:::i;:::-;;;13908:67;:103;;;;-1:-1:-1;13989:22:9;13979:6;:32;;;;;;;;:::i;:::-;;;13908:103;13887:179;;;;-1:-1:-1;;;13887:179:9;;40836:2:46;13887:179:9;;;40818:21:46;40875:2;40855:18;;;40848:30;40914:31;40894:18;;;40887:59;40963:18;;13887:179:9;40634:353:46;13887:179:9;14076:22;;;;14110:4;14076:22;;;;;;;:31;;:38;;-1:-1:-1;;14076:38:9;;;;;14130:28;;;;;14087:10;1702:25:46;;1690:2;1675:18;;1556:177;7561:692:27;7707:12;7735:7;7731:516;;;-1:-1:-1;7765:10:27;7758:17;;7731:516;7876:17;;:21;7872:365;;8070:10;8064:17;8130:15;8117:10;8113:2;8109:19;8102:44;7872:365;8209:12;8202:20;;-1:-1:-1;;;8202:20:27;;;;;;;;:::i;9777:929:42:-;9971:31;10005:28;;;:16;:28;;;;;;;;-1:-1:-1;;;;;10069:25:42;;;;:16;;;:25;;;;;;10127:16;;;;10126:17;10105:109;;;;-1:-1:-1;;;10105:109:42;;41194:2:46;10105:109:42;;;41176:21:46;41233:2;41213:18;;;41206:30;41272:34;41252:18;;;41245:62;-1:-1:-1;;;41323:18:46;;;41316:43;41376:19;;10105:109:42;40992:409:46;10105:109:42;10224:23;;;10257:25;;10224:23;10257:25;;-1:-1:-1;;10257:25:42;;;;;;;10243:4;10257:25;;;;;10292:13;;:22;;;10325:375;;10403:6;10379:7;:20;;;:30;;;;;;;:::i;:::-;;;;-1:-1:-1;10325:375:42;;-1:-1:-1;10325:375:42;;-1:-1:-1;;10430:30:42;;;;10426:274;;10496:6;10476:7;:16;;;:26;;;;;;;:::i;10426:274::-;-1:-1:-1;;10523:34:42;;;;10519:181;;10597:6;10573:7;:20;;;:30;;;;;;;:::i;10519:181::-;10634:55;;-1:-1:-1;;;10634:55:42;;41608:2:46;10634:55:42;;;41590:21:46;41647:2;41627:18;;;41620:30;41686:34;41666:18;;;41659:62;-1:-1:-1;;;41737:18:46;;;41730:43;41790:19;;10634:55:42;41406:409:46;10519:181:42;9961:745;;9777:929;;;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::i;14:180:46:-;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;-1:-1:-1;165:23:46;;14:180;-1:-1:-1;14:180:46:o;1073:286::-;1131:6;1184:2;1172:9;1163:7;1159:23;1155:32;1152:52;;;1200:1;1197;1190:12;1152:52;1226:23;;-1:-1:-1;;;;;;1278:32:46;;1268:43;;1258:71;;1325:1;1322;1315:12;1738:156;1804:20;;1864:4;1853:16;;1843:27;;1833:55;;1884:1;1881;1874:12;1833:55;1738:156;;;:::o;1899:348::-;1951:8;1961:6;2015:3;2008:4;2000:6;1996:17;1992:27;1982:55;;2033:1;2030;2023:12;1982:55;-1:-1:-1;2056:20:46;;-1:-1:-1;;;;;2088:30:46;;2085:50;;;2131:1;2128;2121:12;2085:50;2168:4;2160:6;2156:17;2144:29;;2220:3;2213:4;2204:6;2196;2192:19;2188:30;2185:39;2182:59;;;2237:1;2234;2227:12;2182:59;1899:348;;;;;:::o;2252:127::-;2313:10;2308:3;2304:20;2301:1;2294:31;2344:4;2341:1;2334:15;2368:4;2365:1;2358:15;2384:275;2455:2;2449:9;2520:2;2501:13;;-1:-1:-1;;2497:27:46;2485:40;;-1:-1:-1;;;;;2540:34:46;;2576:22;;;2537:62;2534:88;;;2602:18;;:::i;:::-;2638:2;2631:22;2384:275;;-1:-1:-1;2384:275:46:o;2664:530::-;2706:5;2759:3;2752:4;2744:6;2740:17;2736:27;2726:55;;2777:1;2774;2767:12;2726:55;2813:6;2800:20;-1:-1:-1;;;;;2835:2:46;2832:26;2829:52;;;2861:18;;:::i;:::-;2905:55;2948:2;2929:13;;-1:-1:-1;;2925:27:46;2954:4;2921:38;2905:55;:::i;:::-;2985:2;2976:7;2969:19;3031:3;3024:4;3019:2;3011:6;3007:15;3003:26;3000:35;2997:55;;;3048:1;3045;3038:12;2997:55;3113:2;3106:4;3098:6;3094:17;3087:4;3078:7;3074:18;3061:55;3161:1;3136:16;;;3154:4;3132:27;3125:38;;;;3140:7;2664:530;-1:-1:-1;;;2664:530:46:o;3199:978::-;3329:6;3337;3345;3353;3361;3369;3377;3385;3438:3;3426:9;3417:7;3413:23;3409:33;3406:53;;;3455:1;3452;3445:12;3406:53;3491:9;3478:23;3468:33;;3520:36;3552:2;3541:9;3537:18;3520:36;:::i;:::-;3510:46;;3607:2;3596:9;3592:18;3579:32;-1:-1:-1;;;;;3671:2:46;3663:6;3660:14;3657:34;;;3687:1;3684;3677:12;3657:34;3726:59;3777:7;3768:6;3757:9;3753:22;3726:59;:::i;:::-;3804:8;;-1:-1:-1;3700:85:46;-1:-1:-1;3892:2:46;3877:18;;3864:32;;-1:-1:-1;3908:16:46;;;3905:36;;;3937:1;3934;3927:12;3905:36;;3960:51;4003:7;3992:8;3981:9;3977:24;3960:51;:::i;:::-;3950:61;;;4030:37;4062:3;4051:9;4047:19;4030:37;:::i;:::-;4020:47;;4114:3;4103:9;4099:19;4086:33;4076:43;;4166:3;4155:9;4151:19;4138:33;4128:43;;3199:978;;;;;;;;;;;:::o;4182:258::-;4254:1;4264:113;4278:6;4275:1;4272:13;4264:113;;;4354:11;;;4348:18;4335:11;;;4328:39;4300:2;4293:10;4264:113;;;4395:6;4392:1;4389:13;4386:48;;;4430:1;4421:6;4416:3;4412:16;4405:27;4386:48;;4182:258;;;:::o;4445:::-;4487:3;4525:5;4519:12;4552:6;4547:3;4540:19;4568:63;4624:6;4617:4;4612:3;4608:14;4601:4;4594:5;4590:16;4568:63;:::i;:::-;4685:2;4664:15;-1:-1:-1;;4660:29:46;4651:39;;;;4692:4;4647:50;;4445:258;-1:-1:-1;;4445:258:46:o;4708:220::-;4857:2;4846:9;4839:21;4820:4;4877:45;4918:2;4907:9;4903:18;4895:6;4877:45;:::i;4933:131::-;-1:-1:-1;;;;;5008:31:46;;4998:42;;4988:70;;5054:1;5051;5044:12;5069:665;5164:6;5172;5180;5188;5241:3;5229:9;5220:7;5216:23;5212:33;5209:53;;;5258:1;5255;5248:12;5209:53;5297:9;5284:23;5316:31;5341:5;5316:31;:::i;:::-;5366:5;-1:-1:-1;5423:2:46;5408:18;;5395:32;5436:33;5395:32;5436:33;:::i;:::-;5488:7;-1:-1:-1;5542:2:46;5527:18;;5514:32;;-1:-1:-1;5597:2:46;5582:18;;5569:32;-1:-1:-1;;;;;5613:30:46;;5610:50;;;5656:1;5653;5646:12;5610:50;5679:49;5720:7;5711:6;5700:9;5696:22;5679:49;:::i;:::-;5669:59;;;5069:665;;;;;;;:::o;5946:183::-;6006:4;-1:-1:-1;;;;;6031:6:46;6028:30;6025:56;;;6061:18;;:::i;:::-;-1:-1:-1;6106:1:46;6102:14;6118:4;6098:25;;5946:183::o;6134:737::-;6188:5;6241:3;6234:4;6226:6;6222:17;6218:27;6208:55;;6259:1;6256;6249:12;6208:55;6295:6;6282:20;6321:4;6345:60;6361:43;6401:2;6361:43;:::i;:::-;6345:60;:::i;:::-;6439:15;;;6525:1;6521:10;;;;6509:23;;6505:32;;;6470:12;;;;6549:15;;;6546:35;;;6577:1;6574;6567:12;6546:35;6613:2;6605:6;6601:15;6625:217;6641:6;6636:3;6633:15;6625:217;;;6721:3;6708:17;6738:31;6763:5;6738:31;:::i;:::-;6782:18;;6820:12;;;;6658;;6625:217;;6876:662;6930:5;6983:3;6976:4;6968:6;6964:17;6960:27;6950:55;;7001:1;6998;6991:12;6950:55;7037:6;7024:20;7063:4;7087:60;7103:43;7143:2;7103:43;:::i;7087:60::-;7181:15;;;7267:1;7263:10;;;;7251:23;;7247:32;;;7212:12;;;;7291:15;;;7288:35;;;7319:1;7316;7309:12;7288:35;7355:2;7347:6;7343:15;7367:142;7383:6;7378:3;7375:15;7367:142;;;7449:17;;7437:30;;7487:12;;;;7400;;7367:142;;7543:886;7595:5;7648:3;7641:4;7633:6;7629:17;7625:27;7615:55;;7666:1;7663;7656:12;7615:55;7702:6;7689:20;7728:4;7752:60;7768:43;7808:2;7768:43;:::i;7752:60::-;7846:15;;;7932:1;7928:10;;;;7916:23;;7912:32;;;7877:12;;;;7956:15;;;7953:35;;;7984:1;7981;7974:12;7953:35;8020:2;8012:6;8008:15;8032:368;8048:6;8043:3;8040:15;8032:368;;;8134:3;8121:17;-1:-1:-1;;;;;8157:11:46;8154:35;8151:125;;;8230:1;8259:2;8255;8248:14;8151:125;8301:56;8353:3;8348:2;8334:11;8326:6;8322:24;8318:33;8301:56;:::i;:::-;8289:69;;-1:-1:-1;8378:12:46;;;;8065;;8032:368;;8434:897;8604:6;8612;8620;8628;8681:3;8669:9;8660:7;8656:23;8652:33;8649:53;;;8698:1;8695;8688:12;8649:53;8738:9;8725:23;-1:-1:-1;;;;;8808:2:46;8800:6;8797:14;8794:34;;;8824:1;8821;8814:12;8794:34;8847:61;8900:7;8891:6;8880:9;8876:22;8847:61;:::i;:::-;8837:71;;8961:2;8950:9;8946:18;8933:32;8917:48;;8990:2;8980:8;8977:16;8974:36;;;9006:1;9003;8996:12;8974:36;9029:63;9084:7;9073:8;9062:9;9058:24;9029:63;:::i;:::-;9019:73;;9145:2;9134:9;9130:18;9117:32;9101:48;;9174:2;9164:8;9161:16;9158:36;;;9190:1;9187;9180:12;9158:36;;9213:61;9266:7;9255:8;9244:9;9240:24;9213:61;:::i;:::-;8434:897;;;;-1:-1:-1;9203:71:46;;9321:2;9306:18;9293:32;;-1:-1:-1;;;8434:897:46:o;9518:461::-;9571:3;9609:5;9603:12;9636:6;9631:3;9624:19;9662:4;9691:2;9686:3;9682:12;9675:19;;9728:2;9721:5;9717:14;9749:1;9759:195;9773:6;9770:1;9767:13;9759:195;;;9838:13;;-1:-1:-1;;;;;9834:39:46;9822:52;;9894:12;;;;9929:15;;;;9870:1;9788:9;9759:195;;;-1:-1:-1;9970:3:46;;9518:461;-1:-1:-1;;;;;9518:461:46:o;9984:435::-;10037:3;10075:5;10069:12;10102:6;10097:3;10090:19;10128:4;10157:2;10152:3;10148:12;10141:19;;10194:2;10187:5;10183:14;10215:1;10225:169;10239:6;10236:1;10233:13;10225:169;;;10300:13;;10288:26;;10334:12;;;;10369:15;;;;10261:1;10254:9;10225:169;;10424:616;10476:3;10514:5;10508:12;10541:6;10536:3;10529:19;10567:4;10608:2;10603:3;10599:12;10633:11;10660;10653:18;;10710:6;10707:1;10703:14;10696:5;10692:26;10680:38;;10752:2;10745:5;10741:14;10773:1;10783:231;10797:6;10794:1;10791:13;10783:231;;;10868:5;10862:4;10858:16;10853:3;10846:29;10896:38;10929:4;10920:6;10914:13;10896:38;:::i;:::-;10992:12;;;;10888:46;-1:-1:-1;10957:15:46;;;;10819:1;10812:9;10783:231;;;-1:-1:-1;11030:4:46;;10424:616;-1:-1:-1;;;;;;;10424:616:46:o;11045:911::-;11496:3;11485:9;11478:22;11459:4;11523:57;11575:3;11564:9;11560:19;11552:6;11523:57;:::i;:::-;11628:9;11620:6;11616:22;11611:2;11600:9;11596:18;11589:50;11662:44;11699:6;11691;11662:44;:::i;:::-;11648:58;;11754:9;11746:6;11742:22;11737:2;11726:9;11722:18;11715:50;11788:43;11824:6;11816;11788:43;:::i;:::-;11774:57;;11879:9;11871:6;11867:22;11862:2;11851:9;11847:18;11840:50;11907:43;11943:6;11935;11907:43;:::i;12166:458::-;12257:6;12265;12273;12281;12289;12342:3;12330:9;12321:7;12317:23;12313:33;12310:53;;;12359:1;12356;12349:12;12310:53;12395:9;12382:23;12372:33;;12424:36;12456:2;12445:9;12441:18;12424:36;:::i;:::-;12414:46;;12479:36;12511:2;12500:9;12496:18;12479:36;:::i;:::-;12166:458;;;;-1:-1:-1;12469:46:46;;12562:2;12547:18;;12534:32;;-1:-1:-1;12613:3:46;12598:19;12585:33;;12166:458;-1:-1:-1;;12166:458:46:o;12629:127::-;12690:10;12685:3;12681:20;12678:1;12671:31;12721:4;12718:1;12711:15;12745:4;12742:1;12735:15;12761:346;12911:2;12896:18;;12944:1;12933:13;;12923:144;;12989:10;12984:3;12980:20;12977:1;12970:31;13024:4;13021:1;13014:15;13052:4;13049:1;13042:15;12923:144;13076:25;;;12761:346;:::o;13112:315::-;13180:6;13188;13241:2;13229:9;13220:7;13216:23;13212:32;13209:52;;;13257:1;13254;13247:12;13209:52;13293:9;13280:23;13270:33;;13353:2;13342:9;13338:18;13325:32;13366:31;13391:5;13366:31;:::i;:::-;13416:5;13406:15;;;13112:315;;;;;:::o;13432:250::-;13498:6;13506;13559:2;13547:9;13538:7;13534:23;13530:32;13527:52;;;13575:1;13572;13565:12;13527:52;13611:9;13598:23;13588:33;;13640:36;13672:2;13661:9;13657:18;13640:36;:::i;:::-;13630:46;;13432:250;;;;;:::o;13687:769::-;13792:6;13800;13808;13816;13824;13877:3;13865:9;13856:7;13852:23;13848:33;13845:53;;;13894:1;13891;13884:12;13845:53;13930:9;13917:23;13907:33;;13959:36;13991:2;13980:9;13976:18;13959:36;:::i;:::-;13949:46;;14046:2;14035:9;14031:18;14018:32;-1:-1:-1;;;;;14110:2:46;14102:6;14099:14;14096:34;;;14126:1;14123;14116:12;14096:34;14165:59;14216:7;14207:6;14196:9;14192:22;14165:59;:::i;:::-;14243:8;;-1:-1:-1;14139:85:46;-1:-1:-1;14331:2:46;14316:18;;14303:32;;-1:-1:-1;14347:16:46;;;14344:36;;;14376:1;14373;14366:12;14344:36;;14399:51;14442:7;14431:8;14420:9;14416:24;14399:51;:::i;:::-;14389:61;;;13687:769;;;;;;;;:::o;14461:549::-;14548:6;14556;14564;14572;14625:2;14613:9;14604:7;14600:23;14596:32;14593:52;;;14641:1;14638;14631:12;14593:52;14677:9;14664:23;14654:33;;14706:36;14738:2;14727:9;14723:18;14706:36;:::i;:::-;14696:46;;14793:2;14782:9;14778:18;14765:32;-1:-1:-1;;;;;14812:6:46;14809:30;14806:50;;;14852:1;14849;14842:12;14806:50;14891:59;14942:7;14933:6;14922:9;14918:22;14891:59;:::i;:::-;14461:549;;;;-1:-1:-1;14969:8:46;-1:-1:-1;;;;14461:549:46:o;15015:1028::-;15195:6;15203;15211;15219;15272:3;15260:9;15251:7;15247:23;15243:33;15240:53;;;15289:1;15286;15279:12;15240:53;15329:9;15316:23;-1:-1:-1;;;;;15399:2:46;15391:6;15388:14;15385:34;;;15415:1;15412;15405:12;15385:34;15438:61;15491:7;15482:6;15471:9;15467:22;15438:61;:::i;:::-;15428:71;;15552:2;15541:9;15537:18;15524:32;15508:48;;15581:2;15571:8;15568:16;15565:36;;;15597:1;15594;15587:12;15565:36;15620:63;15675:7;15664:8;15653:9;15649:24;15620:63;:::i;:::-;15610:73;;15736:2;15725:9;15721:18;15708:32;15692:48;;15765:2;15755:8;15752:16;15749:36;;;15781:1;15778;15771:12;15749:36;15804:61;15857:7;15846:8;15835:9;15831:24;15804:61;:::i;:::-;15794:71;;15918:2;15907:9;15903:18;15890:32;15874:48;;15947:2;15937:8;15934:16;15931:36;;;15963:1;15960;15953:12;15931:36;;15986:51;16029:7;16018:8;16007:9;16003:24;15986:51;:::i;16048:523::-;16134:6;16142;16150;16203:2;16191:9;16182:7;16178:23;16174:32;16171:52;;;16219:1;16216;16209:12;16171:52;16258:9;16245:23;16277:31;16302:5;16277:31;:::i;:::-;16327:5;-1:-1:-1;16379:2:46;16364:18;;16351:32;;-1:-1:-1;16434:2:46;16419:18;;16406:32;-1:-1:-1;;;;;16450:30:46;;16447:50;;;16493:1;16490;16483:12;16447:50;16516:49;16557:7;16548:6;16537:9;16533:22;16516:49;:::i;:::-;16506:59;;;16048:523;;;;;:::o;16576:274::-;16662:6;16715:2;16703:9;16694:7;16690:23;16686:32;16683:52;;;16731:1;16728;16721:12;16683:52;16770:9;16757:23;16789:31;16814:5;16789:31;:::i;16855:1071::-;17009:6;17017;17025;17033;17041;17094:3;17082:9;17073:7;17069:23;17065:33;17062:53;;;17111:1;17108;17101:12;17062:53;17150:9;17137:23;17169:31;17194:5;17169:31;:::i;:::-;17219:5;-1:-1:-1;17276:2:46;17261:18;;17248:32;17289:33;17248:32;17289:33;:::i;:::-;17341:7;-1:-1:-1;17399:2:46;17384:18;;17371:32;-1:-1:-1;;;;;17452:14:46;;;17449:34;;;17479:1;17476;17469:12;17449:34;17502:61;17555:7;17546:6;17535:9;17531:22;17502:61;:::i;:::-;17492:71;;17616:2;17605:9;17601:18;17588:32;17572:48;;17645:2;17635:8;17632:16;17629:36;;;17661:1;17658;17651:12;17629:36;17684:63;17739:7;17728:8;17717:9;17713:24;17684:63;:::i;:::-;17674:73;;17800:3;17789:9;17785:19;17772:33;17756:49;;17830:2;17820:8;17817:16;17814:36;;;17846:1;17843;17836:12;17931:613;18019:6;18027;18035;18043;18096:2;18084:9;18075:7;18071:23;18067:32;18064:52;;;18112:1;18109;18102:12;18064:52;18151:9;18138:23;18170:31;18195:5;18170:31;:::i;:::-;18220:5;-1:-1:-1;18272:2:46;18257:18;;18244:32;;-1:-1:-1;18327:2:46;18312:18;;18299:32;-1:-1:-1;;;;;18343:30:46;;18340:50;;;18386:1;18383;18376:12;18549:284;18607:6;18660:2;18648:9;18639:7;18635:23;18631:32;18628:52;;;18676:1;18673;18666:12;18628:52;18715:9;18702:23;-1:-1:-1;;;;;18758:5:46;18754:30;18747:5;18744:41;18734:69;;18799:1;18796;18789:12;19046:1263;19270:6;19278;19286;19294;19302;19355:3;19343:9;19334:7;19330:23;19326:33;19323:53;;;19372:1;19369;19362:12;19323:53;19412:9;19399:23;-1:-1:-1;;;;;19482:2:46;19474:6;19471:14;19468:34;;;19498:1;19495;19488:12;19468:34;19521:61;19574:7;19565:6;19554:9;19550:22;19521:61;:::i;:::-;19511:71;;19635:2;19624:9;19620:18;19607:32;19591:48;;19664:2;19654:8;19651:16;19648:36;;;19680:1;19677;19670:12;19648:36;19703:63;19758:7;19747:8;19736:9;19732:24;19703:63;:::i;:::-;19693:73;;19819:2;19808:9;19804:18;19791:32;19775:48;;19848:2;19838:8;19835:16;19832:36;;;19864:1;19861;19854:12;19832:36;19887:61;19940:7;19929:8;19918:9;19914:24;19887:61;:::i;:::-;19877:71;;20001:2;19990:9;19986:18;19973:32;19957:48;;20030:2;20020:8;20017:16;20014:36;;;20046:1;20043;20036:12;20014:36;20069:61;20122:7;20111:8;20100:9;20096:24;20069:61;:::i;20706:315::-;20774:6;20782;20835:2;20823:9;20814:7;20810:23;20806:32;20803:52;;;20851:1;20848;20841:12;20803:52;20890:9;20877:23;20909:31;20934:5;20909:31;:::i;:::-;20959:5;21011:2;20996:18;;;;20983:32;;-1:-1:-1;;;20706:315:46:o;21026:734::-;21130:6;21138;21146;21154;21162;21215:3;21203:9;21194:7;21190:23;21186:33;21183:53;;;21232:1;21229;21222:12;21183:53;21271:9;21258:23;21290:31;21315:5;21290:31;:::i;:::-;21340:5;-1:-1:-1;21397:2:46;21382:18;;21369:32;21410:33;21369:32;21410:33;:::i;:::-;21462:7;-1:-1:-1;21516:2:46;21501:18;;21488:32;;-1:-1:-1;21567:2:46;21552:18;;21539:32;;-1:-1:-1;21622:3:46;21607:19;;21594:33;-1:-1:-1;;;;;21639:30:46;;21636:50;;;21682:1;21679;21672:12;21636:50;21705:49;21746:7;21737:6;21726:9;21722:22;21705:49;:::i;21988:271::-;22171:6;22163;22158:3;22145:33;22127:3;22197:16;;22222:13;;;22197:16;21988:271;-1:-1:-1;21988:271:46:o;22739:348::-;22941:2;22923:21;;;22980:2;22960:18;;;22953:30;23019:26;23014:2;22999:18;;22992:54;23078:2;23063:18;;22739:348::o;23092:380::-;23171:1;23167:12;;;;23214;;;23235:61;;23289:4;23281:6;23277:17;23267:27;;23235:61;23342:2;23334:6;23331:14;23311:18;23308:38;23305:161;;23388:10;23383:3;23379:20;23376:1;23369:31;23423:4;23420:1;23413:15;23451:4;23448:1;23441:15;23305:161;;23092:380;;;:::o;23477:397::-;23679:2;23661:21;;;23718:2;23698:18;;;23691:30;23757:34;23752:2;23737:18;;23730:62;-1:-1:-1;;;23823:2:46;23808:18;;23801:31;23864:3;23849:19;;23477:397::o;23879:184::-;23949:6;24002:2;23990:9;23981:7;23977:23;23973:32;23970:52;;;24018:1;24015;24008:12;23970:52;-1:-1:-1;24041:16:46;;23879:184;-1:-1:-1;23879:184:46:o;24068:839::-;24485:3;24474:9;24467:22;24448:4;24512:57;24564:3;24553:9;24549:19;24541:6;24512:57;:::i;:::-;24617:9;24609:6;24605:22;24600:2;24589:9;24585:18;24578:50;24651:44;24688:6;24680;24651:44;:::i;:::-;24637:58;;24743:9;24735:6;24731:22;24726:2;24715:9;24711:18;24704:50;24771:43;24807:6;24799;24771:43;:::i;:::-;24845:2;24830:18;;24823:34;;;;-1:-1:-1;;24888:3:46;24873:19;24866:35;24763:51;24068:839;-1:-1:-1;;;24068:839:46:o;25101:911::-;25546:3;25535:9;25528:22;25509:4;25573:57;25625:3;25614:9;25610:19;25602:6;25573:57;:::i;:::-;25678:9;25670:6;25666:22;25661:2;25650:9;25646:18;25639:50;25712:44;25749:6;25741;25712:44;:::i;:::-;25698:58;;25804:9;25796:6;25792:22;25787:2;25776:9;25772:18;25765:50;25832:43;25868:6;25860;25832:43;:::i;:::-;25906:2;25891:18;;25884:34;;;;-1:-1:-1;;25949:3:46;25934:19;;25927:35;;;;25993:3;25978:19;;;25971:35;25824:51;25101:911;-1:-1:-1;;;25101:911:46:o;26017:127::-;26078:10;26073:3;26069:20;26066:1;26059:31;26109:4;26106:1;26099:15;26133:4;26130:1;26123:15;26149:128;26189:3;26220:1;26216:6;26213:1;26210:13;26207:39;;;26226:18;;:::i;:::-;-1:-1:-1;26262:9:46;;26149:128::o;26535:125::-;26575:4;26603:1;26600;26597:8;26594:34;;;26608:18;;:::i;:::-;-1:-1:-1;26645:9:46;;26535:125::o;27404:759::-;27785:3;27774:9;27767:22;27748:4;27812:57;27864:3;27853:9;27849:19;27841:6;27812:57;:::i;:::-;27917:9;27909:6;27905:22;27900:2;27889:9;27885:18;27878:50;27951:44;27988:6;27980;27951:44;:::i;:::-;27937:58;;28043:9;28035:6;28031:22;28026:2;28015:9;28011:18;28004:50;28071:43;28107:6;28099;28071:43;:::i;:::-;28063:51;;;28150:6;28145:2;28134:9;28130:18;28123:34;27404:759;;;;;;;:::o;28168:168::-;28208:7;28274:1;28270;28266:6;28262:14;28259:1;28256:21;28251:1;28244:9;28237:17;28233:45;28230:71;;;28281:18;;:::i;:::-;-1:-1:-1;28321:9:46;;28168:168::o;28341:217::-;28381:1;28407;28397:132;;28451:10;28446:3;28442:20;28439:1;28432:31;28486:4;28483:1;28476:15;28514:4;28511:1;28504:15;28397:132;-1:-1:-1;28543:9:46;;28341:217::o;29039:127::-;29100:10;29095:3;29091:20;29088:1;29081:31;29131:4;29128:1;29121:15;29155:4;29152:1;29145:15;29171:135;29210:3;29231:17;;;29228:43;;29251:18;;:::i;:::-;-1:-1:-1;29298:1:46;29287:13;;29171:135::o;29311:277::-;29378:6;29431:2;29419:9;29410:7;29406:23;29402:32;29399:52;;;29447:1;29444;29437:12;29399:52;29479:9;29473:16;29532:5;29525:13;29518:21;29511:5;29508:32;29498:60;;29554:1;29551;29544:12;29593:371;-1:-1:-1;;;;;;29778:33:46;;29766:46;;29835:13;;29748:3;;29857:61;29835:13;29907:1;29898:11;;29891:4;29879:17;;29857:61;:::i;:::-;29938:16;;;;29956:1;29934:24;;29593:371;-1:-1:-1;;;29593:371:46:o;33588:236::-;33627:3;-1:-1:-1;;;;;33700:2:46;33697:1;33693:10;33730:2;33727:1;33723:10;33761:3;33757:2;33753:12;33748:3;33745:21;33742:47;;;33769:18;;:::i;:::-;33805:13;;33588:236;-1:-1:-1;;;;33588:236:46:o;34605:397::-;34807:2;34789:21;;;34846:2;34826:18;;;34819:30;34885:34;34880:2;34865:18;;34858:62;-1:-1:-1;;;34951:2:46;34936:18;;34929:31;34992:3;34977:19;;34605:397::o;35762:1462::-;36375:25;;;-1:-1:-1;;;;;36436:32:46;;36431:2;36416:18;;36409:60;36363:3;36500:2;36485:18;;36478:30;;;36334:4;;36531:56;36568:18;;;36560:6;36531:56;:::i;:::-;36517:70;;36635:9;36627:6;36623:22;36618:2;36607:9;36603:18;36596:50;36669:44;36706:6;36698;36669:44;:::i;:::-;36655:58;;36762:9;36754:6;36750:22;36744:3;36733:9;36729:19;36722:51;36796:43;36832:6;36824;36796:43;:::i;:::-;36782:57;;36888:9;36880:6;36876:22;36870:3;36859:9;36855:19;36848:51;36922:43;36958:6;36950;36922:43;:::i;:::-;-1:-1:-1;;;;;37039:15:46;;;37033:3;37018:19;;37011:44;37092:15;;37086:3;37071:19;;37064:44;37145:22;;;37139:3;37124:19;;37117:51;36908:57;-1:-1:-1;37185:33:46;36908:57;37203:6;37185:33;:::i;:::-;37177:41;35762:1462;-1:-1:-1;;;;;;;;;;;;35762:1462:46:o;37994:274::-;38123:3;38161:6;38155:13;38177:53;38223:6;38218:3;38211:4;38203:6;38199:17;38177:53;:::i;:::-;38246:16;;;;;37994:274;-1:-1:-1;;37994:274:46:o;39171:442::-;39400:6;39389:9;39382:25;39455:4;39447:6;39443:17;39438:2;39427:9;39423:18;39416:45;39497:6;39492:2;39481:9;39477:18;39470:34;39540:3;39535:2;39524:9;39520:18;39513:31;39363:4;39561:46;39602:3;39591:9;39587:19;39579:6;39561:46;:::i;39618:604::-;39893:6;39882:9;39875:25;39948:4;39940:6;39936:17;39931:2;39920:9;39916:18;39909:45;39990:6;39985:2;39974:9;39970:18;39963:34;40033:3;40028:2;40017:9;40013:18;40006:31;39856:4;40060:46;40101:3;40090:9;40086:19;40078:6;40060:46;:::i;:::-;40155:9;40147:6;40143:22;40137:3;40126:9;40122:19;40115:51;40183:33;40209:6;40201;40183:33;:::i;:::-;40175:41;39618:604;-1:-1:-1;;;;;;;;39618:604:46:o", "language": "Solidity", "natspec": {"errors": {"Empty()": [{"details": "An operation (e.g. {front}) couldn't be completed due to the queue being empty."}]}, "kind": "dev", "methods": {"COUNTING_MODE()": {"details": "A description of the possible `support` values for {castVote} and the way these votes are counted, meant to be consumed by UIs to show correct vote options and interpret the results. The string is a URL-encoded sequence of key-value pairs that each describe one aspect, for example `support=bravo&quorum=for,abstain`. There are 2 standard keys: `support` and `quorum`. - `support=bravo` refers to the vote options 0 = Against, 1 = For, 2 = Abstain, as in `GovernorBravo`. - `quorum=bravo` means that only For votes are counted towards quorum. - `quorum=for,abstain` means that both For and Abstain votes are counted towards quorum. If a counting module makes use of encoded `params`, it should include this under a `params` key with a unique name that describes the behavior. For example: - `params=fractional` might refer to a scheme where votes are divided fractionally between for/against/abstain. - `params=erc721` might refer to a scheme where specific NFTs are delegated to vote. NOTE: The string can be decoded by the standard https://developer.mozilla.org/en-US/docs/Web/API/URLSearchParams[`URLSearchParams`] JavaScript class.", "notice": "module:voting"}, "cancel(uint256)": {"details": "Cancels a proposal only if sender is the proposer, or proposer delegates dropped below proposal threshold."}, "castVote(uint256,uint8)": {"details": "See {IGovernor-castVote}."}, "castVoteBySig(uint256,uint8,uint8,bytes32,bytes32)": {"details": "See {IGovernor-castVoteBySig}."}, "castVoteWithReason(uint256,uint8,string)": {"details": "See {IGovernor-castVoteWithReason}."}, "castVoteWithReasonAndParams(uint256,uint8,string,bytes)": {"details": "See {IGovernor-castVoteWithReasonAndParams}."}, "castVoteWithReasonAndParamsBySig(uint256,uint8,string,bytes,uint8,bytes32,bytes32)": {"details": "See {IGovernor-castVoteWithReasonAndParamsBySig}."}, "execute(address[],uint256[],bytes[],bytes32)": {"details": "See {IGovernor-execute}."}, "execute(uint256)": {"details": "See {IGovernorCompatibilityBravo-execute}."}, "getActions(uint256)": {"details": "See {IGovernorCompatibilityBravo-getActions}."}, "getReceipt(uint256,address)": {"details": "See {IGovernorCompatibilityBravo-getReceipt}."}, "getVotes(address,uint256)": {"details": "See {IGovernor-getVotes}."}, "getVotesWithParams(address,uint256,bytes)": {"details": "See {IGovernor-getVotesWithParams}."}, "hasVoted(uint256,address)": {"details": "See {IGovernor-hasVoted}."}, "hashProposal(address[],uint256[],bytes[],bytes32)": {"details": "See {IGovernor-hashProposal}. The proposal id is produced by hashing the RLC encoded `targets` array, the `values` array, the `calldatas` array and the descriptionHash (bytes32 which itself is the keccak256 hash of the description string). This proposal id can be produced from the proposal data which is part of the {ProposalCreated} event. It can even be computed in advance, before the proposal is submitted. Note that the chainId and the governor address are not part of the proposal id computation. Consequently, the same proposal (with same operation and same description) will have the same id if submitted on multiple governors across multiple networks. This also means that in order to execute the same operation twice (on the same governor) the proposer will have to change the description in order to avoid proposal id conflicts."}, "lateQuorumVoteExtension()": {"details": "Returns the current value of the vote extension parameter: the number of blocks that are required to pass from the time a proposal reaches quorum until its voting period ends."}, "name()": {"details": "See {IGovernor-name}."}, "onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)": {"details": "See {IERC1155Receiver-onERC1155BatchReceived}."}, "onERC1155Received(address,address,uint256,uint256,bytes)": {"details": "See {IERC1155Receiver-onERC1155Received}."}, "onERC721Received(address,address,uint256,bytes)": {"details": "See {IERC721Receiver-onERC721Received}."}, "proposalEta(uint256)": {"details": "Public accessor to check the eta of a queued proposal"}, "proposalSnapshot(uint256)": {"details": "See {IGovernor-proposalSnapshot}."}, "proposals(uint256)": {"details": "See {IGovernorCompatibilityBravo-proposals}."}, "propose(address[],uint256[],string[],bytes[],string)": {"details": "See {IGovernorCompatibilityBravo-propose}."}, "queue(address[],uint256[],bytes[],bytes32)": {"details": "Function to queue a proposal to the timelock."}, "queue(uint256)": {"details": "See {IGovernorCompatibilityBravo-queue}."}, "quorum(uint256)": {"details": "Returns the quorum for a block number, in terms of number of votes: `supply * numerator / denominator`."}, "quorumDenominator()": {"details": "Returns the quorum denominator. Defaults to 100, but may be overridden."}, "quorumNumerator()": {"details": "Returns the current quorum numerator. See {quorumDenominator}."}, "quorumVotes()": {"details": "See {IGovernorCompatibilityBravo-quorumVotes}."}, "relay(address,uint256,bytes)": {"details": "Relays a transaction or function call to an arbitrary target. In cases where the governance executor is some contract other than the governor itself, like when using a timelock, this function can be invoked in a governance proposal to recover tokens or Ether that was sent to the governor contract by mistake. Note that if the executor is simply the governor itself, use of `relay` is redundant."}, "setLateQuorumVoteExtension(uint64)": {"details": "Changes the {lateQuorumVoteExtension}. This operation can only be performed by the governance executor, generally through a governance proposal. Emits a {LateQuorumVoteExtensionSet} event."}, "setProposalThreshold(uint256)": {"details": "Update the proposal threshold. This operation can only be performed through a governance proposal. Emits a {ProposalThresholdSet} event."}, "setVotingDelay(uint256)": {"details": "Update the voting delay. This operation can only be performed through a governance proposal. Emits a {VotingDelaySet} event."}, "setVotingPeriod(uint256)": {"details": "Update the voting period. This operation can only be performed through a governance proposal. Emits a {VotingPeriodSet} event."}, "timelock()": {"details": "Public accessor to check the address of the timelock"}, "updateQuorumNumerator(uint256)": {"details": "Changes the quorum numerator. Emits a {QuorumNumeratorUpdated} event. Requirements: - Must be called through a governance proposal. - New numerator must be smaller or equal to the denominator."}, "updateTimelock(address)": {"details": "Public endpoint to update the underlying timelock instance. Restricted to the timelock itself, so updates must be proposed, scheduled, and executed through governance proposals. CAUTION: It is not recommended to change the timelock while there are other queued governance proposals."}, "version()": {"details": "See {IGovernor-version}."}, "votingDelay()": {"details": "See {IGovernor-votingDelay}."}, "votingPeriod()": {"details": "See {IGovernor-votingPeriod}."}}, "version": 1}, "offset": [648, 3826], "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x2B2 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x7D5E81E2 GT PUSH2 0x175 JUMPI DUP1 PUSH4 0xD33219B4 GT PUSH2 0xDC JUMPI DUP1 PUSH4 0xEA0217CF GT PUSH2 0x95 JUMPI DUP1 PUSH4 0xF23A6E61 GT PUSH2 0x6F JUMPI DUP1 PUSH4 0xF23A6E61 EQ PUSH2 0xA20 JUMPI DUP1 PUSH4 0xF8CE560A EQ PUSH2 0xA4C JUMPI DUP1 PUSH4 0xFC0C546A EQ PUSH2 0xA6C JUMPI DUP1 PUSH4 0xFE0D94C1 EQ PUSH2 0xAA0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xEA0217CF EQ PUSH2 0x9C0 JUMPI DUP1 PUSH4 0xEB9019D4 EQ PUSH2 0x9E0 JUMPI DUP1 PUSH4 0xECE40CC1 EQ PUSH2 0xA00 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xD33219B4 EQ PUSH2 0x81E JUMPI DUP1 PUSH4 0xDA95691A EQ PUSH2 0x850 JUMPI DUP1 PUSH4 0xDD4E2BA5 EQ PUSH2 0x870 JUMPI DUP1 PUSH4 0xDDF0B009 EQ PUSH2 0x8B6 JUMPI DUP1 PUSH4 0xDEAAA7CC EQ PUSH2 0x8D6 JUMPI DUP1 PUSH4 0xE23A9A52 EQ PUSH2 0x90A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xB58131B0 GT PUSH2 0x12E JUMPI DUP1 PUSH4 0xB58131B0 EQ PUSH2 0x75D JUMPI DUP1 PUSH4 0xBC197C81 EQ PUSH2 0x772 JUMPI DUP1 PUSH4 0xC01F9E37 EQ PUSH2 0x79E JUMPI DUP1 PUSH4 0xC28BC2FA EQ PUSH2 0x7BE JUMPI DUP1 PUSH4 0xC59057E4 EQ PUSH2 0x7DE JUMPI DUP1 PUSH4 0xD07F91E9 EQ PUSH2 0x7FE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x7D5E81E2 EQ PUSH2 0x6B4 JUMPI DUP1 PUSH4 0x97C3D334 EQ PUSH2 0x6D4 JUMPI DUP1 PUSH4 0x9A802A6D EQ PUSH2 0x6E8 JUMPI DUP1 PUSH4 0xA7713A70 EQ PUSH2 0x708 JUMPI DUP1 PUSH4 0xA890C910 EQ PUSH2 0x71D JUMPI DUP1 PUSH4 0xAB58FB8E EQ PUSH2 0x73D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x328DD982 GT PUSH2 0x219 JUMPI DUP1 PUSH4 0x43859632 GT PUSH2 0x1D2 JUMPI DUP1 PUSH4 0x43859632 EQ PUSH2 0x5C0 JUMPI DUP1 PUSH4 0x54FD4D50 EQ PUSH2 0x60A JUMPI DUP1 PUSH4 0x56781388 EQ PUSH2 0x634 JUMPI DUP1 PUSH4 0x5F398A14 EQ PUSH2 0x654 JUMPI DUP1 PUSH4 0x70B0F660 EQ PUSH2 0x674 JUMPI DUP1 PUSH4 0x7B3C71D3 EQ PUSH2 0x694 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x328DD982 EQ PUSH2 0x4E6 JUMPI DUP1 PUSH4 0x32B8113E EQ PUSH2 0x516 JUMPI DUP1 PUSH4 0x3932ABB1 EQ PUSH2 0x53E JUMPI DUP1 PUSH4 0x3BCCF4FD EQ PUSH2 0x553 JUMPI DUP1 PUSH4 0x3E4F49E6 EQ PUSH2 0x573 JUMPI DUP1 PUSH4 0x40E58EE5 EQ PUSH2 0x5A0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x150B7A02 GT PUSH2 0x26B JUMPI DUP1 PUSH4 0x150B7A02 EQ PUSH2 0x406 JUMPI DUP1 PUSH4 0x160CBED7 EQ PUSH2 0x44A JUMPI DUP1 PUSH4 0x24BC1A64 EQ PUSH2 0x46A JUMPI DUP1 PUSH4 0x2656227D EQ PUSH2 0x47F JUMPI DUP1 PUSH4 0x2D63F693 EQ PUSH2 0x492 JUMPI DUP1 PUSH4 0x2FE3E261 EQ PUSH2 0x4B2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x13CF08B EQ PUSH2 0x2DA JUMPI DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x355 JUMPI DUP1 PUSH4 0x2A251A3 EQ PUSH2 0x385 JUMPI DUP1 PUSH4 0x3420181 EQ PUSH2 0x3A4 JUMPI DUP1 PUSH4 0x6F3F9E6 EQ PUSH2 0x3C4 JUMPI DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x3E4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST CALLDATASIZE PUSH2 0x2D5 JUMPI ADDRESS PUSH2 0x2C0 PUSH2 0xAB3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x2D3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2E6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2FA PUSH2 0x2F5 CALLDATASIZE PUSH1 0x4 PUSH2 0x3E64 JUMP JUMPDEST PUSH2 0xACC JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP11 DUP12 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP10 AND PUSH1 0x20 DUP12 ADD MSTORE SWAP8 DUP10 ADD SWAP7 SWAP1 SWAP7 MSTORE PUSH1 0x60 DUP9 ADD SWAP5 SWAP1 SWAP5 MSTORE PUSH1 0x80 DUP8 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0xA0 DUP7 ADD MSTORE PUSH1 0xC0 DUP6 ADD MSTORE PUSH1 0xE0 DUP5 ADD MSTORE ISZERO ISZERO PUSH2 0x100 DUP4 ADD MSTORE ISZERO ISZERO PUSH2 0x120 DUP3 ADD MSTORE PUSH2 0x140 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x361 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x375 PUSH2 0x370 CALLDATASIZE PUSH1 0x4 PUSH2 0x3E7D JUMP JUMPDEST PUSH2 0xB77 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x34C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x391 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x5 SLOAD JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x34C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3B0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x396 PUSH2 0x3BF CALLDATASIZE PUSH1 0x4 PUSH2 0x3FBA JUMP JUMPDEST PUSH2 0xB88 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3D0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2D3 PUSH2 0x3DF CALLDATASIZE PUSH1 0x4 PUSH2 0x3E64 JUMP JUMPDEST PUSH2 0xC80 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3F0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3F9 PUSH2 0xD13 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x34C SWAP2 SWAP1 PUSH2 0x40BC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x412 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x431 PUSH2 0x421 CALLDATASIZE PUSH1 0x4 PUSH2 0x40E4 JUMP JUMPDEST PUSH4 0xA85BD01 PUSH1 0xE1 SHL SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x34C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x456 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x396 PUSH2 0x465 CALLDATASIZE PUSH1 0x4 PUSH2 0x42B5 JUMP JUMPDEST PUSH2 0xDA5 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x476 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x396 PUSH2 0xFA6 JUMP JUMPDEST PUSH2 0x396 PUSH2 0x48D CALLDATASIZE PUSH1 0x4 PUSH2 0x42B5 JUMP JUMPDEST PUSH2 0xFB6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x49E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x396 PUSH2 0x4AD CALLDATASIZE PUSH1 0x4 PUSH2 0x3E64 JUMP JUMPDEST PUSH2 0x10A3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4BE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x396 PUSH32 0xB3B3F3B703CD84CE352197DCFF232B1B5D3CFB2025CE47CF04742D0651F1AF88 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4F2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x506 PUSH2 0x501 CALLDATASIZE PUSH1 0x4 PUSH2 0x3E64 JUMP JUMPDEST PUSH2 0x10DA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x34C SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x440D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x522 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0xB SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x34C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x54A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 SLOAD PUSH2 0x396 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x55F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x396 PUSH2 0x56E CALLDATASIZE PUSH1 0x4 PUSH2 0x445A JUMP JUMPDEST PUSH2 0x136B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x57F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x593 PUSH2 0x58E CALLDATASIZE PUSH1 0x4 PUSH2 0x3E64 JUMP JUMPDEST PUSH2 0x13E1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x34C SWAP2 SWAP1 PUSH2 0x44BE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2D3 PUSH2 0x5BB CALLDATASIZE PUSH1 0x4 PUSH2 0x3E64 JUMP JUMPDEST PUSH2 0x13EC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5CC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x375 PUSH2 0x5DB CALLDATASIZE PUSH1 0x4 PUSH2 0x44E6 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP5 MSTORE PUSH1 0x8 ADD SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND SWAP3 SWAP2 POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x616 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x1 DUP2 MSTORE PUSH1 0x31 PUSH1 0xF8 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0x3F9 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x640 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x396 PUSH2 0x64F CALLDATASIZE PUSH1 0x4 PUSH2 0x4516 JUMP JUMPDEST PUSH2 0x1704 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x660 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x396 PUSH2 0x66F CALLDATASIZE PUSH1 0x4 PUSH2 0x4542 JUMP JUMPDEST PUSH2 0x172D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x680 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2D3 PUSH2 0x68F CALLDATASIZE PUSH1 0x4 PUSH2 0x3E64 JUMP JUMPDEST PUSH2 0x1777 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6A0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x396 PUSH2 0x6AF CALLDATASIZE PUSH1 0x4 PUSH2 0x45C5 JUMP JUMPDEST PUSH2 0x17FE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6C0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x396 PUSH2 0x6CF CALLDATASIZE PUSH1 0x4 PUSH2 0x461E JUMP JUMPDEST PUSH2 0x1850 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6E0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x64 PUSH2 0x396 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6F4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x396 PUSH2 0x703 CALLDATASIZE PUSH1 0x4 PUSH2 0x46BE JUMP JUMPDEST PUSH2 0x1867 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x714 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x8 SLOAD PUSH2 0x396 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x729 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2D3 PUSH2 0x738 CALLDATASIZE PUSH1 0x4 PUSH2 0x4716 JUMP JUMPDEST PUSH2 0x187E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x749 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x396 PUSH2 0x758 CALLDATASIZE PUSH1 0x4 PUSH2 0x3E64 JUMP JUMPDEST PUSH2 0x1905 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x769 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x396 PUSH2 0x199F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x77E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x431 PUSH2 0x78D CALLDATASIZE PUSH1 0x4 PUSH2 0x4733 JUMP JUMPDEST PUSH4 0xBC197C81 PUSH1 0xE0 SHL SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7AA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x396 PUSH2 0x7B9 CALLDATASIZE PUSH1 0x4 PUSH2 0x3E64 JUMP JUMPDEST PUSH2 0x19AA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7CA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2D3 PUSH2 0x7D9 CALLDATASIZE PUSH1 0x4 PUSH2 0x47C6 JUMP JUMPDEST PUSH2 0x19B5 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x396 PUSH2 0x7F9 CALLDATASIZE PUSH1 0x4 PUSH2 0x42B5 JUMP JUMPDEST PUSH2 0x1A7C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x80A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2D3 PUSH2 0x819 CALLDATASIZE PUSH1 0x4 PUSH2 0x4809 JUMP JUMPDEST PUSH2 0x1AB6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x82A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x9 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x34C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x85C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x396 PUSH2 0x86B CALLDATASIZE PUSH1 0x4 PUSH2 0x4832 JUMP JUMPDEST PUSH2 0x1B3D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x87C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x1A DUP2 MSTORE PUSH32 0x737570706F72743D627261766F2671756F72756D3D627261766F000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0x3F9 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8C2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2D3 PUSH2 0x8D1 CALLDATASIZE PUSH1 0x4 PUSH2 0x3E64 JUMP JUMPDEST PUSH2 0x1B62 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8E2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x396 PUSH32 0x150214D74D59B7D1E90C73FC22EF3D991DD0A76B046543D4D80AB92D2A50328F DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x916 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x999 PUSH2 0x925 CALLDATASIZE PUSH1 0x4 PUSH2 0x44E6 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 POP PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP4 SWAP1 SWAP4 AND DUP5 MSTORE PUSH1 0x8 SWAP1 SWAP3 ADD DUP2 MSTORE SWAP2 DUP2 SWAP1 KECCAK256 DUP2 MLOAD PUSH1 0x60 DUP2 ADD DUP4 MSTORE DUP2 SLOAD PUSH1 0xFF DUP1 DUP3 AND ISZERO ISZERO DUP4 MSTORE PUSH2 0x100 SWAP1 SWAP2 DIV AND SWAP4 DUP2 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x1 ADD SLOAD SWAP1 DUP3 ADD MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP3 MLOAD ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 DUP1 DUP5 ADD MLOAD PUSH1 0xFF AND SWAP1 DUP3 ADD MSTORE SWAP2 DUP2 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH1 0x60 ADD PUSH2 0x34C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9CC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2D3 PUSH2 0x9DB CALLDATASIZE PUSH1 0x4 PUSH2 0x3E64 JUMP JUMPDEST PUSH2 0x1DD0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9EC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x396 PUSH2 0x9FB CALLDATASIZE PUSH1 0x4 PUSH2 0x48D3 JUMP JUMPDEST PUSH2 0x1E57 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA0C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2D3 PUSH2 0xA1B CALLDATASIZE PUSH1 0x4 PUSH2 0x3E64 JUMP JUMPDEST PUSH2 0x1E78 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA2C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x431 PUSH2 0xA3B CALLDATASIZE PUSH1 0x4 PUSH2 0x48FF JUMP JUMPDEST PUSH4 0xF23A6E61 PUSH1 0xE0 SHL SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA58 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x396 PUSH2 0xA67 CALLDATASIZE PUSH1 0x4 PUSH2 0x3E64 JUMP JUMPDEST PUSH2 0x1EFF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA78 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x838 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH2 0x2D3 PUSH2 0xAAE CALLDATASIZE PUSH1 0x4 PUSH2 0x3E64 JUMP JUMPDEST PUSH2 0x1FA3 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xAC7 PUSH1 0x9 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST DUP1 PUSH1 0x0 DUP1 DUP1 DUP1 DUP1 DUP1 DUP1 DUP1 DUP1 PUSH2 0xAE0 DUP11 PUSH2 0x1905 JUMP JUMPDEST SWAP8 POP PUSH2 0xAEB DUP12 PUSH2 0x10A3 JUMP JUMPDEST SWAP7 POP PUSH2 0xAF6 DUP12 PUSH2 0x19AA JUMP JUMPDEST PUSH1 0x0 DUP13 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP3 KECCAK256 DUP1 SLOAD PUSH1 0x5 DUP3 ADD SLOAD PUSH1 0x6 DUP4 ADD SLOAD SWAP4 DUP4 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP15 POP SWAP5 SWAP11 POP SWAP4 SWAP9 POP SWAP1 SWAP7 POP SWAP2 SWAP5 POP PUSH2 0xB38 DUP14 PUSH2 0x13E1 JUMP JUMPDEST SWAP1 POP PUSH1 0x2 DUP2 PUSH1 0x7 DUP2 GT ISZERO PUSH2 0xB4E JUMPI PUSH2 0xB4E PUSH2 0x44A8 JUMP JUMPDEST EQ SWAP4 POP PUSH1 0x7 DUP2 PUSH1 0x7 DUP2 GT ISZERO PUSH2 0xB65 JUMPI PUSH2 0xB65 PUSH2 0x44A8 JUMP JUMPDEST EQ SWAP3 POP POP POP SWAP2 SWAP4 SWAP6 SWAP8 SWAP10 POP SWAP2 SWAP4 SWAP6 SWAP8 SWAP10 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB82 DUP3 PUSH2 0x2211 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xC2C PUSH2 0xC24 PUSH32 0xB3B3F3B703CD84CE352197DCFF232B1B5D3CFB2025CE47CF04742D0651F1AF88 DUP13 DUP13 DUP13 DUP13 PUSH1 0x40 MLOAD PUSH2 0xBC4 SWAP3 SWAP2 SWAP1 PUSH2 0x4967 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 DUP12 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xC09 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 SWAP5 DUP6 MSTORE PUSH1 0x20 DUP6 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0xFF SWAP2 SWAP1 SWAP2 AND PUSH1 0x40 DUP5 ADD MSTORE PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 PUSH2 0x2236 JUMP JUMPDEST DUP7 DUP7 DUP7 PUSH2 0x2284 JUMP JUMPDEST SWAP1 POP PUSH2 0xC72 DUP11 DUP3 DUP12 DUP12 DUP12 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP DUP14 SWAP3 POP PUSH2 0x22A2 SWAP2 POP POP JUMP JUMPDEST SWAP11 SWAP10 POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xC88 PUSH2 0xAB3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xCC1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xCB8 SWAP1 PUSH2 0x4977 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST ADDRESS PUSH2 0xCCA PUSH2 0xAB3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xD07 JUMPI PUSH1 0x0 DUP1 CALLDATASIZE PUSH1 0x40 MLOAD PUSH2 0xCEA SWAP3 SWAP2 SWAP1 PUSH2 0x4967 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 SWAP1 POP JUMPDEST DUP1 PUSH2 0xD00 PUSH1 0x2 PUSH2 0x22B1 JUMP JUMPDEST SUB PUSH2 0xCF5 JUMPI POP JUMPDEST PUSH2 0xD10 DUP2 PUSH2 0x2330 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 SLOAD PUSH2 0xD22 SWAP1 PUSH2 0x49AE JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xD4E SWAP1 PUSH2 0x49AE JUMP JUMPDEST DUP1 ISZERO PUSH2 0xD9B JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xD70 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xD9B 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 0xD7E JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xDB4 DUP7 DUP7 DUP7 DUP7 PUSH2 0x1A7C JUMP JUMPDEST SWAP1 POP PUSH1 0x4 PUSH2 0xDC1 DUP3 PUSH2 0x13E1 JUMP JUMPDEST PUSH1 0x7 DUP2 GT ISZERO PUSH2 0xDD2 JUMPI PUSH2 0xDD2 PUSH2 0x44A8 JUMP JUMPDEST EQ PUSH2 0xDEF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xCB8 SWAP1 PUSH2 0x49E8 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH4 0x793D0649 PUSH1 0xE1 SHL DUP2 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 PUSH4 0xF27A0C92 SWAP2 PUSH1 0x4 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xE39 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 DUP2 ADD SWAP1 PUSH2 0xE5D SWAP2 SWAP1 PUSH2 0x4A29 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x40 MLOAD PUSH4 0xB1C5F427 PUSH1 0xE0 SHL DUP2 MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xB1C5F427 SWAP1 PUSH2 0xE97 SWAP1 DUP11 SWAP1 DUP11 SWAP1 DUP11 SWAP1 PUSH1 0x0 SWAP1 DUP12 SWAP1 PUSH1 0x4 ADD PUSH2 0x4A42 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xEB4 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 DUP2 ADD SWAP1 PUSH2 0xED8 SWAP2 SWAP1 PUSH2 0x4A29 JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP3 SWAP1 SWAP3 SSTORE PUSH1 0x9 SLOAD SWAP2 MLOAD PUSH4 0x8F2A0BB PUSH1 0xE4 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 PUSH4 0x8F2A0BB0 SWAP2 PUSH2 0xF23 SWAP2 DUP12 SWAP2 DUP12 SWAP2 DUP12 SWAP2 SWAP1 DUP12 SWAP1 DUP10 SWAP1 PUSH1 0x4 ADD PUSH2 0x4A90 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xF3D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xF51 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH32 0x9A2E42FD6722813D69113E7D0079D3D940171428DF7373DF9C7F7617CFDA2892 DUP3 DUP3 TIMESTAMP PUSH2 0xF83 SWAP2 SWAP1 PUSH2 0x4AFE JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xAC7 PUSH2 0xA67 PUSH1 0x1 NUMBER PUSH2 0x4B16 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xFC5 DUP7 DUP7 DUP7 DUP7 PUSH2 0x1A7C JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xFD2 DUP3 PUSH2 0x13E1 JUMP JUMPDEST SWAP1 POP PUSH1 0x4 DUP2 PUSH1 0x7 DUP2 GT ISZERO PUSH2 0xFE8 JUMPI PUSH2 0xFE8 PUSH2 0x44A8 JUMP JUMPDEST EQ DUP1 PUSH2 0x1005 JUMPI POP PUSH1 0x5 DUP2 PUSH1 0x7 DUP2 GT ISZERO PUSH2 0x1003 JUMPI PUSH2 0x1003 PUSH2 0x44A8 JUMP JUMPDEST EQ JUMPDEST PUSH2 0x1021 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xCB8 SWAP1 PUSH2 0x49E8 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 SWAP3 DUP4 SWAP1 KECCAK256 PUSH1 0x2 ADD DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SWAP3 OR SWAP1 SWAP2 SSTORE SWAP1 MLOAD DUP4 DUP2 MSTORE PUSH32 0x712AE1383F79AC853F8D882153778E0260EF8F03B504E2866E0593E04D2B291F SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH2 0x107F DUP3 DUP9 DUP9 DUP9 DUP9 PUSH2 0x23F8 JUMP JUMPDEST PUSH2 0x108C DUP3 DUP9 DUP9 DUP9 DUP9 PUSH2 0x2499 JUMP JUMPDEST PUSH2 0x1099 DUP3 DUP9 DUP9 DUP9 DUP9 PUSH2 0x24A6 JUMP JUMPDEST POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP2 MLOAD SWAP3 DUP4 ADD SWAP1 SWAP2 MSTORE SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP1 DUP2 SWAP1 MSTORE JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x60 DUP1 PUSH1 0x60 DUP1 PUSH1 0x0 PUSH1 0x7 PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 POP DUP1 PUSH1 0x1 ADD DUP2 PUSH1 0x2 ADD DUP3 PUSH1 0x3 ADD DUP4 PUSH1 0x4 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 0x115C 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 0x113E 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 0x11AE 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 0x119A 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 0x1282 JUMPI DUP4 DUP3 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD DUP1 SLOAD PUSH2 0x11F5 SWAP1 PUSH2 0x49AE JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x1221 SWAP1 PUSH2 0x49AE JUMP JUMPDEST DUP1 ISZERO PUSH2 0x126E JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1243 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x126E 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 0x1251 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 0x11D6 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 0x1355 JUMPI DUP4 DUP3 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD DUP1 SLOAD PUSH2 0x12C8 SWAP1 PUSH2 0x49AE JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x12F4 SWAP1 PUSH2 0x49AE JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1341 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1316 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1341 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 0x1324 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 0x12A9 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 0x40 DUP1 MLOAD PUSH32 0x150214D74D59B7D1E90C73FC22EF3D991DD0A76B046543D4D80AB92D2A50328F PUSH1 0x20 DUP3 ADD MSTORE SWAP1 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0xFF DUP6 AND PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x0 SWAP1 DUP2 SWAP1 PUSH2 0x13B9 SWAP1 PUSH2 0xC24 SWAP1 PUSH1 0x80 ADD PUSH2 0xC09 JUMP JUMPDEST SWAP1 POP PUSH2 0x13D6 DUP8 DUP3 DUP9 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x24DF JUMP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB82 DUP3 PUSH2 0x2502 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ DUP1 PUSH2 0x143A JUMPI POP PUSH2 0x141E PUSH2 0x199F JUMP JUMPDEST DUP2 SLOAD PUSH2 0x1438 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x9FB PUSH1 0x1 NUMBER PUSH2 0x4B16 JUMP JUMPDEST LT JUMPDEST PUSH2 0x1496 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x476F7665726E6F72427261766F3A2070726F706F7365722061626F7665207468 PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x1C995CDA1BDB19 PUSH1 0xCA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xCB8 JUMP JUMPDEST PUSH2 0x16FF DUP2 PUSH1 0x1 ADD 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 0x14F1 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 0x14D3 JUMPI JUMPDEST POP POP POP POP POP DUP3 PUSH1 0x2 ADD 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 0x1544 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 0x1530 JUMPI JUMPDEST POP POP POP POP POP PUSH2 0x16F5 DUP5 PUSH1 0x3 ADD 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 0x161C JUMPI DUP4 DUP3 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD DUP1 SLOAD PUSH2 0x158F SWAP1 PUSH2 0x49AE JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x15BB SWAP1 PUSH2 0x49AE JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1608 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x15DD JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1608 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 0x15EB 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 0x1570 JUMP JUMPDEST POP POP POP PUSH1 0x4 DUP8 ADD DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP5 MUL DUP3 ADD DUP2 ADD SWAP1 SWAP3 MSTORE DUP3 DUP2 MSTORE SWAP4 POP PUSH1 0x0 SWAP1 DUP5 ADD JUMPDEST DUP3 DUP3 LT ISZERO PUSH2 0x16EC JUMPI DUP4 DUP3 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD DUP1 SLOAD PUSH2 0x165F SWAP1 PUSH2 0x49AE JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x168B SWAP1 PUSH2 0x49AE JUMP JUMPDEST DUP1 ISZERO PUSH2 0x16D8 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x16AD JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x16D8 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 0x16BB 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 0x1640 JUMP JUMPDEST POP POP POP POP PUSH2 0x264C JUMP JUMPDEST DUP5 PUSH1 0x9 ADD SLOAD PUSH2 0x277E JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 CALLER SWAP1 POP PUSH2 0x1725 DUP5 DUP3 DUP6 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x24DF JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 CALLER SWAP1 POP PUSH2 0x13D6 DUP8 DUP3 DUP9 DUP9 DUP9 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP DUP11 SWAP3 POP PUSH2 0x22A2 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x177F PUSH2 0xAB3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x17AF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xCB8 SWAP1 PUSH2 0x4977 JUMP JUMPDEST ADDRESS PUSH2 0x17B8 PUSH2 0xAB3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x17F5 JUMPI PUSH1 0x0 DUP1 CALLDATASIZE PUSH1 0x40 MLOAD PUSH2 0x17D8 SWAP3 SWAP2 SWAP1 PUSH2 0x4967 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 SWAP1 POP JUMPDEST DUP1 PUSH2 0x17EE PUSH1 0x2 PUSH2 0x22B1 JUMP JUMPDEST SUB PUSH2 0x17E3 JUMPI POP JUMPDEST PUSH2 0xD10 DUP2 PUSH2 0x278C JUMP JUMPDEST PUSH1 0x0 DUP1 CALLER SWAP1 POP PUSH2 0x1846 DUP7 DUP3 DUP8 DUP8 DUP8 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x24DF SWAP3 POP POP POP JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x185E DUP6 DUP6 DUP6 DUP6 PUSH2 0x27CD JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1874 DUP5 DUP5 DUP5 PUSH2 0x2835 JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x1886 PUSH2 0xAB3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x18B6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xCB8 SWAP1 PUSH2 0x4977 JUMP JUMPDEST ADDRESS PUSH2 0x18BF PUSH2 0xAB3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x18FC JUMPI PUSH1 0x0 DUP1 CALLDATASIZE PUSH1 0x40 MLOAD PUSH2 0x18DF SWAP3 SWAP2 SWAP1 PUSH2 0x4967 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 SWAP1 POP JUMPDEST DUP1 PUSH2 0x18F5 PUSH1 0x2 PUSH2 0x22B1 JUMP JUMPDEST SUB PUSH2 0x18EA JUMPI POP JUMPDEST PUSH2 0xD10 DUP2 PUSH2 0x28CB JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SLOAD SWAP1 MLOAD PUSH4 0xD45C4435 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP1 SWAP2 DUP3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xD45C4435 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1962 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 DUP2 ADD SWAP1 PUSH2 0x1986 SWAP2 SWAP1 PUSH2 0x4A29 JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x1 EQ PUSH2 0x1996 JUMPI DUP1 PUSH2 0x1877 JUMP JUMPDEST PUSH1 0x0 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xAC7 PUSH1 0x6 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB82 DUP3 PUSH2 0x2934 JUMP JUMPDEST PUSH2 0x19BD PUSH2 0xAB3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x19ED JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xCB8 SWAP1 PUSH2 0x4977 JUMP JUMPDEST ADDRESS PUSH2 0x19F6 PUSH2 0xAB3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1A33 JUMPI PUSH1 0x0 DUP1 CALLDATASIZE PUSH1 0x40 MLOAD PUSH2 0x1A16 SWAP3 SWAP2 SWAP1 PUSH2 0x4967 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 SWAP1 POP JUMPDEST DUP1 PUSH2 0x1A2C PUSH1 0x2 PUSH2 0x22B1 JUMP JUMPDEST SUB PUSH2 0x1A21 JUMPI POP JUMPDEST PUSH2 0x1A75 DUP5 DUP4 DUP4 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP DUP9 SWAP3 POP PUSH2 0x2970 SWAP2 POP POP JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x1A95 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4B2D JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 SWAP1 MSTORE DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD KECCAK256 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x1ABE PUSH2 0xAB3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1AEE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xCB8 SWAP1 PUSH2 0x4977 JUMP JUMPDEST ADDRESS PUSH2 0x1AF7 PUSH2 0xAB3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1B34 JUMPI PUSH1 0x0 DUP1 CALLDATASIZE PUSH1 0x40 MLOAD PUSH2 0x1B17 SWAP3 SWAP2 SWAP1 PUSH2 0x4967 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 SWAP1 POP JUMPDEST DUP1 PUSH2 0x1B2D PUSH1 0x2 PUSH2 0x22B1 JUMP JUMPDEST SUB PUSH2 0x1B22 JUMPI POP JUMPDEST PUSH2 0xD10 DUP2 PUSH2 0x2996 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1B4D CALLER DUP8 DUP8 DUP8 DUP8 DUP8 PUSH2 0x2A00 JUMP JUMPDEST PUSH2 0x1846 DUP7 DUP7 PUSH2 0x1B5C DUP8 DUP8 PUSH2 0x264C JUMP JUMPDEST DUP6 PUSH2 0x1850 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 PUSH1 0x1 DUP2 ADD DUP1 SLOAD DUP5 MLOAD DUP2 DUP6 MUL DUP2 ADD DUP6 ADD SWAP1 SWAP6 MSTORE DUP1 DUP6 MSTORE SWAP2 SWAP4 PUSH2 0x16FF SWAP4 SWAP1 SWAP3 SWAP1 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x1BCB 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 0x1BAD JUMPI JUMPDEST POP POP POP POP POP DUP3 PUSH1 0x2 ADD 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 0x1C1E 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 0x1C0A JUMPI JUMPDEST POP POP POP POP POP PUSH2 0x1DC6 DUP5 PUSH1 0x3 ADD 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 0x1CF6 JUMPI DUP4 DUP3 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD DUP1 SLOAD PUSH2 0x1C69 SWAP1 PUSH2 0x49AE JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x1C95 SWAP1 PUSH2 0x49AE JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1CE2 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1CB7 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1CE2 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 0x1CC5 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 0x1C4A JUMP JUMPDEST POP POP POP PUSH1 0x4 DUP8 ADD DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP5 MUL DUP3 ADD DUP2 ADD SWAP1 SWAP3 MSTORE DUP3 DUP2 MSTORE SWAP4 POP PUSH1 0x0 SWAP1 DUP5 ADD JUMPDEST DUP3 DUP3 LT ISZERO PUSH2 0x16EC JUMPI DUP4 DUP3 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD DUP1 SLOAD PUSH2 0x1D39 SWAP1 PUSH2 0x49AE JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x1D65 SWAP1 PUSH2 0x49AE JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1DB2 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1D87 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1DB2 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 0x1D95 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 0x1D1A JUMP JUMPDEST DUP5 PUSH1 0x9 ADD SLOAD PUSH2 0xDA5 JUMP JUMPDEST PUSH2 0x1DD8 PUSH2 0xAB3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1E08 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xCB8 SWAP1 PUSH2 0x4977 JUMP JUMPDEST ADDRESS PUSH2 0x1E11 PUSH2 0xAB3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1E4E JUMPI PUSH1 0x0 DUP1 CALLDATASIZE PUSH1 0x40 MLOAD PUSH2 0x1E31 SWAP3 SWAP2 SWAP1 PUSH2 0x4967 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 SWAP1 POP JUMPDEST DUP1 PUSH2 0x1E47 PUSH1 0x2 PUSH2 0x22B1 JUMP JUMPDEST SUB PUSH2 0x1E3C JUMPI POP JUMPDEST PUSH2 0xD10 DUP2 PUSH2 0x2ABD JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1877 DUP4 DUP4 PUSH2 0x1E73 PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP2 MSTORE SWAP1 JUMP JUMPDEST PUSH2 0x2835 JUMP JUMPDEST PUSH2 0x1E80 PUSH2 0xAB3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1EB0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xCB8 SWAP1 PUSH2 0x4977 JUMP JUMPDEST ADDRESS PUSH2 0x1EB9 PUSH2 0xAB3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1EF6 JUMPI PUSH1 0x0 DUP1 CALLDATASIZE PUSH1 0x40 MLOAD PUSH2 0x1ED9 SWAP3 SWAP2 SWAP1 PUSH2 0x4967 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 SWAP1 POP JUMPDEST DUP1 PUSH2 0x1EEF PUSH1 0x2 PUSH2 0x22B1 JUMP JUMPDEST SUB PUSH2 0x1EE4 JUMPI POP JUMPDEST PUSH2 0xD10 DUP2 PUSH2 0x2B5E JUMP JUMPDEST PUSH1 0x0 PUSH1 0x64 PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2394E7A3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x8E539E8C SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1F6B 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 DUP2 ADD SWAP1 PUSH2 0x1F8F SWAP2 SWAP1 PUSH2 0x4A29 JUMP JUMPDEST PUSH2 0x1F99 SWAP2 SWAP1 PUSH2 0x4B78 JUMP JUMPDEST PUSH2 0xB82 SWAP2 SWAP1 PUSH2 0x4B97 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 PUSH1 0x1 DUP2 ADD DUP1 SLOAD DUP5 MLOAD DUP2 DUP6 MUL DUP2 ADD DUP6 ADD SWAP1 SWAP6 MSTORE DUP1 DUP6 MSTORE SWAP2 SWAP4 PUSH2 0x16FF SWAP4 SWAP1 SWAP3 SWAP1 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0x200C 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 0x1FEE JUMPI JUMPDEST POP POP POP POP POP DUP3 PUSH1 0x2 ADD 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 0x205F 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 0x204B JUMPI JUMPDEST POP POP POP POP POP PUSH2 0x2207 DUP5 PUSH1 0x3 ADD 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 0x2137 JUMPI DUP4 DUP3 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD DUP1 SLOAD PUSH2 0x20AA SWAP1 PUSH2 0x49AE JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x20D6 SWAP1 PUSH2 0x49AE JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2123 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x20F8 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x2123 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 0x2106 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 0x208B JUMP JUMPDEST POP POP POP PUSH1 0x4 DUP8 ADD DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP5 MUL DUP3 ADD DUP2 ADD SWAP1 SWAP3 MSTORE DUP3 DUP2 MSTORE SWAP4 POP PUSH1 0x0 SWAP1 DUP5 ADD JUMPDEST DUP3 DUP3 LT ISZERO PUSH2 0x16EC JUMPI DUP4 DUP3 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD DUP1 SLOAD PUSH2 0x217A SWAP1 PUSH2 0x49AE JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x21A6 SWAP1 PUSH2 0x49AE JUMP JUMPDEST DUP1 ISZERO PUSH2 0x21F3 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x21C8 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x21F3 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 0x21D6 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 0x215B JUMP JUMPDEST DUP5 PUSH1 0x9 ADD SLOAD PUSH2 0xFB6 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x6E665CED PUSH1 0xE0 SHL EQ DUP1 PUSH2 0xB82 JUMPI POP PUSH2 0xB82 DUP3 PUSH2 0x2B9F JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB82 PUSH2 0x2243 PUSH2 0x2C0A JUMP JUMPDEST DUP4 PUSH1 0x40 MLOAD PUSH2 0x1901 PUSH1 0xF0 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x22 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x42 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH1 0x62 ADD PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x2295 DUP8 DUP8 DUP8 DUP8 PUSH2 0x2D31 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x1099 DUP2 PUSH2 0x2E1E JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1846 DUP7 DUP7 DUP7 DUP7 DUP7 PUSH2 0x2FD4 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x22CC DUP3 SLOAD PUSH1 0xF DUP2 DUP2 SIGNEXTEND PUSH1 0x1 PUSH1 0x80 SHL SWAP1 SWAP3 DIV SWAP1 SIGNEXTEND SGT ISZERO SWAP1 JUMP JUMPDEST ISZERO PUSH2 0x22EA JUMPI PUSH1 0x40 MLOAD PUSH4 0x1ED95095 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP DUP1 SLOAD PUSH1 0xF SIGNEXTEND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP1 DUP5 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP3 KECCAK256 DUP1 SLOAD SWAP3 SWAP1 SSTORE DUP4 SLOAD PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP3 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND SWAP2 SWAP1 SWAP2 OR SWAP1 SWAP2 SSTORE SWAP1 JUMP JUMPDEST PUSH1 0x64 DUP2 GT ISZERO PUSH2 0x23B3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x43 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x476F7665726E6F72566F74657351756F72756D4672616374696F6E3A2071756F PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x72756D4E756D657261746F72206F7665722071756F72756D44656E6F6D696E61 PUSH1 0x64 DUP3 ADD MSTORE PUSH3 0x3A37B9 PUSH1 0xE9 SHL PUSH1 0x84 DUP3 ADD MSTORE PUSH1 0xA4 ADD PUSH2 0xCB8 JUMP JUMPDEST PUSH1 0x8 DUP1 SLOAD SWAP1 DUP3 SWAP1 SSTORE PUSH1 0x40 DUP1 MLOAD DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 SWAP1 MSTORE PUSH32 0x553476BF02EF2726E8CE5CED78D63E26E602E4A2257B1F559418E24B4633997 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST ADDRESS PUSH2 0x2401 PUSH2 0xAB3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1A75 JUMPI PUSH1 0x0 JUMPDEST DUP5 MLOAD DUP2 LT ISZERO PUSH2 0x2491 JUMPI ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x2437 JUMPI PUSH2 0x2437 PUSH2 0x4BB9 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SUB PUSH2 0x2481 JUMPI PUSH2 0x2481 DUP4 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x2462 JUMPI PUSH2 0x2462 PUSH2 0x4BB9 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 PUSH1 0x2 PUSH2 0x30BF SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x248A DUP2 PUSH2 0x4BCF JUMP JUMPDEST SWAP1 POP PUSH2 0x2412 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x1A75 DUP6 DUP6 DUP6 DUP6 DUP6 PUSH2 0x30FB JUMP JUMPDEST ADDRESS PUSH2 0x24AF PUSH2 0xAB3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1A75 JUMPI PUSH1 0x2 SLOAD PUSH1 0xF DUP2 DUP2 SIGNEXTEND PUSH1 0x1 PUSH1 0x80 SHL SWAP1 SWAP3 DIV SWAP1 SIGNEXTEND SGT ISZERO PUSH2 0x1A75 JUMPI PUSH1 0x0 PUSH1 0x2 SSTORE PUSH2 0x1A75 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x185E DUP6 DUP6 DUP6 DUP6 PUSH2 0x24FD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP2 MSTORE SWAP1 JUMP JUMPDEST PUSH2 0x22A2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x250E DUP4 PUSH2 0x316F JUMP JUMPDEST SWAP1 POP PUSH1 0x4 DUP2 PUSH1 0x7 DUP2 GT ISZERO PUSH2 0x2524 JUMPI PUSH2 0x2524 PUSH2 0x44A8 JUMP JUMPDEST EQ PUSH2 0x252F JUMPI SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP1 PUSH2 0x254A JUMPI POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2AB0F529 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x2AB0F529 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2593 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 DUP2 ADD SWAP1 PUSH2 0x25B7 SWAP2 SWAP1 PUSH2 0x4BE8 JUMP JUMPDEST ISZERO PUSH2 0x25C6 JUMPI POP PUSH1 0x7 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2C258A9F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x584B153E SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x260F 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 DUP2 ADD SWAP1 PUSH2 0x2633 SWAP2 SWAP1 PUSH2 0x4BE8 JUMP JUMPDEST ISZERO PUSH2 0x2642 JUMPI POP PUSH1 0x5 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST POP PUSH1 0x2 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP3 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2669 JUMPI PUSH2 0x2669 PUSH2 0x3F05 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x269C JUMPI DUP2 PUSH1 0x20 ADD JUMPDEST PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 SWAP1 SUB SWAP1 DUP2 PUSH2 0x2687 JUMPI SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 JUMPDEST DUP5 MLOAD DUP2 LT ISZERO PUSH2 0x2776 JUMPI DUP5 DUP2 DUP2 MLOAD DUP2 LT PUSH2 0x26BD JUMPI PUSH2 0x26BD PUSH2 0x4BB9 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD MLOAD PUSH1 0x0 EQ PUSH2 0x272D JUMPI DUP5 DUP2 DUP2 MLOAD DUP2 LT PUSH2 0x26DF JUMPI PUSH2 0x26DF PUSH2 0x4BB9 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 DUP5 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x2700 JUMPI PUSH2 0x2700 PUSH2 0x4BB9 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x2719 SWAP3 SWAP2 SWAP1 PUSH2 0x4C0A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH2 0x2748 JUMP JUMPDEST DUP4 DUP2 DUP2 MLOAD DUP2 LT PUSH2 0x273F JUMPI PUSH2 0x273F PUSH2 0x4BB9 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD JUMPDEST DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x275A JUMPI PUSH2 0x275A PUSH2 0x4BB9 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 SWAP1 MSTORE POP DUP1 PUSH2 0x276F SWAP1 PUSH2 0x4BCF JUMP JUMPDEST SWAP1 POP PUSH2 0x26A2 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x185E DUP6 DUP6 DUP6 DUP6 PUSH2 0x3281 JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP4 SWAP1 MSTORE PUSH32 0xC565B045403DC03C2EEA82B81A0465EDAD9E2E7FC4D97E11421C209DA93D7A93 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x4 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2829 CALLER DUP7 DUP7 DUP7 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x27EE JUMPI PUSH2 0x27EE PUSH2 0x3F05 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x2821 JUMPI DUP2 PUSH1 0x20 ADD JUMPDEST PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 SWAP1 SUB SWAP1 DUP2 PUSH2 0x280C JUMPI SWAP1 POP JUMPDEST POP DUP8 DUP8 PUSH2 0x2A00 JUMP JUMPDEST PUSH2 0x185E DUP6 DUP6 DUP6 DUP6 PUSH2 0x3333 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x748D635 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0x24 DUP3 ADD DUP5 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH32 0x0 SWAP1 SWAP2 AND SWAP1 PUSH4 0x3A46B1A8 SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x28A7 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 DUP2 ADD SWAP1 PUSH2 0x1874 SWAP2 SWAP1 PUSH2 0x4A29 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 AND DUP2 MSTORE SWAP2 DUP4 AND PUSH1 0x20 DUP4 ADD MSTORE PUSH32 0x8F74EA46EF7894F65EABFB5E6E695DE773A000B47C529AB559178069B226401 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x9 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB82 PUSH2 0x2942 DUP4 PUSH2 0x35D7 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD SWAP2 DUP3 ADD SWAP1 SWAP3 MSTORE SWAP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP1 DUP2 SWAP1 MSTORE PUSH2 0x3606 JUMP JUMPDEST PUSH1 0x60 PUSH2 0x1874 DUP5 DUP5 DUP5 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x29 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x4DD5 PUSH1 0x29 SWAP2 CODECOPY PUSH2 0x361D JUMP JUMPDEST PUSH1 0xB SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP3 DUP4 AND DUP2 MSTORE SWAP2 DUP4 AND PUSH1 0x20 DUP4 ADD MSTORE PUSH32 0x7CA4AC117ED3CDCE75C1161D8207C440389B1A15D69D096831664657C07DAFC2 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0xB DUP1 SLOAD PUSH8 0xFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST DUP1 MLOAD PUSH1 0x20 DUP3 ADD KECCAK256 PUSH1 0x0 PUSH2 0x2A1E DUP8 DUP8 PUSH2 0x2A18 DUP9 DUP9 PUSH2 0x264C JUMP JUMPDEST DUP6 PUSH2 0x1A7C JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x9 DUP2 ADD SLOAD SWAP2 SWAP3 POP SWAP1 PUSH2 0x2AB2 JUMPI DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP11 AND OR DUP2 SSTORE DUP8 MLOAD PUSH2 0x2A67 SWAP1 PUSH1 0x1 DUP4 ADD SWAP1 PUSH1 0x20 DUP12 ADD SWAP1 PUSH2 0x3C1A JUMP JUMPDEST POP DUP7 MLOAD PUSH2 0x2A7D SWAP1 PUSH1 0x2 DUP4 ADD SWAP1 PUSH1 0x20 DUP11 ADD SWAP1 PUSH2 0x3C7B JUMP JUMPDEST POP DUP6 MLOAD PUSH2 0x2A93 SWAP1 PUSH1 0x3 DUP4 ADD SWAP1 PUSH1 0x20 DUP10 ADD SWAP1 PUSH2 0x3CB6 JUMP JUMPDEST POP DUP5 MLOAD PUSH2 0x2AA9 SWAP1 PUSH1 0x4 DUP4 ADD SWAP1 PUSH1 0x20 DUP9 ADD SWAP1 PUSH2 0x3D0F JUMP JUMPDEST POP PUSH1 0x9 DUP2 ADD DUP4 SWAP1 SSTORE JUMPDEST POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 GT PUSH2 0x2B1D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x476F7665726E6F7253657474696E67733A20766F74696E6720706572696F6420 PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x746F6F206C6F77 PUSH1 0xC8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xCB8 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP4 SWAP1 MSTORE PUSH32 0x7E3F7F0708A84DE9203036ABAA450DCCC85AD5FF52F78C170F3EDB55CF5E8828 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x5 SSTORE JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP4 SWAP1 MSTORE PUSH32 0xCCB45DA8D5717E6C4544694297C4BA5CF151D455C9BB0ED4FC7A38411BC05461 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x6 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0xBF26D897 PUSH1 0xE0 SHL EQ DUP1 PUSH2 0x2BD0 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x79DD796F PUSH1 0xE0 SHL EQ JUMPDEST DUP1 PUSH2 0x2BEB JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x2711897 PUSH1 0xE5 SHL EQ JUMPDEST DUP1 PUSH2 0xB82 JUMPI POP PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP4 AND EQ PUSH2 0xB82 JUMP JUMPDEST PUSH1 0x0 ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND EQ DUP1 ISZERO PUSH2 0x2C63 JUMPI POP PUSH32 0x0 CHAINID EQ JUMPDEST ISZERO PUSH2 0x2C8D JUMPI POP PUSH32 0x0 SWAP1 JUMP JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH32 0x0 PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0x0 DUP3 DUP5 ADD MSTORE PUSH32 0x0 PUSH1 0x60 DUP4 ADD MSTORE CHAINID PUSH1 0x80 DUP4 ADD MSTORE ADDRESS PUSH1 0xA0 DUP1 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0xC0 SWAP1 SWAP3 ADD SWAP1 SWAP3 MSTORE DUP1 MLOAD SWAP2 ADD KECCAK256 SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH32 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D576E7357A4501DDFE92F46681B20A0 DUP4 GT ISZERO PUSH2 0x2D68 JUMPI POP PUSH1 0x0 SWAP1 POP PUSH1 0x3 PUSH2 0x2E15 JUMP JUMPDEST DUP5 PUSH1 0xFF AND PUSH1 0x1B EQ ISZERO DUP1 ISZERO PUSH2 0x2D80 JUMPI POP DUP5 PUSH1 0xFF AND PUSH1 0x1C EQ ISZERO JUMPDEST ISZERO PUSH2 0x2D91 JUMPI POP PUSH1 0x0 SWAP1 POP PUSH1 0x4 PUSH2 0x2E15 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP1 DUP5 MSTORE DUP10 SWAP1 MSTORE PUSH1 0xFF DUP9 AND SWAP3 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x60 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x1 SWAP1 PUSH1 0xA0 ADD PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2DE5 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 0x2E0E JUMPI PUSH1 0x0 PUSH1 0x1 SWAP3 POP SWAP3 POP POP PUSH2 0x2E15 JUMP JUMPDEST SWAP2 POP PUSH1 0x0 SWAP1 POP JUMPDEST SWAP5 POP SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0x2E32 JUMPI PUSH2 0x2E32 PUSH2 0x44A8 JUMP JUMPDEST SUB PUSH2 0x2E3A JUMPI POP JUMP JUMPDEST PUSH1 0x1 DUP2 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0x2E4E JUMPI PUSH2 0x2E4E PUSH2 0x44A8 JUMP JUMPDEST SUB PUSH2 0x2E9B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45434453413A20696E76616C6964207369676E61747572650000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xCB8 JUMP JUMPDEST PUSH1 0x2 DUP2 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0x2EAF JUMPI PUSH2 0x2EAF PUSH2 0x44A8 JUMP JUMPDEST SUB PUSH2 0x2EFC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45434453413A20696E76616C6964207369676E6174757265206C656E67746800 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xCB8 JUMP JUMPDEST PUSH1 0x3 DUP2 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0x2F10 JUMPI PUSH2 0x2F10 PUSH2 0x44A8 JUMP JUMPDEST SUB PUSH2 0x2F68 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45434453413A20696E76616C6964207369676E6174757265202773272076616C PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x7565 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xCB8 JUMP JUMPDEST PUSH1 0x4 DUP2 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0x2F7C JUMPI PUSH2 0x2F7C PUSH2 0x44A8 JUMP JUMPDEST SUB PUSH2 0xD10 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45434453413A20696E76616C6964207369676E6174757265202776272076616C PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x7565 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xCB8 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2FE4 DUP8 DUP8 DUP8 DUP8 DUP8 PUSH2 0x3743 JUMP JUMPDEST PUSH1 0x0 DUP9 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD SWAP2 DUP3 ADD SWAP1 SWAP3 MSTORE DUP2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP1 DUP2 SWAP1 MSTORE SWAP2 SWAP3 POP SWAP1 ISZERO DUP1 ISZERO PUSH2 0x3022 JUMPI POP PUSH2 0x3022 DUP9 PUSH2 0x38A8 JUMP JUMPDEST ISZERO PUSH2 0x30B4 JUMPI PUSH1 0x0 PUSH2 0x303B PUSH1 0xB SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH2 0x3044 NUMBER PUSH2 0x38D0 JUMP JUMPDEST PUSH2 0x304E SWAP2 SWAP1 PUSH2 0x4C3B JUMP JUMPDEST SWAP1 POP PUSH2 0x3059 DUP10 PUSH2 0x19AA JUMP JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND GT ISZERO PUSH2 0x30A8 JUMPI PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 AND DUP2 MSTORE DUP10 SWAP1 PUSH32 0x541F725FB9F7C98A30CC9C0FF32FBB14358CD7159C847A3AA20A2BDC442BA511 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 JUMPDEST PUSH2 0x30B2 DUP3 DUP3 PUSH2 0x393C JUMP JUMPDEST POP JUMPDEST POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST DUP2 SLOAD PUSH1 0x1 PUSH1 0x80 SHL SWAP1 DUP2 SWAP1 DIV PUSH1 0xF SIGNEXTEND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP1 DUP7 ADD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE DUP4 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB SWAP1 DUP2 AND SWAP4 SWAP1 SWAP2 ADD AND MUL OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x40 MLOAD PUSH4 0xE38335E5 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xE38335E5 SWAP1 CALLVALUE SWAP1 PUSH2 0x3136 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH1 0x0 SWAP1 DUP10 SWAP1 PUSH1 0x4 ADD PUSH2 0x4A42 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x314F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3163 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH1 0x2 DUP2 ADD SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x3193 JUMPI POP PUSH1 0x7 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x2 DUP2 ADD SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x31AE JUMPI POP PUSH1 0x2 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x31B9 DUP5 PUSH2 0x10A3 JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x0 SUB PUSH2 0x320B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x476F7665726E6F723A20756E6B6E6F776E2070726F706F73616C206964000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xCB8 JUMP JUMPDEST NUMBER DUP2 LT PUSH2 0x321C JUMPI POP PUSH1 0x0 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3227 DUP6 PUSH2 0x19AA JUMP JUMPDEST SWAP1 POP NUMBER DUP2 LT PUSH2 0x323B JUMPI POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0x3244 DUP6 PUSH2 0x38A8 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x3266 JUMPI POP PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x6 DUP2 ADD SLOAD PUSH1 0x5 SWAP1 SWAP2 ADD SLOAD GT JUMPDEST ISZERO PUSH2 0x3276 JUMPI POP PUSH1 0x4 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST POP PUSH1 0x3 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x3290 DUP7 DUP7 DUP7 DUP7 PUSH2 0x395A JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 SWAP2 POP ISZERO PUSH2 0x185E JUMPI PUSH1 0x9 SLOAD PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 SLOAD SWAP1 MLOAD PUSH4 0xC4D252F5 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 PUSH4 0xC4D252F5 SWAP2 PUSH2 0x32E9 SWAP2 PUSH1 0x4 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3303 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3317 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SSTORE POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x333D PUSH2 0x199F JUMP JUMPDEST PUSH2 0x334C CALLER PUSH2 0x9FB PUSH1 0x1 NUMBER PUSH2 0x4B16 JUMP JUMPDEST LT ISZERO PUSH2 0x33B4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x31 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x476F7665726E6F723A2070726F706F73657220766F7465732062656C6F772070 PUSH1 0x44 DUP3 ADD MSTORE PUSH17 0x1C9BDC1BDCD85B081D1A1C995CDA1BDB19 PUSH1 0x7A SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xCB8 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x33C9 DUP7 DUP7 DUP7 DUP7 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 PUSH2 0x1A7C JUMP JUMPDEST SWAP1 POP DUP5 MLOAD DUP7 MLOAD EQ PUSH2 0x33EC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xCB8 SWAP1 PUSH2 0x4C66 JUMP JUMPDEST DUP4 MLOAD DUP7 MLOAD EQ PUSH2 0x340D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xCB8 SWAP1 PUSH2 0x4C66 JUMP JUMPDEST PUSH1 0x0 DUP7 MLOAD GT PUSH2 0x345E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x476F7665726E6F723A20656D7074792070726F706F73616C0000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xCB8 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD SWAP2 DUP3 ADD SWAP1 SWAP3 MSTORE DUP2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP1 DUP2 SWAP1 MSTORE ISZERO PUSH2 0x34DE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x476F7665726E6F723A2070726F706F73616C20616C7265616479206578697374 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x73 PUSH1 0xF8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xCB8 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x34F1 PUSH2 0x34EC PUSH1 0x4 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x38D0 JUMP JUMPDEST PUSH2 0x34FA NUMBER PUSH2 0x38D0 JUMP JUMPDEST PUSH2 0x3504 SWAP2 SWAP1 PUSH2 0x4C3B JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x3514 PUSH2 0x34EC PUSH1 0x5 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x351E SWAP1 DUP4 PUSH2 0x4C3B JUMP JUMPDEST SWAP1 POP PUSH2 0x352A DUP4 DUP4 PUSH2 0x393C JUMP JUMPDEST PUSH2 0x3537 PUSH1 0x1 DUP5 ADD DUP3 PUSH2 0x393C JUMP JUMPDEST PUSH32 0x7D84A6263AE0D98D3329BD7B46BB4E8D6F98CD35A7ADB45C274C8B7FD5EBD5E0 DUP5 CALLER DUP12 DUP12 DUP14 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x3575 JUMPI PUSH2 0x3575 PUSH2 0x3F05 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x35A8 JUMPI DUP2 PUSH1 0x20 ADD JUMPDEST PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 SWAP1 SUB SWAP1 DUP2 PUSH2 0x3593 JUMPI SWAP1 POP JUMPDEST POP DUP13 DUP9 DUP9 DUP15 PUSH1 0x40 MLOAD PUSH2 0x35C2 SWAP10 SWAP9 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4CA7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP SWAP2 SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 DUP2 MLOAD SWAP3 DUP4 ADD SWAP1 SWAP2 MSTORE SWAP1 SWAP2 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP1 DUP2 SWAP1 MSTORE PUSH2 0x10CB JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT ISZERO PUSH2 0x3616 JUMPI DUP2 PUSH2 0x1877 JUMP JUMPDEST POP SWAP1 SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 DUP3 SELFBALANCE LT ISZERO PUSH2 0x367E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416464726573733A20696E73756666696369656E742062616C616E636520666F PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x1C8818D85B1B PUSH1 0xD2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xCB8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND EXTCODESIZE PUSH2 0x36D5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416464726573733A2063616C6C20746F206E6F6E2D636F6E7472616374000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xCB8 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 DUP8 PUSH1 0x40 MLOAD PUSH2 0x36F1 SWAP2 SWAP1 PUSH2 0x4D4A JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x372E 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 0x3733 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH2 0x13D6 DUP3 DUP3 DUP7 PUSH2 0x3A66 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP3 KECCAK256 SWAP1 PUSH2 0x375D DUP9 PUSH2 0x13E1 JUMP JUMPDEST PUSH1 0x7 DUP2 GT ISZERO PUSH2 0x376E JUMPI PUSH2 0x376E PUSH2 0x44A8 JUMP JUMPDEST EQ PUSH2 0x37C7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x476F7665726E6F723A20766F7465206E6F742063757272656E746C7920616374 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x697665 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xCB8 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE DUP2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP1 DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0x37F0 SWAP1 DUP9 SWAP1 DUP7 PUSH2 0x2835 JUMP JUMPDEST SWAP1 POP PUSH2 0x37FF DUP9 DUP9 DUP9 DUP5 DUP9 PUSH2 0x3A9F JUMP JUMPDEST DUP4 MLOAD PUSH1 0x0 SUB PUSH2 0x3854 JUMPI DUP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xB8E138887D0AA13BAB447E82DE9D5C1777041ECD21CA36BA824FF1E6C07DDDA4 DUP10 DUP9 DUP5 DUP10 PUSH1 0x40 MLOAD PUSH2 0x3847 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4D66 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH2 0x13D6 JUMP JUMPDEST DUP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xE2BABFBAC5889A709B63BB7F598B324E08BC5A4FB9EC647FB3CBC9EC07EB8712 DUP10 DUP9 DUP5 DUP10 DUP10 PUSH1 0x40 MLOAD PUSH2 0x3895 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4D8E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH1 0x5 DUP2 ADD SLOAD PUSH2 0x38C7 PUSH2 0xA67 DUP6 PUSH2 0x10A3 JUMP JUMPDEST GT ISZERO SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH2 0x3938 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x53616665436173743A2076616C756520646F65736E27742066697420696E2036 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x342062697473 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xCB8 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST DUP2 SLOAD PUSH8 0xFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP2 SWAP1 SWAP2 AND OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x3969 DUP7 DUP7 DUP7 DUP7 PUSH2 0x1A7C JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x3976 DUP3 PUSH2 0x13E1 JUMP JUMPDEST SWAP1 POP PUSH1 0x2 DUP2 PUSH1 0x7 DUP2 GT ISZERO PUSH2 0x398C JUMPI PUSH2 0x398C PUSH2 0x44A8 JUMP JUMPDEST EQ ISZERO DUP1 ISZERO PUSH2 0x39AC JUMPI POP PUSH1 0x6 DUP2 PUSH1 0x7 DUP2 GT ISZERO PUSH2 0x39A9 JUMPI PUSH2 0x39A9 PUSH2 0x44A8 JUMP JUMPDEST EQ ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x39CA JUMPI POP PUSH1 0x7 DUP2 PUSH1 0x7 DUP2 GT ISZERO PUSH2 0x39C7 JUMPI PUSH2 0x39C7 PUSH2 0x44A8 JUMP JUMPDEST EQ ISZERO JUMPDEST PUSH2 0x3A16 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x476F7665726E6F723A2070726F706F73616C206E6F7420616374697665000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xCB8 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 PUSH1 0x2 ADD DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE MLOAD PUSH32 0x789CF55BE980739DAD1D0699B93B58E806B51C9D96619BFA8FE0A28ABAA7B30C SWAP1 PUSH2 0xF94 SWAP1 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x60 DUP4 ISZERO PUSH2 0x3A75 JUMPI POP DUP2 PUSH2 0x1877 JUMP JUMPDEST DUP3 MLOAD ISZERO PUSH2 0x3A85 JUMPI DUP3 MLOAD DUP1 DUP5 PUSH1 0x20 ADD REVERT JUMPDEST DUP2 PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xCB8 SWAP2 SWAP1 PUSH2 0x40BC JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND DUP5 MSTORE PUSH1 0x8 DUP2 ADD SWAP1 SWAP3 MSTORE SWAP1 SWAP2 KECCAK256 DUP1 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x3B2E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x476F7665726E6F72436F6D7061746962696C697479427261766F3A20766F7465 PUSH1 0x44 DUP3 ADD MSTORE PUSH13 0x8185B1C9958591E4818D85CDD PUSH1 0x9A SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xCB8 JUMP JUMPDEST DUP1 SLOAD PUSH1 0xFF DUP7 AND PUSH2 0x100 DUP2 MUL PUSH2 0xFFFF NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR PUSH1 0x1 SWAP1 DUP2 OR DUP4 SSTORE DUP3 ADD DUP6 SWAP1 SSTORE PUSH2 0x3B73 JUMPI DUP4 DUP3 PUSH1 0x6 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x3B68 SWAP2 SWAP1 PUSH2 0x4AFE JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP PUSH2 0x3C11 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 NOT PUSH1 0xFF DUP7 AND ADD PUSH2 0x3B93 JUMPI DUP4 DUP3 PUSH1 0x5 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x3B68 SWAP2 SWAP1 PUSH2 0x4AFE JUMP JUMPDEST PUSH1 0x1 NOT PUSH1 0xFF DUP7 AND ADD PUSH2 0x3BB3 JUMPI DUP4 DUP3 PUSH1 0x7 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x3B68 SWAP2 SWAP1 PUSH2 0x4AFE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x476F7665726E6F72436F6D7061746962696C697479427261766F3A20696E7661 PUSH1 0x44 DUP3 ADD MSTORE PUSH13 0x6C696420766F74652074797065 PUSH1 0x98 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xCB8 JUMP JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST DUP3 DUP1 SLOAD DUP3 DUP3 SSTORE SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP3 DUP3 ISZERO PUSH2 0x3C6F JUMPI SWAP2 PUSH1 0x20 MUL DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x3C6F 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 0x3C3A JUMP JUMPDEST POP PUSH2 0x3938 SWAP3 SWAP2 POP PUSH2 0x3D68 JUMP JUMPDEST DUP3 DUP1 SLOAD DUP3 DUP3 SSTORE SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP3 DUP3 ISZERO PUSH2 0x3C6F JUMPI SWAP2 PUSH1 0x20 MUL DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x3C6F JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x3C9B JUMP JUMPDEST DUP3 DUP1 SLOAD DUP3 DUP3 SSTORE SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP3 DUP3 ISZERO PUSH2 0x3D03 JUMPI SWAP2 PUSH1 0x20 MUL DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x3D03 JUMPI DUP3 MLOAD DUP1 MLOAD PUSH2 0x3CF3 SWAP2 DUP5 SWAP2 PUSH1 0x20 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x3D7D JUMP JUMPDEST POP SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x3CD6 JUMP JUMPDEST POP PUSH2 0x3938 SWAP3 SWAP2 POP PUSH2 0x3DF0 JUMP JUMPDEST DUP3 DUP1 SLOAD DUP3 DUP3 SSTORE SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP3 DUP3 ISZERO PUSH2 0x3D5C JUMPI SWAP2 PUSH1 0x20 MUL DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x3D5C JUMPI DUP3 MLOAD DUP1 MLOAD PUSH2 0x3D4C SWAP2 DUP5 SWAP2 PUSH1 0x20 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x3D7D JUMP JUMPDEST POP SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x3D2F JUMP JUMPDEST POP PUSH2 0x3938 SWAP3 SWAP2 POP PUSH2 0x3E0D JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x3938 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x3D69 JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH2 0x3D89 SWAP1 PUSH2 0x49AE JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH2 0x3DAB JUMPI PUSH1 0x0 DUP6 SSTORE PUSH2 0x3C6F JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH2 0x3DC4 JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH2 0x3C6F JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x3C6F JUMPI SWAP2 DUP3 ADD DUP3 DUP2 GT ISZERO PUSH2 0x3C6F JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x3C9B JUMP JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x3938 JUMPI PUSH1 0x0 PUSH2 0x3E04 DUP3 DUP3 PUSH2 0x3E2A JUMP JUMPDEST POP PUSH1 0x1 ADD PUSH2 0x3DF0 JUMP JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x3938 JUMPI PUSH1 0x0 PUSH2 0x3E21 DUP3 DUP3 PUSH2 0x3E2A JUMP JUMPDEST POP PUSH1 0x1 ADD PUSH2 0x3E0D JUMP JUMPDEST POP DUP1 SLOAD PUSH2 0x3E36 SWAP1 PUSH2 0x49AE JUMP JUMPDEST PUSH1 0x0 DUP3 SSTORE DUP1 PUSH1 0x1F LT PUSH2 0x3E46 JUMPI POP POP JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP1 PUSH2 0xD10 SWAP2 SWAP1 PUSH2 0x3D68 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3E76 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3E8F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP2 EQ PUSH2 0x1877 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH1 0xFF DUP2 AND DUP2 EQ PUSH2 0x3EB8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x3ECF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x3EE6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x3EFE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x3F43 JUMPI PUSH2 0x3F43 PUSH2 0x3F05 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x3F5C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x3F75 JUMPI PUSH2 0x3F75 PUSH2 0x3F05 JUMP JUMPDEST PUSH2 0x3F88 PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD PUSH2 0x3F1B JUMP JUMPDEST DUP2 DUP2 MSTORE DUP5 PUSH1 0x20 DUP4 DUP7 ADD ADD GT ISZERO PUSH2 0x3F9D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 PUSH1 0x20 DUP6 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 SWAP2 DUP2 ADD PUSH1 0x20 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xE0 DUP10 DUP12 SUB SLT ISZERO PUSH2 0x3FD6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP9 CALLDATALOAD SWAP8 POP PUSH2 0x3FE6 PUSH1 0x20 DUP11 ADD PUSH2 0x3EA7 JUMP JUMPDEST SWAP7 POP PUSH1 0x40 DUP10 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x4002 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x400E DUP13 DUP4 DUP14 ADD PUSH2 0x3EBD JUMP JUMPDEST SWAP1 SWAP9 POP SWAP7 POP PUSH1 0x60 DUP12 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x4027 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4034 DUP12 DUP3 DUP13 ADD PUSH2 0x3F4B JUMP JUMPDEST SWAP5 POP POP PUSH2 0x4043 PUSH1 0x80 DUP11 ADD PUSH2 0x3EA7 JUMP JUMPDEST SWAP3 POP PUSH1 0xA0 DUP10 ADD CALLDATALOAD SWAP2 POP PUSH1 0xC0 DUP10 ADD CALLDATALOAD SWAP1 POP SWAP3 SWAP6 SWAP9 POP SWAP3 SWAP6 SWAP9 SWAP1 SWAP4 SWAP7 POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x407B JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x4063 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x408A JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x40A8 DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x4060 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0x1877 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x4090 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xD10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x40FA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH2 0x4105 DUP2 PUSH2 0x40CF JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH2 0x4115 DUP2 PUSH2 0x40CF JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD SWAP2 POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x4137 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4143 DUP8 DUP3 DUP9 ADD PUSH2 0x3F4B JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH2 0x4168 JUMPI PUSH2 0x4168 PUSH2 0x3F05 JUMP JUMPDEST POP PUSH1 0x5 SHL PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x4183 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x20 PUSH2 0x4198 PUSH2 0x4193 DUP4 PUSH2 0x414F JUMP JUMPDEST PUSH2 0x3F1B JUMP JUMPDEST DUP3 DUP2 MSTORE PUSH1 0x5 SWAP3 SWAP1 SWAP3 SHL DUP5 ADD DUP2 ADD SWAP2 DUP2 DUP2 ADD SWAP1 DUP7 DUP5 GT ISZERO PUSH2 0x41B7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 DUP7 ADD JUMPDEST DUP5 DUP2 LT ISZERO PUSH2 0x30B4 JUMPI DUP1 CALLDATALOAD PUSH2 0x41CE DUP2 PUSH2 0x40CF JUMP JUMPDEST DUP4 MSTORE SWAP2 DUP4 ADD SWAP2 DUP4 ADD PUSH2 0x41BB JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x41EC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x20 PUSH2 0x41FC PUSH2 0x4193 DUP4 PUSH2 0x414F JUMP JUMPDEST DUP3 DUP2 MSTORE PUSH1 0x5 SWAP3 SWAP1 SWAP3 SHL DUP5 ADD DUP2 ADD SWAP2 DUP2 DUP2 ADD SWAP1 DUP7 DUP5 GT ISZERO PUSH2 0x421B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 DUP7 ADD JUMPDEST DUP5 DUP2 LT ISZERO PUSH2 0x30B4 JUMPI DUP1 CALLDATALOAD DUP4 MSTORE SWAP2 DUP4 ADD SWAP2 DUP4 ADD PUSH2 0x421F JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x4247 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x20 PUSH2 0x4257 PUSH2 0x4193 DUP4 PUSH2 0x414F JUMP JUMPDEST DUP3 DUP2 MSTORE PUSH1 0x5 SWAP3 SWAP1 SWAP3 SHL DUP5 ADD DUP2 ADD SWAP2 DUP2 DUP2 ADD SWAP1 DUP7 DUP5 GT ISZERO PUSH2 0x4276 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 DUP7 ADD JUMPDEST DUP5 DUP2 LT ISZERO PUSH2 0x30B4 JUMPI DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x4299 JUMPI PUSH1 0x0 DUP1 DUP2 REVERT JUMPDEST PUSH2 0x42A7 DUP10 DUP7 DUP4 DUP12 ADD ADD PUSH2 0x3F4B JUMP JUMPDEST DUP5 MSTORE POP SWAP2 DUP4 ADD SWAP2 DUP4 ADD PUSH2 0x427A JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x42CB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x42E2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x42EE DUP9 DUP4 DUP10 ADD PUSH2 0x4172 JUMP JUMPDEST SWAP6 POP PUSH1 0x20 DUP8 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x4304 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4310 DUP9 DUP4 DUP10 ADD PUSH2 0x41DB JUMP JUMPDEST SWAP5 POP PUSH1 0x40 DUP8 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x4326 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4333 DUP8 DUP3 DUP9 ADD PUSH2 0x4236 JUMP JUMPDEST SWAP5 SWAP8 SWAP4 SWAP7 POP SWAP4 SWAP5 PUSH1 0x60 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH1 0x20 DUP1 DUP6 ADD SWAP5 POP DUP1 DUP5 ADD PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x437D JUMPI DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP8 MSTORE SWAP6 DUP3 ADD SWAP6 SWAP1 DUP3 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x4358 JUMP JUMPDEST POP SWAP5 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH1 0x20 DUP1 DUP6 ADD SWAP5 POP DUP1 DUP5 ADD PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x437D JUMPI DUP2 MLOAD DUP8 MSTORE SWAP6 DUP3 ADD SWAP6 SWAP1 DUP3 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x439C JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH1 0x20 DUP1 DUP6 ADD DUP1 DUP2 SWAP7 POP DUP4 PUSH1 0x5 SHL DUP2 ADD SWAP2 POP DUP3 DUP7 ADD PUSH1 0x0 JUMPDEST DUP6 DUP2 LT ISZERO PUSH2 0x4400 JUMPI DUP3 DUP5 SUB DUP10 MSTORE PUSH2 0x43EE DUP5 DUP4 MLOAD PUSH2 0x4090 JUMP JUMPDEST SWAP9 DUP6 ADD SWAP9 SWAP4 POP SWAP1 DUP5 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x43D6 JUMP JUMPDEST POP SWAP2 SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x80 DUP2 MSTORE PUSH1 0x0 PUSH2 0x4420 PUSH1 0x80 DUP4 ADD DUP8 PUSH2 0x4344 JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x4432 DUP2 DUP8 PUSH2 0x4388 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 SUB PUSH1 0x40 DUP5 ADD MSTORE PUSH2 0x4446 DUP2 DUP7 PUSH2 0x43B8 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 SUB PUSH1 0x60 DUP5 ADD MSTORE PUSH2 0x13D6 DUP2 DUP6 PUSH2 0x43B8 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x4472 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP6 CALLDATALOAD SWAP5 POP PUSH2 0x4482 PUSH1 0x20 DUP8 ADD PUSH2 0x3EA7 JUMP JUMPDEST SWAP4 POP PUSH2 0x4490 PUSH1 0x40 DUP8 ADD PUSH2 0x3EA7 JUMP JUMPDEST SWAP5 SWAP8 SWAP4 SWAP7 POP SWAP4 SWAP5 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP5 POP PUSH1 0x80 ADD CALLDATALOAD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 DUP2 ADD PUSH1 0x8 DUP4 LT PUSH2 0x44E0 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP2 SWAP1 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x44F9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x450B DUP2 PUSH2 0x40CF JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x4529 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH2 0x4539 PUSH1 0x20 DUP5 ADD PUSH2 0x3EA7 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x80 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x455A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP6 CALLDATALOAD SWAP5 POP PUSH2 0x456A PUSH1 0x20 DUP8 ADD PUSH2 0x3EA7 JUMP JUMPDEST SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x4586 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4592 DUP10 DUP4 DUP11 ADD PUSH2 0x3EBD JUMP JUMPDEST SWAP1 SWAP6 POP SWAP4 POP PUSH1 0x60 DUP9 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x45AB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x45B8 DUP9 DUP3 DUP10 ADD PUSH2 0x3F4B JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x60 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x45DB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 CALLDATALOAD SWAP4 POP PUSH2 0x45EB PUSH1 0x20 DUP7 ADD PUSH2 0x3EA7 JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x4606 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4612 DUP8 DUP3 DUP9 ADD PUSH2 0x3EBD JUMP JUMPDEST SWAP6 SWAP9 SWAP5 SWAP8 POP SWAP6 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x4634 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x464B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4657 DUP9 DUP4 DUP10 ADD PUSH2 0x4172 JUMP JUMPDEST SWAP6 POP PUSH1 0x20 DUP8 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x466D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4679 DUP9 DUP4 DUP10 ADD PUSH2 0x41DB JUMP JUMPDEST SWAP5 POP PUSH1 0x40 DUP8 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x468F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x469B DUP9 DUP4 DUP10 ADD PUSH2 0x4236 JUMP JUMPDEST SWAP4 POP PUSH1 0x60 DUP8 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x46B1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4143 DUP8 DUP3 DUP9 ADD PUSH2 0x3F4B JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x46D3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH2 0x46DE DUP2 PUSH2 0x40CF JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x4700 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x470C DUP7 DUP3 DUP8 ADD PUSH2 0x3F4B JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4728 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1877 DUP2 PUSH2 0x40CF JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x474B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP6 CALLDATALOAD PUSH2 0x4756 DUP2 PUSH2 0x40CF JUMP JUMPDEST SWAP5 POP PUSH1 0x20 DUP7 ADD CALLDATALOAD PUSH2 0x4766 DUP2 PUSH2 0x40CF JUMP JUMPDEST SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x4782 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x478E DUP10 DUP4 DUP11 ADD PUSH2 0x41DB JUMP JUMPDEST SWAP5 POP PUSH1 0x60 DUP9 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x47A4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x47B0 DUP10 DUP4 DUP11 ADD PUSH2 0x41DB JUMP JUMPDEST SWAP4 POP PUSH1 0x80 DUP9 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x45AB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x60 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x47DC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH2 0x47E7 DUP2 PUSH2 0x40CF JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x4606 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x481B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x1877 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x484A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP6 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x4861 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x486D DUP10 DUP4 DUP11 ADD PUSH2 0x4172 JUMP JUMPDEST SWAP7 POP PUSH1 0x20 DUP9 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x4883 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x488F DUP10 DUP4 DUP11 ADD PUSH2 0x41DB JUMP JUMPDEST SWAP6 POP PUSH1 0x40 DUP9 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x48A5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x48B1 DUP10 DUP4 DUP11 ADD PUSH2 0x4236 JUMP JUMPDEST SWAP5 POP PUSH1 0x60 DUP9 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x48C7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x47B0 DUP10 DUP4 DUP11 ADD PUSH2 0x4236 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x48E6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x48F1 DUP2 PUSH2 0x40CF JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x4917 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP6 CALLDATALOAD PUSH2 0x4922 DUP2 PUSH2 0x40CF JUMP JUMPDEST SWAP5 POP PUSH1 0x20 DUP7 ADD CALLDATALOAD PUSH2 0x4932 DUP2 PUSH2 0x40CF JUMP JUMPDEST SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD SWAP3 POP PUSH1 0x60 DUP7 ADD CALLDATALOAD SWAP2 POP PUSH1 0x80 DUP7 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x495B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x45B8 DUP9 DUP3 DUP10 ADD PUSH2 0x3F4B JUMP JUMPDEST DUP2 DUP4 DUP3 CALLDATACOPY PUSH1 0x0 SWAP2 ADD SWAP1 DUP2 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x18 SWAP1 DUP3 ADD MSTORE PUSH32 0x476F7665726E6F723A206F6E6C79476F7665726E616E63650000000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x49C2 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x49E2 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x21 SWAP1 DUP3 ADD MSTORE PUSH32 0x476F7665726E6F723A2070726F706F73616C206E6F7420737563636573736675 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0xFA SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4A3B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0xA0 DUP2 MSTORE PUSH1 0x0 PUSH2 0x4A55 PUSH1 0xA0 DUP4 ADD DUP9 PUSH2 0x4344 JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x4A67 DUP2 DUP9 PUSH2 0x4388 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 SUB PUSH1 0x40 DUP5 ADD MSTORE PUSH2 0x4A7B DUP2 DUP8 PUSH2 0x43B8 JUMP JUMPDEST PUSH1 0x60 DUP5 ADD SWAP6 SWAP1 SWAP6 MSTORE POP POP PUSH1 0x80 ADD MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0xC0 DUP2 MSTORE PUSH1 0x0 PUSH2 0x4AA3 PUSH1 0xC0 DUP4 ADD DUP10 PUSH2 0x4344 JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x4AB5 DUP2 DUP10 PUSH2 0x4388 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 SUB PUSH1 0x40 DUP5 ADD MSTORE PUSH2 0x4AC9 DUP2 DUP9 PUSH2 0x43B8 JUMP JUMPDEST PUSH1 0x60 DUP5 ADD SWAP7 SWAP1 SWAP7 MSTORE POP POP PUSH1 0x80 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0xA0 SWAP1 SWAP2 ADD MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x4B11 JUMPI PUSH2 0x4B11 PUSH2 0x4AE8 JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x4B28 JUMPI PUSH2 0x4B28 PUSH2 0x4AE8 JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH1 0x80 DUP2 MSTORE PUSH1 0x0 PUSH2 0x4B40 PUSH1 0x80 DUP4 ADD DUP8 PUSH2 0x4344 JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x4B52 DUP2 DUP8 PUSH2 0x4388 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 SUB PUSH1 0x40 DUP5 ADD MSTORE PUSH2 0x4B66 DUP2 DUP7 PUSH2 0x43B8 JUMP JUMPDEST SWAP2 POP POP DUP3 PUSH1 0x60 DUP4 ADD MSTORE SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 NOT DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x4B92 JUMPI PUSH2 0x4B92 PUSH2 0x4AE8 JUMP JUMPDEST POP MUL SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x4BB4 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP3 ADD PUSH2 0x4BE1 JUMPI PUSH2 0x4BE1 PUSH2 0x4AE8 JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4BFA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x1877 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP4 AND DUP2 MSTORE DUP2 MLOAD PUSH1 0x0 SWAP1 PUSH2 0x4C2D DUP2 PUSH1 0x4 DUP6 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x4060 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD PUSH1 0x4 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP4 AND DUP2 DUP6 AND DUP1 DUP4 SUB DUP3 GT ISZERO PUSH2 0x4C5D JUMPI PUSH2 0x4C5D PUSH2 0x4AE8 JUMP JUMPDEST ADD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x21 SWAP1 DUP3 ADD MSTORE PUSH32 0x476F7665726E6F723A20696E76616C69642070726F706F73616C206C656E6774 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0xD PUSH1 0xFB SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST DUP10 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0x120 PUSH1 0x40 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0x4CD2 DUP4 DUP3 ADD DUP12 PUSH2 0x4344 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 SUB PUSH1 0x60 DUP5 ADD MSTORE PUSH2 0x4CE6 DUP2 DUP11 PUSH2 0x4388 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 SUB PUSH1 0x80 DUP5 ADD MSTORE PUSH2 0x4CFA DUP2 DUP10 PUSH2 0x43B8 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 SUB PUSH1 0xA0 DUP5 ADD MSTORE PUSH2 0x4D0E DUP2 DUP9 PUSH2 0x43B8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP8 DUP2 AND PUSH1 0xC0 DUP7 ADD MSTORE DUP7 AND PUSH1 0xE0 DUP6 ADD MSTORE DUP4 DUP2 SUB PUSH2 0x100 DUP6 ADD MSTORE SWAP1 POP PUSH2 0x4D3A DUP2 DUP6 PUSH2 0x4090 JUMP JUMPDEST SWAP13 SWAP12 POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x4D5C DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x4060 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP5 DUP2 MSTORE PUSH1 0xFF DUP5 AND PUSH1 0x20 DUP3 ADD MSTORE DUP3 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x80 PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x1846 PUSH1 0x80 DUP4 ADD DUP5 PUSH2 0x4090 JUMP JUMPDEST DUP6 DUP2 MSTORE PUSH1 0xFF DUP6 AND PUSH1 0x20 DUP3 ADD MSTORE DUP4 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0xA0 PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x4DB6 PUSH1 0xA0 DUP4 ADD DUP6 PUSH2 0x4090 JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x80 DUP5 ADD MSTORE PUSH2 0x4DC8 DUP2 DUP6 PUSH2 0x4090 JUMP JUMPDEST SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP INVALID COINBASE PUSH5 0x6472657373 GASPRICE KECCAK256 PUSH13 0x6F772D6C6576656C2063616C6C KECCAK256 PUSH24 0x6974682076616C7565206661696C6564A264697066735822 SLT KECCAK256 0xC8 0xB5 0xDA STOP PUSH6 0x247A739D8411 SWAP4 0xA5 DUP1 ADDRESS SWAP16 CODECOPY DUP11 0xA5 0xFC STATICCALL 0xAC MOD ISZERO 0xDB 0x49 0xA6 0xCB MLOAD 0xA8 PUSH22 0xC364736F6C634300080D003300000000000000000000 ", "sha1": "f63267c7890912d7e61711c6ba09edb003df90f4", "source": "// SPDX-License-Identifier: MIT\npragma solidity ^0.8.4;\n\nimport \"OpenZeppelin/openzeppelin-contracts@4.6.0/contracts/token/ERC20/extensions/ERC20Votes.sol\";\nimport \"OpenZeppelin/openzeppelin-contracts@4.6.0/contracts/governance/extensions/GovernorSettings.sol\";\nimport \"OpenZeppelin/openzeppelin-contracts@4.6.0/contracts/governance/extensions/GovernorVotesQuorumFraction.sol\";\nimport \"OpenZeppelin/openzeppelin-contracts@4.6.0/contracts/governance/extensions/GovernorTimelockControl.sol\";\nimport \"OpenZeppelin/openzeppelin-contracts@4.6.0/contracts/governance/extensions/GovernorPreventLateQuorum.sol\";\nimport \"./GovernorCompatibilityBravo.sol\";\n\ncontract Governance is\n GovernorSettings,\n GovernorCompatibilityBravo,\n GovernorVotesQuorumFraction,\n GovernorTimelockControl,\n GovernorPreventLateQuorum\n{\n constructor(ERC20Votes _token, TimelockController _timelock)\n Governor(\"OUSD Governance\")\n GovernorSettings(\n 1, /* 1 block */\n 17280, /* ~3 days (86400 / 15) * 3 */\n 10000000 * 1e18 /* 10 mio veOgv */\n )\n GovernorVotes(_token)\n GovernorVotesQuorumFraction(20) // Default quorum denominator is 100, so 20/100 or 20%\n GovernorTimelockControl(_timelock)\n GovernorPreventLateQuorum(11520) // ~2 days (86400 / 15) * 2\n {}\n\n // The following functions are overrides required by Solidity.\n\n function state(uint256 proposalId)\n public\n view\n override(Governor, IGovernor, GovernorTimelockControl)\n returns (ProposalState)\n {\n return super.state(proposalId);\n }\n\n function propose(\n address[] memory targets,\n uint256[] memory values,\n bytes[] memory calldatas,\n string memory description\n )\n public\n override(Governor, GovernorCompatibilityBravo, IGovernor)\n returns (uint256)\n {\n return super.propose(targets, values, calldatas, description);\n }\n\n function proposalThreshold()\n public\n view\n override(Governor, GovernorSettings)\n returns (uint256)\n {\n return super.proposalThreshold();\n }\n\n function _execute(\n uint256 proposalId,\n address[] memory targets,\n uint256[] memory values,\n bytes[] memory calldatas,\n bytes32 descriptionHash\n ) internal override(Governor, GovernorTimelockControl) {\n super._execute(proposalId, targets, values, calldatas, descriptionHash);\n }\n\n function _cancel(\n address[] memory targets,\n uint256[] memory values,\n bytes[] memory calldatas,\n bytes32 descriptionHash\n ) internal override(Governor, GovernorTimelockControl) returns (uint256) {\n return super._cancel(targets, values, calldatas, descriptionHash);\n }\n\n function _executor()\n internal\n view\n override(Governor, GovernorTimelockControl)\n returns (address)\n {\n return super._executor();\n }\n\n function supportsInterface(bytes4 interfaceId)\n public\n view\n override(Governor, IERC165, GovernorTimelockControl)\n returns (bool)\n {\n return super.supportsInterface(interfaceId);\n }\n\n function proposalDeadline(uint256 proposalId)\n public\n view\n virtual\n override(Governor, IGovernor, GovernorPreventLateQuorum)\n returns (uint256)\n {\n return super.proposalDeadline(proposalId);\n }\n\n function _castVote(\n uint256 proposalId,\n address account,\n uint8 support,\n string memory reason,\n bytes memory params\n )\n internal\n virtual\n override(Governor, GovernorPreventLateQuorum)\n returns (uint256)\n {\n return super._castVote(proposalId, account, support, reason, params);\n }\n}\n", "sourceMap": "648:3178:41:-:0;;;823:502;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1284:5;1239:9;1148:2;1104:6;958:1;987:5;1037:15;3447:88:9;;;;;;;;;;;;;-1:-1:-1;;;3447:88:9;;;3487:5;3494:9;:7;;;:9;;:::i;:::-;2541:22:34;;;;;;;;;;2597:25;;;;;;2778;;;;2813:31;;;;2873:13;2854:32;;;;-1:-1:-1;3633:73:34;;2651:117;3633:73;;;881:25:46;;;922:18;;;915:34;;;-1:-1:-1;965:18:46;;958:34;;;1008:18;;;1001:34;;;;3700:4:34;1051:19:46;;;1044:61;3633:73:34;;;;;;;;;;853:19:46;;3633:73:34;;3623:84;;;;;;;;2541:22;;2597:25;;2896:85;;3014:4;2991:28;;3029:21;;-1:-1:-1;;3515:13:9;;::::1;::::0;-1:-1:-1;3515:5:9::1;::::0;-1:-1:-1;3515:13:9::1;::::0;::::1;::::0;::::1;:::i;:::-;-1:-1:-1::0;892:35:13;;-1:-1:-1;908:18:13;892:15;:35::i;:::-;937:37;954:19;937:16;:37::i;:::-;984:47;1006:24;984:21;:47::i;:::-;-1:-1:-1;;;;;;;;499:20:15;;;1012:44:16;1035:20;1012:22;:44::i;:::-;-1:-1:-1;1780:32:14;1796:15;1780;:32::i;:::-;-1:-1:-1;1770:49:12;1798:20;1770:27;:49::i;:::-;1719:107;823:502:41;;648:3178;;4786:99:9;4868:10;;;;;;;;;;;;-1:-1:-1;;;4868:10:9;;;;;4786:99::o;2622:171:13:-;2718:12;;2703:44;;;1290:25:46;;;1346:2;1331:18;;1324:34;;;2703:44:13;;1263:18:46;2703:44:13;;;;;;;2757:12;:29;2622:171::o;2913:316::-;3074:1;3056:15;:19;3048:71;;;;-1:-1:-1;;;3048:71:13;;1571:2:46;3048:71:13;;;1553:21:46;1610:2;1590:18;;;1583:30;1649:34;1629:18;;;1622:62;-1:-1:-1;;;1700:18:46;;;1693:37;1747:19;;3048:71:13;;;;;;;;;3150:13;;3134:47;;;1290:25:46;;;1346:2;1331:18;;1324:34;;;3134:47:13;;1263:18:46;3134:47:13;;;;;;;3191:13;:31;2913:316::o;3359:213::-;3473:18;;3452:62;;;1290:25:46;;;1346:2;1331:18;;1324:34;;;3452:62:13;;1263:18:46;3452:62:13;;;;;;;3524:18;:41;3359:213::o;2439:430:16:-;1455:3;2547:18;:41;;2526:155;;;;-1:-1:-1;;;2526:155:16;;1979:2:46;2526:155:16;;;1961:21:46;2018:2;1998:18;;;1991:30;2057:34;2037:18;;;2030:62;2128:34;2108:18;;;2101:62;-1:-1:-1;;;2179:19:46;;;2172:34;2223:19;;2526:155:16;1777:471:46;2526:155:16;2721:16;;;2747:37;;;;2800:62;;;1290:25:46;;;1346:2;1331:18;;1324:34;;;2800:62:16;;1263:18:46;2800:62:16;;;;;;;2516:353;2439:430;:::o;6386:176:14:-;6489:9;;6466:56;;;-1:-1:-1;;;;;6489:9:14;;;2465:34:46;;2535:15;;;2530:2;2515:18;;2508:43;6466:56:14;;2400:18:46;6466:56:14;;;;;;;6532:9;:23;;-1:-1:-1;;;;;;6532:23:14;-1:-1:-1;;;;;6532:23:14;;;;;;;;;;6386:176::o;4311:204:12:-;4432:14;;4405:60;;;-1:-1:-1;;;;;4432:14:12;;;2769:34:46;;2839:15;;;2834:2;2819:18;;2812:43;4405:60:12;;2705:18:46;4405:60:12;;;;;;;4475:14;:33;;-1:-1:-1;;;;;;4475:33:12;-1:-1:-1;;;;;4475:33:12;;;;;;;;;;4311:204::o;648:3178:41:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;648:3178:41;;;-1:-1:-1;648:3178:41;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;14:143:46;-1:-1:-1;;;;;101:31:46;;91:42;;81:70;;147:1;144;137:12;81:70;14:143;:::o;162:455::-;287:6;295;348:2;336:9;327:7;323:23;319:32;316:52;;;364:1;361;354:12;316:52;396:9;390:16;415:43;452:5;415:43;:::i;:::-;527:2;512:18;;506:25;477:5;;-1:-1:-1;540:45:46;506:25;540:45;:::i;:::-;604:7;594:17;;;162:455;;;;;:::o;2866:380::-;2945:1;2941:12;;;;2988;;;3009:61;;3063:4;3055:6;3051:17;3041:27;;3009:61;3116:2;3108:6;3105:14;3085:18;3082:38;3079:161;;3162:10;3157:3;3153:20;3150:1;3143:31;3197:4;3194:1;3187:15;3225:4;3222:1;3215:15;3079:161;;2866:380;;;:::o;:::-;648:3178:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;", "sourcePath": "contracts/Governance.sol", "type": "contract", "deployment": {"address": "0x3cdD07c16614059e66344a7b579DAB4f9516C0b6", "chainid": "1", "blockHeight": 15491391}}