ETH Price: $1,773.55 (-0.15%)

Contract

0xBCB25d7582D0738a77508096B05488d49181b255
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Execute237223232025-11-04 0:17:35225 days ago1762215455IN
0xBCB25d75...49181b255
0 ETH0.000029370.21473781
Execute237223232025-11-04 0:17:35225 days ago1762215455IN
0xBCB25d75...49181b255
0 ETH0.000029370.21473781
Execute237223212025-11-04 0:17:11225 days ago1762215431IN
0xBCB25d75...49181b255
0 ETH0.000027360.19998396
Execute237223202025-11-04 0:16:59225 days ago1762215419IN
0xBCB25d75...49181b255
0 ETH0.000027680.20235946
Execute237223202025-11-04 0:16:59225 days ago1762215419IN
0xBCB25d75...49181b255
0 ETH0.000027680.20235946
Execute237223182025-11-04 0:16:35225 days ago1762215395IN
0xBCB25d75...49181b255
0 ETH0.000027770.20299078
Execute237223162025-11-04 0:16:11225 days ago1762215371IN
0xBCB25d75...49181b255
0 ETH0.000027250.19922616
Add Transaction236878132025-10-30 4:27:11230 days ago1761798431IN
0xBCB25d75...49181b255
0 ETH0.000083090.44090325
Add Transaction236878132025-10-30 4:27:11230 days ago1761798431IN
0xBCB25d75...49181b255
0 ETH0.00008310.44090325
Add Transaction236878132025-10-30 4:27:11230 days ago1761798431IN
0xBCB25d75...49181b255
0 ETH0.00009310.44090325
Add Transaction236878122025-10-30 4:26:59230 days ago1761798419IN
0xBCB25d75...49181b255
0 ETH0.000087520.41442882
Add Transaction236877672025-10-30 4:17:47230 days ago1761797867IN
0xBCB25d75...49181b255
0 ETH0.000082130.388924
Add Transaction236877612025-10-30 4:16:35230 days ago1761797795IN
0xBCB25d75...49181b255
0 ETH0.000059030.27950867
Add Transaction236877302025-10-30 4:09:59230 days ago1761797399IN
0xBCB25d75...49181b255
0 ETH0.000033650.15934261
Execute210472022024-10-26 3:46:47599 days ago1729914407IN
0xBCB25d75...49181b255
0 ETH0.000653844.15299512
Execute209332252024-10-10 5:49:59615 days ago1728539399IN
0xBCB25d75...49181b255
0 ETH0.001410778.96291641
Execute209332202024-10-10 5:48:59615 days ago1728539339IN
0xBCB25d75...49181b255
0 ETH0.001426629.06361905
Add Transaction208403542024-09-27 7:05:59628 days ago1727420759IN
0xBCB25d75...49181b255
0 ETH0.0024909111.62990149
Execute205714602024-08-20 17:55:59665 days ago1724176559IN
0xBCB25d75...49181b255
0 ETH0.000265521.94652382
Add Transaction204886822024-08-09 4:34:23677 days ago1723178063IN
0xBCB25d75...49181b255
0 ETH0.000224161.06250681
Add Transaction204886682024-08-09 4:31:35677 days ago1723177895IN
0xBCB25d75...49181b255
0 ETH0.000224391.06359284
Add Transaction204886482024-08-09 4:27:23677 days ago1723177643IN
0xBCB25d75...49181b255
0 ETH0.000243331.14613768
Execute197205792024-04-23 20:48:59784 days ago1713905339IN
0xBCB25d75...49181b255
0 ETH0.0024798518.19901614
Execute197155482024-04-23 3:55:59785 days ago1713844559IN
0xBCB25d75...49181b255
0 ETH0.0013851410.16431945
Cast Vote196937462024-04-20 2:48:11788 days ago1713581291IN
0xBCB25d75...49181b255
0 ETH0.000533446.15470785
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
Source Code Verified Exact Match

Contract Name

FraxGovernorOmega

Compiler Version
v0.8.20+commit.a1b79de6
Optimization Enabled
Yes with 200 runs
Other Settings
shanghai EvmVersion
License
-NA-
Contract Source Code (Solidity Standard Json-Input format)
Contract Security Audit
No Contract Security Audit SubmittedSubmit Audit Here
Contract ABI
API
[{"inputs":[{"components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"address","name":"veFxs","type":"address"},{"internalType":"address","name":"veFxsVotingDelegation","type":"address"},{"internalType":"address[]","name":"safeAllowlist","type":"address[]"},{"internalType":"address[]","name":"delegateCallAllowlist","type":"address[]"},{"internalType":"address payable","name":"timelockController","type":"address"},{"internalType":"uint256","name":"initialVotingDelay","type":"uint256"},{"internalType":"uint256","name":"initialVotingPeriod","type":"uint256"},{"internalType":"uint256","name":"initialProposalThreshold","type":"uint256"},{"internalType":"uint256","name":"quorumNumeratorValue","type":"uint256"},{"internalType":"uint256","name":"initialVotingDelayBlocks","type":"uint256"},{"internalType":"uint256","name":"initialShortCircuitNumerator","type":"uint256"}],"internalType":"struct ConstructorParams","name":"params","type":"tuple"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"contractAddress","type":"address"}],"name":"AlreadyOnDelegateCallAllowlist","type":"error"},{"inputs":[{"internalType":"address","name":"safe","type":"address"}],"name":"AlreadyOnSafeAllowlist","type":"error"},{"inputs":[],"name":"BadBatchArgs","type":"error"},{"inputs":[],"name":"CannotCancelOptimisticTransaction","type":"error"},{"inputs":[],"name":"CannotPropose","type":"error"},{"inputs":[],"name":"CannotRelay","type":"error"},{"inputs":[{"internalType":"address","name":"to","type":"address"}],"name":"DelegateCallNotAllowed","type":"error"},{"inputs":[],"name":"InvalidShortString","type":"error"},{"inputs":[],"name":"InvalidTimepoint","type":"error"},{"inputs":[],"name":"NonceReserved","type":"error"},{"inputs":[{"internalType":"address","name":"contractAddress","type":"address"}],"name":"NotOnDelegateCallAllowlist","type":"error"},{"inputs":[{"internalType":"address","name":"safe","type":"address"}],"name":"NotOnSafeAllowlist","type":"error"},{"inputs":[],"name":"NotTimelockController","type":"error"},{"inputs":[],"name":"ParamLengthsNotEqual","type":"error"},{"inputs":[],"name":"ProposalAlreadyCanceled","type":"error"},{"inputs":[],"name":"SameSafeVotingPeriod","type":"error"},{"inputs":[],"name":"SenderVotingWeightBelowProposalThreshold","type":"error"},{"inputs":[],"name":"ShortCircuitNumeratorGreaterThanQuorumDenominator","type":"error"},{"inputs":[{"internalType":"string","name":"str","type":"string"}],"name":"StringTooLong","type":"error"},{"inputs":[{"internalType":"bytes32","name":"txHash","type":"bytes32"}],"name":"TransactionAlreadyApproved","type":"error"},{"inputs":[],"name":"Unauthorized","type":"error"},{"inputs":[],"name":"WrongNonce","type":"error"},{"inputs":[],"name":"WrongProposalState","type":"error"},{"inputs":[],"name":"WrongSafeSignatureType","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"contractAddress","type":"address"}],"name":"AddToDelegateCallAllowlist","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"safe","type":"address"}],"name":"AddToSafeAllowlist","type":"event"},{"anonymous":false,"inputs":[],"name":"EIP712DomainChanged","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":"voteStart","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"voteEnd","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":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":"contractAddress","type":"address"}],"name":"RemoveFromDelegateCallAllowlist","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"safe","type":"address"}],"name":"RemoveFromSafeAllowlist","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"safe","type":"address"},{"indexed":false,"internalType":"uint256","name":"oldSafeVotingPeriod","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newSafeVotingPeriod","type":"uint256"}],"name":"SafeVotingPeriodSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"oldShortCircuitNumerator","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newShortCircuitNumerator","type":"uint256"}],"name":"ShortCircuitNumeratorUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"safe","type":"address"},{"indexed":false,"internalType":"uint256","name":"nonce","type":"uint256"},{"indexed":true,"internalType":"bytes32","name":"txHash","type":"bytes32"},{"indexed":true,"internalType":"uint256","name":"proposalId","type":"uint256"}],"name":"TransactionProposed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldVotingDelegation","type":"address"},{"indexed":false,"internalType":"address","name":"newVotingDelegation","type":"address"}],"name":"VeFxsVotingDelegationSet","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":"oldVotingDelayBlocks","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newVotingDelayBlocks","type":"uint256"}],"name":"VotingDelayBlocksSet","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":[{"internalType":"address","name":"contractAddress","type":"address"}],"name":"$delegateCallAllowlist","outputs":[{"internalType":"uint256","name":"status","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"safe","type":"address"},{"internalType":"uint256","name":"safeNonce","type":"uint256"}],"name":"$gnosisSafeToNonceToTxHash","outputs":[{"internalType":"bytes32","name":"txHash","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"safe","type":"address"}],"name":"$safeAllowlist","outputs":[{"internalType":"uint256","name":"status","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"safe","type":"address"}],"name":"$safeVotingPeriod","outputs":[{"internalType":"uint256","name":"votingPeriod","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"snapshot","type":"uint256"}],"name":"$snapshotTimestampToSnapshotBlockNumber","outputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"$votingDelayBlocks","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"BALLOT_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"CLOCK_MODE","outputs":[{"internalType":"string","name":"","type":"string"}],"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":[],"name":"TIMELOCK_CONTROLLER","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"VE_FXS","outputs":[{"internalType":"contract IVeFxs","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"teamSafe","type":"address"},{"internalType":"bytes","name":"signatures","type":"bytes"}],"name":"abortTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"contracts","type":"address[]"}],"name":"addToDelegateCallAllowlist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"safes","type":"address[]"}],"name":"addToSafeAllowlist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"teamSafe","type":"address"},{"components":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"enum Enum.Operation","name":"operation","type":"uint8"},{"internalType":"uint256","name":"safeTxGas","type":"uint256"},{"internalType":"uint256","name":"baseGas","type":"uint256"},{"internalType":"uint256","name":"gasPrice","type":"uint256"},{"internalType":"address","name":"gasToken","type":"address"},{"internalType":"address","name":"refundReceiver","type":"address"},{"internalType":"uint256","name":"_nonce","type":"uint256"}],"internalType":"struct IFraxGovernorOmega.TxHashArgs","name":"args","type":"tuple"},{"internalType":"bytes","name":"signatures","type":"bytes"}],"name":"addTransaction","outputs":[{"internalType":"uint256","name":"optimisticProposalId","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"teamSafes","type":"address[]"},{"components":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"enum Enum.Operation","name":"operation","type":"uint8"},{"internalType":"uint256","name":"safeTxGas","type":"uint256"},{"internalType":"uint256","name":"baseGas","type":"uint256"},{"internalType":"uint256","name":"gasPrice","type":"uint256"},{"internalType":"address","name":"gasToken","type":"address"},{"internalType":"address","name":"refundReceiver","type":"address"},{"internalType":"uint256","name":"_nonce","type":"uint256"}],"internalType":"struct IFraxGovernorOmega.TxHashArgs[]","name":"args","type":"tuple[]"},{"internalType":"bytes[]","name":"signatures","type":"bytes[]"}],"name":"batchAddTransaction","outputs":[{"internalType":"uint256[]","name":"optimisticProposalIds","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"proposalId","type":"uint256[]"},{"internalType":"uint8[]","name":"support","type":"uint8[]"}],"name":"bulkCastVote","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"","type":"address[]"},{"internalType":"uint256[]","name":"","type":"uint256[]"},{"internalType":"bytes[]","name":"","type":"bytes[]"},{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"cancel","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","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":[],"name":"clock","outputs":[{"internalType":"uint48","name":"","type":"uint48"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"eip712Domain","outputs":[{"internalType":"bytes1","name":"fields","type":"bytes1"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"version","type":"string"},{"internalType":"uint256","name":"chainId","type":"uint256"},{"internalType":"address","name":"verifyingContract","type":"address"},{"internalType":"bytes32","name":"salt","type":"bytes32"},{"internalType":"uint256[]","name":"extensions","type":"uint256[]"}],"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":"execute","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"fractionalVoteNonce","outputs":[{"internalType":"uint128","name":"","type":"uint128"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"timepoint","type":"uint256"}],"name":"getVotes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"timepoint","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":"lastSnapshotTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"proposalProposer","outputs":[{"internalType":"address","name":"","type":"address"}],"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":"proposalVotes","outputs":[{"internalType":"uint256","name":"againstVotes","type":"uint256"},{"internalType":"uint256","name":"forVotes","type":"uint256"},{"internalType":"uint256","name":"abstainVotes","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"proposals","outputs":[{"internalType":"address","name":"proposer","type":"address"},{"internalType":"uint40","name":"voteStart","type":"uint40"},{"internalType":"uint40","name":"voteEnd","type":"uint40"},{"internalType":"bool","name":"executed","type":"bool"},{"internalType":"bool","name":"canceled","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"","type":"address[]"},{"internalType":"uint256[]","name":"","type":"uint256[]"},{"internalType":"bytes[]","name":"","type":"bytes[]"},{"internalType":"string","name":"","type":"string"}],"name":"propose","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"timepoint","type":"uint256"}],"name":"quorum","outputs":[{"internalType":"uint256","name":"quorumAtTimepoint","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"quorumDenominator","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"timepoint","type":"uint256"}],"name":"quorumNumerator","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"quorumNumerator","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"teamSafe","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"}],"name":"rejectTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"relay","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address[]","name":"contracts","type":"address[]"}],"name":"removeFromDelegateCallAllowlist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"safes","type":"address[]"}],"name":"removeFromSafeAllowlist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newProposalThreshold","type":"uint256"}],"name":"setProposalThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"safe","type":"address"},{"internalType":"uint256","name":"newSafeVotingPeriod","type":"uint256"}],"name":"setSafeVotingPeriod","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"veFxsVotingDelegation","type":"address"}],"name":"setVeFxsVotingDelegation","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newVotingDelay","type":"uint256"}],"name":"setVotingDelay","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newVotingDelayBlocks","type":"uint256"}],"name":"setVotingDelayBlocks","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newVotingPeriod","type":"uint256"}],"name":"setVotingPeriod","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"shortCircuitNumerator","outputs":[{"internalType":"uint256","name":"latestShortCircuitNumerator","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"timepoint","type":"uint256"}],"name":"shortCircuitNumerator","outputs":[{"internalType":"uint256","name":"shortCircuitNumeratorAtTimepoint","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"timepoint","type":"uint256"}],"name":"shortCircuitThreshold","outputs":[{"internalType":"uint256","name":"shortCircuitThresholdAtTimepoint","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"}],"name":"state","outputs":[{"internalType":"enum IGovernor.ProposalState","name":"proposalState","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":"token","outputs":[{"internalType":"contract IERC5805","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newQuorumNumerator","type":"uint256"}],"name":"updateQuorumNumerator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newShortCircuitNumerator","type":"uint256"}],"name":"updateShortCircuitNumerator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"version","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"address","name":"account","type":"address"}],"name":"voteWeightCast","outputs":[{"internalType":"uint128","name":"","type":"uint128"}],"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"}]
6101a060405234801562000011575f80fd5b506040516200715b3803806200715b833981016040819052620000349162000e87565b60405180610120016040528082602001516001600160a01b0316815260200182604001516001600160a01b03168152602001825f015181526020018260c0015181526020018260e0015181526020018261010001518152602001826101200151815260200182610140015181526020018261016001518152508060c001518160200151826060015183608001518460a00151856040015180620000dc620002a560201b60201c565b620000e8825f620002c0565b61012052620000f9816001620002c0565b61014052815160208084019190912060e052815190820120610100524660a0526200018660e05161010051604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201529081019290925260608201524660808201523060a08201525f9060c00160405160208183030381529060405280519060200120905090565b60805250503060c05260026200019d82826200104a565b50620001ab905083620002f8565b620001b68262000339565b620001c181620003df565b5050600980546001600160a01b0319166001600160a01b03939093169290921790915550620001f08162000420565b5080516001600160a01b031661016052610100810151620002119062000527565b60e08101516200022190620005b6565b602080820151604080515f81526001600160a01b03909216928201929092527fc255828f3e19c78de5df3dd5b6706d49bd5dd58e76275f97bd69987870099520910160405180910390a15060a08101516001600160a01b03166101805260608101516200028e90620005f5565b60808101516200029e906200073e565b50620011ea565b6040805180820190915260018152603160f81b602082015290565b5f602083511015620002df57620002d78362000894565b9050620002f2565b81620002ec84826200104a565b5060ff90505b92915050565b60065460408051918252602082018390527fc565b045403dc03c2eea82b81a0465edad9e2e7fc4d97e11421c209da93d7a93910160405180910390a1600655565b5f81116200039e5760405162461bcd60e51b815260206004820152602760248201527f476f7665726e6f7253657474696e67733a20766f74696e6720706572696f6420604482015266746f6f206c6f7760c81b60648201526084015b60405180910390fd5b60075460408051918252602082018390527f7e3f7f0708a84de9203036abaa450dccc85ad5ff52f78c170f3edb55cf5e8828910160405180910390a1600755565b60085460408051918252602082018390527fccb45da8d5717e6c4544694297c4ba5cf151d455c9bb0ed4fc7a38411bc05461910160405180910390a1600855565b6064811115620004a55760405162461bcd60e51b815260206004820152604360248201527f476f7665726e6f72566f74657351756f72756d4672616374696f6e3a2071756f60448201527f72756d4e756d657261746f72206f7665722071756f72756d44656e6f6d696e616064820152623a37b960e91b608482015260a40162000395565b5f620004b0620008d6565b9050620004e7620004d2620004c4620008f1565b65ffffffffffff1662000973565b620004dd84620009dd565b600a919062000a47565b505060408051828152602081018490527f0553476bf02ef2726e8ce5ced78d63e26e602e4a2257b1f559418e24b463399791015b60405180910390a15050565b606481111562000549576040516271e29960e21b815260040160405180910390fd5b5f6200055462000a63565b90506200057d62000568620004c4620008f1565b6200057384620009dd565b600f919062000a47565b505060408051828152602081018490527fdd2b8b2d874e19a344cba53b9fb534ea748ef117ed4b75c67569a7948645419391016200051b565b600e80549082905560408051828152602081018490527fd3c1cdfd662fbb8e44190410d3a0d46855746182cb8d1e5e41bc84f5afecef4f91016200051b565b5f5b81518110156200073a5760125f83838151811062000619576200061962001112565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f205460010362000690578181815181106200065e576200065e62001112565b6020026020010151604051630b58d77560e41b81526004016200039591906001600160a01b0391909116815260200190565b600160125f848481518110620006aa57620006aa62001112565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f2081905550818181518110620006ea57620006ea62001112565b60200260200101516001600160a01b03167f4149776fc93a7a68120df1638269488e1915cd17b09b0ab741e6bf768a38c46d60405160405180910390a262000732816200113a565b9050620005f7565b5050565b5f5b81518110156200073a5760135f83838151811062000762576200076262001112565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f2054600103620007d957818181518110620007a757620007a762001112565b60200260200101516040516394369fd360e01b81526004016200039591906001600160a01b0391909116815260200190565b600160135f848481518110620007f357620007f362001112565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f20819055507ff48d3b938905d7162ca91551f61d4d458d43159e04847eb28ed7d94fbdb3bc2f82828151811062000854576200085462001112565b60200260200101516040516200087991906001600160a01b0391909116815260200190565b60405180910390a16200088c816200113a565b905062000740565b5f80829050601f81511115620008c1578260405163305a27a960e01b815260040162000395919062001155565b8051620008ce8262001189565b179392505050565b5f620008e3600a62000a6b565b6001600160e01b0316905090565b600954604080516324776b7d60e21b815290515f926001600160a01b0316916391ddadf49160048083019260209291908290030181865afa92505050801562000959575060408051601f3d908101601f191682019092526200095691810190620011ad565b60015b6200096e57620009694362000ab6565b905090565b919050565b5f63ffffffff821115620009d95760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203360448201526532206269747360d01b606482015260840162000395565b5090565b5f6001600160e01b03821115620009d95760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20326044820152663234206269747360c81b606482015260840162000395565b5f8062000a5685858562000b1e565b915091505b935093915050565b5f620008e3600f5b80545f90801562000aad5762000a958362000a88600184620011d4565b5f91825260209091200190565b5464010000000090046001600160e01b031662000aaf565b5f5b9392505050565b5f65ffffffffffff821115620009d95760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203460448201526538206269747360d01b606482015260840162000395565b82545f908190801562000c70575f62000b3e8762000a88600185620011d4565b60408051808201909152905463ffffffff8082168084526401000000009092046001600160e01b03166020840152919250908716101562000bc25760405162461bcd60e51b815260206004820152601b60248201527f436865636b706f696e743a2064656372656173696e67206b6579730000000000604482015260640162000395565b805163ffffffff80881691160362000c10578462000be78862000a88600186620011d4565b80546001600160e01b03929092166401000000000263ffffffff90921691909117905562000c5f565b6040805180820190915263ffffffff80881682526001600160e01b0380881660208085019182528b54600181018d555f8d81529190912094519151909216640100000000029216919091179101555b60200151925083915062000a5b9050565b50506040805180820190915263ffffffff80851682526001600160e01b0380851660208085019182528854600181018a555f8a81529182209551925190931664010000000002919093161792019190915590508162000a5b565b634e487b7160e01b5f52604160045260245ffd5b60405161018081016001600160401b038111828210171562000d045762000d0462000cca565b60405290565b604051601f8201601f191681016001600160401b038111828210171562000d355762000d3562000cca565b604052919050565b5f5b8381101562000d5957818101518382015260200162000d3f565b50505f910152565b5f82601f83011262000d71575f80fd5b81516001600160401b0381111562000d8d5762000d8d62000cca565b62000da2601f8201601f191660200162000d0a565b81815284602083860101111562000db7575f80fd5b62000dca82602083016020870162000d3d565b949350505050565b6001600160a01b038116811462000de7575f80fd5b50565b80516200096e8162000dd2565b5f82601f83011262000e07575f80fd5b815160206001600160401b0382111562000e255762000e2562000cca565b8160051b62000e3682820162000d0a565b928352848101820192828101908785111562000e50575f80fd5b83870192505b8483101562000e7c57825162000e6c8162000dd2565b8252918301919083019062000e56565b979650505050505050565b5f6020828403121562000e98575f80fd5b81516001600160401b038082111562000eaf575f80fd5b90830190610180828603121562000ec4575f80fd5b62000ece62000cde565b82518281111562000edd575f80fd5b62000eeb8782860162000d61565b82525062000efc6020840162000dea565b602082015262000f0f6040840162000dea565b604082015260608301518281111562000f26575f80fd5b62000f348782860162000df7565b60608301525060808301518281111562000f4c575f80fd5b62000f5a8782860162000df7565b60808301525062000f6e60a0840162000dea565b60a082015260c0838101519082015260e080840151908201526101008084015190820152610120808401519082015261014080840151908201526101609283015192810192909252509392505050565b600181811c9082168062000fd357607f821691505b60208210810362000ff257634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111562001045575f81815260208120601f850160051c81016020861015620010205750805b601f850160051c820191505b8181101562001041578281556001016200102c565b5050505b505050565b81516001600160401b0381111562001066576200106662000cca565b6200107e8162001077845462000fbe565b8462000ff8565b602080601f831160018114620010b4575f84156200109c5750858301515b5f19600386901b1c1916600185901b17855562001041565b5f85815260208120601f198616915b82811015620010e457888601518255948401946001909101908401620010c3565b50858210156200110257878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b5f600182016200114e576200114e62001126565b5060010190565b602081525f82518060208401526200117581604085016020870162000d3d565b601f01601f19169190910160400192915050565b8051602080830151919081101562000ff2575f1960209190910360031b1b16919050565b5f60208284031215620011be575f80fd5b815165ffffffffffff8116811462000aaf575f80fd5b81810381811115620002f257620002f262001126565b60805160a05160c05160e0516101005161012051610140516101605161018051615ef6620012655f395f81816108f40152612a7301525f81816108200152818161269d01526137bb01525f6119e401525f6119ba01525f613f2101525f613ef901525f613e5401525f613e7e01525f613ea80152615ef65ff3fe6080604052600436106103f8575f3560e01c806384b0196e1161020a578063c28bc2fa1161011e578063e80f1aa7116100a8578063ece40cc111610078578063ece40cc114610dcb578063f23a6e6114610dea578063f8cc2e3c14610e15578063f8ce560a14610e34578063fc0c546a14610e53575f80fd5b8063e80f1aa714610d4f578063ea0217cf14610d6e578063eb9019d414610d8d578063ec2de58b14610dac575f80fd5b8063d914e172116100ee578063d914e17214610c8a578063dd4e2ba514610cb5578063deaaa7cc14610cc9578063df482caf14610cfc578063dfc3c9e714610d30575f80fd5b8063c28bc2fa14610c25578063c3dcf92214610c38578063c59057e414610c57578063ccb8370b14610c76575f80fd5b8063aa75a3c21161019f578063bc197c811161016f578063bc197c8114610b57578063be13109414610b82578063be74baf214610ba1578063c01f9e3714610bb6578063c1de4eed14610bef575f80fd5b8063aa75a3c214610ae6578063b021d2c314610b05578063b12c327714610b24578063b58131b014610b43575f80fd5b806397c3d334116101da57806397c3d33414610a8b5780639a802a6d14610a9e578063a7713a7014610abd578063a89f263814610ad1575f80fd5b806384b0196e146109ef57806386e80e9014610a165780638bb53cd314610a4157806391ddadf414610a60575f80fd5b8063438596321161030c5780635c0855891161029657806364cda3d41161026657806364cda3d41461095457806370b0f6601461097357806377d76602146109925780637b3c71d3146109b15780637d5e81e2146109d0575f80fd5b80635c085589146108c45780635d049c0a146108e35780635f398a141461091657806360c4247f14610935575f80fd5b80634bf5d7e9116102dc5780634bf5d7e9146107fb578063506d1f811461080f578063544ffc9c1461084257806354fd4d501461087c57806356781388146108a5575f80fd5b8063438596321461074657806343ec3e0914610792578063452115d6146107b15780634571969b146107d0575f80fd5b8063150b7a021161038d5780632fe3e2611161035d5780632fe3e2611461067d578063342cfab6146106b05780633932abb1146106e75780633bccf4fd146106fb5780633e4f49e61461071a575f80fd5b8063150b7a02146105dd5780632214a33f146106205780632656227d1461064b5780632d63f6931461065e575f80fd5b806306f3f9e6116103c857806306f3f9e61461052557806306fdde0314610544578063072c8e0d14610565578063143489d014610591575f80fd5b8063013cf08b1461040e57806301ffc9a7146104b957806302a251a3146104e85780630342018114610506575f80fd5b3661040a57005b60405180910390fd5b005b5f80fd5b348015610419575f80fd5b50610473610428366004614b1f565b60036020525f90815260409020546001600160a01b0381169064ffffffffff600160a01b8204811691600160c81b81049091169060ff600160f01b8204811691600160f81b90041685565b604080516001600160a01b03909616865264ffffffffff9485166020870152939092169284019290925290151560608301521515608082015260a0015b60405180910390f35b3480156104c4575f80fd5b506104d86104d3366004614b36565b610e72565b60405190151581526020016104b0565b3480156104f3575f80fd5b506007545b6040519081526020016104b0565b348015610511575f80fd5b506104f8610520366004614c9d565b610f0e565b348015610530575f80fd5b5061040861053f366004614b1f565b610f2c565b34801561054f575f80fd5b50610558610f40565b6040516104b09190614d89565b348015610570575f80fd5b5061058461057f366004614ddb565b610fd0565b6040516104b09190614ea6565b34801561059c575f80fd5b506105c56105ab366004614b1f565b5f908152600360205260409020546001600160a01b031690565b6040516001600160a01b0390911681526020016104b0565b3480156105e8575f80fd5b506106076105f7366004614ece565b630a85bd0160e11b949350505050565b6040516001600160e01b031990911681526020016104b0565b34801561062b575f80fd5b506104f861063a366004614f31565b60146020525f908152604090205481565b6104f861065936600461509e565b6110f7565b348015610669575f80fd5b506104f8610678366004614b1f565b611223565b348015610688575f80fd5b506104f87fb3b3f3b703cd84ce352197dcff232b1b5d3cfb2025ce47cf04742d0651f1af8881565b3480156106bb575f80fd5b506106cf6106ca366004615127565b611242565b6040516001600160801b0390911681526020016104b0565b3480156106f2575f80fd5b506006546104f8565b348015610706575f80fd5b506104f8610715366004615151565b611274565b348015610725575f80fd5b50610739610734366004614b1f565b611307565b6040516104b091906151af565b348015610751575f80fd5b506104d8610760366004615127565b5f918252600c602090815260408084206001600160a01b039390931684529190529020546001600160801b0316151590565b34801561079d575f80fd5b506104086107ac366004614b1f565b611478565b3480156107bc575f80fd5b506104f86107cb36600461509e565b611489565b3480156107db575f80fd5b506104f86107ea366004614f31565b60126020525f908152604090205481565b348015610806575f80fd5b506105586114a6565b34801561081a575f80fd5b506105c57f000000000000000000000000000000000000000000000000000000000000000081565b34801561084d575f80fd5b5061086161085c366004614b1f565b611550565b604080519384526020840192909252908201526060016104b0565b348015610887575f80fd5b506040805180820190915260018152603160f81b6020820152610558565b3480156108b0575f80fd5b506104f86108bf3660046151c9565b611581565b3480156108cf575f80fd5b506104086108de3660046151ea565b6115a8565b3480156108ee575f80fd5b506105c57f000000000000000000000000000000000000000000000000000000000000000081565b348015610921575f80fd5b506104f8610930366004615212565b6117bf565b348015610940575f80fd5b506104f861094f366004614b1f565b611807565b34801561095f575f80fd5b5061040861096e366004614b1f565b6118a4565b34801561097e575f80fd5b5061040861098d366004614b1f565b6118b5565b34801561099d575f80fd5b506104086109ac36600461528f565b6118c6565b3480156109bc575f80fd5b506104f86109cb3660046152f5565b61194d565b3480156109db575f80fd5b506104f86109ea36600461533e565b611993565b3480156109fa575f80fd5b50610a036119ad565b6040516104b097969594939291906153ea565b348015610a21575f80fd5b506104f8610a30366004614f31565b60136020525f908152604090205481565b348015610a4c575f80fd5b50610408610a5b36600461544b565b611a33565b348015610a6b575f80fd5b50610a74611ba5565b60405165ffffffffffff90911681526020016104b0565b348015610a96575f80fd5b5060646104f8565b348015610aa9575f80fd5b506104f8610ab8366004615489565b611c1c565b348015610ac8575f80fd5b506104f8611c32565b348015610adc575f80fd5b506104f8600e5481565b348015610af1575f80fd5b50610408610b00366004614f31565b611c4b565b348015610b10575f80fd5b506104f8610b1f3660046154db565b611c5c565b348015610b2f575f80fd5b50610408610b3e366004615548565b611fb6565b348015610b4e575f80fd5b506104f861231d565b348015610b62575f80fd5b50610607610b71366004615596565b63bc197c8160e01b95945050505050565b348015610b8d575f80fd5b50610408610b9c36600461544b565b612327565b348015610bac575f80fd5b506104f860115481565b348015610bc1575f80fd5b506104f8610bd0366004614b1f565b5f90815260036020526040902054600160c81b900464ffffffffff1690565b348015610bfa575f80fd5b506104f8610c093660046151ea565b601560209081525f928352604080842090915290825290205481565b610408610c3336600461561e565b61236e565b348015610c43575f80fd5b50610408610c5236600461544b565b612387565b348015610c62575f80fd5b506104f8610c7136600461509e565b6124ed565b348015610c81575f80fd5b506104f8612526565b348015610c95575f80fd5b506104f8610ca4366004614b1f565b60106020525f908152604090205481565b348015610cc0575f80fd5b50610558612531565b348015610cd4575f80fd5b506104f87f150214d74d59b7d1e90c73fc22ef3d991dd0a76b046543d4d80ab92d2a50328f81565b348015610d07575f80fd5b506106cf610d16366004614f31565b600d6020525f90815260409020546001600160801b031681565b348015610d3b575f80fd5b506104f8610d4a366004614b1f565b612551565b348015610d5a575f80fd5b50610408610d6936600461544b565b6125dd565b348015610d79575f80fd5b50610408610d88366004614b1f565b612620565b348015610d98575f80fd5b506104f8610da73660046151ea565b612631565b348015610db7575f80fd5b506104f8610dc6366004614b1f565b612650565b348015610dd6575f80fd5b50610408610de5366004614b1f565b612722565b348015610df5575f80fd5b50610607610e0436600461565b565b63f23a6e6160e01b95945050505050565b348015610e20575f80fd5b50610408610e2f3660046151ea565b612733565b348015610e3f575f80fd5b506104f8610e4e366004614b1f565b6127d2565b348015610e5e575f80fd5b506009546105c5906001600160a01b031681565b5f63288ace0360e11b6318df743f60e31b63bf26d89760e01b6379dd796f60e01b6001600160e01b03198616821480610eb757506001600160e01b0319868116908216145b80610ece57506001600160e01b0319868116908516145b80610ee957506001600160e01b03198616630271189760e51b145b80610f0457506301ffc9a760e01b6001600160e01b03198716145b9695505050505050565b5f610f1f8989898989898989612809565b9998505050505050505050565b610f34612a68565b610f3d81612ab3565b50565b606060028054610f4f906156ba565b80601f0160208091040260200160405190810160405280929190818152602001828054610f7b906156ba565b8015610fc65780601f10610f9d57610100808354040283529160200191610fc6565b820191905f5260205f20905b815481529060010190602001808311610fa957829003601f168201915b5050505050905090565b60608584141580610fe15750858214155b15610fff57604051630a1eb2d160e11b815260040160405180910390fd5b856001600160401b0381111561101757611017614bb1565b604051908082528060200260200182016040528015611040578160200160208202803683370190505b5090505f5b868110156110ec576110bf888883818110611062576110626156f2565b90506020020160208101906110779190614f31565b878784818110611089576110896156f2565b905060200281019061109b9190615706565b8686858181106110ad576110ad6156f2565b9050602002810190610b1f9190615725565b8282815181106110d1576110d16156f2565b60209081029190910101526110e58161577b565b9050611045565b509695505050505050565b5f80611105868686866124ed565b90505f61111182611307565b905060048160078111156111275761112761519b565b1480611144575060058160078111156111425761114261519b565b145b61119a5760405162461bcd60e51b815260206004820152602160248201527f476f7665726e6f723a2070726f706f73616c206e6f74207375636365737366756044820152601b60fa1b60648201526084016103ff565b5f8281526003602052604090819020805460ff60f01b1916600160f01b179055517f712ae1383f79ac853f8d882153778e0260ef8f03b504e2866e0593e04d2b291f906111ea9084815260200190565b60405180910390a16111ff8288888888612bae565b61120c8288888888612c39565b6112198288888888612bae565b5095945050505050565b5f90815260036020526040902054600160a01b900464ffffffffff1690565b5f828152600c602090815260408083206001600160a01b03851684529091529020546001600160801b03165b92915050565b604080517f150214d74d59b7d1e90c73fc22ef3d991dd0a76b046543d4d80ab92d2a50328f602082015290810186905260ff851660608201525f9081906112e0906112d8906080015b60405160208183030381529060405280519060200120612d32565b868686612d5e565b90506112fc87828860405180602001604052805f815250612d7a565b979650505050505050565b5f8181526003602052604081208054600160f01b900460ff161561132e5750600792915050565b8054600160f81b900460ff16156113485750600292915050565b5f61135284611223565b9050805f036113a35760405162461bcd60e51b815260206004820152601d60248201527f476f7665726e6f723a20756e6b6e6f776e2070726f706f73616c20696400000060448201526064016103ff565b5f6113ac611ba5565b65ffffffffffff16905080821015806113d257505f828152601060205260409020544311155b156113e157505f949350505050565b6113ea85612da4565b156113fa57506004949350505050565b61140385612dd2565b1561141357506003949350505050565b5f85815260036020526040902054600160c81b900464ffffffffff168181106114425750600195945050505050565b61144b86612deb565b801561145b575061145b86612e3c565b1561146c5750600395945050505050565b50600495945050505050565b611480612a68565b610f3d81612e70565b5f60405160016205739760e41b0319815260040160405180910390fd5b60095460408051634bf5d7e960e01b815290516060926001600160a01b031691634bf5d7e9916004808301925f9291908290030181865afa92505050801561150f57506040513d5f823e601f3d908101601f1916820160405261150c9190810190615793565b60015b61154b575060408051808201909152601d81527f6d6f64653d626c6f636b6e756d6265722666726f6d3d64656661756c74000000602082015290565b919050565b5f908152600b6020526040902080546001909101546001600160801b0380831693600160801b909304811692911690565b5f803390506115a084828560405180602001604052805f815250612d7a565b949350505050565b6001600160a01b0382165f9081526015602090815260408083208484529091528120549080806115d88685612ef4565b91945092509050600360408051602081019091525f905261161e6107348585857fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4706124ed565b600781111561162f5761162f61519b565b1461164d57604051630fd1155b60e41b815260040160405180910390fd5b5f8690505f6116cc826040518061014001604052808b6001600160a01b031681526020015f815260200160405180602001604052805f81525081526020015f600181111561169d5761169d61519b565b81525f6020820181905260408201819052606082018190526080820181905260a082015260c0018a9052613016565b604051631f60ca5d60e21b8152306004820152602481018290529091506001600160a01b03831690637d832974906044016020604051808303815f875af1158015611719573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061173d91906157fb565b60010361176057604051635c0abc6d60e11b8152600481018290526024016103ff565b60405163d4d9bdcd60e01b8152600481018290526001600160a01b0383169063d4d9bdcd906024015f604051808303815f87803b15801561179f575f80fd5b505af11580156117b1573d5f803e3d5ffd5b505050505050505050505050565b5f803390506112fc87828888888080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152508a92506130bd915050565b600a80545f91829061181a600184615812565b8154811061182a5761182a6156f2565b5f9182526020918290206040805180820190915291015463ffffffff8116808352600160201b9091046001600160e01b0316928201929092529150841061187f57602001516001600160e01b03169392505050565b61189361188b85613214565b600a9061327c565b6001600160e01b0316949350505050565b6118ac612a68565b610f3d81613329565b6118bd612a68565b610f3d81613367565b828181146118e75760405163a669fc0560e01b815260040160405180910390fd5b5f5b8181101561194557611934868683818110611906576119066156f2565b9050602002013585858481811061191f5761191f6156f2565b90506020020160208101906108bf9190615825565b5061193e8161577b565b90506118e9565b505050505050565b5f80339050610f0486828787878080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250612d7a92505050565b5f60405163098bb82f60e01b815260040160405180910390fd5b5f606080828080836119df7f0000000000000000000000000000000000000000000000000000000000000000836133a8565b611a0a7f000000000000000000000000000000000000000000000000000000000000000060016133a8565b604080515f80825260208201909252600f60f81b9b939a50919850469750309650945092509050565b611a3b612a68565b5f5b81811015611ba05760135f848484818110611a5a57611a5a6156f2565b9050602002016020810190611a6f9190614f31565b6001600160a01b03166001600160a01b031681526020019081526020015f20545f03611ae157828282818110611aa757611aa76156f2565b9050602002016020810190611abc9190614f31565b604051630ee1e0b360e41b81526001600160a01b0390911660048201526024016103ff565b60135f848484818110611af657611af66156f2565b9050602002016020810190611b0b9190614f31565b6001600160a01b03166001600160a01b031681526020019081526020015f205f90557f3f75b27f9b6f643d57ab0006da862b383ffc26813fc08462f2d56270aaa950c0838383818110611b6057611b606156f2565b9050602002016020810190611b759190614f31565b6040516001600160a01b03909116815260200160405180910390a1611b998161577b565b9050611a3d565b505050565b600954604080516324776b7d60e21b815290515f926001600160a01b0316916391ddadf49160048083019260209291908290030181865afa925050508015611c0a575060408051601f3d908101601f19168201909252611c079181019061583e565b60015b61154b57611c1743613451565b905090565b5f611c288484846134b7565b90505b9392505050565b5f611c3d600a61352a565b6001600160e01b0316905090565b611c53612a68565b610f3d81613561565b5f611c66856135bb565b6001611c786080860160608701615871565b6001811115611c8957611c8961519b565b148015611cc6575060135f611ca16020870187614f31565b6001600160a01b03166001600160a01b031681526020019081526020015f2054600114155b15611cfd57611cd86020850185614f31565b6040516317645e7d60e21b81526001600160a01b0390911660048201526024016103ff565b5f8590505f816001600160a01b031663e75235b86040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d3e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611d6291906157fb565b9050611da485858080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152508592506135f1915050565b6001600160a01b0387165f9081526015602090815260408083206101208a0135845290915290205415611dea57604051639e01d15b60e01b815260040160405180910390fd5b816001600160a01b031663affed0e06040518163ffffffff1660e01b81526004016020604051808303815f875af1158015611e27573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e4b91906157fb565b8661012001351015611e705760405163d9c6386f60e01b815260040160405180910390fd5b5f611e8383611e7e8961588a565b613016565b90506001600160a01b0383166312fb68e082611ea260408b018b615725565b8a8a886040518763ffffffff1660e01b8152600401611ec69695949392919061596e565b5f6040518083038186803b158015611edc575f80fd5b505afa158015611eee573d5f803e3d5ffd5b505050505f805f611eff8b85612ef4565b925092509250611f2083838360405180602001604052805f8152508f613658565b96508360155f8d6001600160a01b03166001600160a01b031681526020019081526020015f205f8c610120013581526020019081526020015f208190555086848c6001600160a01b03167f5ed3fb2763971f1f5e3d1e6f215e92ebe28160b512c2da07f4b12a46021adb0b8d6101200135604051611fa091815260200190565b60405180910390a4505050505050949350505050565b611fbf836135bb565b5f8390505f816001600160a01b031663e75235b86040518163ffffffff1660e01b8152600401602060405180830381865afa158015612000573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061202491906157fb565b905061206684848080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152508592506135f1915050565b5f826001600160a01b031663affed0e06040518163ffffffff1660e01b81526004016020604051808303815f875af11580156120a4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906120c891906157fb565b90505f836001600160a01b031663d8d11f78885f805f805f805f8b6040518a63ffffffff1660e01b8152600401612107999897969594939291906159c2565b602060405180830381865afa158015612122573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061214691906157fb565b6040516297db4760e51b81529091506001600160a01b038516906312fb68e09061217a9084908a908a908990600401615a31565b5f6040518083038186803b158015612190575f80fd5b505afa1580156121a2573d5f803e3d5ffd5b5050506001600160a01b0388165f908152601560209081526040808320868452909152812054915081156122bd575f805f6121dd8c86612ef4565b60408051602081019091525f90529194509250905061221e8383837fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4706124ed565b93505f61222a85611307565b905060028160078111156122405761224061519b565b0361225e576040516303ff04cd60e51b815260040160405180910390fd5b5f858152600360205260409081902080546001600160f81b0316600160f81b179055517f789cf55be980739dad1d0699b93b58e806b51c9d96619bfa8fe0a28abaa7b30c906122b09087815260200190565b60405180910390a1505050505b60405163d4d9bdcd60e01b8152600481018490526001600160a01b0387169063d4d9bdcd906024015f604051808303815f87803b1580156122fc575f80fd5b505af115801561230e573d5f803e3d5ffd5b50505050505050505050505050565b5f611c1760085490565b61232f612a68565b61236a8282808060200260200160405190810160405280939291908181526020018383602002808284375f92019190915250613a1b92505050565b5050565b604051635adddc5560e01b815260040160405180910390fd5b61238f612a68565b5f5b81811015611ba05760125f8484848181106123ae576123ae6156f2565b90506020020160208101906123c39190614f31565b6001600160a01b03166001600160a01b031681526020019081526020015f20545f03612435578282828181106123fb576123fb6156f2565b90506020020160208101906124109190614f31565b60405163138c2add60e01b81526001600160a01b0390911660048201526024016103ff565b60125f84848481811061244a5761244a6156f2565b905060200201602081019061245f9190614f31565b6001600160a01b03166001600160a01b031681526020019081526020015f205f9055828282818110612493576124936156f2565b90506020020160208101906124a89190614f31565b6001600160a01b03167fe710dd5e6adb3eb2ba468162b8ead4d66e26d337074a5067caab50b676925ab860405160405180910390a26124e68161577b565b9050612391565b5f848484846040516020016125059493929190615af2565b60408051601f19818403018152919052805160209091012095945050505050565b5f611c3d600f61352a565b6060604051806080016040528060498152602001615e7860499139905090565b600f80545f918290612564600184615812565b81548110612574576125746156f2565b5f9182526020918290206040805180820190915291015463ffffffff8116808352600160201b9091046001600160e01b031692820192909252915084106125c957602001516001600160e01b03169392505050565b6118936125d585613214565b600f9061327c565b6125e5612a68565b61236a8282808060200260200160405190810160405280939291908181526020018383602002808284375f92019190915250613b5e92505050565b612628612a68565b610f3d81613c91565b5f611c2b838361264b60408051602081019091525f815290565b6134b7565b5f81158061265e5750428210155b1561267c5760405163749c2c6d60e01b815260040160405180910390fd5b606461268783612551565b604051630981b24d60e41b8152600481018590527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063981b24d090602401602060405180830381865afa1580156126ea573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061270e91906157fb565b6127189190615b3c565b61126e9190615b67565b61272a612a68565b610f3d81613d31565b61273b612a68565b6001600160a01b0382165f9081526014602052604090205481810361277357604051631a73bda360e11b815260040160405180910390fd5b6001600160a01b0383165f818152601460209081526040918290208590558151928352820183905281018390527fad48c7f5802308fb2675c0f699237e1a6d39e5170f647470b1d8ed2803262e599060600160405180910390a1505050565b5f8115806127e05750428210155b156127fe5760405163749c2c6d60e01b815260040160405180910390fd5b606461268783611807565b5f84516040148061281957508451155b6128975760405162461bcd60e51b815260206004820152604360248201527f476f7665726e6f72436f756e74696e674672616374696f6e616c3a20696e766160448201527f6c696420706172616d7320666f72207369676e61747572652d626173656420766064820152626f746560e81b608482015260a4016103ff565b5f6129166112d87fb3b3f3b703cd84ce352197dcff232b1b5d3cfb2025ce47cf04742d0651f1af888c8c8c8c6040516128d1929190615b86565b60405180910390208b805190602001206040516020016112bd959493929190948552602085019390935260ff9190911660408401526060830152608082015260a00190565b90508551604003612a17576040868101516001600160a01b0383165f908152600d60205291909120546001600160801b03918216911681146129c05760405162461bcd60e51b815260206004820152603b60248201527f476f7665726e6f72436f756e74696e674672616374696f6e616c3a207369676e60448201527f61747572652068617320616c7265616479206265656e2075736564000000000060648201526084016103ff565b6001600160a01b0382165f908152600d6020526040812080546001600160801b0316916129ec83615b95565b91906101000a8154816001600160801b0302191690836001600160801b031602179055505060308752505b612a5a8a828b8b8b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152508d92506130bd915050565b9a9950505050505050505050565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614612ab1576040516362c4ffa560e11b815260040160405180910390fd5b565b6064811115612b365760405162461bcd60e51b815260206004820152604360248201527f476f7665726e6f72566f74657351756f72756d4672616374696f6e3a2071756f60448201527f72756d4e756d657261746f72206f7665722071756f72756d44656e6f6d696e616064820152623a37b960e91b608482015260a4016103ff565b5f612b3f611c32565b9050612b6e612b5c612b4f611ba5565b65ffffffffffff16613214565b612b6584613d72565b600a9190613dda565b505060408051828152602081018490527f0553476bf02ef2726e8ce5ced78d63e26e602e4a2257b1f559418e24b463399791015b60405180910390a15050565b612c32565b845181101561194557306001600160a01b0316858281518110612bd857612bd86156f2565b60200260200101516001600160a01b031603612c2257612c22838281518110612c0357612c036156f2565b6020026020010151805190602001206004613df490919063ffffffff16565b612c2b8161577b565b9050612bb3565b5050505050565b5f604051806060016040528060278152602001615e516027913990505f5b8551811015612d29575f80878381518110612c7457612c746156f2565b60200260200101516001600160a01b0316878481518110612c9757612c976156f2565b6020026020010151878581518110612cb157612cb16156f2565b6020026020010151604051612cc69190615bba565b5f6040518083038185875af1925050503d805f8114612d00576040519150601f19603f3d011682016040523d82523d5f602084013e612d05565b606091505b5091509150612d15828286613e2f565b50505080612d229061577b565b9050612c57565b50505050505050565b5f61126e612d3e613e48565b8360405161190160f01b8152600281019290925260228201526042902090565b5f805f612d6d87878787613f71565b915091506112198161402e565b5f612d9b85858585612d9660408051602081019091525f815290565b6130bd565b95945050505050565b5f80612daf83611550565b509150505f612dbd84611223565b9050612dc881612650565b9091119392505050565b5f80612ddd83611550565b505090505f612dbd84611223565b5f805f80612df885611550565b9250925092505f828411612e0c5782612e0e565b835b90505f612e1a87611223565b9050612e268383615bcb565b612e2f826127d2565b1115979650505050505050565b5f805f612e4884611550565b5091509150815f148015612e5a575080155b15612e6857505f9392505050565b111592915050565b6064811115612e91576040516271e29960e21b815260040160405180910390fd5b5f612e9a612526565b9050612ebc612eaa612b4f611ba5565b612eb384613d72565b600f9190613dda565b505060408051828152602081018490527fdd2b8b2d874e19a344cba53b9fb534ea748ef117ed4b75c67569a794864541939101612ba2565b6040805160018082528183019092526060918291829160208083019080368337505060408051600180825281830190925292955090506020808301908036833701905050604080516001808252818301909252919350816020015b6060815260200190600190039081612f4f57905050905084835f81518110612f7957612f796156f2565b60200260200101906001600160a01b031690816001600160a01b0316815250505f825f81518110612fac57612fac6156f2565b60209081029190910181019190915260408051602480820188905282518083039091018152604490910190915290810180516001600160e01b031663d4d9bdcd60e01b179052815182905f90613004576130046156f2565b60200260200101819052509250925092565b5f826001600160a01b031663d8d11f78835f015184602001518560400151866060015187608001518860a001518960c001518a60e001518b61010001518c61012001516040518b63ffffffff1660e01b815260040161307e9a99989796959493929190615bde565b602060405180830381865afa158015613099573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c2b91906157fb565b5f85815260036020526040812060016130d588611307565b60078111156130e6576130e661519b565b1461313f5760405162461bcd60e51b815260206004820152602360248201527f476f7665726e6f723a20766f7465206e6f742063757272656e746c792061637460448201526269766560e81b60648201526084016103ff565b80545f9061315d908890600160a01b900464ffffffffff16866134b7565b905061316c8888888488614177565b83515f036131c057866001600160a01b03167fb8e138887d0aa13bab447e82de9d5c1777041ecd21ca36ba824ff1e6c07ddda4898884896040516131b39493929190615c53565b60405180910390a26112fc565b866001600160a01b03167fe2babfbac5889a709b63bb7f598b324e08bc5a4fb9ec647fb3cbc9ec07eb87128988848989604051613201959493929190615c7a565b60405180910390a2979650505050505050565b5f63ffffffff8211156132785760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203360448201526532206269747360d01b60648201526084016103ff565b5090565b81545f90818160058111156132d6575f61329584614292565b61329f9085615812565b5f8881526020902090915081015463ffffffff90811690871610156132c6578091506132d4565b6132d1816001615bcb565b92505b505b5f6132e387878585614376565b9050801561331d57613307876132fa600184615812565b5f91825260209091200190565b54600160201b90046001600160e01b03166112fc565b5f979650505050505050565b600e80549082905560408051828152602081018490527fd3c1cdfd662fbb8e44190410d3a0d46855746182cb8d1e5e41bc84f5afecef4f9101612ba2565b60065460408051918252602082018390527fc565b045403dc03c2eea82b81a0465edad9e2e7fc4d97e11421c209da93d7a93910160405180910390a1600655565b606060ff83146133c2576133bb836143d1565b905061126e565b8180546133ce906156ba565b80601f01602080910402602001604051908101604052809291908181526020018280546133fa906156ba565b80156134455780601f1061341c57610100808354040283529160200191613445565b820191905f5260205f20905b81548152906001019060200180831161342857829003601f168201915b5050505050905061126e565b5f65ffffffffffff8211156132785760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203460448201526538206269747360d01b60648201526084016103ff565b600954604051630748d63560e31b81526001600160a01b038581166004830152602482018590525f921690633a46b1a890604401602060405180830381865afa158015613506573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c2891906157fb565b80545f90801561355957613543836132fa600184615812565b54600160201b90046001600160e01b0316611c2b565b5f9392505050565b600980546001600160a01b038381166001600160a01b031983168117909355604080519190921680825260208201939093527fc255828f3e19c78de5df3dd5b6706d49bd5dd58e76275f97bd699878700995209101612ba2565b6001600160a01b0381165f908152601260205260408120549003610f3d576040516282b42960e81b815260040160405180910390fd5b5f805f5b83811015612c325760418082028601602081015191015160ff169350915060018390036136485781306001600160a01b03821603613646576040516308fbb1df60e31b815260040160405180910390fd5b505b6136518161577b565b90506135f5565b5f61366c86868686805190602001206124ed565b9050845186511461368f5760405162461bcd60e51b81526004016103ff90615cbf565b83518651146136b05760405162461bcd60e51b81526004016103ff90615cbf565b5f8651116137005760405162461bcd60e51b815260206004820152601860248201527f476f7665726e6f723a20656d7074792070726f706f73616c000000000000000060448201526064016103ff565b5f81815260036020526040902054600160a01b900464ffffffffff16156137735760405162461bcd60e51b815260206004820152602160248201527f476f7665726e6f723a2070726f706f73616c20616c72656164792065786973746044820152607360f81b60648201526084016103ff565b335f61377e60065490565b613786611ba5565b65ffffffffffff166137989190615bcb565b6040516396d6d2fb60e01b8152600481018290529091505f906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906396d6d2fb906024015f604051808303815f87803b1580156137fc575f80fd5b505af192505050801561380d575060015b5060118290556001600160a01b0385165f908152601460205260408120549081810361383b5760075461383d565b815b90506138498185615bcb565b925050506040518060a00160405280846001600160a01b031681526020018364ffffffffff1681526020018264ffffffffff1681526020015f151581526020015f151581525060035f8681526020019081526020015f205f820151815f015f6101000a8154816001600160a01b0302191690836001600160a01b031602179055506020820151815f0160146101000a81548164ffffffffff021916908364ffffffffff1602179055506040820151815f0160196101000a81548164ffffffffff021916908364ffffffffff1602179055506060820151815f01601e6101000a81548160ff0219169083151502179055506080820151815f01601f6101000a81548160ff021916908315150217905550905050600e54436139699190615bcb565b5f8381526010602052604090205588517f7d84a6263ae0d98d3329bd7b46bb4e8d6f98cd35a7adb45c274c8b7fd5ebd5e090859085908c908c906001600160401b038111156139ba576139ba614bb1565b6040519080825280602002602001820160405280156139ed57816020015b60608152602001906001900390816139d85790505b508c88888e604051613a0799989796959493929190615d00565b60405180910390a150505095945050505050565b5f5b815181101561236a5760135f838381518110613a3b57613a3b6156f2565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f2054600103613aad57818181518110613a7c57613a7c6156f2565b60200260200101516040516394369fd360e01b81526004016103ff91906001600160a01b0391909116815260200190565b600160135f848481518110613ac457613ac46156f2565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f20819055507ff48d3b938905d7162ca91551f61d4d458d43159e04847eb28ed7d94fbdb3bc2f828281518110613b2257613b226156f2565b6020026020010151604051613b4691906001600160a01b0391909116815260200190565b60405180910390a1613b578161577b565b9050613a1d565b5f5b815181101561236a5760125f838381518110613b7e57613b7e6156f2565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f2054600103613bf057818181518110613bbf57613bbf6156f2565b6020026020010151604051630b58d77560e41b81526004016103ff91906001600160a01b0391909116815260200190565b600160125f848481518110613c0757613c076156f2565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f2081905550818181518110613c4457613c446156f2565b60200260200101516001600160a01b03167f4149776fc93a7a68120df1638269488e1915cd17b09b0ab741e6bf768a38c46d60405160405180910390a2613c8a8161577b565b9050613b60565b5f8111613cf05760405162461bcd60e51b815260206004820152602760248201527f476f7665726e6f7253657474696e67733a20766f74696e6720706572696f6420604482015266746f6f206c6f7760c81b60648201526084016103ff565b60075460408051918252602082018390527f7e3f7f0708a84de9203036abaa450dccc85ad5ff52f78c170f3edb55cf5e8828910160405180910390a1600755565b60085460408051918252602082018390527fccb45da8d5717e6c4544694297c4ba5cf151d455c9bb0ed4fc7a38411bc05461910160405180910390a1600855565b5f6001600160e01b038211156132785760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20326044820152663234206269747360c81b60648201526084016103ff565b5f80613de785858561440e565b915091505b935093915050565b8154600160801b90819004600f0b5f818152600180860160205260409091209390935583546001600160801b03908116939091011602179055565b60608315613e3e575081611c2b565b611c2b83836145a9565b5f306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148015613ea057507f000000000000000000000000000000000000000000000000000000000000000046145b15613eca57507f000000000000000000000000000000000000000000000000000000000000000090565b611c17604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201527f0000000000000000000000000000000000000000000000000000000000000000918101919091527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a08201525f9060c00160405160208183030381529060405280519060200120905090565b5f807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0831115613fa657505f90506003614025565b604080515f8082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015613ff7573d5f803e3d5ffd5b5050604051601f1901519150506001600160a01b03811661401f575f60019250925050614025565b91505f90505b94509492505050565b5f8160048111156140415761404161519b565b036140495750565b600181600481111561405d5761405d61519b565b036140aa5760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e6174757265000000000000000060448201526064016103ff565b60028160048111156140be576140be61519b565b0361410b5760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e6774680060448201526064016103ff565b600381600481111561411f5761411f61519b565b03610f3d5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b60648201526084016103ff565b5f82116141d45760405162461bcd60e51b815260206004820152602560248201527f476f7665726e6f72436f756e74696e674672616374696f6e616c3a206e6f2077604482015264195a59da1d60da1b60648201526084016103ff565b5f858152600c602090815260408083206001600160a01b03881684529091529020546001600160801b031682116142615760405162461bcd60e51b815260206004820152602b60248201527f476f7665726e6f72436f756e74696e674672616374696f6e616c3a20616c6c2060448201526a1dd95a59da1d0818d85cdd60aa1b60648201526084016103ff565b5f61426b836145d3565b905081515f03614286576142818686838761463b565b611945565b61194586868385614815565b5f815f036142a157505f919050565b5f60016142ad84614a36565b901c6001901b905060018184816142c6576142c6615b53565b048201901c905060018184816142de576142de615b53565b048201901c905060018184816142f6576142f6615b53565b048201901c9050600181848161430e5761430e615b53565b048201901c9050600181848161432657614326615b53565b048201901c9050600181848161433e5761433e615b53565b048201901c9050600181848161435657614356615b53565b048201901c9050611c2b8182858161437057614370615b53565b04614ac9565b5f5b818310156143c9575f61438b8484614ade565b5f8781526020902090915063ffffffff86169082015463ffffffff1611156143b5578092506143c3565b6143c0816001615bcb565b93505b50614378565b509392505050565b60605f6143dd83614af8565b6040805160208082528183019092529192505f91906020820181803683375050509182525060208101929092525090565b82545f9081908015614551575f61442a876132fa600185615812565b60408051808201909152905463ffffffff808216808452600160201b9092046001600160e01b0316602084015291925090871610156144ab5760405162461bcd60e51b815260206004820152601b60248201527f436865636b706f696e743a2064656372656173696e67206b657973000000000060448201526064016103ff565b805163ffffffff8088169116036144f357846144cc886132fa600186615812565b80546001600160e01b0392909216600160201b0263ffffffff909216919091179055614541565b6040805180820190915263ffffffff80881682526001600160e01b0380881660208085019182528b54600181018d555f8d81529190912094519151909216600160201b029216919091179101555b602001519250839150613dec9050565b50506040805180820190915263ffffffff80851682526001600160e01b0380851660208085019182528854600181018a555f8a815291822095519251909316600160201b029190931617920191909155905081613dec565b8151156145b95781518083602001fd5b8060405162461bcd60e51b81526004016103ff9190614d89565b5f6001600160801b038211156132785760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20316044820152663238206269747360c81b60648201526084016103ff565b5f848152600c602090815260408083206001600160a01b03871684529091529020546001600160801b0316156146835760405162461bcd60e51b81526004016103ff90615dd5565b5f848152600c602090815260408083206001600160a01b0387168452909152902080546001600160801b0319166001600160801b03841617905560ff8116614714575f848152600b6020526040812080548492906146eb9084906001600160801b0316615e29565b92506101000a8154816001600160801b0302191690836001600160801b0316021790555061480f565b5f1960ff82160161474f575f848152600b6020526040902080548391906010906146eb908490600160801b90046001600160801b0316615e29565b60011960ff821601614784575f848152600b6020526040812060010180548492906146eb9084906001600160801b0316615e29565b60405162461bcd60e51b815260206004820152605460248201527f476f7665726e6f72436f756e74696e674672616374696f6e616c3a20696e766160448201527f6c696420737570706f72742076616c75652c206d75737420626520696e636c7560648201527364656420696e20566f74655479706520656e756d60601b608482015260a4016103ff565b50505050565b805160301461487b5760405162461bcd60e51b815260206004820152602c60248201527f476f7665726e6f72436f756e74696e674672616374696f6e616c3a20696e766160448201526b6c696420766f74654461746160a01b60648201526084016103ff565b6020818101516040808401515f888152600c85528281206001600160a01b038916825290945290832054608083811c946001600160801b03948516949390911c929091169081836148cc8688615bcb565b6148d69190615bcb565b6148e09190615bcb565b9050866001600160801b031681111561490b5760405162461bcd60e51b81526004016103ff90615dd5565b5f898152600c602090815260408083206001600160a01b038c168452825280832080546001600160801b0319166001600160801b03868116919091179091558c8452600b83529281902081516060808201845282548087168352600160801b900486169482019490945260019190910154909316838201528051918201905281518190614999908990615e29565b6001600160801b031681526020018683602001516149b79190615e29565b6001600160801b031681526020018583604001516149d59190615e29565b6001600160801b039081169091525f9b8c52600b602090815260409c8d90208351918401518316600160801b0291831691909117815591909b01516001909101805491909b166001600160801b031990911617909955505050505050505050565b5f80608083901c15614a4a57608092831c92015b604083901c15614a5c57604092831c92015b602083901c15614a6e57602092831c92015b601083901c15614a8057601092831c92015b600883901c15614a9257600892831c92015b600483901c15614aa457600492831c92015b600283901c15614ab657600292831c92015b600183901c1561126e5760010192915050565b5f818310614ad75781611c2b565b5090919050565b5f614aec6002848418615b67565b611c2b90848416615bcb565b5f60ff8216601f81111561126e57604051632cd44ac360e21b815260040160405180910390fd5b5f60208284031215614b2f575f80fd5b5035919050565b5f60208284031215614b46575f80fd5b81356001600160e01b031981168114611c2b575f80fd5b803560ff8116811461154b575f80fd5b5f8083601f840112614b7d575f80fd5b5081356001600160401b03811115614b93575f80fd5b602083019150836020828501011115614baa575f80fd5b9250929050565b634e487b7160e01b5f52604160045260245ffd5b60405161014081016001600160401b0381118282101715614be857614be8614bb1565b60405290565b604051601f8201601f191681016001600160401b0381118282101715614c1657614c16614bb1565b604052919050565b5f6001600160401b03821115614c3657614c36614bb1565b50601f01601f191660200190565b5f614c56614c5184614c1e565b614bee565b9050828152838383011115614c69575f80fd5b828260208301375f602084830101529392505050565b5f82601f830112614c8e575f80fd5b611c2b83833560208501614c44565b5f805f805f805f8060e0898b031215614cb4575f80fd5b88359750614cc460208a01614b5d565b965060408901356001600160401b0380821115614cdf575f80fd5b614ceb8c838d01614b6d565b909850965060608b0135915080821115614d03575f80fd5b50614d108b828c01614c7f565b945050614d1f60808a01614b5d565b925060a0890135915060c089013590509295985092959890939650565b5f5b83811015614d56578181015183820152602001614d3e565b50505f910152565b5f8151808452614d75816020860160208601614d3c565b601f01601f19169290920160200192915050565b602081525f611c2b6020830184614d5e565b5f8083601f840112614dab575f80fd5b5081356001600160401b03811115614dc1575f80fd5b6020830191508360208260051b8501011115614baa575f80fd5b5f805f805f8060608789031215614df0575f80fd5b86356001600160401b0380821115614e06575f80fd5b614e128a838b01614d9b565b90985096506020890135915080821115614e2a575f80fd5b614e368a838b01614d9b565b90965094506040890135915080821115614e4e575f80fd5b50614e5b89828a01614d9b565b979a9699509497509295939492505050565b5f8151808452602080850194508084015f5b83811015614e9b57815187529582019590820190600101614e7f565b509495945050505050565b602081525f611c2b6020830184614e6d565b80356001600160a01b038116811461154b575f80fd5b5f805f8060808587031215614ee1575f80fd5b614eea85614eb8565b9350614ef860208601614eb8565b92506040850135915060608501356001600160401b03811115614f19575f80fd5b614f2587828801614c7f565b91505092959194509250565b5f60208284031215614f41575f80fd5b611c2b82614eb8565b5f6001600160401b03821115614f6257614f62614bb1565b5060051b60200190565b5f82601f830112614f7b575f80fd5b81356020614f8b614c5183614f4a565b82815260059290921b84018101918181019086841115614fa9575f80fd5b8286015b848110156110ec57614fbe81614eb8565b8352918301918301614fad565b5f82601f830112614fda575f80fd5b81356020614fea614c5183614f4a565b82815260059290921b84018101918181019086841115615008575f80fd5b8286015b848110156110ec578035835291830191830161500c565b5f82601f830112615032575f80fd5b81356020615042614c5183614f4a565b82815260059290921b84018101918181019086841115615060575f80fd5b8286015b848110156110ec5780356001600160401b03811115615082575f8081fd5b6150908986838b0101614c7f565b845250918301918301615064565b5f805f80608085870312156150b1575f80fd5b84356001600160401b03808211156150c7575f80fd5b6150d388838901614f6c565b955060208701359150808211156150e8575f80fd5b6150f488838901614fcb565b94506040870135915080821115615109575f80fd5b5061511687828801615023565b949793965093946060013593505050565b5f8060408385031215615138575f80fd5b8235915061514860208401614eb8565b90509250929050565b5f805f805f60a08688031215615165575f80fd5b8535945061517560208701614b5d565b935061518360408701614b5d565b94979396509394606081013594506080013592915050565b634e487b7160e01b5f52602160045260245ffd5b60208101600883106151c3576151c361519b565b91905290565b5f80604083850312156151da575f80fd5b8235915061514860208401614b5d565b5f80604083850312156151fb575f80fd5b61520483614eb8565b946020939093013593505050565b5f805f805f60808688031215615226575f80fd5b8535945061523660208701614b5d565b935060408601356001600160401b0380821115615251575f80fd5b61525d89838a01614b6d565b90955093506060880135915080821115615275575f80fd5b5061528288828901614c7f565b9150509295509295909350565b5f805f80604085870312156152a2575f80fd5b84356001600160401b03808211156152b8575f80fd5b6152c488838901614d9b565b909650945060208701359150808211156152dc575f80fd5b506152e987828801614d9b565b95989497509550505050565b5f805f8060608587031215615308575f80fd5b8435935061531860208601614b5d565b925060408501356001600160401b03811115615332575f80fd5b6152e987828801614b6d565b5f805f8060808587031215615351575f80fd5b84356001600160401b0380821115615367575f80fd5b61537388838901614f6c565b95506020870135915080821115615388575f80fd5b61539488838901614fcb565b945060408701359150808211156153a9575f80fd5b6153b588838901615023565b935060608701359150808211156153ca575f80fd5b508501601f810187136153db575f80fd5b614f2587823560208401614c44565b60ff60f81b8816815260e060208201525f61540860e0830189614d5e565b828103604084015261541a8189614d5e565b606084018890526001600160a01b038716608085015260a0840186905283810360c08501529050612a5a8185614e6d565b5f806020838503121561545c575f80fd5b82356001600160401b03811115615471575f80fd5b61547d85828601614d9b565b90969095509350505050565b5f805f6060848603121561549b575f80fd5b6154a484614eb8565b92506020840135915060408401356001600160401b038111156154c5575f80fd5b6154d186828701614c7f565b9150509250925092565b5f805f80606085870312156154ee575f80fd5b6154f785614eb8565b935060208501356001600160401b0380821115615512575f80fd5b908601906101408289031215615526575f80fd5b9093506040860135908082111561553b575f80fd5b506152e987828801614b6d565b5f805f6040848603121561555a575f80fd5b61556384614eb8565b925060208401356001600160401b0381111561557d575f80fd5b61558986828701614b6d565b9497909650939450505050565b5f805f805f60a086880312156155aa575f80fd5b6155b386614eb8565b94506155c160208701614eb8565b935060408601356001600160401b03808211156155dc575f80fd5b6155e889838a01614fcb565b945060608801359150808211156155fd575f80fd5b61560989838a01614fcb565b93506080880135915080821115615275575f80fd5b5f805f8060608587031215615631575f80fd5b61563a85614eb8565b93506020850135925060408501356001600160401b03811115615332575f80fd5b5f805f805f60a0868803121561566f575f80fd5b61567886614eb8565b945061568660208701614eb8565b9350604086013592506060860135915060808601356001600160401b038111156156ae575f80fd5b61528288828901614c7f565b600181811c908216806156ce57607f821691505b6020821081036156ec57634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52603260045260245ffd5b5f823561013e1983360301811261571b575f80fd5b9190910192915050565b5f808335601e1984360301811261573a575f80fd5b8301803591506001600160401b03821115615753575f80fd5b602001915036819003821315614baa575f80fd5b634e487b7160e01b5f52601160045260245ffd5b5f6001820161578c5761578c615767565b5060010190565b5f602082840312156157a3575f80fd5b81516001600160401b038111156157b8575f80fd5b8201601f810184136157c8575f80fd5b80516157d6614c5182614c1e565b8181528560208385010111156157ea575f80fd5b612d9b826020830160208601614d3c565b5f6020828403121561580b575f80fd5b5051919050565b8181038181111561126e5761126e615767565b5f60208284031215615835575f80fd5b611c2b82614b5d565b5f6020828403121561584e575f80fd5b815165ffffffffffff81168114611c2b575f80fd5b80356002811061154b575f80fd5b5f60208284031215615881575f80fd5b611c2b82615863565b5f610140823603121561589b575f80fd5b6158a3614bc5565b6158ac83614eb8565b81526020830135602082015260408301356001600160401b038111156158d0575f80fd5b6158dc36828601614c7f565b6040830152506158ee60608401615863565b60608201526080830135608082015260a083013560a082015260c083013560c082015261591d60e08401614eb8565b60e0820152610100615930818501614eb8565b9082015261012092830135928101929092525090565b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b868152608060208201525f615987608083018789615946565b828103604084015261599a818688615946565b915050826060830152979650505050505050565b600281106159be576159be61519b565b9052565b6001600160a01b038a81168252602082018a9052610140604083018190525f838201526101608301916159f8606085018c6159ae565b60808401999099525060a082019690965260c081019490945291851660e084015290931661010082015261012001919091529392505050565b848152608060208201525f608082015260a060408201525f615a5760a083018587615946565b905082606083015295945050505050565b5f8151808452602080850194508084015f5b83811015614e9b5781516001600160a01b031687529582019590820190600101615a7a565b5f81518084526020808501808196508360051b810191508286015f5b85811015615ae5578284038952615ad3848351614d5e565b98850198935090840190600101615abb565b5091979650505050505050565b608081525f615b046080830187615a68565b8281036020840152615b168187614e6d565b90508281036040840152615b2a8186615a9f565b91505082606083015295945050505050565b808202811582820484141761126e5761126e615767565b634e487b7160e01b5f52601260045260245ffd5b5f82615b8157634e487b7160e01b5f52601260045260245ffd5b500490565b818382375f9101908152919050565b5f6001600160801b03808316818103615bb057615bb0615767565b6001019392505050565b5f825161571b818460208701614d3c565b8082018082111561126e5761126e615767565b6001600160a01b038b81168252602082018b9052610140604083018190525f91615c0a8483018d614d5e565b9250615c19606085018c6159ae565b60808401999099525060a082019690965260c081019490945291851660e08401529093166101008201526101200191909152949350505050565b84815260ff84166020820152826040820152608060608201525f610f046080830184614d5e565b85815260ff8516602082015283604082015260a060608201525f615ca160a0830185614d5e565b8281036080840152615cb38185614d5e565b98975050505050505050565b60208082526021908201527f476f7665726e6f723a20696e76616c69642070726f706f73616c206c656e67746040820152600d60fb1b606082015260800190565b5f6101208b8352602060018060a01b038c1681850152816040850152615d288285018c615a68565b91508382036060850152615d3c828b614e6d565b915083820360808501528189518084528284019150828160051b850101838c015f5b83811015615d8c57601f19878403018552615d7a838351614d5e565b94860194925090850190600101615d5e565b505086810360a0880152615da0818c615a9f565b9450505050508560c08401528460e0840152828103610100840152615dc58185614d5e565b9c9b505050505050505050505050565b60208082526034908201527f476f7665726e6f72436f756e74696e674672616374696f6e616c3a20766f7465604082015273081ddbdd5b1908195e18d95959081dd95a59da1d60621b606082015260800190565b6001600160801b03818116838216019080821115615e4957615e49615767565b509291505056fe476f7665726e6f723a2063616c6c20726576657274656420776974686f7574206d657373616765737570706f72743d627261766f2671756f72756d3d616761696e73742c6162737461696e2671756f72756d3d666f722c6162737461696e26706172616d733d6672616374696f6e616ca2646970667358221220af80f8a495daf41067f05498bcb0a99923f9476d7d24e3147f7c56cadbe78bc564736f6c6343000814003300000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000180000000000000000000000000961d4921e1718e633bac8ded88c4a1cae44b785a000000000000000000000000961d4921e1718e633bac8ded88c4a1cae44b785a00000000000000000000000000000000000000000000000000000000000001c00000000000000000000000000000000000000000000000000000000000000220000000000000000000000000fbaa992a9e04e6a4fd1ba52d49c9c12baa0da3c6000000000000000000000000000000000000000000000000000000000000003c0000000000000000000000000000000000000000000000000000000000000078ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000000000000000000000000000000000005f0000000000000000000000000000000000000000000000000000000000000005000000000000000000000000000000000000000000000000000000000000005f000000000000000000000000000000000000000000000000000000000000001146726178476f7665726e6f724f6d6567610000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000fbaa992a9e04e6a4fd1ba52d49c9c12baa0da3c60000000000000000000000007a8a1e6966ac5b67aca3c9308fa798bb56ecac3800000000000000000000000000000000000000000000000000000000000000010000000000000000000000008adb68e26b725af5e4b9c7deefe53d7edaaeec87
Deployed Bytecode
0x6080604052600436106103f8575f3560e01c806384b0196e1161020a578063c28bc2fa1161011e578063e80f1aa7116100a8578063ece40cc111610078578063ece40cc114610dcb578063f23a6e6114610dea578063f8cc2e3c14610e15578063f8ce560a14610e34578063fc0c546a14610e53575f80fd5b8063e80f1aa714610d4f578063ea0217cf14610d6e578063eb9019d414610d8d578063ec2de58b14610dac575f80fd5b8063d914e172116100ee578063d914e17214610c8a578063dd4e2ba514610cb5578063deaaa7cc14610cc9578063df482caf14610cfc578063dfc3c9e714610d30575f80fd5b8063c28bc2fa14610c25578063c3dcf92214610c38578063c59057e414610c57578063ccb8370b14610c76575f80fd5b8063aa75a3c21161019f578063bc197c811161016f578063bc197c8114610b57578063be13109414610b82578063be74baf214610ba1578063c01f9e3714610bb6578063c1de4eed14610bef575f80fd5b8063aa75a3c214610ae6578063b021d2c314610b05578063b12c327714610b24578063b58131b014610b43575f80fd5b806397c3d334116101da57806397c3d33414610a8b5780639a802a6d14610a9e578063a7713a7014610abd578063a89f263814610ad1575f80fd5b806384b0196e146109ef57806386e80e9014610a165780638bb53cd314610a4157806391ddadf414610a60575f80fd5b8063438596321161030c5780635c0855891161029657806364cda3d41161026657806364cda3d41461095457806370b0f6601461097357806377d76602146109925780637b3c71d3146109b15780637d5e81e2146109d0575f80fd5b80635c085589146108c45780635d049c0a146108e35780635f398a141461091657806360c4247f14610935575f80fd5b80634bf5d7e9116102dc5780634bf5d7e9146107fb578063506d1f811461080f578063544ffc9c1461084257806354fd4d501461087c57806356781388146108a5575f80fd5b8063438596321461074657806343ec3e0914610792578063452115d6146107b15780634571969b146107d0575f80fd5b8063150b7a021161038d5780632fe3e2611161035d5780632fe3e2611461067d578063342cfab6146106b05780633932abb1146106e75780633bccf4fd146106fb5780633e4f49e61461071a575f80fd5b8063150b7a02146105dd5780632214a33f146106205780632656227d1461064b5780632d63f6931461065e575f80fd5b806306f3f9e6116103c857806306f3f9e61461052557806306fdde0314610544578063072c8e0d14610565578063143489d014610591575f80fd5b8063013cf08b1461040e57806301ffc9a7146104b957806302a251a3146104e85780630342018114610506575f80fd5b3661040a57005b60405180910390fd5b005b5f80fd5b348015610419575f80fd5b50610473610428366004614b1f565b60036020525f90815260409020546001600160a01b0381169064ffffffffff600160a01b8204811691600160c81b81049091169060ff600160f01b8204811691600160f81b90041685565b604080516001600160a01b03909616865264ffffffffff9485166020870152939092169284019290925290151560608301521515608082015260a0015b60405180910390f35b3480156104c4575f80fd5b506104d86104d3366004614b36565b610e72565b60405190151581526020016104b0565b3480156104f3575f80fd5b506007545b6040519081526020016104b0565b348015610511575f80fd5b506104f8610520366004614c9d565b610f0e565b348015610530575f80fd5b5061040861053f366004614b1f565b610f2c565b34801561054f575f80fd5b50610558610f40565b6040516104b09190614d89565b348015610570575f80fd5b5061058461057f366004614ddb565b610fd0565b6040516104b09190614ea6565b34801561059c575f80fd5b506105c56105ab366004614b1f565b5f908152600360205260409020546001600160a01b031690565b6040516001600160a01b0390911681526020016104b0565b3480156105e8575f80fd5b506106076105f7366004614ece565b630a85bd0160e11b949350505050565b6040516001600160e01b031990911681526020016104b0565b34801561062b575f80fd5b506104f861063a366004614f31565b60146020525f908152604090205481565b6104f861065936600461509e565b6110f7565b348015610669575f80fd5b506104f8610678366004614b1f565b611223565b348015610688575f80fd5b506104f87fb3b3f3b703cd84ce352197dcff232b1b5d3cfb2025ce47cf04742d0651f1af8881565b3480156106bb575f80fd5b506106cf6106ca366004615127565b611242565b6040516001600160801b0390911681526020016104b0565b3480156106f2575f80fd5b506006546104f8565b348015610706575f80fd5b506104f8610715366004615151565b611274565b348015610725575f80fd5b50610739610734366004614b1f565b611307565b6040516104b091906151af565b348015610751575f80fd5b506104d8610760366004615127565b5f918252600c602090815260408084206001600160a01b039390931684529190529020546001600160801b0316151590565b34801561079d575f80fd5b506104086107ac366004614b1f565b611478565b3480156107bc575f80fd5b506104f86107cb36600461509e565b611489565b3480156107db575f80fd5b506104f86107ea366004614f31565b60126020525f908152604090205481565b348015610806575f80fd5b506105586114a6565b34801561081a575f80fd5b506105c57f000000000000000000000000961d4921e1718e633bac8ded88c4a1cae44b785a81565b34801561084d575f80fd5b5061086161085c366004614b1f565b611550565b604080519384526020840192909252908201526060016104b0565b348015610887575f80fd5b506040805180820190915260018152603160f81b6020820152610558565b3480156108b0575f80fd5b506104f86108bf3660046151c9565b611581565b3480156108cf575f80fd5b506104086108de3660046151ea565b6115a8565b3480156108ee575f80fd5b506105c57f000000000000000000000000fbaa992a9e04e6a4fd1ba52d49c9c12baa0da3c681565b348015610921575f80fd5b506104f8610930366004615212565b6117bf565b348015610940575f80fd5b506104f861094f366004614b1f565b611807565b34801561095f575f80fd5b5061040861096e366004614b1f565b6118a4565b34801561097e575f80fd5b5061040861098d366004614b1f565b6118b5565b34801561099d575f80fd5b506104086109ac36600461528f565b6118c6565b3480156109bc575f80fd5b506104f86109cb3660046152f5565b61194d565b3480156109db575f80fd5b506104f86109ea36600461533e565b611993565b3480156109fa575f80fd5b50610a036119ad565b6040516104b097969594939291906153ea565b348015610a21575f80fd5b506104f8610a30366004614f31565b60136020525f908152604090205481565b348015610a4c575f80fd5b50610408610a5b36600461544b565b611a33565b348015610a6b575f80fd5b50610a74611ba5565b60405165ffffffffffff90911681526020016104b0565b348015610a96575f80fd5b5060646104f8565b348015610aa9575f80fd5b506104f8610ab8366004615489565b611c1c565b348015610ac8575f80fd5b506104f8611c32565b348015610adc575f80fd5b506104f8600e5481565b348015610af1575f80fd5b50610408610b00366004614f31565b611c4b565b348015610b10575f80fd5b506104f8610b1f3660046154db565b611c5c565b348015610b2f575f80fd5b50610408610b3e366004615548565b611fb6565b348015610b4e575f80fd5b506104f861231d565b348015610b62575f80fd5b50610607610b71366004615596565b63bc197c8160e01b95945050505050565b348015610b8d575f80fd5b50610408610b9c36600461544b565b612327565b348015610bac575f80fd5b506104f860115481565b348015610bc1575f80fd5b506104f8610bd0366004614b1f565b5f90815260036020526040902054600160c81b900464ffffffffff1690565b348015610bfa575f80fd5b506104f8610c093660046151ea565b601560209081525f928352604080842090915290825290205481565b610408610c3336600461561e565b61236e565b348015610c43575f80fd5b50610408610c5236600461544b565b612387565b348015610c62575f80fd5b506104f8610c7136600461509e565b6124ed565b348015610c81575f80fd5b506104f8612526565b348015610c95575f80fd5b506104f8610ca4366004614b1f565b60106020525f908152604090205481565b348015610cc0575f80fd5b50610558612531565b348015610cd4575f80fd5b506104f87f150214d74d59b7d1e90c73fc22ef3d991dd0a76b046543d4d80ab92d2a50328f81565b348015610d07575f80fd5b506106cf610d16366004614f31565b600d6020525f90815260409020546001600160801b031681565b348015610d3b575f80fd5b506104f8610d4a366004614b1f565b612551565b348015610d5a575f80fd5b50610408610d6936600461544b565b6125dd565b348015610d79575f80fd5b50610408610d88366004614b1f565b612620565b348015610d98575f80fd5b506104f8610da73660046151ea565b612631565b348015610db7575f80fd5b506104f8610dc6366004614b1f565b612650565b348015610dd6575f80fd5b50610408610de5366004614b1f565b612722565b348015610df5575f80fd5b50610607610e0436600461565b565b63f23a6e6160e01b95945050505050565b348015610e20575f80fd5b50610408610e2f3660046151ea565b612733565b348015610e3f575f80fd5b506104f8610e4e366004614b1f565b6127d2565b348015610e5e575f80fd5b506009546105c5906001600160a01b031681565b5f63288ace0360e11b6318df743f60e31b63bf26d89760e01b6379dd796f60e01b6001600160e01b03198616821480610eb757506001600160e01b0319868116908216145b80610ece57506001600160e01b0319868116908516145b80610ee957506001600160e01b03198616630271189760e51b145b80610f0457506301ffc9a760e01b6001600160e01b03198716145b9695505050505050565b5f610f1f8989898989898989612809565b9998505050505050505050565b610f34612a68565b610f3d81612ab3565b50565b606060028054610f4f906156ba565b80601f0160208091040260200160405190810160405280929190818152602001828054610f7b906156ba565b8015610fc65780601f10610f9d57610100808354040283529160200191610fc6565b820191905f5260205f20905b815481529060010190602001808311610fa957829003601f168201915b5050505050905090565b60608584141580610fe15750858214155b15610fff57604051630a1eb2d160e11b815260040160405180910390fd5b856001600160401b0381111561101757611017614bb1565b604051908082528060200260200182016040528015611040578160200160208202803683370190505b5090505f5b868110156110ec576110bf888883818110611062576110626156f2565b90506020020160208101906110779190614f31565b878784818110611089576110896156f2565b905060200281019061109b9190615706565b8686858181106110ad576110ad6156f2565b9050602002810190610b1f9190615725565b8282815181106110d1576110d16156f2565b60209081029190910101526110e58161577b565b9050611045565b509695505050505050565b5f80611105868686866124ed565b90505f61111182611307565b905060048160078111156111275761112761519b565b1480611144575060058160078111156111425761114261519b565b145b61119a5760405162461bcd60e51b815260206004820152602160248201527f476f7665726e6f723a2070726f706f73616c206e6f74207375636365737366756044820152601b60fa1b60648201526084016103ff565b5f8281526003602052604090819020805460ff60f01b1916600160f01b179055517f712ae1383f79ac853f8d882153778e0260ef8f03b504e2866e0593e04d2b291f906111ea9084815260200190565b60405180910390a16111ff8288888888612bae565b61120c8288888888612c39565b6112198288888888612bae565b5095945050505050565b5f90815260036020526040902054600160a01b900464ffffffffff1690565b5f828152600c602090815260408083206001600160a01b03851684529091529020546001600160801b03165b92915050565b604080517f150214d74d59b7d1e90c73fc22ef3d991dd0a76b046543d4d80ab92d2a50328f602082015290810186905260ff851660608201525f9081906112e0906112d8906080015b60405160208183030381529060405280519060200120612d32565b868686612d5e565b90506112fc87828860405180602001604052805f815250612d7a565b979650505050505050565b5f8181526003602052604081208054600160f01b900460ff161561132e5750600792915050565b8054600160f81b900460ff16156113485750600292915050565b5f61135284611223565b9050805f036113a35760405162461bcd60e51b815260206004820152601d60248201527f476f7665726e6f723a20756e6b6e6f776e2070726f706f73616c20696400000060448201526064016103ff565b5f6113ac611ba5565b65ffffffffffff16905080821015806113d257505f828152601060205260409020544311155b156113e157505f949350505050565b6113ea85612da4565b156113fa57506004949350505050565b61140385612dd2565b1561141357506003949350505050565b5f85815260036020526040902054600160c81b900464ffffffffff168181106114425750600195945050505050565b61144b86612deb565b801561145b575061145b86612e3c565b1561146c5750600395945050505050565b50600495945050505050565b611480612a68565b610f3d81612e70565b5f60405160016205739760e41b0319815260040160405180910390fd5b60095460408051634bf5d7e960e01b815290516060926001600160a01b031691634bf5d7e9916004808301925f9291908290030181865afa92505050801561150f57506040513d5f823e601f3d908101601f1916820160405261150c9190810190615793565b60015b61154b575060408051808201909152601d81527f6d6f64653d626c6f636b6e756d6265722666726f6d3d64656661756c74000000602082015290565b919050565b5f908152600b6020526040902080546001909101546001600160801b0380831693600160801b909304811692911690565b5f803390506115a084828560405180602001604052805f815250612d7a565b949350505050565b6001600160a01b0382165f9081526015602090815260408083208484529091528120549080806115d88685612ef4565b91945092509050600360408051602081019091525f905261161e6107348585857fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4706124ed565b600781111561162f5761162f61519b565b1461164d57604051630fd1155b60e41b815260040160405180910390fd5b5f8690505f6116cc826040518061014001604052808b6001600160a01b031681526020015f815260200160405180602001604052805f81525081526020015f600181111561169d5761169d61519b565b81525f6020820181905260408201819052606082018190526080820181905260a082015260c0018a9052613016565b604051631f60ca5d60e21b8152306004820152602481018290529091506001600160a01b03831690637d832974906044016020604051808303815f875af1158015611719573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061173d91906157fb565b60010361176057604051635c0abc6d60e11b8152600481018290526024016103ff565b60405163d4d9bdcd60e01b8152600481018290526001600160a01b0383169063d4d9bdcd906024015f604051808303815f87803b15801561179f575f80fd5b505af11580156117b1573d5f803e3d5ffd5b505050505050505050505050565b5f803390506112fc87828888888080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152508a92506130bd915050565b600a80545f91829061181a600184615812565b8154811061182a5761182a6156f2565b5f9182526020918290206040805180820190915291015463ffffffff8116808352600160201b9091046001600160e01b0316928201929092529150841061187f57602001516001600160e01b03169392505050565b61189361188b85613214565b600a9061327c565b6001600160e01b0316949350505050565b6118ac612a68565b610f3d81613329565b6118bd612a68565b610f3d81613367565b828181146118e75760405163a669fc0560e01b815260040160405180910390fd5b5f5b8181101561194557611934868683818110611906576119066156f2565b9050602002013585858481811061191f5761191f6156f2565b90506020020160208101906108bf9190615825565b5061193e8161577b565b90506118e9565b505050505050565b5f80339050610f0486828787878080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250612d7a92505050565b5f60405163098bb82f60e01b815260040160405180910390fd5b5f606080828080836119df7f46726178476f7665726e6f724f6d656761000000000000000000000000000011836133a8565b611a0a7f310000000000000000000000000000000000000000000000000000000000000160016133a8565b604080515f80825260208201909252600f60f81b9b939a50919850469750309650945092509050565b611a3b612a68565b5f5b81811015611ba05760135f848484818110611a5a57611a5a6156f2565b9050602002016020810190611a6f9190614f31565b6001600160a01b03166001600160a01b031681526020019081526020015f20545f03611ae157828282818110611aa757611aa76156f2565b9050602002016020810190611abc9190614f31565b604051630ee1e0b360e41b81526001600160a01b0390911660048201526024016103ff565b60135f848484818110611af657611af66156f2565b9050602002016020810190611b0b9190614f31565b6001600160a01b03166001600160a01b031681526020019081526020015f205f90557f3f75b27f9b6f643d57ab0006da862b383ffc26813fc08462f2d56270aaa950c0838383818110611b6057611b606156f2565b9050602002016020810190611b759190614f31565b6040516001600160a01b03909116815260200160405180910390a1611b998161577b565b9050611a3d565b505050565b600954604080516324776b7d60e21b815290515f926001600160a01b0316916391ddadf49160048083019260209291908290030181865afa925050508015611c0a575060408051601f3d908101601f19168201909252611c079181019061583e565b60015b61154b57611c1743613451565b905090565b5f611c288484846134b7565b90505b9392505050565b5f611c3d600a61352a565b6001600160e01b0316905090565b611c53612a68565b610f3d81613561565b5f611c66856135bb565b6001611c786080860160608701615871565b6001811115611c8957611c8961519b565b148015611cc6575060135f611ca16020870187614f31565b6001600160a01b03166001600160a01b031681526020019081526020015f2054600114155b15611cfd57611cd86020850185614f31565b6040516317645e7d60e21b81526001600160a01b0390911660048201526024016103ff565b5f8590505f816001600160a01b031663e75235b86040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d3e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611d6291906157fb565b9050611da485858080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152508592506135f1915050565b6001600160a01b0387165f9081526015602090815260408083206101208a0135845290915290205415611dea57604051639e01d15b60e01b815260040160405180910390fd5b816001600160a01b031663affed0e06040518163ffffffff1660e01b81526004016020604051808303815f875af1158015611e27573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e4b91906157fb565b8661012001351015611e705760405163d9c6386f60e01b815260040160405180910390fd5b5f611e8383611e7e8961588a565b613016565b90506001600160a01b0383166312fb68e082611ea260408b018b615725565b8a8a886040518763ffffffff1660e01b8152600401611ec69695949392919061596e565b5f6040518083038186803b158015611edc575f80fd5b505afa158015611eee573d5f803e3d5ffd5b505050505f805f611eff8b85612ef4565b925092509250611f2083838360405180602001604052805f8152508f613658565b96508360155f8d6001600160a01b03166001600160a01b031681526020019081526020015f205f8c610120013581526020019081526020015f208190555086848c6001600160a01b03167f5ed3fb2763971f1f5e3d1e6f215e92ebe28160b512c2da07f4b12a46021adb0b8d6101200135604051611fa091815260200190565b60405180910390a4505050505050949350505050565b611fbf836135bb565b5f8390505f816001600160a01b031663e75235b86040518163ffffffff1660e01b8152600401602060405180830381865afa158015612000573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061202491906157fb565b905061206684848080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152508592506135f1915050565b5f826001600160a01b031663affed0e06040518163ffffffff1660e01b81526004016020604051808303815f875af11580156120a4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906120c891906157fb565b90505f836001600160a01b031663d8d11f78885f805f805f805f8b6040518a63ffffffff1660e01b8152600401612107999897969594939291906159c2565b602060405180830381865afa158015612122573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061214691906157fb565b6040516297db4760e51b81529091506001600160a01b038516906312fb68e09061217a9084908a908a908990600401615a31565b5f6040518083038186803b158015612190575f80fd5b505afa1580156121a2573d5f803e3d5ffd5b5050506001600160a01b0388165f908152601560209081526040808320868452909152812054915081156122bd575f805f6121dd8c86612ef4565b60408051602081019091525f90529194509250905061221e8383837fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4706124ed565b93505f61222a85611307565b905060028160078111156122405761224061519b565b0361225e576040516303ff04cd60e51b815260040160405180910390fd5b5f858152600360205260409081902080546001600160f81b0316600160f81b179055517f789cf55be980739dad1d0699b93b58e806b51c9d96619bfa8fe0a28abaa7b30c906122b09087815260200190565b60405180910390a1505050505b60405163d4d9bdcd60e01b8152600481018490526001600160a01b0387169063d4d9bdcd906024015f604051808303815f87803b1580156122fc575f80fd5b505af115801561230e573d5f803e3d5ffd5b50505050505050505050505050565b5f611c1760085490565b61232f612a68565b61236a8282808060200260200160405190810160405280939291908181526020018383602002808284375f92019190915250613a1b92505050565b5050565b604051635adddc5560e01b815260040160405180910390fd5b61238f612a68565b5f5b81811015611ba05760125f8484848181106123ae576123ae6156f2565b90506020020160208101906123c39190614f31565b6001600160a01b03166001600160a01b031681526020019081526020015f20545f03612435578282828181106123fb576123fb6156f2565b90506020020160208101906124109190614f31565b60405163138c2add60e01b81526001600160a01b0390911660048201526024016103ff565b60125f84848481811061244a5761244a6156f2565b905060200201602081019061245f9190614f31565b6001600160a01b03166001600160a01b031681526020019081526020015f205f9055828282818110612493576124936156f2565b90506020020160208101906124a89190614f31565b6001600160a01b03167fe710dd5e6adb3eb2ba468162b8ead4d66e26d337074a5067caab50b676925ab860405160405180910390a26124e68161577b565b9050612391565b5f848484846040516020016125059493929190615af2565b60408051601f19818403018152919052805160209091012095945050505050565b5f611c3d600f61352a565b6060604051806080016040528060498152602001615e7860499139905090565b600f80545f918290612564600184615812565b81548110612574576125746156f2565b5f9182526020918290206040805180820190915291015463ffffffff8116808352600160201b9091046001600160e01b031692820192909252915084106125c957602001516001600160e01b03169392505050565b6118936125d585613214565b600f9061327c565b6125e5612a68565b61236a8282808060200260200160405190810160405280939291908181526020018383602002808284375f92019190915250613b5e92505050565b612628612a68565b610f3d81613c91565b5f611c2b838361264b60408051602081019091525f815290565b6134b7565b5f81158061265e5750428210155b1561267c5760405163749c2c6d60e01b815260040160405180910390fd5b606461268783612551565b604051630981b24d60e41b8152600481018590527f000000000000000000000000961d4921e1718e633bac8ded88c4a1cae44b785a6001600160a01b03169063981b24d090602401602060405180830381865afa1580156126ea573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061270e91906157fb565b6127189190615b3c565b61126e9190615b67565b61272a612a68565b610f3d81613d31565b61273b612a68565b6001600160a01b0382165f9081526014602052604090205481810361277357604051631a73bda360e11b815260040160405180910390fd5b6001600160a01b0383165f818152601460209081526040918290208590558151928352820183905281018390527fad48c7f5802308fb2675c0f699237e1a6d39e5170f647470b1d8ed2803262e599060600160405180910390a1505050565b5f8115806127e05750428210155b156127fe5760405163749c2c6d60e01b815260040160405180910390fd5b606461268783611807565b5f84516040148061281957508451155b6128975760405162461bcd60e51b815260206004820152604360248201527f476f7665726e6f72436f756e74696e674672616374696f6e616c3a20696e766160448201527f6c696420706172616d7320666f72207369676e61747572652d626173656420766064820152626f746560e81b608482015260a4016103ff565b5f6129166112d87fb3b3f3b703cd84ce352197dcff232b1b5d3cfb2025ce47cf04742d0651f1af888c8c8c8c6040516128d1929190615b86565b60405180910390208b805190602001206040516020016112bd959493929190948552602085019390935260ff9190911660408401526060830152608082015260a00190565b90508551604003612a17576040868101516001600160a01b0383165f908152600d60205291909120546001600160801b03918216911681146129c05760405162461bcd60e51b815260206004820152603b60248201527f476f7665726e6f72436f756e74696e674672616374696f6e616c3a207369676e60448201527f61747572652068617320616c7265616479206265656e2075736564000000000060648201526084016103ff565b6001600160a01b0382165f908152600d6020526040812080546001600160801b0316916129ec83615b95565b91906101000a8154816001600160801b0302191690836001600160801b031602179055505060308752505b612a5a8a828b8b8b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152508d92506130bd915050565b9a9950505050505050505050565b336001600160a01b037f000000000000000000000000fbaa992a9e04e6a4fd1ba52d49c9c12baa0da3c61614612ab1576040516362c4ffa560e11b815260040160405180910390fd5b565b6064811115612b365760405162461bcd60e51b815260206004820152604360248201527f476f7665726e6f72566f74657351756f72756d4672616374696f6e3a2071756f60448201527f72756d4e756d657261746f72206f7665722071756f72756d44656e6f6d696e616064820152623a37b960e91b608482015260a4016103ff565b5f612b3f611c32565b9050612b6e612b5c612b4f611ba5565b65ffffffffffff16613214565b612b6584613d72565b600a9190613dda565b505060408051828152602081018490527f0553476bf02ef2726e8ce5ced78d63e26e602e4a2257b1f559418e24b463399791015b60405180910390a15050565b612c32565b845181101561194557306001600160a01b0316858281518110612bd857612bd86156f2565b60200260200101516001600160a01b031603612c2257612c22838281518110612c0357612c036156f2565b6020026020010151805190602001206004613df490919063ffffffff16565b612c2b8161577b565b9050612bb3565b5050505050565b5f604051806060016040528060278152602001615e516027913990505f5b8551811015612d29575f80878381518110612c7457612c746156f2565b60200260200101516001600160a01b0316878481518110612c9757612c976156f2565b6020026020010151878581518110612cb157612cb16156f2565b6020026020010151604051612cc69190615bba565b5f6040518083038185875af1925050503d805f8114612d00576040519150601f19603f3d011682016040523d82523d5f602084013e612d05565b606091505b5091509150612d15828286613e2f565b50505080612d229061577b565b9050612c57565b50505050505050565b5f61126e612d3e613e48565b8360405161190160f01b8152600281019290925260228201526042902090565b5f805f612d6d87878787613f71565b915091506112198161402e565b5f612d9b85858585612d9660408051602081019091525f815290565b6130bd565b95945050505050565b5f80612daf83611550565b509150505f612dbd84611223565b9050612dc881612650565b9091119392505050565b5f80612ddd83611550565b505090505f612dbd84611223565b5f805f80612df885611550565b9250925092505f828411612e0c5782612e0e565b835b90505f612e1a87611223565b9050612e268383615bcb565b612e2f826127d2565b1115979650505050505050565b5f805f612e4884611550565b5091509150815f148015612e5a575080155b15612e6857505f9392505050565b111592915050565b6064811115612e91576040516271e29960e21b815260040160405180910390fd5b5f612e9a612526565b9050612ebc612eaa612b4f611ba5565b612eb384613d72565b600f9190613dda565b505060408051828152602081018490527fdd2b8b2d874e19a344cba53b9fb534ea748ef117ed4b75c67569a794864541939101612ba2565b6040805160018082528183019092526060918291829160208083019080368337505060408051600180825281830190925292955090506020808301908036833701905050604080516001808252818301909252919350816020015b6060815260200190600190039081612f4f57905050905084835f81518110612f7957612f796156f2565b60200260200101906001600160a01b031690816001600160a01b0316815250505f825f81518110612fac57612fac6156f2565b60209081029190910181019190915260408051602480820188905282518083039091018152604490910190915290810180516001600160e01b031663d4d9bdcd60e01b179052815182905f90613004576130046156f2565b60200260200101819052509250925092565b5f826001600160a01b031663d8d11f78835f015184602001518560400151866060015187608001518860a001518960c001518a60e001518b61010001518c61012001516040518b63ffffffff1660e01b815260040161307e9a99989796959493929190615bde565b602060405180830381865afa158015613099573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c2b91906157fb565b5f85815260036020526040812060016130d588611307565b60078111156130e6576130e661519b565b1461313f5760405162461bcd60e51b815260206004820152602360248201527f476f7665726e6f723a20766f7465206e6f742063757272656e746c792061637460448201526269766560e81b60648201526084016103ff565b80545f9061315d908890600160a01b900464ffffffffff16866134b7565b905061316c8888888488614177565b83515f036131c057866001600160a01b03167fb8e138887d0aa13bab447e82de9d5c1777041ecd21ca36ba824ff1e6c07ddda4898884896040516131b39493929190615c53565b60405180910390a26112fc565b866001600160a01b03167fe2babfbac5889a709b63bb7f598b324e08bc5a4fb9ec647fb3cbc9ec07eb87128988848989604051613201959493929190615c7a565b60405180910390a2979650505050505050565b5f63ffffffff8211156132785760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203360448201526532206269747360d01b60648201526084016103ff565b5090565b81545f90818160058111156132d6575f61329584614292565b61329f9085615812565b5f8881526020902090915081015463ffffffff90811690871610156132c6578091506132d4565b6132d1816001615bcb565b92505b505b5f6132e387878585614376565b9050801561331d57613307876132fa600184615812565b5f91825260209091200190565b54600160201b90046001600160e01b03166112fc565b5f979650505050505050565b600e80549082905560408051828152602081018490527fd3c1cdfd662fbb8e44190410d3a0d46855746182cb8d1e5e41bc84f5afecef4f9101612ba2565b60065460408051918252602082018390527fc565b045403dc03c2eea82b81a0465edad9e2e7fc4d97e11421c209da93d7a93910160405180910390a1600655565b606060ff83146133c2576133bb836143d1565b905061126e565b8180546133ce906156ba565b80601f01602080910402602001604051908101604052809291908181526020018280546133fa906156ba565b80156134455780601f1061341c57610100808354040283529160200191613445565b820191905f5260205f20905b81548152906001019060200180831161342857829003601f168201915b5050505050905061126e565b5f65ffffffffffff8211156132785760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203460448201526538206269747360d01b60648201526084016103ff565b600954604051630748d63560e31b81526001600160a01b038581166004830152602482018590525f921690633a46b1a890604401602060405180830381865afa158015613506573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c2891906157fb565b80545f90801561355957613543836132fa600184615812565b54600160201b90046001600160e01b0316611c2b565b5f9392505050565b600980546001600160a01b038381166001600160a01b031983168117909355604080519190921680825260208201939093527fc255828f3e19c78de5df3dd5b6706d49bd5dd58e76275f97bd699878700995209101612ba2565b6001600160a01b0381165f908152601260205260408120549003610f3d576040516282b42960e81b815260040160405180910390fd5b5f805f5b83811015612c325760418082028601602081015191015160ff169350915060018390036136485781306001600160a01b03821603613646576040516308fbb1df60e31b815260040160405180910390fd5b505b6136518161577b565b90506135f5565b5f61366c86868686805190602001206124ed565b9050845186511461368f5760405162461bcd60e51b81526004016103ff90615cbf565b83518651146136b05760405162461bcd60e51b81526004016103ff90615cbf565b5f8651116137005760405162461bcd60e51b815260206004820152601860248201527f476f7665726e6f723a20656d7074792070726f706f73616c000000000000000060448201526064016103ff565b5f81815260036020526040902054600160a01b900464ffffffffff16156137735760405162461bcd60e51b815260206004820152602160248201527f476f7665726e6f723a2070726f706f73616c20616c72656164792065786973746044820152607360f81b60648201526084016103ff565b335f61377e60065490565b613786611ba5565b65ffffffffffff166137989190615bcb565b6040516396d6d2fb60e01b8152600481018290529091505f906001600160a01b037f000000000000000000000000961d4921e1718e633bac8ded88c4a1cae44b785a16906396d6d2fb906024015f604051808303815f87803b1580156137fc575f80fd5b505af192505050801561380d575060015b5060118290556001600160a01b0385165f908152601460205260408120549081810361383b5760075461383d565b815b90506138498185615bcb565b925050506040518060a00160405280846001600160a01b031681526020018364ffffffffff1681526020018264ffffffffff1681526020015f151581526020015f151581525060035f8681526020019081526020015f205f820151815f015f6101000a8154816001600160a01b0302191690836001600160a01b031602179055506020820151815f0160146101000a81548164ffffffffff021916908364ffffffffff1602179055506040820151815f0160196101000a81548164ffffffffff021916908364ffffffffff1602179055506060820151815f01601e6101000a81548160ff0219169083151502179055506080820151815f01601f6101000a81548160ff021916908315150217905550905050600e54436139699190615bcb565b5f8381526010602052604090205588517f7d84a6263ae0d98d3329bd7b46bb4e8d6f98cd35a7adb45c274c8b7fd5ebd5e090859085908c908c906001600160401b038111156139ba576139ba614bb1565b6040519080825280602002602001820160405280156139ed57816020015b60608152602001906001900390816139d85790505b508c88888e604051613a0799989796959493929190615d00565b60405180910390a150505095945050505050565b5f5b815181101561236a5760135f838381518110613a3b57613a3b6156f2565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f2054600103613aad57818181518110613a7c57613a7c6156f2565b60200260200101516040516394369fd360e01b81526004016103ff91906001600160a01b0391909116815260200190565b600160135f848481518110613ac457613ac46156f2565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f20819055507ff48d3b938905d7162ca91551f61d4d458d43159e04847eb28ed7d94fbdb3bc2f828281518110613b2257613b226156f2565b6020026020010151604051613b4691906001600160a01b0391909116815260200190565b60405180910390a1613b578161577b565b9050613a1d565b5f5b815181101561236a5760125f838381518110613b7e57613b7e6156f2565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f2054600103613bf057818181518110613bbf57613bbf6156f2565b6020026020010151604051630b58d77560e41b81526004016103ff91906001600160a01b0391909116815260200190565b600160125f848481518110613c0757613c076156f2565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f2081905550818181518110613c4457613c446156f2565b60200260200101516001600160a01b03167f4149776fc93a7a68120df1638269488e1915cd17b09b0ab741e6bf768a38c46d60405160405180910390a2613c8a8161577b565b9050613b60565b5f8111613cf05760405162461bcd60e51b815260206004820152602760248201527f476f7665726e6f7253657474696e67733a20766f74696e6720706572696f6420604482015266746f6f206c6f7760c81b60648201526084016103ff565b60075460408051918252602082018390527f7e3f7f0708a84de9203036abaa450dccc85ad5ff52f78c170f3edb55cf5e8828910160405180910390a1600755565b60085460408051918252602082018390527fccb45da8d5717e6c4544694297c4ba5cf151d455c9bb0ed4fc7a38411bc05461910160405180910390a1600855565b5f6001600160e01b038211156132785760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20326044820152663234206269747360c81b60648201526084016103ff565b5f80613de785858561440e565b915091505b935093915050565b8154600160801b90819004600f0b5f818152600180860160205260409091209390935583546001600160801b03908116939091011602179055565b60608315613e3e575081611c2b565b611c2b83836145a9565b5f306001600160a01b037f000000000000000000000000bcb25d7582d0738a77508096b05488d49181b25516148015613ea057507f000000000000000000000000000000000000000000000000000000000000000146145b15613eca57507f18e45c9fb31a5a64c5309dfee5edd1a39f1985a326c9af56738d3ce72494894990565b611c17604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201527f620ac8ea4a3c475715e3a262a03da2938e289791e878a009589871e19bdbc67d918101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a08201525f9060c00160405160208183030381529060405280519060200120905090565b5f807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0831115613fa657505f90506003614025565b604080515f8082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015613ff7573d5f803e3d5ffd5b5050604051601f1901519150506001600160a01b03811661401f575f60019250925050614025565b91505f90505b94509492505050565b5f8160048111156140415761404161519b565b036140495750565b600181600481111561405d5761405d61519b565b036140aa5760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e6174757265000000000000000060448201526064016103ff565b60028160048111156140be576140be61519b565b0361410b5760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e6774680060448201526064016103ff565b600381600481111561411f5761411f61519b565b03610f3d5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b60648201526084016103ff565b5f82116141d45760405162461bcd60e51b815260206004820152602560248201527f476f7665726e6f72436f756e74696e674672616374696f6e616c3a206e6f2077604482015264195a59da1d60da1b60648201526084016103ff565b5f858152600c602090815260408083206001600160a01b03881684529091529020546001600160801b031682116142615760405162461bcd60e51b815260206004820152602b60248201527f476f7665726e6f72436f756e74696e674672616374696f6e616c3a20616c6c2060448201526a1dd95a59da1d0818d85cdd60aa1b60648201526084016103ff565b5f61426b836145d3565b905081515f03614286576142818686838761463b565b611945565b61194586868385614815565b5f815f036142a157505f919050565b5f60016142ad84614a36565b901c6001901b905060018184816142c6576142c6615b53565b048201901c905060018184816142de576142de615b53565b048201901c905060018184816142f6576142f6615b53565b048201901c9050600181848161430e5761430e615b53565b048201901c9050600181848161432657614326615b53565b048201901c9050600181848161433e5761433e615b53565b048201901c9050600181848161435657614356615b53565b048201901c9050611c2b8182858161437057614370615b53565b04614ac9565b5f5b818310156143c9575f61438b8484614ade565b5f8781526020902090915063ffffffff86169082015463ffffffff1611156143b5578092506143c3565b6143c0816001615bcb565b93505b50614378565b509392505050565b60605f6143dd83614af8565b6040805160208082528183019092529192505f91906020820181803683375050509182525060208101929092525090565b82545f9081908015614551575f61442a876132fa600185615812565b60408051808201909152905463ffffffff808216808452600160201b9092046001600160e01b0316602084015291925090871610156144ab5760405162461bcd60e51b815260206004820152601b60248201527f436865636b706f696e743a2064656372656173696e67206b657973000000000060448201526064016103ff565b805163ffffffff8088169116036144f357846144cc886132fa600186615812565b80546001600160e01b0392909216600160201b0263ffffffff909216919091179055614541565b6040805180820190915263ffffffff80881682526001600160e01b0380881660208085019182528b54600181018d555f8d81529190912094519151909216600160201b029216919091179101555b602001519250839150613dec9050565b50506040805180820190915263ffffffff80851682526001600160e01b0380851660208085019182528854600181018a555f8a815291822095519251909316600160201b029190931617920191909155905081613dec565b8151156145b95781518083602001fd5b8060405162461bcd60e51b81526004016103ff9190614d89565b5f6001600160801b038211156132785760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20316044820152663238206269747360c81b60648201526084016103ff565b5f848152600c602090815260408083206001600160a01b03871684529091529020546001600160801b0316156146835760405162461bcd60e51b81526004016103ff90615dd5565b5f848152600c602090815260408083206001600160a01b0387168452909152902080546001600160801b0319166001600160801b03841617905560ff8116614714575f848152600b6020526040812080548492906146eb9084906001600160801b0316615e29565b92506101000a8154816001600160801b0302191690836001600160801b0316021790555061480f565b5f1960ff82160161474f575f848152600b6020526040902080548391906010906146eb908490600160801b90046001600160801b0316615e29565b60011960ff821601614784575f848152600b6020526040812060010180548492906146eb9084906001600160801b0316615e29565b60405162461bcd60e51b815260206004820152605460248201527f476f7665726e6f72436f756e74696e674672616374696f6e616c3a20696e766160448201527f6c696420737570706f72742076616c75652c206d75737420626520696e636c7560648201527364656420696e20566f74655479706520656e756d60601b608482015260a4016103ff565b50505050565b805160301461487b5760405162461bcd60e51b815260206004820152602c60248201527f476f7665726e6f72436f756e74696e674672616374696f6e616c3a20696e766160448201526b6c696420766f74654461746160a01b60648201526084016103ff565b6020818101516040808401515f888152600c85528281206001600160a01b038916825290945290832054608083811c946001600160801b03948516949390911c929091169081836148cc8688615bcb565b6148d69190615bcb565b6148e09190615bcb565b9050866001600160801b031681111561490b5760405162461bcd60e51b81526004016103ff90615dd5565b5f898152600c602090815260408083206001600160a01b038c168452825280832080546001600160801b0319166001600160801b03868116919091179091558c8452600b83529281902081516060808201845282548087168352600160801b900486169482019490945260019190910154909316838201528051918201905281518190614999908990615e29565b6001600160801b031681526020018683602001516149b79190615e29565b6001600160801b031681526020018583604001516149d59190615e29565b6001600160801b039081169091525f9b8c52600b602090815260409c8d90208351918401518316600160801b0291831691909117815591909b01516001909101805491909b166001600160801b031990911617909955505050505050505050565b5f80608083901c15614a4a57608092831c92015b604083901c15614a5c57604092831c92015b602083901c15614a6e57602092831c92015b601083901c15614a8057601092831c92015b600883901c15614a9257600892831c92015b600483901c15614aa457600492831c92015b600283901c15614ab657600292831c92015b600183901c1561126e5760010192915050565b5f818310614ad75781611c2b565b5090919050565b5f614aec6002848418615b67565b611c2b90848416615bcb565b5f60ff8216601f81111561126e57604051632cd44ac360e21b815260040160405180910390fd5b5f60208284031215614b2f575f80fd5b5035919050565b5f60208284031215614b46575f80fd5b81356001600160e01b031981168114611c2b575f80fd5b803560ff8116811461154b575f80fd5b5f8083601f840112614b7d575f80fd5b5081356001600160401b03811115614b93575f80fd5b602083019150836020828501011115614baa575f80fd5b9250929050565b634e487b7160e01b5f52604160045260245ffd5b60405161014081016001600160401b0381118282101715614be857614be8614bb1565b60405290565b604051601f8201601f191681016001600160401b0381118282101715614c1657614c16614bb1565b604052919050565b5f6001600160401b03821115614c3657614c36614bb1565b50601f01601f191660200190565b5f614c56614c5184614c1e565b614bee565b9050828152838383011115614c69575f80fd5b828260208301375f602084830101529392505050565b5f82601f830112614c8e575f80fd5b611c2b83833560208501614c44565b5f805f805f805f8060e0898b031215614cb4575f80fd5b88359750614cc460208a01614b5d565b965060408901356001600160401b0380821115614cdf575f80fd5b614ceb8c838d01614b6d565b909850965060608b0135915080821115614d03575f80fd5b50614d108b828c01614c7f565b945050614d1f60808a01614b5d565b925060a0890135915060c089013590509295985092959890939650565b5f5b83811015614d56578181015183820152602001614d3e565b50505f910152565b5f8151808452614d75816020860160208601614d3c565b601f01601f19169290920160200192915050565b602081525f611c2b6020830184614d5e565b5f8083601f840112614dab575f80fd5b5081356001600160401b03811115614dc1575f80fd5b6020830191508360208260051b8501011115614baa575f80fd5b5f805f805f8060608789031215614df0575f80fd5b86356001600160401b0380821115614e06575f80fd5b614e128a838b01614d9b565b90985096506020890135915080821115614e2a575f80fd5b614e368a838b01614d9b565b90965094506040890135915080821115614e4e575f80fd5b50614e5b89828a01614d9b565b979a9699509497509295939492505050565b5f8151808452602080850194508084015f5b83811015614e9b57815187529582019590820190600101614e7f565b509495945050505050565b602081525f611c2b6020830184614e6d565b80356001600160a01b038116811461154b575f80fd5b5f805f8060808587031215614ee1575f80fd5b614eea85614eb8565b9350614ef860208601614eb8565b92506040850135915060608501356001600160401b03811115614f19575f80fd5b614f2587828801614c7f565b91505092959194509250565b5f60208284031215614f41575f80fd5b611c2b82614eb8565b5f6001600160401b03821115614f6257614f62614bb1565b5060051b60200190565b5f82601f830112614f7b575f80fd5b81356020614f8b614c5183614f4a565b82815260059290921b84018101918181019086841115614fa9575f80fd5b8286015b848110156110ec57614fbe81614eb8565b8352918301918301614fad565b5f82601f830112614fda575f80fd5b81356020614fea614c5183614f4a565b82815260059290921b84018101918181019086841115615008575f80fd5b8286015b848110156110ec578035835291830191830161500c565b5f82601f830112615032575f80fd5b81356020615042614c5183614f4a565b82815260059290921b84018101918181019086841115615060575f80fd5b8286015b848110156110ec5780356001600160401b03811115615082575f8081fd5b6150908986838b0101614c7f565b845250918301918301615064565b5f805f80608085870312156150b1575f80fd5b84356001600160401b03808211156150c7575f80fd5b6150d388838901614f6c565b955060208701359150808211156150e8575f80fd5b6150f488838901614fcb565b94506040870135915080821115615109575f80fd5b5061511687828801615023565b949793965093946060013593505050565b5f8060408385031215615138575f80fd5b8235915061514860208401614eb8565b90509250929050565b5f805f805f60a08688031215615165575f80fd5b8535945061517560208701614b5d565b935061518360408701614b5d565b94979396509394606081013594506080013592915050565b634e487b7160e01b5f52602160045260245ffd5b60208101600883106151c3576151c361519b565b91905290565b5f80604083850312156151da575f80fd5b8235915061514860208401614b5d565b5f80604083850312156151fb575f80fd5b61520483614eb8565b946020939093013593505050565b5f805f805f60808688031215615226575f80fd5b8535945061523660208701614b5d565b935060408601356001600160401b0380821115615251575f80fd5b61525d89838a01614b6d565b90955093506060880135915080821115615275575f80fd5b5061528288828901614c7f565b9150509295509295909350565b5f805f80604085870312156152a2575f80fd5b84356001600160401b03808211156152b8575f80fd5b6152c488838901614d9b565b909650945060208701359150808211156152dc575f80fd5b506152e987828801614d9b565b95989497509550505050565b5f805f8060608587031215615308575f80fd5b8435935061531860208601614b5d565b925060408501356001600160401b03811115615332575f80fd5b6152e987828801614b6d565b5f805f8060808587031215615351575f80fd5b84356001600160401b0380821115615367575f80fd5b61537388838901614f6c565b95506020870135915080821115615388575f80fd5b61539488838901614fcb565b945060408701359150808211156153a9575f80fd5b6153b588838901615023565b935060608701359150808211156153ca575f80fd5b508501601f810187136153db575f80fd5b614f2587823560208401614c44565b60ff60f81b8816815260e060208201525f61540860e0830189614d5e565b828103604084015261541a8189614d5e565b606084018890526001600160a01b038716608085015260a0840186905283810360c08501529050612a5a8185614e6d565b5f806020838503121561545c575f80fd5b82356001600160401b03811115615471575f80fd5b61547d85828601614d9b565b90969095509350505050565b5f805f6060848603121561549b575f80fd5b6154a484614eb8565b92506020840135915060408401356001600160401b038111156154c5575f80fd5b6154d186828701614c7f565b9150509250925092565b5f805f80606085870312156154ee575f80fd5b6154f785614eb8565b935060208501356001600160401b0380821115615512575f80fd5b908601906101408289031215615526575f80fd5b9093506040860135908082111561553b575f80fd5b506152e987828801614b6d565b5f805f6040848603121561555a575f80fd5b61556384614eb8565b925060208401356001600160401b0381111561557d575f80fd5b61558986828701614b6d565b9497909650939450505050565b5f805f805f60a086880312156155aa575f80fd5b6155b386614eb8565b94506155c160208701614eb8565b935060408601356001600160401b03808211156155dc575f80fd5b6155e889838a01614fcb565b945060608801359150808211156155fd575f80fd5b61560989838a01614fcb565b93506080880135915080821115615275575f80fd5b5f805f8060608587031215615631575f80fd5b61563a85614eb8565b93506020850135925060408501356001600160401b03811115615332575f80fd5b5f805f805f60a0868803121561566f575f80fd5b61567886614eb8565b945061568660208701614eb8565b9350604086013592506060860135915060808601356001600160401b038111156156ae575f80fd5b61528288828901614c7f565b600181811c908216806156ce57607f821691505b6020821081036156ec57634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52603260045260245ffd5b5f823561013e1983360301811261571b575f80fd5b9190910192915050565b5f808335601e1984360301811261573a575f80fd5b8301803591506001600160401b03821115615753575f80fd5b602001915036819003821315614baa575f80fd5b634e487b7160e01b5f52601160045260245ffd5b5f6001820161578c5761578c615767565b5060010190565b5f602082840312156157a3575f80fd5b81516001600160401b038111156157b8575f80fd5b8201601f810184136157c8575f80fd5b80516157d6614c5182614c1e565b8181528560208385010111156157ea575f80fd5b612d9b826020830160208601614d3c565b5f6020828403121561580b575f80fd5b5051919050565b8181038181111561126e5761126e615767565b5f60208284031215615835575f80fd5b611c2b82614b5d565b5f6020828403121561584e575f80fd5b815165ffffffffffff81168114611c2b575f80fd5b80356002811061154b575f80fd5b5f60208284031215615881575f80fd5b611c2b82615863565b5f610140823603121561589b575f80fd5b6158a3614bc5565b6158ac83614eb8565b81526020830135602082015260408301356001600160401b038111156158d0575f80fd5b6158dc36828601614c7f565b6040830152506158ee60608401615863565b60608201526080830135608082015260a083013560a082015260c083013560c082015261591d60e08401614eb8565b60e0820152610100615930818501614eb8565b9082015261012092830135928101929092525090565b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b868152608060208201525f615987608083018789615946565b828103604084015261599a818688615946565b915050826060830152979650505050505050565b600281106159be576159be61519b565b9052565b6001600160a01b038a81168252602082018a9052610140604083018190525f838201526101608301916159f8606085018c6159ae565b60808401999099525060a082019690965260c081019490945291851660e084015290931661010082015261012001919091529392505050565b848152608060208201525f608082015260a060408201525f615a5760a083018587615946565b905082606083015295945050505050565b5f8151808452602080850194508084015f5b83811015614e9b5781516001600160a01b031687529582019590820190600101615a7a565b5f81518084526020808501808196508360051b810191508286015f5b85811015615ae5578284038952615ad3848351614d5e565b98850198935090840190600101615abb565b5091979650505050505050565b608081525f615b046080830187615a68565b8281036020840152615b168187614e6d565b90508281036040840152615b2a8186615a9f565b91505082606083015295945050505050565b808202811582820484141761126e5761126e615767565b634e487b7160e01b5f52601260045260245ffd5b5f82615b8157634e487b7160e01b5f52601260045260245ffd5b500490565b818382375f9101908152919050565b5f6001600160801b03808316818103615bb057615bb0615767565b6001019392505050565b5f825161571b818460208701614d3c565b8082018082111561126e5761126e615767565b6001600160a01b038b81168252602082018b9052610140604083018190525f91615c0a8483018d614d5e565b9250615c19606085018c6159ae565b60808401999099525060a082019690965260c081019490945291851660e08401529093166101008201526101200191909152949350505050565b84815260ff84166020820152826040820152608060608201525f610f046080830184614d5e565b85815260ff8516602082015283604082015260a060608201525f615ca160a0830185614d5e565b8281036080840152615cb38185614d5e565b98975050505050505050565b60208082526021908201527f476f7665726e6f723a20696e76616c69642070726f706f73616c206c656e67746040820152600d60fb1b606082015260800190565b5f6101208b8352602060018060a01b038c1681850152816040850152615d288285018c615a68565b91508382036060850152615d3c828b614e6d565b915083820360808501528189518084528284019150828160051b850101838c015f5b83811015615d8c57601f19878403018552615d7a838351614d5e565b94860194925090850190600101615d5e565b505086810360a0880152615da0818c615a9f565b9450505050508560c08401528460e0840152828103610100840152615dc58185614d5e565b9c9b505050505050505050505050565b60208082526034908201527f476f7665726e6f72436f756e74696e674672616374696f6e616c3a20766f7465604082015273081ddbdd5b1908195e18d95959081dd95a59da1d60621b606082015260800190565b6001600160801b03818116838216019080821115615e4957615e49615767565b509291505056fe476f7665726e6f723a2063616c6c20726576657274656420776974686f7574206d657373616765737570706f72743d627261766f2671756f72756d3d616761696e73742c6162737461696e2671756f72756d3d666f722c6162737461696e26706172616d733d6672616374696f6e616ca2646970667358221220af80f8a495daf41067f05498bcb0a99923f9476d7d24e3147f7c56cadbe78bc564736f6c63430008140033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000180000000000000000000000000961d4921e1718e633bac8ded88c4a1cae44b785a000000000000000000000000961d4921e1718e633bac8ded88c4a1cae44b785a00000000000000000000000000000000000000000000000000000000000001c00000000000000000000000000000000000000000000000000000000000000220000000000000000000000000fbaa992a9e04e6a4fd1ba52d49c9c12baa0da3c6000000000000000000000000000000000000000000000000000000000000003c0000000000000000000000000000000000000000000000000000000000000078ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000000000000000000000000000000000005f0000000000000000000000000000000000000000000000000000000000000005000000000000000000000000000000000000000000000000000000000000005f000000000000000000000000000000000000000000000000000000000000001146726178476f7665726e6f724f6d6567610000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000fbaa992a9e04e6a4fd1ba52d49c9c12baa0da3c60000000000000000000000007a8a1e6966ac5b67aca3c9308fa798bb56ecac3800000000000000000000000000000000000000000000000000000000000000010000000000000000000000008adb68e26b725af5e4b9c7deefe53d7edaaeec87

-----Decoded View---------------
Arg [0] : params (tuple):
Arg [1] : name (string): FraxGovernorOmega
Arg [2] : veFxs (address): 0x961D4921e1718E633BAC8Ded88c4a1cAe44b785a
Arg [3] : veFxsVotingDelegation (address): 0x961D4921e1718E633BAC8Ded88c4a1cAe44b785a
Arg [4] : safeAllowlist (address[]): 0xfBAa992a9E04e6a4Fd1Ba52d49c9c12baa0dA3C6,0x7a8A1e6966Ac5b67Aca3C9308Fa798Bb56ECAC38
Arg [5] : delegateCallAllowlist (address[]): 0x8adB68E26B725af5e4b9C7deefe53d7eDaAeEc87
Arg [6] : timelockController (address): 0xfBAa992a9E04e6a4Fd1Ba52d49c9c12baa0dA3C6
Arg [7] : initialVotingDelay (uint256): 60
Arg [8] : initialVotingPeriod (uint256): 120
Arg [9] : initialProposalThreshold (uint256): 115792089237316195423570985008687907853269984665640564039457584007913129639935
Arg [10] : quorumNumeratorValue (uint256): 95
Arg [11] : initialVotingDelayBlocks (uint256): 5
Arg [12] : initialShortCircuitNumerator (uint256): 95


-----Encoded View---------------
20 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000020
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000180
Arg [2] : 000000000000000000000000961d4921e1718e633bac8ded88c4a1cae44b785a
Arg [3] : 000000000000000000000000961d4921e1718e633bac8ded88c4a1cae44b785a
Arg [4] : 00000000000000000000000000000000000000000000000000000000000001c0
Arg [5] : 0000000000000000000000000000000000000000000000000000000000000220
Arg [6] : 000000000000000000000000fbaa992a9e04e6a4fd1ba52d49c9c12baa0da3c6
Arg [7] : 000000000000000000000000000000000000000000000000000000000000003c
Arg [8] : 0000000000000000000000000000000000000000000000000000000000000078
Arg [9] : ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
Arg [10] : 000000000000000000000000000000000000000000000000000000000000005f
Arg [11] : 0000000000000000000000000000000000000000000000000000000000000005
Arg [12] : 000000000000000000000000000000000000000000000000000000000000005f
Arg [13] : 0000000000000000000000000000000000000000000000000000000000000011
Arg [14] : 46726178476f7665726e6f724f6d656761000000000000000000000000000000
Arg [15] : 0000000000000000000000000000000000000000000000000000000000000002
Arg [16] : 000000000000000000000000fbaa992a9e04e6a4fd1ba52d49c9c12baa0da3c6
Arg [17] : 0000000000000000000000007a8a1e6966ac5b67aca3c9308fa798bb56ecac38
Arg [18] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [19] : 0000000000000000000000008adb68e26b725af5e4b9c7deefe53d7edaaeec87

🤖 Code Reader

Generate instant answers for your smart contract questions using Al Models. Read more.

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.