1.7k txs
2.5k calls
constructor
constructor(address _token)
functions
CCf
viewfunction CCf() view returns (address)
CLaunchpool
viewfunction CLaunchpool() view returns (address)
CStake
viewfunction CStake() view returns (address)
CTier
viewfunction CTier() view returns (address)
getCurrentRank
viewfunction getCurrentRank(address _staker) view returns (tuple rank)
getKOLs
viewfunction getKOLs() view returns (address[])
getPendingWithdrawals
viewfunction getPendingWithdrawals(address _staker) view returns (tuple[])
getRankName
viewfunction getRankName(address _staker) view returns (string)
getUserInfo
viewfunction getUserInfo() view returns (uint256 _stakedAmount, uint256 _withdrawalsCount, uint256 _pendingWithdrawalAmount, uint256 _completedWithdrawalAmount, string _rankName, uint256 _maxAllocation)
isKOL
viewfunction isKOL(address _kol) view returns (bool)
owner
viewfunction owner() view returns (address)
roles
viewfunction roles(address) view returns (uint8)
TEN
viewfunction TEN() view returns (address)
addCf
nonpayablefunction addCf(string tokenName, address tAdr, address cfOwner, uint256 sc, uint256 hc, uint256 wlDuration, uint256 sTime, uint256 eTime, uint256 kolAlloc, uint256 whaleAlloc, uint256 generalAlloc) returns (uint256 projectId)
addKOL
nonpayablefunction addKOL(address _kol)
addKOLS
nonpayablefunction addKOLS(address[] _kol)
allowlistDestinationChain
nonpayablefunction allowlistDestinationChain(uint64 _chainId, uint64 _detinationChainSelector, bool allowed)
buyCf
nonpayablefunction buyCf(uint256 _cf, uint256 _amount)
cancel
nonpayablefunction cancel(uint256 _cf)
cancelLaunchpool
nonpayablefunction cancelLaunchpool(uint256 _launchpoolId)
createLaunchpool
nonpayablefunction createLaunchpool(address _token, uint256 _maxParticipation, uint256 _sTime, uint256 _eTime, uint256 _openWindowDuration, uint256 _tokenAmt, uint64 _chainId, uint64 _decimal)
finalize
nonpayablefunction finalize(uint256 _cf)
participate
nonpayablefunction participate(uint256 _launchpoolId, uint256 _tenAmt)
refundCf
nonpayablefunction refundCf(uint256 _cf)
removeKOL
nonpayablefunction removeKOL(uint256 index)
renounceOwnership
nonpayablefunction renounceOwnership()
requestWithdraw
nonpayablefunction requestWithdraw(uint256 _amount)
setCA
nonpayablefunction setCA(address ca1, address ca2, address ca3, address ca4)
setFFA
nonpayablefunction setFFA(uint256 _cf, bool isActive)
setLpMc
nonpayablefunction setLpMc(address _lp, uint64 _chainId)
setRoles
nonpayablefunction setRoles(address user, uint256 role)
stake
nonpayablefunction stake(uint256 _amount)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
unparticipate
payablefunction unparticipate(uint256 _launchpoolId) payable
withdraw
nonpayablefunction withdraw(address _beneficiary)
withdraw
nonpayablefunction withdraw(uint256 _requestId)
withdrawToken
nonpayablefunction withdrawToken(address _beneficiary, address _token)
events
ContractAddressesSet
event ContractAddressesSet(address ca1, address ca2, address ca3, address ca4)
CrowdfundingAdded
event CrowdfundingAdded(uint256 projectId)
CrowdfundingBought
event CrowdfundingBought(uint256 cfId, address indexed buyer, uint256 amount)
CrowdfundingFinalized
event CrowdfundingFinalized(uint256 cfId)
FFASet
event FFASet(uint256 cfId, bool isActive)
KOLAdded
event KOLAdded(address indexed kol)
KOLRemoved
event KOLRemoved(address indexed kol)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
RoleSet
event RoleSet(address indexed user, uint8 role)
errors
FailedToWithdrawEth
error FailedToWithdrawEth(address owner, address target, uint256 value)
NothingToWithdraw
error NothingToWithdraw()
creation bytecode
0x60806040523480156200001157600080fd5b506040516200304338038062003043833981016040819052620000349162000130565b6200003f33620000e0565b600180556001600160a01b0381166200009e5760405162461bcd60e51b815260206004820152601560248201527f496e76616c696420746f6b656e20616464726573730000000000000000000000604482015260640160405180910390fd5b600680546001600160a01b0319166001600160a01b03831617905533600090815260096020526040902080546001919060ff1916828002179055505062000162565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156200014357600080fd5b81516001600160a01b03811681146200015b57600080fd5b9392505050565b612ed180620001726000396000f3fe6080604052600436106101ae5760003560e01c806305261aea146101ba57806307b068ee146101dc5780630990ae7e14610212578063129874aa146102325780632985654c1461025257806329ec3a6a146102725780632e1a7d4d1461029257806330a61e25146102b257806333a3ad8f146102d25780633aeac4e1146102f257806340e58ee514610312578063469bcd2d146103325780634abb1002146103545780634c3bc5311461037457806351cff8d9146103945780635209ebed146103b45780635d8d1585146103d45780636f9b66a6146103fb578063701d665b1461041b578063715018a61461042e578063745400c91461044357806383becd761461046357806388ba27d9146104835780638d52547f146104a35780638da5cb5b146104c357806399374642146104d85780639c2a4cce146105155780639d06126d14610545578063a694fc3a14610565578063acffddaf14610585578063ad077210146105a5578063b594b0c7146105c5578063b953b842146105f2578063d7b12ea114610620578063ee2f3a051461064d578063f2fde38b1461066d578063f340c0d01461068d57600080fd5b366101b557005b600080fd5b3480156101c657600080fd5b506101da6101d536600461236d565b6106ba565b005b3480156101e857600080fd5b506003546101fc906001600160a01b031681565b6040516102099190612386565b60405180910390f35b34801561021e57600080fd5b506101da61022d3660046123d6565b610828565b34801561023e57600080fd5b506101da61024d36600461244c565b61090d565b34801561025e57600080fd5b506002546101fc906001600160a01b031681565b34801561027e57600080fd5b506101da61028d36600461246e565b610977565b34801561029e57600080fd5b506101da6102ad36600461236d565b610ba8565b3480156102be57600080fd5b506101da6102cd3660046124d8565b610c1b565b3480156102de57600080fd5b506101da6102ed366004612508565b610d7a565b3480156102fe57600080fd5b506101da61030d366004612534565b610ed9565b34801561031e57600080fd5b506101da61032d36600461236d565b610f8d565b34801561033e57600080fd5b506103476110a9565b6040516102099190612562565b34801561036057600080fd5b506101da61036f36600461244c565b61113f565b34801561038057600080fd5b506101da61038f36600461236d565b6111f8565b3480156103a057600080fd5b506101da6103af3660046125af565b611356565b3480156103c057600080fd5b506004546101fc906001600160a01b031681565b3480156103e057600080fd5b506103e96113fb565b6040516102099695949392919061261c565b34801561040757600080fd5b506005546101fc906001600160a01b031681565b6101da61042936600461236d565b61149c565b34801561043a57600080fd5b506101da6114e9565b34801561044f57600080fd5b506101da61045e36600461236d565b6114fd565b34801561046f57600080fd5b506101da61047e36600461236d565b6115ce565b34801561048f57600080fd5b506101da61049e36600461265a565b611607565b3480156104af57600080fd5b506101da6104be366004612742565b61167c565b3480156104cf57600080fd5b506101fc6116f0565b3480156104e457600080fd5b506105086104f33660046125af565b60096020526000908152604090205460ff1681565b60405161020991906127eb565b34801561052157600080fd5b506105356105303660046125af565b6116ff565b6040519015158152602001610209565b34801561055157600080fd5b506101da6105603660046125af565b61171d565b34801561057157600080fd5b506101da61058036600461236d565b611858565b34801561059157600080fd5b506101da6105a036600461236d565b611a6c565b3480156105b157600080fd5b506101da6105c0366004612813565b611ade565b3480156105d157600080fd5b506105e56105e03660046125af565b611b9a565b604051610209919061285a565b3480156105fe57600080fd5b5061061261060d3660046128db565b611ce0565b604051908152602001610209565b34801561062c57600080fd5b5061064061063b3660046125af565b611e22565b60405161020991906129c1565b34801561065957600080fd5b506006546101fc906001600160a01b031681565b34801561067957600080fd5b506101da6106883660046125af565b611e34565b34801561069957600080fd5b506106ad6106a83660046125af565b611eaa565b60405161020991906129d4565b6106c2611f26565b3360009081526009602052604081205460ff1660028111156106e6576106e66127d5565b141580610762575060048054604051630d3abefd60e41b81526001600160a01b039091169163d3abefd09161071f913391869101612a3a565b6020604051808303816000875af115801561073e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107629190612a53565b6107875760405162461bcd60e51b815260040161077e90612a70565b60405180910390fd5b600480546040516302930d7560e11b81529182018390526001600160a01b0316906305261aea90602401600060405180830381600087803b1580156107cb57600080fd5b505af11580156107df573d6000803e3d6000fd5b505050507f8e8a5ce85832ba1a42669e3af3f09bbdfedbd1c0956f740ce487e28822dacdac8160405161081491815260200190565b60405180910390a161082560018055565b50565b3360009081526009602052604081205460ff16600281111561084c5761084c6127d5565b036108695760405162461bcd60e51b815260040161077e90612a70565b6005546040516304c8573f60e11b81526001600160a01b038a81166004830152602482018a905260448201899052606482018890526084820187905260a482018690526001600160401b0380861660c4840152841660e483015290911690630990ae7e9061010401600060405180830381600087803b1580156108eb57600080fd5b505af11580156108ff573d6000803e3d6000fd5b505050505050505050505050565b6005546040516374f54c9360e01b81526001600160a01b03909116906374f54c939061094190859085903390600401612a96565b600060405180830381600087803b15801561095b57600080fd5b505af115801561096f573d6000803e3d6000fd5b505050505050565b61098033611f7f565b8061098f575061098f33611fa4565b6109ab5760405162461bcd60e51b815260040161077e90612a70565b6001600160a01b038416610a015760405162461bcd60e51b815260206004820152601e60248201527f496e76616c6964207374616b6520636f6e747261637420616464726573730000604482015260640161077e565b6001600160a01b038316610a575760405162461bcd60e51b815260206004820152601d60248201527f496e76616c6964207469657220636f6e74726163742061646472657373000000604482015260640161077e565b6001600160a01b038216610aab5760405162461bcd60e51b815260206004820152601b60248201527a496e76616c696420636620636f6e7472616374206164647265737360281b604482015260640161077e565b6001600160a01b038116610b0d5760405162461bcd60e51b815260206004820152602360248201527f496e76616c6964206c61756e6368706f6f6c20636f6e7472616374206164647260448201526265737360e81b606482015260840161077e565b600280546001600160a01b038681166001600160a01b031992831681179093556003805487831690841681179091556004805487841690851681179091556005805493871693909416831790935560408051948552602085019190915283019190915260608201527f8b83952a1d5f77e71c4e134b67faaeae2274d5571516c205eb7bfd0f7ccdc2969060800160405180910390a150505050565b610bb0611f26565b600254604051627b8a6760e11b81526001600160a01b039091169062f714ce90610be09084903390600401612ab5565b600060405180830381600087803b158015610bfa57600080fd5b505af1158015610c0e573d6000803e3d6000fd5b5050505061082560018055565b3360009081526009602052604081205460ff166002811115610c3f57610c3f6127d5565b141580610cbb575060048054604051630d3abefd60e41b81526001600160a01b039091169163d3abefd091610c78913391879101612a3a565b6020604051808303816000875af1158015610c97573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cbb9190612a53565b610cd75760405162461bcd60e51b815260040161077e90612a70565b600480546040516330a61e2560e01b815291820184905282151560248301526001600160a01b0316906330a61e2590604401600060405180830381600087803b158015610d2357600080fd5b505af1158015610d37573d6000803e3d6000fd5b50506040805185815284151560208201527f63044fbc5b4f2bc3581f43a93da3d89389faeb1a2f3524bd49ad0e9ffd776926935001905060405180910390a15050565b610d8333611f7f565b80610d925750610d9233611fa4565b610dae5760405162461bcd60e51b815260040161077e90612a70565b60038110610ded5760405162461bcd60e51b815260206004820152600c60248201526b496e76616c696420726f6c6560a01b604482015260640161077e565b6001600160a01b038216610e3a5760405162461bcd60e51b8152602060048201526014602482015273496e76616c69642075736572206164647265737360601b604482015260640161077e565b806002811115610e4c57610e4c6127d5565b6001600160a01b0383166000908152600960205260409020805460ff19166001836002811115610e7e57610e7e6127d5565b0217905550816001600160a01b03167f86ca834ed77043799de2a6c996fa4b79fadfb467b4694e233b20c43aa0728218826002811115610ec057610ec06127d5565b604051610ecd91906127eb565b60405180910390a25050565b610ee1611fdc565b6040516370a0823160e01b81526000906001600160a01b038316906370a0823190610f10903090600401612386565b602060405180830381865afa158015610f2d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f519190612acc565b905080600003610f7457604051630686827b60e51b815260040160405180910390fd5b610f886001600160a01b038316848361203b565b505050565b3360009081526009602052604081205460ff166002811115610fb157610fb16127d5565b14158061102d575060048054604051630d3abefd60e41b81526001600160a01b039091169163d3abefd091610fea913391869101612a3a565b6020604051808303816000875af1158015611009573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061102d9190612a53565b6110495760405162461bcd60e51b815260040161077e90612a70565b600480546040516340e58ee560e01b81529182018390526001600160a01b0316906340e58ee5906024015b600060405180830381600087803b15801561108e57600080fd5b505af11580156110a2573d6000803e3d6000fd5b5050505050565b60606110b433611f7f565b806110c357506110c333611fa4565b6110df5760405162461bcd60e51b815260040161077e90612a70565b600880548060200260200160405190810160405280929190818152602001828054801561113557602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611117575b5050505050905090565b611147611f26565b6004805460405163d857ed7960e01b8152918201849052336024830152604482018390526001600160a01b03169063d857ed7990606401600060405180830381600087803b15801561119857600080fd5b505af11580156111ac573d6000803e3d6000fd5b505060408051858152602081018590523393507f15c0cd802f93b19a8415c799848cd9d7b828141196ba588669bdbd151d39d3d492500160405180910390a26111f460018055565b5050565b61120133611f7f565b80611210575061121033611fa4565b61122c5760405162461bcd60e51b815260040161077e90612a70565b60006008828154811061124157611241612ae5565b60009182526020808320909101546001600160a01b031680835260079091526040909120805460ff19169055600880549192509061128190600190612b11565b8154811061129157611291612ae5565b600091825260209091200154600880546001600160a01b0390921691849081106112bd576112bd612ae5565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060088054806112fc576112fc612b24565b600082815260208120820160001990810180546001600160a01b03191690559091019091556040516001600160a01b038316917f13804342f71c806010e48884a27d663bcdeb9b832d00cdfc08e04389fadcf9ef91a25050565b61135e611fdc565b47600081900361138157604051630686827b60e51b815260040160405180910390fd5b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146113ce576040519150601f19603f3d011682016040523d82523d6000602084013e6113d3565b606091505b5050905080610f8857338383604051639d11f56360e01b815260040161077e93929190612b3a565b600080600080606060008061140f33611b9a565b60025460405163c345315360e01b81529192506001600160a01b03169063c345315390611440903390600401612386565b608060405180830381865afa15801561145d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114819190612b5e565b8451608090950151939b929a50909850965091945092509050565b600554604051639f4f807360e01b81526001600160a01b0390911690639f4f80739034906114d09085903390600401612ab5565b6000604051808303818588803b15801561095b57600080fd5b6114f1611fdc565b6114fb6000612091565b565b611505611f26565b6000811161154c5760405162461bcd60e51b81526020600482015260146024820152735769746864726177696e67203020746f6b656e7360601b604482015260640161077e565b600061155733611b9a565b60025460a08201516040516316257afd60e21b81529293506001600160a01b0390911691635895ebf491611592918691903390600401612a96565b600060405180830381600087803b1580156115ac57600080fd5b505af11580156115c0573d6000803e3d6000fd5b505050505061082560018055565b6115d6611f26565b600480546040516360ffcfc960e11b81526001600160a01b039091169163c1ff9f9291610be0918591339101612ab5565b61161033611f7f565b8061161f575061161f33611fa4565b61163b5760405162461bcd60e51b815260040161077e90612a70565b6005546040516388ba27d960e01b81526001600160a01b0384811660048301526001600160401b0384166024830152909116906388ba27d990604401610941565b61168533611f7f565b80611694575061169433611fa4565b6116b05760405162461bcd60e51b815260040161077e90612a70565b60005b81518110156111f4576116de8282815181106116d1576116d1612ae5565b602002602001015161171d565b806116e881612b94565b9150506116b3565b6000546001600160a01b031690565b6001600160a01b031660009081526007602052604090205460ff1690565b61172633611f7f565b80611735575061173533611fa4565b6117515760405162461bcd60e51b815260040161077e90612a70565b6001600160a01b03811661179d5760405162461bcd60e51b8152602060048201526013602482015272496e76616c6964204b4f4c206164647265737360681b604482015260640161077e565b6001600160a01b03811660009081526007602052604090205460ff16611821576008805460018082019092557ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30180546001600160a01b0319166001600160a01b0384169081179091556000908152600760205260409020805460ff191690911790555b6040516001600160a01b038216907f7f3d29dc2e60d164d8160abe05ef916c7a8e153831a1477a7527e81947e1dc3e90600090a250565b611860611f26565b600081116118a35760405162461bcd60e51b815260206004820152601060248201526f5374616b696e67203020746f6b656e7360801b604482015260640161077e565b6006546040516370a0823160e01b815282916001600160a01b0316906370a08231906118d3903390600401612386565b602060405180830381865afa1580156118f0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119149190612acc565b101561195f5760405162461bcd60e51b815260206004820152601a602482015279496e73756666696369656e7420746f6b656e2062616c616e636560301b604482015260640161077e565b600654604051636eb1769f60e11b81523360048201523060248201526000916001600160a01b03169063dd62ed3e90604401602060405180830381865afa1580156119ae573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119d29190612acc565b905081811015611a1b5760405162461bcd60e51b81526020600482015260146024820152734e6f7420656e6f75676820616c6c6f77616e636560601b604482015260640161077e565b600254600654611a3a916001600160a01b0391821691339116856120e1565b600254604051637acb775760e01b81526001600160a01b0390911690637acb7757906115929085903390600401612ab5565b3360009081526009602052604081205460ff166002811115611a9057611a906127d5565b03611aad5760405162461bcd60e51b815260040161077e90612a70565b60055460405163acffddaf60e01b8152600481018390526001600160a01b039091169063acffddaf90602401611074565b3360009081526009602052604081205460ff166002811115611b0257611b026127d5565b03611b1f5760405162461bcd60e51b815260040161077e90612a70565b600554604051630ad0772160e41b81526001600160401b0380861660048301528416602482015282151560448201526001600160a01b039091169063ad07721090606401600060405180830381600087803b158015611b7d57600080fd5b505af1158015611b91573d6000803e3d6000fd5b50505050505050565b611bd36040518060c001604052806060815260200160008152602001600081526020016000815260200160008152602001600081525090565b600254604051631d780cbd60e21b81526000916001600160a01b0316906375e032f490611c04908690600401612386565b600060405180830381865afa158015611c21573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611c499190810190612c54565b519050611c55836116ff565b15611c6857611c65816002612ce0565b90505b600354604051630672850b60e51b8152600481018390526001600160a01b039091169063ce50a16090602401600060405180830381865afa158015611cb1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611cd99190810190612cf7565b9392505050565b6000803360009081526009602052604090205460ff166002811115611d0757611d076127d5565b03611d245760405162461bcd60e51b815260040161077e90612a70565b60006040518060600160405280868152602001858152602001848152509050600460009054906101000a90046001600160a01b03166001600160a01b0316636b129b1b8e8e8e8e8e8e8e8e8a6040518a63ffffffff1660e01b8152600401611d9499989796959493929190612dd2565b6020604051808303816000875af1158015611db3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dd79190612acc565b91507ff7d00a16df1db503fe70341e00d72c0688bedf66ee2c42f3decb62867ee69e4082604051611e0a91815260200190565b60405180910390a1509b9a5050505050505050505050565b6060611e2d82611b9a565b5192915050565b611e3c611fdc565b6001600160a01b038116611ea15760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161077e565b61082581612091565b600254604051630f340c0d60e41b81526060916001600160a01b03169063f340c0d090611edb908590600401612386565b600060405180830381865afa158015611ef8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611f209190810190612e4b565b92915050565b600260015403611f785760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161077e565b6002600155565b6000611f896116f0565b6001600160a01b0316826001600160a01b0316149050919050565b600060016001600160a01b03831660009081526009602052604090205460ff166002811115611fd557611fd56127d5565b1492915050565b33611fe56116f0565b6001600160a01b0316146114fb5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161077e565b610f888363a9059cbb60e01b848460405160240161205a929190612a3a565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152612108565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b612102846323b872dd60e01b85858560405160240161205a93929190612b3a565b50505050565b600061215d826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166121dd9092919063ffffffff16565b905080516000148061217e57508080602001905181019061217e9190612a53565b610f885760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b606482015260840161077e565b60606121ec84846000856121f4565b949350505050565b6060824710156122555760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b606482015260840161077e565b600080866001600160a01b031685876040516122719190612e7f565b60006040518083038185875af1925050503d80600081146122ae576040519150601f19603f3d011682016040523d82523d6000602084013e6122b3565b606091505b50915091506122c4878383876122cf565b979650505050505050565b6060831561233e578251600003612337576001600160a01b0385163b6123375760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161077e565b50816121ec565b6121ec83838151156123535781518083602001fd5b8060405162461bcd60e51b815260040161077e91906129c1565b60006020828403121561237f57600080fd5b5035919050565b6001600160a01b0391909116815260200190565b6001600160a01b038116811461082557600080fd5b80356123ba8161239a565b919050565b80356001600160401b03811681146123ba57600080fd5b600080600080600080600080610100898b0312156123f357600080fd5b88356123fe8161239a565b97506020890135965060408901359550606089013594506080890135935060a0890135925061242f60c08a016123bf565b915061243d60e08a016123bf565b90509295985092959890939650565b6000806040838503121561245f57600080fd5b50508035926020909101359150565b6000806000806080858703121561248457600080fd5b843561248f8161239a565b9350602085013561249f8161239a565b925060408501356124af8161239a565b915060608501356124bf8161239a565b939692955090935050565b801515811461082557600080fd5b600080604083850312156124eb57600080fd5b8235915060208301356124fd816124ca565b809150509250929050565b6000806040838503121561251b57600080fd5b82356125268161239a565b946020939093013593505050565b6000806040838503121561254757600080fd5b82356125528161239a565b915060208301356124fd8161239a565b6020808252825182820181905260009190848201906040850190845b818110156125a35783516001600160a01b03168352928401929184019160010161257e565b50909695505050505050565b6000602082840312156125c157600080fd5b8135611cd98161239a565b60005b838110156125e75781810151838201526020016125cf565b50506000910152565b600081518084526126088160208601602086016125cc565b601f01601f19169290920160200192915050565b86815285602082015284604082015283606082015260c06080820152600061264760c08301856125f0565b90508260a0830152979650505050505050565b6000806040838503121561266d57600080fd5b82356126788161239a565b9150612686602084016123bf565b90509250929050565b634e487b7160e01b600052604160045260246000fd5b604051608081016001600160401b03811182821017156126c7576126c761268f565b60405290565b60405160c081016001600160401b03811182821017156126c7576126c761268f565b604051601f8201601f191681016001600160401b03811182821017156127175761271761268f565b604052919050565b60006001600160401b038211156127385761273861268f565b5060051b60200190565b6000602080838503121561275557600080fd5b82356001600160401b0381111561276b57600080fd5b8301601f8101851361277c57600080fd5b803561278f61278a8261271f565b6126ef565b81815260059190911b820183019083810190878311156127ae57600080fd5b928401925b828410156122c45783356127c68161239a565b825292840192908401906127b3565b634e487b7160e01b600052602160045260246000fd5b602081016003831061280d57634e487b7160e01b600052602160045260246000fd5b91905290565b60008060006060848603121561282857600080fd5b612831846123bf565b925061283f602085016123bf565b9150604084013561284f816124ca565b809150509250925092565b602081526000825160c0602084015261287660e08401826125f0565b9050602084015160408401526040840151606084015260608401516080840152608084015160a084015260a084015160c08401528091505092915050565b60006001600160401b038211156128cd576128cd61268f565b50601f01601f191660200190565b60008060008060008060008060008060006101608c8e0312156128fd57600080fd5b8b356001600160401b0381111561291357600080fd5b8c01601f81018e1361292457600080fd5b803561293261278a826128b4565b8181528f602083850101111561294757600080fd5b81602084016020830137600060208383010152809d5050505061296c60208d016123af565b995061297a60408d016123af565b9a9d999c50999a60608101359a5060808101359960a0820135995060c0820135985060e0820135975061010082013596506101208201359550610140909101359350915050565b602081526000611cd960208301846125f0565b602080825282518282018190526000919060409081850190868401855b82811015612a2d5781518051855286810151878601528581015186860152606090810151151590850152608090930192908501906001016129f1565b5091979650505050505050565b6001600160a01b03929092168252602082015260400190565b600060208284031215612a6557600080fd5b8151611cd9816124ca565b6020808252600c908201526b155b985d5d1a1bdc9a5e995960a21b604082015260600190565b92835260208301919091526001600160a01b0316604082015260600190565b9182526001600160a01b0316602082015260400190565b600060208284031215612ade57600080fd5b5051919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b81810381811115611f2057611f20612afb565b634e487b7160e01b600052603160045260246000fd5b6001600160a01b039384168152919092166020820152604081019190915260600190565b60008060008060808587031215612b7457600080fd5b505082516020840151604085015160609095015191969095509092509050565b600060018201612ba657612ba6612afb565b5060010190565b600082601f830112612bbe57600080fd5b81516020612bce61278a8361271f565b82815260079290921b84018101918181019086841115612bed57600080fd5b8286015b84811015612c495760808189031215612c0a5760008081fd5b612c126126a5565b81518152848201518582015260408083015190820152606080830151612c37816124ca565b90820152835291830191608001612bf1565b509695505050505050565b600060208284031215612c6657600080fd5b81516001600160401b0380821115612c7d57600080fd5b9083019060408286031215612c9157600080fd5b604051604081018181108382111715612cac57612cac61268f565b60405282518152602083015182811115612cc557600080fd5b612cd187828601612bad565b60208301525095945050505050565b8082028115828204841417611f2057611f20612afb565b60006020808385031215612d0a57600080fd5b82516001600160401b0380821115612d2157600080fd5b9084019060c08287031215612d3557600080fd5b612d3d6126cd565b825182811115612d4c57600080fd5b83019150601f82018713612d5f57600080fd5b8151612d6d61278a826128b4565b8181528886838601011115612d8157600080fd5b612d90828783018887016125cc565b8083525050838301518482015260408301516040820152606083015160608201526080830151608082015260a083015160a08201528094505050505092915050565b6000610160808352612de68184018d6125f0565b91505060018060a01b03808b166020840152808a166040840152508760608301528660808301528560a08301528460c08301528360e08301528251610100830152602083015161012083015260408301516101408301529a9950505050505050505050565b600060208284031215612e5d57600080fd5b81516001600160401b03811115612e7357600080fd5b6121ec84828501612bad565b60008251612e918184602087016125cc565b919091019291505056fea2646970667358221220dd1ff26887e483aa3372f85d46e7e5a483ee06b20126b6cbdb701a9443017f8664736f6c634300081300330000000000000000000000004fb9b20dafe45d91ae287f2e07b2e79709308178