0 txs
3 calls
constructor
constructor()
functions
checkContractBalance
viewfunction checkContractBalance(address token) view returns (uint256)
checkTokenHasFees
viewfunction checkTokenHasFees(address token) view returns (bool)
communityVaultecCoreAddress
viewfunction communityVaultecCoreAddress() view returns (address)
getMemberVote
viewfunction getMemberVote(uint256 proposalId, address member) view returns (bool hasVoted, bool inFavor)
getProposalDetails
viewfunction getProposalDetails(uint256 proposalId) view returns (uint256 vaultId, address creator, uint8 proposalType, address sourceToken, address targetToken, uint256 amount, uint256 minAmountOut, uint256 yesVotes, uint256 noVotes, uint8 status, bool hasFees)
getProposalRetrievalDetails
viewfunction getProposalRetrievalDetails(uint256 proposalId) view returns (bool tokensRetrieved, uint256 amountReceived)
getRequiredVotes
viewfunction getRequiredVotes(uint256 proposalId) view returns (uint256)
getTimestampDetails
viewfunction getTimestampDetails(uint256 proposalId) view returns (uint256 vaultId, uint256 createdAt, uint256 executedAt)
hasEnoughVotes
viewfunction hasEnoughVotes(uint256 proposalId) view returns (bool)
owner
viewfunction owner() view returns (address)
timeStamp
viewfunction timeStamp(uint256) view returns (uint256 vaultId, uint256 createdAt, uint256 executedAt)
tokenHasFees
viewfunction tokenHasFees(address) view returns (bool)
totalProposals
viewfunction totalProposals() view returns (uint256)
tradeProposals
viewfunction tradeProposals(uint256) view returns (uint256 vaultId, address creator, uint8 proposalType, address sourceToken, address targetToken, uint256 amount, uint256 minAmountOut, uint256 yesVotes, uint256 noVotes, uint8 status, bool exists, bool tokensRetrieved, uint256 amountReceived, bool hasFees)
uniswapRouterAddress
viewfunction uniswapRouterAddress() view returns (address)
VOTING_THRESHOLD
viewfunction VOTING_THRESHOLD() view returns (uint256)
cancelProposal
nonpayablefunction cancelProposal(uint256 proposalId)
createTradeProposal
nonpayablefunction createTradeProposal(uint256 vaultId, uint8 proposalType, address sourceToken, address targetToken, uint256 amount, uint256 minAmountOut, bool hasFees)
editProposal
nonpayablefunction editProposal(uint256 proposalId, uint256 newAmount, uint256 newMinAmountOut, bool newHasFees)
emergencyRetrieveETH
nonpayablefunction emergencyRetrieveETH(uint256 vaultId)
emergencyRetrieveTokens
nonpayablefunction emergencyRetrieveTokens(address token, uint256 vaultId)
executeProposal
nonpayablefunction executeProposal(uint256 proposalId)
retrieveTokens
nonpayablefunction retrieveTokens(uint256 proposalId)
setCommunityVaultecCoreAddress
nonpayablefunction setCommunityVaultecCoreAddress(address _communityVaultecCoreAddress)
setTokenFeeStatus
nonpayablefunction setTokenFeeStatus(address token, bool hasFees)
setUniswapRouterAddress
nonpayablefunction setUniswapRouterAddress(address _uniswapRouterAddress)
setVotingThreshold
nonpayablefunction setVotingThreshold(uint256 newThreshold)
voteOnProposal
nonpayablefunction voteOnProposal(uint256 proposalId, bool inFavor)
events
CoreAddressUpdated
event CoreAddressUpdated(address indexed newAddress)
DebugLog
event DebugLog(string message, uint256 value)
ProposalCancelled
event ProposalCancelled(uint256 indexed proposalId, uint256 indexed vaultId, address indexed creator, uint256 timestamp)
ProposalCreated
event ProposalCreated(uint256 indexed proposalId, uint256 indexed vaultId, address indexed creator, uint8 proposalType, address sourceToken, address targetToken, uint256 amount, uint256 minAmountOut, bool hasFees)
ProposalCreatedTimestamp
event ProposalCreatedTimestamp(uint256 indexed proposalId, uint256 indexed vaultId, uint256 createdAt, uint256 executedAt)
ProposalEdited
event ProposalEdited(uint256 indexed proposalId, uint256 indexed vaultId, address indexed creator, uint256 newAmount, uint256 newMinAmountOut, bool newHasFees, uint256 timestamp)
ProposalExecuted
event ProposalExecuted(uint256 indexed proposalId, uint256 indexed vaultId, uint256 amountOut)
ProposalExecutedTimeStamp
event ProposalExecutedTimeStamp(uint256 indexed proposalId, uint256 executedAt)
RouterAddressUpdated
event RouterAddressUpdated(address indexed newAddress)
SwapExecuted
event SwapExecuted(address sourceToken, address targetToken, uint256 amountIn, uint256 amountOut)
TokenFeeStatusSet
event TokenFeeStatusSet(address indexed token, bool hasFees)
TokensRetrieved
event TokensRetrieved(uint256 indexed proposalId, address indexed token, uint256 amount)
VoteCast
event VoteCast(uint256 indexed proposalId, address indexed voter, bool inFavor)
errors
No errors.
creation bytecode
0x608060405260326003553480156013575f5ffd5b505f80546001600160a01b03191633179055615853806100325f395ff3fe6080604052600436106101a1575f3560e01c80638da5cb5b116100df578063beba235c11610083578063db15d18511610060578063db15d185146105d4578063e0a8f6f5146105f3578063f75dbb0714610612578063fbdd4dd31461063157005b8063beba235c146104a9578063c1dd59fb146104e3578063c8d046a01461059a57005b8063a73b2c01116100bc578063a73b2c0114610428578063a78d80fc14610456578063b4531bd31461046b578063b507ce8f1461048a57005b80638da5cb5b146103bf57806394062bbb146103dd57806394abb8cd1461041357005b8063343c4dc7116101465780635a9756cd116101235780635a9756cd1461034357806364d3fcbd1461036257806369d24b4d14610381578063836761e0146103a057005b8063343c4dc7146102a75780633b4d01a7146102c657806344915a40146102fc57005b80631614665c1161017f5780631614665c146102005780631ec28e0f1461021f57806320ca3c7f1461025157806326189ce21461028857005b8063091d6064146101a357806309f29d1b146101c25780630d61b519146101e1575b005b3480156101ae575f5ffd5b506101a16101bd366004614ded565b610667565b3480156101cd575f5ffd5b506101a16101dc366004614ded565b6107a2565b3480156101ec575f5ffd5b506101a16101fb366004614ded565b610eb5565b34801561020b575f5ffd5b506101a161021a366004614e14565b611ef5565b34801561022a575f5ffd5b5061023e610239366004614ded565b612192565b6040519081526020015b60405180910390f35b34801561025c575f5ffd5b50600254610270906001600160a01b031681565b6040516001600160a01b039091168152602001610248565b348015610293575f5ffd5b50600154610270906001600160a01b031681565b3480156102b2575f5ffd5b506101a16102c1366004614e56565b612271565b3480156102d1575f5ffd5b506102e56102e0366004614ded565b6128bc565b6040516102489b9a99989796959493929190614f07565b348015610307575f5ffd5b50610333610316366004614f86565b6001600160a01b03165f9081526007602052604090205460ff1690565b6040519015158152602001610248565b34801561034e575f5ffd5b506101a161035d366004614fa1565b6129d2565b34801561036d575f5ffd5b506101a161037c366004614fcb565b612c5b565b34801561038c575f5ffd5b506101a161039b366004615009565b612e2f565b3480156103ab575f5ffd5b506101a16103ba366004614ded565b612f0c565b3480156103ca575f5ffd5b505f54610270906001600160a01b031681565b3480156103e8575f5ffd5b506103fc6103f7366004615035565b612f3a565b604080519215158352901515602083015201610248565b34801561041e575f5ffd5b5061023e60035481565b348015610433575f5ffd5b50610333610442366004614f86565b60076020525f908152604090205460ff1681565b348015610461575f5ffd5b5061023e60065481565b348015610476575f5ffd5b50610333610485366004614ded565b612fae565b348015610495575f5ffd5b506101a16104a4366004614f86565b613099565b3480156104b4575f5ffd5b506104c86104c3366004614ded565b61310b565b60408051938452602084019290925290820152606001610248565b3480156104ee575f5ffd5b506105806104fd366004614ded565b600460208190525f91825260409091208054600182015460028301546003840154948401546005850154600686015460078701546009880154600a890154600b9099015497996001600160a01b038089169a60ff600160a01b909a048a169a9882169992909116978383169361010081048416936201000090910481169291168e565b6040516102489e9d9c9b9a99989796959493929190615058565b3480156105a5575f5ffd5b506104c86105b4366004614ded565b60056020525f908152604090208054600182015460029092015490919083565b3480156105df575f5ffd5b506101a16105ee366004614f86565b613168565b3480156105fe575f5ffd5b506101a161060d366004614ded565b6131da565b34801561061d575f5ffd5b5061023e61062c366004614f86565b6132f1565b34801561063c575f5ffd5b5061065061064b366004614ded565b613373565b604080519215158352602083019190915201610248565b5f546001600160a01b031633146106995760405162461bcd60e51b8152600401610690906150f5565b60405180910390fd5b47806106dc5760405162461bcd60e51b81526020600482015260126024820152714e6f2045544820746f20726574726965766560701b6044820152606401610690565b6001546040516345e747f560e01b81526001600160a01b03909116906345e747f59083906107129086905f908490600401615136565b5f604051808303818588803b158015610729575f5ffd5b505af115801561073b573d5f5f3e3d5ffd5b50505050505f5160206157fe5f395f51905f5281604051610796919060408082526017908201527f456d657267656e637920455448207265747269657665640000000000000000006060820152602081019190915260800190565b60405180910390a15050565b5f818152600460205260409020600901548190610100900460ff166107d95760405162461bcd60e51b815260040161069090615155565b5f82815260046020526040902080546001909101548391906001600160a01b03163314806108735750600154604051630280712b60e11b8152600481018390523360248201526001600160a01b0390911690630500e25690604401602060405180830381865afa15801561084f573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610873919061518c565b806108ef575060015460405163a837cc6360e01b81526004810183905233916001600160a01b03169063a837cc6390602401602060405180830381865afa1580156108c0573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108e491906151a7565b6001600160a01b0316145b806108f957503330145b6109795760405162461bcd60e51b8152602060048201526044602482018190527f4f6e6c792070726f706f73616c2063726561746f722c207661756c742061646d908201527f696e2c206f72206c65616465722063616e2063616c6c20746869732066756e636064820152633a34b7b760e11b608482015260a401610690565b5f8481526004602052604090206001600982015460ff1660038111156109a1576109a1614ecf565b146109ee5760405162461bcd60e51b815260206004820152601960248201527f50726f706f73616c206d757374206265206578656375746564000000000000006044820152606401610690565b600981015462010000900460ff1615610a495760405162461bcd60e51b815260206004820152601860248201527f546f6b656e7320616c72656164792072657472696576656400000000000000006044820152606401610690565b5f6001820154600160a01b900460ff166002811115610a6a57610a6a614ecf565b1480610a95575060026001820154600160a01b900460ff166002811115610a9357610a93614ecf565b145b610ae15760405162461bcd60e51b815260206004820152601d60248201527f4e6f74206170706c696361626c6520666f7220455448206f75747075740000006044820152606401610690565b5f81600a015411610b345760405162461bcd60e51b815260206004820152601c60248201527f4e6f20616d6f756e742072656365697665642066726f6d2073776170000000006044820152606401610690565b6003810154600a8201546040516370a0823160e01b81523060048201526001600160a01b03909216915f9083906370a0823190602401602060405180830381865afa158015610b85573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ba991906151c2565b905081811015610bfb5760405162461bcd60e51b815260206004820152601a60248201527f496e73756666696369656e7420746f6b656e2062616c616e63650000000000006044820152606401610690565b60408051818152601e818301527f52657472696576696e6720746f6b656e7320666f722070726f706f73616c00006060820152602081018a905290515f5160206157fe5f395f51905f529181900360800190a1604080518181526012818301527120b6b7bab73a103a37903a3930b739b332b960711b60608201526020810184905290515f5160206157fe5f395f51905f529181900360800190a160098401805462ff000019166201000017905560015460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018490525f9185169063a9059cbb906044016020604051808303815f875af1158015610cfa573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d1e919061518c565b905080610d3d5760405162461bcd60e51b8152600401610690906151d9565b604080518181526021818301527f546f6b656e73207472616e7366657272656420746f205661756c746563436f726060820152606560f81b60808201526020810185905290515f5160206157fe5f395f51905f529181900360a00190a160015485546040516345e747f560e01b81526001600160a01b03909216916345e747f591610dce9188908890600401615136565b5f604051808303815f87803b158015610de5575f5ffd5b505af1158015610df7573d5f5f3e3d5ffd5b50505050836001600160a01b0316897f02c5eadcfeaeebfb260d7ee023a8a92743e8f5f6c1df0d0ce3da68a57e6eccb685604051610e3791815260200190565b60405180910390a360408051818152602f818301527f546f6b656e73207375636365737366756c6c792072657472696576656420616e60608201526e19081d985d5b1d081d5c19185d1959608a1b60808201526020810185905290515f5160206157fe5f395f51905f529181900360a00190a1505050505050505050565b5f818152600460205260409020600901548190610100900460ff16610eec5760405162461bcd60e51b815260040161069090615155565b5f8281526004602052604090206001015482906001600160a01b03163314610f265760405162461bcd60e51b81526004016106909061521d565b5f838152600460209081526040808320600590925282209091600983015460ff166003811115610f5857610f58614ecf565b14610f755760405162461bcd60e51b815260040161069090615269565b6001548254604051635ce9284f60e01b815260048101919091525f916001600160a01b031690635ce9284f90602401602060405180830381865afa158015610fbf573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fe391906151c2565b90505f606460035483610ff691906152ad565b61100091906152c4565b9050808460060154101561104d5760405162461bcd60e51b81526020600482015260146024820152734e6f7420656e6f7567682079657320766f74657360601b6044820152606401610690565b60098401805460ff1916600117905542600284018190556004850154604080518181526017818301527f5472616e7366657272696e672066726f6d207661756c7400000000000000000060608201526020810192909252515f5160206157fe5f395f51905f52916080908290030190a160015485546002870154600480890154604051630e05b9ed60e21b81525f956001600160a01b0390811695633816e7b4956110fd95919492169201615136565b6020604051808303815f875af1158015611119573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061113d919061518c565b90508061118c5760405162461bcd60e51b815260206004820152601a60248201527f5472616e736665722066726f6d207661756c74206661696c65640000000000006044820152606401610690565b6040805181815260138183015272151c985b9cd9995c881cdd58d8d95cdcd99d5b606a1b60608201526001602082015290515f5160206157fe5f395f51905f529181900360800190a15f806001880154600160a01b900460ff1660028111156111f7576111f7614ecf565b03611582575f5160206157fe5f395f51905f52876004015460405161125691906040808252601b908201527f457865637574696e672045544820746f20546f6b656e207377617000000000006060820152602081019190915260800190565b60405180910390a186600401544710156112bc5760405162461bcd60e51b815260206004820152602160248201527f496e73756666696369656e74204554482062616c616e636520666f72207377616044820152600760fc1b6064820152608401610690565b600b87015460ff16806112ea575060038701546001600160a01b03165f9081526007602052604090205460ff165b1561131957600387015460048801546005890154611312926001600160a01b031691906133d4565b905061133f565b60038701546004880154600589015461133c926001600160a01b031691906138d0565b90505b604080518181526018818301527f5377617020636f6d706c657465642c207265636569766564000000000000000060608201526020810183905290515f5160206157fe5f395f51905f529181900360800190a160038701546040516370a0823160e01b81523060048201525f916001600160a01b0316906370a0823190602401602060405180830381865afa1580156113da573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113fe91906151c2565b9050818110156114505760405162461bcd60e51b815260206004820152601a60248201527f546f6b656e2062616c616e636520636865636b206661696c65640000000000006044820152606401610690565b6040805181815260168183015275151bdad95b8818985b185b98d9481d995c9a599a595960521b60608201526020810183905290515f5160206157fe5f395f51905f529181900360800190a16002880154600389015460048a01546040517fdd36740e2a012d93061a0d99eaa9107860955de4e90027d3cf465a055026c407936114ea936001600160a01b039182169391169187906152e3565b60405180910390a187546040518381528c907f3842d9e8746c3c1b0c5e717a88df9c9ae97f2f8c0e01e42dce160aafdb3840e99060200160405180910390a3600a88018290556040516309f29d1b60e01b8152600481018c905230906309f29d1b906024015f604051808303815f87803b158015611566575f5ffd5b505af1158015611578573d5f5f3e3d5ffd5b5050505050611ee9565b600180880154600160a01b900460ff1660028111156115a3576115a3614ecf565b036119f2575f5160206157fe5f395f51905f52876004015460405161160291906040808252601b908201527f457865637574696e6720546f6b656e20746f20455448207377617000000000006060820152602081019190915260800190565b60405180910390a160028701546040516370a0823160e01b81523060048201525f916001600160a01b0316906370a0823190602401602060405180830381865afa158015611652573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061167691906151c2565b905087600401548110156116d85760405162461bcd60e51b815260206004820152602360248201527f496e73756666696369656e7420746f6b656e2062616c616e636520666f72207360448201526207761760ec1b6064820152608401610690565b6040805181815260168183015275151bdad95b8818985b185b98d9481d995c9a599a595960521b60608201526020810183905290515f5160206157fe5f395f51905f529181900360800190a1600b88015460ff1680611752575060028801546001600160a01b03165f9081526007602052604090205460ff165b15611781576002880154600489015460058a015461177a926001600160a01b03169190613d12565b91506117a7565b6002880154600489015460058a01546117a4926001600160a01b031691906140a6565b91505b60408051818152601c818301527f5377617020636f6d706c657465642c207265636569766564204554480000000060608201526020810184905290515f5160206157fe5f395f51905f529181900360800190a18147101561184a5760405162461bcd60e51b815260206004820152601860248201527f4554482062616c616e636520636865636b206661696c656400000000000000006044820152606401610690565b60408051818152601481830152731155120818985b185b98d9481d995c9a599a595960621b606082015247602082015290515f5160206157fe5f395f51905f529181900360800190a160015488546040516345e747f560e01b81526001600160a01b03909216916345e747f59185916118ca91905f908490600401615136565b5f604051808303818588803b1580156118e1575f5ffd5b505af11580156118f3573d5f5f3e3d5ffd5b50505050505f5160206157fe5f395f51905f5282604051611944919060408082526013908201527215985d5b1d1958d0dbdc99481d5c19185d1959606a1b6060820152602081019190915260800190565b60405180910390a16002880154600389015460048a01546040517fdd36740e2a012d93061a0d99eaa9107860955de4e90027d3cf465a055026c4079361199a936001600160a01b039182169391169187906152e3565b60405180910390a187546040518381528c907f3842d9e8746c3c1b0c5e717a88df9c9ae97f2f8c0e01e42dce160aafdb3840e99060200160405180910390a35060098701805462ff0000191662010000179055611ee9565b60026001880154600160a01b900460ff166002811115611a1457611a14614ecf565b03611ee9575f5160206157fe5f395f51905f528760040154604051611a7391906040808252601d908201527f457865637574696e6720546f6b656e20746f20546f6b656e20737761700000006060820152602081019190915260800190565b60405180910390a160028701546040516370a0823160e01b81523060048201525f916001600160a01b0316906370a0823190602401602060405180830381865afa158015611ac3573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ae791906151c2565b90508760040154811015611b505760405162461bcd60e51b815260206004820152602a60248201527f496e73756666696369656e7420736f7572636520746f6b656e2062616c616e6360448201526906520666f7220737761760b41b6064820152608401610690565b60408051818152601d818301527f536f7572636520746f6b656e2062616c616e636520766572696669656400000060608201526020810183905290515f5160206157fe5f395f51905f529181900360800190a1600b88015460ff1680611bd1575060028801546001600160a01b03165f9081526007602052604090205460ff165b80611bf7575060038801546001600160a01b03165f9081526007602052604090205460ff165b15611c2f576002880154600389015460048a015460058b0154611c28936001600160a01b0390811693169190614463565b9150611c5e565b6002880154600389015460048a015460058b0154611c5b936001600160a01b039081169316919061491b565b91505b60408051818152601f818301527f5377617020636f6d706c657465642c20726563656976656420746f6b656e730060608201526020810184905290515f5160206157fe5f395f51905f529181900360800190a160038801546040516370a0823160e01b81523060048201525f916001600160a01b0316906370a0823190602401602060405180830381865afa158015611cf9573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611d1d91906151c2565b905082811015611d795760405162461bcd60e51b815260206004820152602160248201527f54617267657420746f6b656e2062616c616e636520636865636b206661696c656044820152601960fa1b6064820152608401610690565b60408051818152601d818301527f54617267657420746f6b656e2062616c616e636520766572696669656400000060608201526020810183905290515f5160206157fe5f395f51905f529181900360800190a1600289015460038a015460048b01546040517fdd36740e2a012d93061a0d99eaa9107860955de4e90027d3cf465a055026c40793611e1a936001600160a01b039182169391169188906152e3565b60405180910390a188546040518481528d907f3842d9e8746c3c1b0c5e717a88df9c9ae97f2f8c0e01e42dce160aafdb3840e99060200160405180910390a38b7f81b8aebb97ce57c7b4aa9562f77d23ba474b4cfe5212b8adedd360837b1b0f5b86604051611e8b91815260200190565b60405180910390a2600a89018390556040516309f29d1b60e01b8152600481018d905230906309f29d1b906024015f604051808303815f87803b158015611ed0575f5ffd5b505af1158015611ee2573d5f5f3e3d5ffd5b5050505050505b50505050505050505050565b5f828152600460205260409020600901548290610100900460ff16611f2c5760405162461bcd60e51b815260040161069090615155565b5f8381526004602081905260408083205460015491516309aececb60e01b815292830181905292916001600160a01b03909116906309aececb906024015f60405180830381865afa158015611f83573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052611faa9190810190615370565b90505f805b8251811015611ffb57336001600160a01b0316838281518110611fd457611fd4615416565b60200260200101516001600160a01b031603611ff35760019150611ffb565b600101611faf565b508061205a5760405162461bcd60e51b815260206004820152602860248201527f4f6e6c79207661756c74206d656d6265722063616e2063616c6c207468697320604482015267333ab731ba34b7b760c11b6064820152608401610690565b5f86815260046020526040812090600982015460ff16600381111561208157612081614ecf565b1461209e5760405162461bcd60e51b815260040161069090615269565b335f90815260088201602052604090205460ff16156120ef5760405162461bcd60e51b815260206004820152600d60248201526c105b1c9958591e481d9bdd1959609a1b6044820152606401610690565b335f90815260088201602052604090208054871580156101000261ffff199092169190911760011790915561213957600681018054905f61212f8361542a565b9190505550612150565b600781018054905f61214a8361542a565b91905055505b6040518615158152339088907fe71fcdac32df1877c1700e7bda2a03157e20993363a28fc35ac495cefc76e4d49060200160405180910390a350505050505050565b5f818152600460205260408120600901548290610100900460ff166121c95760405162461bcd60e51b815260040161069090615155565b5f83815260046020819052604080832060015481549251635ce9284f60e01b81529194936001600160a01b0390911692635ce9284f9261220d920190815260200190565b602060405180830381865afa158015612228573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061224c91906151c2565b905060646003548261225e91906152ad565b61226891906152c4565b95945050505050565b600154604051630280712b60e11b81526004810189905233602482015288916001600160a01b031690630500e25690604401602060405180830381865afa1580156122be573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906122e2919061518c565b8061235e575060015460405163a837cc6360e01b81526004810183905233916001600160a01b03169063a837cc6390602401602060405180830381865afa15801561232f573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061235391906151a7565b6001600160a01b0316145b6123c45760405162461bcd60e51b815260206004820152603160248201527f4f6e6c79207661756c742061646d696e206f72206c65616465722063616e206360448201527030b636103a3434b990333ab731ba34b7b760791b6064820152608401610690565b5f84116124135760405162461bcd60e51b815260206004820152601d60248201527f416d6f756e74206d7573742062652067726561746572207468616e20300000006044820152606401610690565b5f87600281111561242657612426614ecf565b036124dd576001600160a01b038616156124825760405162461bcd60e51b815260206004820152601860248201527f536f7572636520746f6b656e206d7573742062652045544800000000000000006044820152606401610690565b6001600160a01b0385166124d85760405162461bcd60e51b815260206004820152601a60248201527f54617267657420746f6b656e2063616e6e6f74206265204554480000000000006044820152606401610690565b6126dd565b60018760028111156124f1576124f1614ecf565b036125a3576001600160a01b03861661254c5760405162461bcd60e51b815260206004820152601a60248201527f536f7572636520746f6b656e2063616e6e6f74206265204554480000000000006044820152606401610690565b6001600160a01b038516156124d85760405162461bcd60e51b815260206004820152601860248201527f54617267657420746f6b656e206d7573742062652045544800000000000000006044820152606401610690565b60028760028111156125b7576125b7614ecf565b036126dd576001600160a01b0386166126125760405162461bcd60e51b815260206004820152601a60248201527f536f7572636520746f6b656e2063616e6e6f74206265204554480000000000006044820152606401610690565b6001600160a01b0385166126685760405162461bcd60e51b815260206004820152601a60248201527f54617267657420746f6b656e2063616e6e6f74206265204554480000000000006044820152606401610690565b846001600160a01b0316866001600160a01b0316036126dd5760405162461bcd60e51b815260206004820152602b60248201527f536f7572636520616e642074617267657420746f6b656e732063616e6e6f742060448201526a6265207468652073616d6560a81b6064820152608401610690565b6006545f8181526004602052604090208981556001810180546001600160a01b031981163390811783554293928c92909160ff60a01b19166001600160a81b031990911617600160a01b83600281111561273957612739614ecf565b0217905550600281810180546001600160a01b038c81166001600160a01b03199283168117909355600385018054918d169190921617905560048301899055600580840189905560098401805462ffffff1916610100179055600b8401805489151560ff199091161790555f868152602091909152604081208e81556001810186905592830155158015906127cc575085155b15612801576001600160a01b038a165f90815260076020526040902054600b8301805460ff191660ff90921615159190911790555b60068054905f6128108361542a565b9190505550336001600160a01b03168c857f62c89741a2de2652e14164cce35327b257e878d4e45f16c2215ad53d985655eb8e8e8e8e8e8a600b015f9054906101000a900460ff1660405161286a96959493929190615442565b60405180910390a4604080518481525f60208201528d9186917fdfd332f12cbfde74993687e76fd30bbfdb7f54299755044fe81f0b8b9b01e8d6910160405180910390a3505050505050505050505050565b5f5f5f5f5f5f5f5f5f5f5f8b60045f8281526020019081526020015f2060090160019054906101000a900460ff166129065760405162461bcd60e51b815260040161069090615155565b5f60045f8f81526020019081526020015f209050805f0154816001015f9054906101000a90046001600160a01b03168260010160149054906101000a900460ff16836002015f9054906101000a90046001600160a01b0316846003015f9054906101000a90046001600160a01b03168560040154866005015487600601548860070154896009015f9054906101000a900460ff168a600b015f9054906101000a900460ff169c509c509c509c509c509c509c509c509c509c509c50505091939597999b90929496989a50565b5f546001600160a01b031633146129fb5760405162461bcd60e51b8152600401610690906150f5565b6001600160a01b038216612a515760405162461bcd60e51b815260206004820181905260248201527f55736520656d657267656e6379526574726965766545544820666f72204554486044820152606401610690565b6040516370a0823160e01b81523060048201525f906001600160a01b038416906370a0823190602401602060405180830381865afa158015612a95573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612ab991906151c2565b90505f8111612b025760405162461bcd60e51b81526020600482015260156024820152744e6f20746f6b656e7320746f20726574726965766560581b6044820152606401610690565b60015460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018390525f9185169063a9059cbb906044016020604051808303815f875af1158015612b53573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612b77919061518c565b905080612b965760405162461bcd60e51b8152600401610690906151d9565b6001546040516345e747f560e01b81526001600160a01b03909116906345e747f590612bca90869088908790600401615136565b5f604051808303815f87803b158015612be1575f5ffd5b505af1158015612bf3573d5f5f3e3d5ffd5b505050505f5160206157fe5f395f51905f5282604051612c4d91906040808252601a908201527f456d657267656e637920746f6b656e73207265747269657665640000000000006060820152602081019190915260800190565b60405180910390a150505050565b5f848152600460205260409020600901548490610100900460ff16612c925760405162461bcd60e51b815260040161069090615155565b5f8581526004602052604090206001015485906001600160a01b03163314612ccc5760405162461bcd60e51b81526004016106909061521d565b5f86815260046020526040812090600982015460ff166003811115612cf357612cf3614ecf565b14612d105760405162461bcd60e51b815260040161069090615269565b5f8611612d5f5760405162461bcd60e51b815260206004820152601d60248201527f416d6f756e74206d7573742062652067726561746572207468616e20300000006044820152606401610690565b6004810186905560058101859055600b8101805460ff191685151517905560028101546001600160a01b031615801590612d97575083155b15612dd05760028101546001600160a01b03165f90815260076020526040902054600b8201805460ff191660ff90921615159190911790555b8054600b820154604080518981526020810189905260ff909216151582820152426060830152513392918a917fe5e49af2f86e72f9ad6988bf90065b2389de3b9d6edc318c40eddad5d2d5a0409181900360800190a450505050505050565b5f546001600160a01b03163314612e585760405162461bcd60e51b8152600401610690906150f5565b6001600160a01b038216612eae5760405162461bcd60e51b815260206004820152601d60248201527f43616e6e6f7420736574206665652073746174757320666f72204554480000006044820152606401610690565b6001600160a01b0382165f81815260076020908152604091829020805460ff191685151590811790915591519182527fd8925adb78e2d109e93f72f18cb27f0a4d511ffa6c909e77d19259d74f7998b5910160405180910390a25050565b5f546001600160a01b03163314612f355760405162461bcd60e51b8152600401610690906150f5565b600355565b5f8281526004602052604081206009015481908490610100900460ff16612f735760405162461bcd60e51b815260040161069090615155565b5050505f9182526004602090815260408084206001600160a01b039390931684526008909201905290205460ff808216926101009092041690565b5f818152600460205260408120600901548290610100900460ff16612fe55760405162461bcd60e51b815260040161069090615155565b5f83815260046020819052604080832060015481549251635ce9284f60e01b81529194936001600160a01b0390911692635ce9284f92613029920190815260200190565b602060405180830381865afa158015613044573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061306891906151c2565b90505f60646003548361307b91906152ad565b61308591906152c4565b600690930154929092101595945050505050565b5f546001600160a01b031633146130c25760405162461bcd60e51b8152600401610690906150f5565b600180546001600160a01b0319166001600160a01b0383169081179091556040517fbca3f1aa8de84a3358f79c18643a1fd10e6f51209329ff16f756ccf1ae079540905f90a250565b5f81815260046020526040812060090154819081908490610100900460ff166131465760405162461bcd60e51b815260040161069090615155565b5050505f91825250600560205260409020805460018201546002909201549092565b5f546001600160a01b031633146131915760405162461bcd60e51b8152600401610690906150f5565b600280546001600160a01b0319166001600160a01b0383169081179091556040517fafec26814d7c5e0716cdb68343bdf123509d8bae8a1a877de1c3869411985c55905f90a250565b5f818152600460205260409020600901548190610100900460ff166132115760405162461bcd60e51b815260040161069090615155565b5f8281526004602052604090206001015482906001600160a01b0316331461324b5760405162461bcd60e51b81526004016106909061521d565b5f838152600460209081526040808320600590925282209091600983015460ff16600381111561327d5761327d614ecf565b1461329a5760405162461bcd60e51b815260040161069090615269565b60098201805460ff1916600317905542600282018190558254604051918252339187907f06be4ead4ea97756d43d812225ff18ee2121165dadd175c7b98c33177075b6a49060200160405180910390a45050505050565b5f6001600160a01b038216613307575047919050565b6040516370a0823160e01b81523060048201526001600160a01b038316906370a0823190602401602060405180830381865afa158015613349573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061336d91906151c2565b92915050565b5f8181526004602052604081206009015481908390610100900460ff166133ac5760405162461bcd60e51b815260040161069090615155565b5050505f9081526004602052604090206009810154600a909101546201000090910460ff1691565b60028054604080518381526060810182525f936001600160a01b03909316928492602083019080368337019050509050816001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613440573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061346491906151a7565b815f8151811061347657613476615416565b60200260200101906001600160a01b031690816001600160a01b03168152505085816001815181106134aa576134aa615416565b6001600160a01b0392831660209182029290920101526040516370a0823160e01b81523060048201525f918816906370a0823190602401602060405180830381865afa1580156134fc573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061352091906151c2565b90505f5160206157fe5f395f51905f5281604051613582919060408082526021908201527f496e697469616c20746f6b656e2062616c616e636520287769746820666565736060820152602960f81b6080820152602081019190915260a00190565b60405180910390a16040805181815260138183015272045544820616d6f756e7420666f72207377617606c1b60608201526020810188905290515f5160206157fe5f395f51905f529181900360800190a16001600160a01b03831663b6f9de95878785306135f242610708615486565b6040518663ffffffff1660e01b815260040161361194939291906154dc565b5f604051808303818588803b158015613628575f5ffd5b505af19350505050801561363a575060015b61377f57613646615510565b806308c379a0036136fd575061365a615529565b8061366557506136ff565b604080518181526021918101919091527f5377617020776974682066656573206661696c6564207769746820726561736f6060820152603760f91b60808201525f60208201525f5160206157fe5f395f51905f529060a0015b60405180910390a1806040516020016136d791906155ad565b60408051601f198184030181529082905262461bcd60e51b8252610690916004016155dc565b505b604080518181526028918101919091527f5377617020776974682066656573206661696c6564207769746820756e6b6e6f6060820152673bb71032b93937b960c11b60808201525f60208201525f5160206157fe5f395f51905f529060a0015b60405180910390a160405162461bcd60e51b815260040161069090615611565b6040516370a0823160e01b81523060048201525f906001600160a01b038916906370a0823190602401602060405180830381865afa1580156137c3573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906137e791906151c2565b90505f6137f4838361564d565b90505f5160206157fe5f395f51905f5282604051613842919060408082526013908201527246696e616c20746f6b656e2062616c616e636560681b6060820152602081019190915260800190565b60405180910390a160408051818152601b818301527f416d6f756e74207265636569766564202877697468206665657329000000000060608201526020810183905290515f5160206157fe5f395f51905f529181900360800190a1868110156138bd5760405162461bcd60e51b815260040161069090615660565b94506138c99350505050565b9392505050565b60028054604080518381526060810182525f936001600160a01b03909316928492602083019080368337019050509050816001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561393c573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061396091906151a7565b815f8151811061397257613972615416565b60200260200101906001600160a01b031690816001600160a01b03168152505085816001815181106139a6576139a6615416565b6001600160a01b0392831660209182029290920101526040516370a0823160e01b81523060048201525f918816906370a0823190602401602060405180830381865afa1580156139f8573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613a1c91906151c2565b90505f5160206157fe5f395f51905f5281604051613a6c9190604080825260159082015274496e697469616c20746f6b656e2062616c616e636560581b6060820152602081019190915260800190565b60405180910390a16040805181815260138183015272045544820616d6f756e7420666f72207377617606c1b60608201526020810188905290515f5160206157fe5f395f51905f529181900360800190a16001600160a01b038316637ff36ab587878530613adc42610708615486565b6040518663ffffffff1660e01b8152600401613afb94939291906154dc565b5f6040518083038185885af193505050508015613b3957506040513d5f823e601f3d908101601f19168201604052613b369190810190615697565b60015b613bd557613b45615510565b806308c379a003613bb75750613b59615529565b80613b645750613bb9565b604080518181526017918101919091527f53776170206661696c6564207769746820726561736f6e00000000000000000060608201525f60208201525f5160206157fe5f395f51905f52906080016136be565b505b5f5160206157fe5f395f51905f525f60405161375f919061572a565b6040516370a0823160e01b81523060048201525f906001600160a01b038a16906370a0823190602401602060405180830381865afa158015613c19573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613c3d91906151c2565b90505f613c4a848361564d565b90505f5160206157fe5f395f51905f5282604051613c98919060408082526013908201527246696e616c20746f6b656e2062616c616e636560681b6060820152602081019190915260800190565b60405180910390a160408051818152600f818301526e105b5bdd5b9d081c9958d95a5d9959608a1b60608201526020810183905290515f5160206157fe5f395f51905f529181900360800190a187811015613d055760405162461bcd60e51b815260040161069090615660565b95506138c9945050505050565b60028054604080518381526060810182525f936001600160a01b0390931692849260208301908036833701905050905085815f81518110613d5557613d55615416565b60200260200101906001600160a01b031690816001600160a01b031681525050816001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613db1573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613dd591906151a7565b81600181518110613de857613de8615416565b6001600160a01b039290921660209283029190910182015260408051818152601f818301527f496e697469616c204554482062616c616e63652028776974682066656573290060608201524792810183905290515f5160206157fe5f395f51905f529181900360800190a160408051818152601581830152740546f6b656e20616d6f756e7420666f72207377617605c1b60608201526020810188905290515f5160206157fe5f395f51905f529181900360800190a160025460405163095ea7b360e01b81526001600160a01b039182166004820152602481018890529088169063095ea7b390604401602060405180830381865afa158015613eed573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613f11919061518c565b505f5160206157fe5f395f51905f5286604051613f2e9190615774565b60405180910390a16001600160a01b03831663791ac94787878530613f5542610708615486565b6040518663ffffffff1660e01b8152600401613f759594939291906157c2565b5f604051808303815f87803b158015613f8c575f5ffd5b505af1925050508015613f9d575060015b613fa957613646615510565b475f613fb5838361564d565b90505f5160206157fe5f395f51905f5282604051614001919060408082526011908201527046696e616c204554482062616c616e636560781b6060820152602081019190915260800190565b60405180910390a1604080518181526018818301527f455448207265636569766564202877697468206665657329000000000000000060608201526020810183905290515f5160206157fe5f395f51905f529181900360800190a1868110156138bd5760405162461bcd60e51b8152602060048201526017602482015276125b9cdd59999a58da595b9d08115512081bdd5d1c1d5d604a1b6044820152606401610690565b60028054604080518381526060810182525f936001600160a01b0390931692849260208301908036833701905050905085815f815181106140e9576140e9615416565b60200260200101906001600160a01b031690816001600160a01b031681525050816001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015614145573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061416991906151a7565b8160018151811061417c5761417c615416565b6001600160a01b03929092166020928302919091018201526040805181815260138183015272496e697469616c204554482062616c616e636560681b60608201524792810183905290515f5160206157fe5f395f51905f529181900360800190a160408051818152601581830152740546f6b656e20616d6f756e7420666f72207377617605c1b60608201526020810188905290515f5160206157fe5f395f51905f529181900360800190a160025460405163095ea7b360e01b81526001600160a01b039182166004820152602481018890529088169063095ea7b390604401602060405180830381865afa158015614277573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061429b919061518c565b5060408051818152601a818301527f546f6b656e7320617070726f76656420666f7220726f7574657200000000000060608201526020810188905290515f5160206157fe5f395f51905f529181900360800190a16001600160a01b0383166318cbafe58787853061430e42610708615486565b6040518663ffffffff1660e01b815260040161432e9594939291906157c2565b5f604051808303815f875af192505050801561436b57506040513d5f823e601f3d908101601f191682016040526143689190810190615697565b60015b61437757613b45615510565b475f614383848361564d565b90505f5160206157fe5f395f51905f52826040516143cf919060408082526011908201527046696e616c204554482062616c616e636560781b6060820152602081019190915260800190565b60405180910390a160408051818152600c818301526b115512081c9958d95a5d995960a21b60608201526020810183905290515f5160206157fe5f395f51905f529181900360800190a187811015613d055760405162461bcd60e51b8152602060048201526017602482015276125b9cdd59999a58da595b9d08115512081bdd5d1c1d5d604a1b6044820152606401610690565b600254604080516003808252608082019092525f926001600160a01b0316918391906020820160608036833701905050905086815f815181106144a8576144a8615416565b60200260200101906001600160a01b031690816001600160a01b031681525050816001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015614504573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061452891906151a7565b8160018151811061453b5761453b615416565b60200260200101906001600160a01b031690816001600160a01b031681525050858160028151811061456f5761456f615416565b6001600160a01b0392831660209182029290920101526040516370a0823160e01b81523060048201525f918816906370a0823190602401602060405180830381865afa1580156145c1573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906145e591906151c2565b90505f5160206157fe5f395f51905f528160405161464e919060408082526028908201527f496e697469616c2074617267657420746f6b656e2062616c616e636520287769606082015267746820666565732960c01b6080820152602081019190915260a00190565b60405180910390a160408051818152601c818301527f536f7572636520746f6b656e20616d6f756e7420666f7220737761700000000060608201526020810188905290515f5160206157fe5f395f51905f529181900360800190a160025460405163095ea7b360e01b81526001600160a01b039182166004820152602481018890529089169063095ea7b390604401602060405180830381865afa1580156146f8573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061471c919061518c565b505f5160206157fe5f395f51905f52866040516147399190615774565b60405180910390a16001600160a01b038316635c11d7958787853061476042610708615486565b6040518663ffffffff1660e01b81526004016147809594939291906157c2565b5f604051808303815f87803b158015614797575f5ffd5b505af19250505080156147a8575060015b6147b457613646615510565b6040516370a0823160e01b81523060048201525f906001600160a01b038916906370a0823190602401602060405180830381865afa1580156147f8573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061481c91906151c2565b90505f614829838361564d565b90505f5160206157fe5f395f51905f528260405161488191906040808252601a908201527f46696e616c2074617267657420746f6b656e2062616c616e63650000000000006060820152602081019190915260800190565b60405180910390a1604080518181526022818301527f54617267657420746f6b656e7320726563656976656420287769746820666565606082015261732960f01b60808201526020810183905290515f5160206157fe5f395f51905f529181900360a00190a1868110156149075760405162461bcd60e51b815260040161069090615660565b94506149139350505050565b949350505050565b600254604080516003808252608082019092525f926001600160a01b0316918391906020820160608036833701905050905086815f8151811061496057614960615416565b60200260200101906001600160a01b031690816001600160a01b031681525050816001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156149bc573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906149e091906151a7565b816001815181106149f3576149f3615416565b60200260200101906001600160a01b031690816001600160a01b0316815250508581600281518110614a2757614a27615416565b6001600160a01b0392831660209182029290920101526040516370a0823160e01b81523060048201525f918816906370a0823190602401602060405180830381865afa158015614a79573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190614a9d91906151c2565b90505f5160206157fe5f395f51905f5281604051614af591906040808252601c908201527f496e697469616c2074617267657420746f6b656e2062616c616e6365000000006060820152602081019190915260800190565b60405180910390a160408051818152601c818301527f536f7572636520746f6b656e20616d6f756e7420666f7220737761700000000060608201526020810188905290515f5160206157fe5f395f51905f529181900360800190a160025460405163095ea7b360e01b81526001600160a01b039182166004820152602481018890529089169063095ea7b390604401602060405180830381865afa158015614b9f573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190614bc3919061518c565b5060408051818152601a818301527f546f6b656e7320617070726f76656420666f7220726f7574657200000000000060608201526020810188905290515f5160206157fe5f395f51905f529181900360800190a16001600160a01b0383166338ed173987878530614c3642610708615486565b6040518663ffffffff1660e01b8152600401614c569594939291906157c2565b5f604051808303815f875af1925050508015614c9357506040513d5f823e601f3d908101601f19168201604052614c909190810190615697565b60015b614c9f57613b45615510565b6040516370a0823160e01b81523060048201525f906001600160a01b038a16906370a0823190602401602060405180830381865afa158015614ce3573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190614d0791906151c2565b90505f614d14848361564d565b90505f5160206157fe5f395f51905f5282604051614d6c91906040808252601a908201527f46696e616c2074617267657420746f6b656e2062616c616e63650000000000006060820152602081019190915260800190565b60405180910390a1604080518181526016818301527515185c99d95d081d1bdad95b9cc81c9958d95a5d995960521b60608201526020810183905290515f5160206157fe5f395f51905f529181900360800190a187811015614de05760405162461bcd60e51b815260040161069090615660565b9550614913945050505050565b5f60208284031215614dfd575f5ffd5b5035919050565b8015158114614e11575f5ffd5b50565b5f5f60408385031215614e25575f5ffd5b823591506020830135614e3781614e04565b809150509250929050565b6001600160a01b0381168114614e11575f5ffd5b5f5f5f5f5f5f5f60e0888a031215614e6c575f5ffd5b87359650602088013560038110614e81575f5ffd5b95506040880135614e9181614e42565b94506060880135614ea181614e42565b93506080880135925060a0880135915060c0880135614ebf81614e04565b8091505092959891949750929550565b634e487b7160e01b5f52602160045260245ffd5b60038110614ef357614ef3614ecf565b9052565b60048110614ef357614ef3614ecf565b8b81526001600160a01b038b1660208201526101608101614f2b604083018c614ee3565b6001600160a01b038a811660608401528916608083015260a0820188905260c0820187905260e082018690526101008201859052614f6d610120830185614ef7565b8215156101408301529c9b505050505050505050505050565b5f60208284031215614f96575f5ffd5b81356138c981614e42565b5f5f60408385031215614fb2575f5ffd5b8235614fbd81614e42565b946020939093013593505050565b5f5f5f5f60808587031215614fde575f5ffd5b8435935060208501359250604085013591506060850135614ffe81614e04565b939692955090935050565b5f5f6040838503121561501a575f5ffd5b823561502581614e42565b91506020830135614e3781614e04565b5f5f60408385031215615046575f5ffd5b823591506020830135614e3781614e42565b8e81526001600160a01b038e1660208201526101c0810161507c604083018f614ee3565b6001600160a01b038d811660608401528c1660808301528a60a08301528960c08301528860e0830152876101008301526150ba610120830188614ef7565b851515610140830152841515610160830152836101808301526150e26101a083018415159052565b9f9e505050505050505050505050505050565b60208082526021908201527f4f6e6c79206f776e65722063616e2063616c6c20746869732066756e6374696f6040820152603760f91b606082015260800190565b9283526001600160a01b03919091166020830152604082015260600190565b60208082526017908201527f50726f706f73616c20646f6573206e6f74206578697374000000000000000000604082015260600190565b5f6020828403121561519c575f5ffd5b81516138c981614e04565b5f602082840312156151b7575f5ffd5b81516138c981614e42565b5f602082840312156151d2575f5ffd5b5051919050565b60208082526024908201527f546f6b656e207472616e7366657220746f205661756c746563436f72652066616040820152631a5b195960e21b606082015260800190565b6020808252602c908201527f4f6e6c792070726f706f73616c2063726561746f722063616e2063616c6c207460408201526b3434b990333ab731ba34b7b760a11b606082015260800190565b60208082526016908201527550726f706f73616c206973206e6f742061637469766560501b604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b808202811582820484141761336d5761336d615299565b5f826152de57634e487b7160e01b5f52601260045260245ffd5b500490565b6001600160a01b0394851681529290931660208301526040820152606081019190915260800190565b634e487b7160e01b5f52604160045260245ffd5b601f8201601f1916810167ffffffffffffffff811182821017156153465761534661530c565b6040525050565b5f67ffffffffffffffff8211156153665761536661530c565b5060051b60200190565b5f60208284031215615380575f5ffd5b815167ffffffffffffffff811115615396575f5ffd5b8201601f810184136153a6575f5ffd5b80516153b18161534d565b6040516153be8282615320565b80915082815260208101915060208360051b8501019250868311156153e1575f5ffd5b6020840193505b8284101561540c5783516153fb81614e42565b8252602093840193909101906153e8565b9695505050505050565b634e487b7160e01b5f52603260045260245ffd5b5f6001820161543b5761543b615299565b5060010190565b60c081016154508289614ee3565b6001600160a01b03968716602083015294909516604086015260608501929092526080840152151560a090920191909152919050565b8082018082111561336d5761336d615299565b5f8151808452602084019350602083015f5b828110156154d25781516001600160a01b03168652602095860195909101906001016154ab565b5093949350505050565b848152608060208201525f6154f46080830186615499565b6001600160a01b03949094166040830152506060015292915050565b5f60033d11156155265760045f5f3e505f5160e01c5b90565b5f60443d10156155365790565b6040513d600319016004823e80513d602482011167ffffffffffffffff8211171561556057505090565b808201805167ffffffffffffffff81111561557c575050505090565b3d8401600319018282016020011115615596575050505090565b6155a560208285010185615320565b509392505050565b6c029bbb0b8103330b4b632b21d1609d1b81525f82518060208501600d85015e5f9201600d0191825250919050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b602081525f61336d60208301601e81527f53776170206661696c6564207769746820756e6b6e6f776e206572726f720000602082015260400190565b8181038181111561336d5761336d615299565b6020808252601a908201527f496e73756666696369656e74206f757470757420616d6f756e74000000000000604082015260600190565b5f602082840312156156a7575f5ffd5b815167ffffffffffffffff8111156156bd575f5ffd5b8201601f810184136156cd575f5ffd5b80516156d88161534d565b6040516156e58282615320565b80915082815260208101915060208360051b850101925086831115615708575f5ffd5b6020840193505b8284101561540c57835182526020938401939091019061570f565b604081525f61576660408301601e81527f53776170206661696c6564207769746820756e6b6e6f776e206572726f720000602082015260400190565b905082602083015292915050565b60408082526026908201527f546f6b656e7320617070726f76656420666f7220726f7574657220287769746860608201526520666565732960d01b6080820152602081019190915260a00190565b85815284602082015260a060408201525f6157e060a0830186615499565b6001600160a01b039490941660608301525060800152939250505056fef6ff2ad7fc16bda2a7d32462729431bce3ebe9b75cc7c9b35a0adfbf7e7bb9e6a2646970667358221220d38c34fcaf555f8bd4c968337ee0dc870e043173be67cf3e42e260ed78bc006264736f6c634300081e0033