0 txs
0 calls
constructor
constructor()
functions
_getCurrentCycle
viewfunction _getCurrentCycle() view returns (uint256)
_getCycleMintCap
viewfunction _getCycleMintCap() view returns (uint256)
_getTotalAllowedMint
viewfunction _getTotalAllowedMint() view returns (uint256)
allowance
viewfunction allowance(address owner, address spender) view returns (uint256)
balanceOf
viewfunction balanceOf(address account) view returns (uint256)
cycleDuration
viewfunction cycleDuration() view returns (uint256)
cycleMintPercentage
viewfunction cycleMintPercentage() view returns (uint256)
decimals
viewfunction decimals() view returns (uint8)
getLockedBalance
viewfunction getLockedBalance(address account) view returns (uint256)
isAllowedOperator
viewfunction isAllowedOperator(address) view returns (bool)
merkleRoot
viewfunction merkleRoot() view returns (bytes32)
mintingStartTime
viewfunction mintingStartTime() view returns (uint256)
name
viewfunction name() view returns (string)
owner
viewfunction owner() view returns (address)
paused
viewfunction paused() view returns (bool)
PERCENTAGE_DENOMINATOR
viewfunction PERCENTAGE_DENOMINATOR() view returns (uint256)
proxiableUUID
viewfunction proxiableUUID() view returns (bytes32)
symbol
viewfunction symbol() view returns (string)
tokenUnlockTime
viewfunction tokenUnlockTime() view returns (uint256)
TOTAL_SUPPLY_CAP
viewfunction TOTAL_SUPPLY_CAP() view returns (uint256)
totalSupply
viewfunction totalSupply() view returns (uint256)
UPGRADE_INTERFACE_VERSION
viewfunction UPGRADE_INTERFACE_VERSION() view returns (string)
userTotalClaimed
viewfunction userTotalClaimed(address) view returns (uint256)
userUnlocks
viewfunction userUnlocks(address, uint256) view returns (uint256 tokenAmount, uint256 unlockedAt)
approve
nonpayablefunction approve(address spender, uint256 value) returns (bool)
claimTokens
nonpayablefunction claimTokens(uint256 totalAllocation, bytes32[] merkleProof)
initialize
nonpayablefunction initialize(address initialOwner, uint256 _cycleMintPercentage, bytes32 _merkleRoot, uint256 _tokenUnlockTime, uint256 _cycleDuration)
mint
nonpayablefunction mint(address to, uint256 amount)
pause
nonpayablefunction pause()
renounceOwnership
nonpayablefunction renounceOwnership()
setAllowedOperator
nonpayablefunction setAllowedOperator(address operator, bool status)
transfer
nonpayablefunction transfer(address to, uint256 value) returns (bool)
transferFrom
nonpayablefunction transferFrom(address from, address to, uint256 value) returns (bool)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
unpause
nonpayablefunction unpause()
updateCycleDuration
nonpayablefunction updateCycleDuration(uint256 newDuration)
updateCycleMintPercentage
nonpayablefunction updateCycleMintPercentage(uint256 newPercentage)
updateMerkleRoot
nonpayablefunction updateMerkleRoot(bytes32 newRoot)
updateTokenUnlockTime
nonpayablefunction updateTokenUnlockTime(uint256 newUnlockTime)
upgradeToAndCall
payablefunction upgradeToAndCall(address newImplementation, bytes data) payable
events
AllowedOperatorUpdated
event AllowedOperatorUpdated(address indexed operator, bool status, uint256 timestamp, address indexed initiatedBy)
Approval
event Approval(address indexed owner, address indexed spender, uint256 value)
CycleDurationUpdated
event CycleDurationUpdated(uint256 oldDuration, uint256 newDuration, uint256 timestamp, address indexed initiatedBy)
CycleMintPercentageUpdated
event CycleMintPercentageUpdated(uint256 oldPercentage, uint256 newPercentage, uint256 timestamp, address indexed initiatedBy)
Initialized
event Initialized(uint64 version)
MerkleRootUpdated
event MerkleRootUpdated(bytes32 indexed oldRoot, bytes32 indexed newRoot, uint256 timestamp, address indexed initiatedBy)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
Paused
event Paused(address account)
TokensClaimed
event TokensClaimed(address indexed user, uint256 amount, uint256 totalClaimed, uint256 cycle, uint256 unlockedAt)
TokenUnlockTimeUpdated
event TokenUnlockTimeUpdated(uint256 oldUnlockTime, uint256 newUnlockTime, uint256 timestamp, address indexed initiatedBy)
Transfer
event Transfer(address indexed from, address indexed to, uint256 value)
Unpaused
event Unpaused(address account)
Upgraded
event Upgraded(address indexed implementation)
errors
AddressEmptyCode
error AddressEmptyCode(address target)
EnforcedPause
error EnforcedPause()
ERC1967InvalidImplementation
error ERC1967InvalidImplementation(address implementation)
ERC1967NonPayable
error ERC1967NonPayable()
ERC20InsufficientAllowance
error ERC20InsufficientAllowance(address spender, uint256 allowance, uint256 needed)
ERC20InsufficientBalance
error ERC20InsufficientBalance(address sender, uint256 balance, uint256 needed)
ERC20InvalidApprover
error ERC20InvalidApprover(address approver)
ERC20InvalidReceiver
error ERC20InvalidReceiver(address receiver)
ERC20InvalidSender
error ERC20InvalidSender(address sender)
ERC20InvalidSpender
error ERC20InvalidSpender(address spender)
ExpectedPause
error ExpectedPause()
FailedCall
error FailedCall()
InvalidInitialization
error InvalidInitialization()
NotInitializing
error NotInitializing()
OwnableInvalidOwner
error OwnableInvalidOwner(address owner)
OwnableUnauthorizedAccount
error OwnableUnauthorizedAccount(address account)
ReentrancyGuardReentrantCall
error ReentrancyGuardReentrantCall()
UUPSUnauthorizedCallContext
error UUPSUnauthorizedCallContext()
UUPSUnsupportedProxiableUUID
error UUPSUnsupportedProxiableUUID(bytes32 slot)
creation bytecode
0x60a0604052306080523480156200001557600080fd5b506200002062000030565b6200002a62000030565b620000e4565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615620000815760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620000e15780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b6080516124f06200010e6000396000818161122801528181611251015261138901526124f06000f3fe60806040526004361061023b5760003560e01c80638afc7cb31161012e578063d689e0fe116100ab578063dfef5f691161006f578063dfef5f6914610639578063e18bc08a1461064f578063e43c52841461067f578063f2fde38b146106b4578063f4039988146106d457600080fd5b8063d689e0fe146105b9578063d90f5c8c146105ce578063dcbc9adb146105e3578063dd62ed3e14610603578063dedae2471461062357600080fd5b8063a9059cbb116100f2578063a9059cbb1461051d578063ad3cb1cc1461053d578063b3cd42541461056e578063c408689314610584578063d2716bc8146105a457600080fd5b80638afc7cb3146104905780638da5cb5b146104b057806395d89b41146104d25780639a114cb2146104e7578063a6370d011461050757600080fd5b80634f1ef286116101bc5780636268347f116101805780636268347f146103f957806370a0823114610426578063715018a61461044657806374c9ea821461045b5780638456cb591461047b57600080fd5b80634f1ef2861461038657806352d1902d1461039957806357df45ae146103ae5780635bec4cb4146103ce5780635c975abb146103e457600080fd5b8063313ce56711610203578063313ce567146102f45780633f4ba83a1461031057806340c10f19146103275780634783f0ef14610347578063489313521461036757600080fd5b806306fdde0314610240578063095ea7b31461026b57806318160ddd1461029b57806323b872dd146102be5780632eb4a7ab146102de575b600080fd5b34801561024c57600080fd5b506102556106f4565b6040516102629190611f1d565b60405180910390f35b34801561027757600080fd5b5061028b610286366004611f6c565b610795565b6040519015158152602001610262565b3480156102a757600080fd5b506102b06107af565b604051908152602001610262565b3480156102ca57600080fd5b5061028b6102d9366004611f96565b6107c4565b3480156102ea57600080fd5b506102b060025481565b34801561030057600080fd5b5060405160128152602001610262565b34801561031c57600080fd5b506103256107ea565b005b34801561033357600080fd5b50610325610342366004611f6c565b6107fc565b34801561035357600080fd5b50610325610362366004611fd2565b61087b565b34801561037357600080fd5b506102b0676765c793fa10079d601b1b81565b610325610394366004612001565b6108d1565b3480156103a557600080fd5b506102b06108ec565b3480156103ba57600080fd5b506103256103c93660046120c3565b610909565b3480156103da57600080fd5b506102b060015481565b3480156103f057600080fd5b5061028b610a0d565b34801561040557600080fd5b506102b0610414366004612105565b60066020526000908152604090205481565b34801561043257600080fd5b506102b0610441366004612105565b610a22565b34801561045257600080fd5b50610325610a4d565b34801561046757600080fd5b50610325610476366004611fd2565b610a5f565b34801561048757600080fd5b50610325610ac2565b34801561049c57600080fd5b506103256104ab366004612120565b610ad2565b3480156104bc57600080fd5b506104c5610b95565b604051610262919061215c565b3480156104de57600080fd5b50610255610bc3565b3480156104f357600080fd5b50610325610502366004612170565b610be0565b34801561051357600080fd5b506102b060005481565b34801561052957600080fd5b5061028b610538366004611f6c565b610d56565b34801561054957600080fd5b50610255604051806040016040528060058152602001640352e302e360dc1b81525081565b34801561057a57600080fd5b506102b061271081565b34801561059057600080fd5b506102b061059f366004612105565b610d64565b3480156105b057600080fd5b506102b0610e5a565b3480156105c557600080fd5b506102b0610e87565b3480156105da57600080fd5b506102b0610eaf565b3480156105ef57600080fd5b506103256105fe366004611fd2565b610ecb565b34801561060f57600080fd5b506102b061061e3660046121ef565b610f26565b34801561062f57600080fd5b506102b060035481565b34801561064557600080fd5b506102b060045481565b34801561065b57600080fd5b5061028b61066a366004612105565b60076020526000908152604090205460ff1681565b34801561068b57600080fd5b5061069f61069a366004611f6c565b610f62565b60408051928352602083019190915201610262565b3480156106c057600080fd5b506103256106cf366004612105565b610f9e565b3480156106e057600080fd5b506103256106ef366004611fd2565b610fdc565b60606000610700611037565b905080600301805461071190612222565b80601f016020809104026020016040519081016040528092919081815260200182805461073d90612222565b801561078a5780601f1061075f5761010080835404028352916020019161078a565b820191906000526020600020905b81548152906001019060200180831161076d57829003601f168201915b505050505091505090565b6000336107a381858561105b565b60019150505b92915050565b6000806107ba611037565b6002015492915050565b6000336107d2858285611068565b6107dd8585856110bc565b60019150505b9392505050565b6107f261111b565b6107fa61114d565b565b61080461111b565b61080c610eaf565b6108146107af565b61081e9083612272565b111580156108485750676765c793fa10079d601b1b61083b6107af565b6108459083612272565b11155b61086d5760405162461bcd60e51b815260040161086490612285565b60405180910390fd5b61087782826111a4565b5050565b61088361111b565b61088c816111da565b60028054908290556040514281523390839083907fcaa8460a1a5d3fc24e1ada73fa350541ef5252b2834c67c53457a78034a2a5729060200160405180910390a45050565b6108d961121d565b6108e2826112c2565b61087782826112ca565b60006108f661137e565b5060008051602061247b83398151915290565b60006109136113c7565b805490915060ff600160401b820416159067ffffffffffffffff1660008115801561093b5750825b905060008267ffffffffffffffff1660011480156109585750303b155b905081158015610966575080155b156109845760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff1916600117855583156109ae57845460ff60401b1916600160401b1785555b6109bb8a8a8a8a8a6113f0565b8315610a0157845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50505050505050505050565b600080610a18611461565b5460ff1692915050565b600080610a2d611037565b6001600160a01b0390931660009081526020939093525050604090205490565b610a5561111b565b6107fa6000611485565b610a6761111b565b610a70816114f6565b60018054908290556040805182815260208101849052429181019190915233907f8a0a4e8f432359ee96653a6771d40d8601706f2505db3dc949576def01cda51e906060015b60405180910390a25050565b610aca61111b565b6107fa61155d565b610ada61111b565b6001600160a01b038216610b2b5760405162461bcd60e51b8152602060048201526018602482015277496e76616c6964206f70657261746f72206164647265737360401b6044820152606401610864565b6001600160a01b038216600081815260076020908152604091829020805460ff1916851515908117909155825190815242918101919091523392917f0966ad3b2f2ac26779a60e871821c2967ac6765e886995fe306ffc41b3673beb910160405180910390a35050565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b60606000610bcf611037565b905080600401805461071190612222565b610be86115a4565b610bf06115ca565b33600090815260066020526040902054831015610c4a5760405162461bcd60e51b815260206004820152601860248201527724b73b30b634b2103a37ba30b61030b63637b1b0ba34b7b760411b6044820152606401610864565b33600090815260066020526040812054610c6490856122b2565b9050610c7b8482858533610c766107af565b611602565b600060035442610c8b9190612272565b33600081815260056020908152604080832081518083018352888152808401878152825460018181018555938752858720925160029091029092019182555191015583835260069091529020879055909150610ce790836111a4565b337f66ddaf6e8b62e0f85bc06217b1149f020e94863a48717066a568916e480f13108387610d13610e87565b604080519384526020840192909252908201526060810184905260800160405180910390a25050610d51600160008051602061249b83398151915255565b505050565b6000336107a38185856110bc565b6001600160a01b0381166000908152600560209081526040808320805482518185028101850190935280835284938493929190849084015b82821015610de257838290600052602060002090600202016040518060400160405290816000820154815260200160018201548152505081526020019060010190610d9c565b5050825192935060009150505b81811015610e5057828181518110610e0957610e096122c5565b602002602001015160200151421015610e4857828181518110610e2e57610e2e6122c5565b60200260200101516000015184610e459190612272565b93505b600101610def565b5091949350505050565b6000612710600054676765c793fa10079d601b1b610e7891906122db565b610e8291906122f2565b905090565b600060015460045442610e9a91906122b2565b610ea491906122f2565b610e82906001612272565b6000610eb9610e5a565b610ec1610e87565b610e8291906122db565b610ed361111b565b610edc81611791565b60038054908290556040805182815260208101849052429181019190915233907f17780b770b1ea2654d4a0df9291a34463d8094265c1faff7f2f6edbc73068be090606001610ab6565b600080610f31611037565b6001600160a01b03948516600090815260019190910160209081526040808320959096168252939093525050205490565b60056020528160005260406000208181548110610f7e57600080fd5b600091825260209091206002909102018054600190910154909250905082565b610fa661111b565b6001600160a01b038116610fd0576000604051631e4fbdf760e01b8152600401610864919061215c565b610fd981611485565b50565b610fe461111b565b610fed816117fe565b60008054908290556040805182815260208101849052429181019190915233907fc3a1aced528405f3aa279661b53bf71f0a2aa1ac494a3f62f4d668a3361c047190606001610ab6565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0090565b610d518383836001611875565b60006110748484610f26565b90506000198110156110b657818110156110a757828183604051637dc7a0d960e11b815260040161086493929190612314565b6110b684848484036000611875565b50505050565b6001600160a01b0383166110e6576000604051634b637e8f60e11b8152600401610864919061215c565b6001600160a01b03821661111057600060405163ec442f0560e01b8152600401610864919061215c565b610d51838383611959565b33611124610b95565b6001600160a01b0316146107fa573360405163118cdaa760e01b8152600401610864919061215c565b611155611a40565b600061115f611461565b805460ff1916815590507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b604051611199919061215c565b60405180910390a150565b6001600160a01b0382166111ce57600060405163ec442f0560e01b8152600401610864919061215c565b61087760008383611959565b80610fd95760405162461bcd60e51b8152602060048201526013602482015272125b9d985b1a59081b595c9adb19481c9bdbdd606a1b6044820152606401610864565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614806112a457507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661129860008051602061247b833981519152546001600160a01b031690565b6001600160a01b031614155b156107fa5760405163703e46dd60e11b815260040160405180910390fd5b610fd961111b565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611324575060408051601f3d908101601f1916820190925261132191810190612335565b60015b6113435781604051634c9c8ce360e01b8152600401610864919061215c565b60008051602061247b833981519152811461137457604051632a87526960e21b815260048101829052602401610864565b610d518383611a65565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146107fa5760405163703e46dd60e11b815260040160405180910390fd5b6000807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a006107a9565b6113f8611abb565b61143d60405180604001604052806005815260200164090c2e8c6d60db1b815250604051806040016040528060068152602001650489082a886960d31b815250611ae0565b611445611af2565b6114528585858585611afa565b61145a611af2565b5050505050565b7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f0330090565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b60008111610fd95760405162461bcd60e51b815260206004820152602e60248201527f496e76616c6964206379636c65206475726174696f6e3a206d7573742062652060448201526d067726561746572207468616e20360941b6064820152608401610864565b6115656115a4565b600061156f611461565b805460ff1916600117815590507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25861118c3390565b6115ac610a0d565b156107fa5760405163d93c066560e01b815260040160405180910390fd5b60008051602061249b8339815191528054600119016115fc57604051633ee5aeb560e01b815260040160405180910390fd5b60029055565b604080516001600160a01b038416602082015290810187905260009060600160408051601f1981840301815282825280516020918201209083015201604051602081830303815290604052805190602001209050611697858580806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250506002549150849050611b50565b6116da5760405162461bcd60e51b815260206004820152601460248201527324b73b30b634b21036b2b935b63290383937b7b360611b6044820152606401610864565b600086116117245760405162461bcd60e51b81526020600482015260176024820152764e6f20746f6b656e73206c65667420746f20636c61696d60481b6044820152606401610864565b676765c793fa10079d601b1b61173a8784612272565b11158015611758575061174b610eaf565b6117558784612272565b11155b6117745760405162461bcd60e51b815260040161086490612285565b50505050505050565b600160008051602061249b83398151915255565b60008111610fd95760405162461bcd60e51b815260206004820152603460248201527f496e76616c696420746f6b656e20756e6c6f636b2074696d653a206d757374206044820152730626520696e2067726561746572207468616e20360641b6064820152608401610864565b60008111801561181057506101f48111155b610fd95760405162461bcd60e51b815260206004820152603060248201527f496e76616c69642070657263656e746167653a206d757374206265206265747760448201526f65656e20302e30312520616e6420352560801b6064820152608401610864565b600061187f611037565b90506001600160a01b0385166118ab57600060405163e602df0560e01b8152600401610864919061215c565b6001600160a01b0384166118d5576000604051634a1406b160e11b8152600401610864919061215c565b6001600160a01b0380861660009081526001830160209081526040808320938816835292905220839055811561145a57836001600160a01b0316856001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258560405161194a91815260200190565b60405180910390a35050505050565b6001600160a01b0383161580159061198a57506001600160a01b03831660009081526007602052604090205460ff16155b80156119af57506001600160a01b03821660009081526007602052604090205460ff16155b15611a355760006119bf84610d64565b9050806119cb85610a22565b6119d591906122b2565b821115611a335760405162461bcd60e51b815260206004820152602660248201527f5472616e7366657220616d6f756e742065786365656473206c6f636b65642062604482015265616c616e636560d01b6064820152608401610864565b505b610d51838383611b66565b611a48610a0d565b6107fa57604051638dfc202b60e01b815260040160405180910390fd5b611a6e82611b79565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115611ab357610d518282611bd5565b610877611c4b565b611ac3611c6a565b6107fa57604051631afcd79f60e31b815260040160405180910390fd5b611ae8611abb565b6108778282611c84565b6107fa611abb565b611b02611abb565b611b0b85611cb5565b611b13611cc6565b611b1c846117fe565b611b25836111da565b611b2e82611791565b611b37816114f6565b6000939093556002919091556003556001555042600455565b600082611b5d8584611cd6565b14949350505050565b611b6e6115a4565b610d51838383611d19565b806001600160a01b03163b600003611ba65780604051634c9c8ce360e01b8152600401610864919061215c565b60008051602061247b83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b031684604051611bf2919061234e565b600060405180830381855af49150503d8060008114611c2d576040519150601f19603f3d011682016040523d82523d6000602084013e611c32565b606091505b5091509150611c42858383611e41565b95945050505050565b34156107fa5760405163b398979f60e01b815260040160405180910390fd5b6000611c746113c7565b54600160401b900460ff16919050565b611c8c611abb565b6000611c96611037565b905060038101611ca684826123ba565b50600481016110b683826123ba565b611cbd611abb565b610fd981611e94565b611cce611abb565b6107fa611e9c565b600081815b8451811015611d1157611d0782868381518110611cfa57611cfa6122c5565b6020026020010151611ea4565b9150600101611cdb565b509392505050565b6000611d23611037565b90506001600160a01b038416611d525781816002016000828254611d479190612272565b90915550611db19050565b6001600160a01b03841660009081526020829052604090205482811015611d925784818460405163391434e360e21b815260040161086493929190612314565b6001600160a01b03851660009081526020839052604090209083900390555b6001600160a01b038316611dcf576002810180548390039055611dee565b6001600160a01b03831660009081526020829052604090208054830190555b826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611e3391815260200190565b60405180910390a350505050565b606082611e5657611e5182611ed0565b6107e3565b8151158015611e6d57506001600160a01b0384163b155b15611e8d5783604051639996b31560e01b8152600401610864919061215c565b50806107e3565b610fa6611abb565b61177d611abb565b6000818310611ec05760008281526020849052604090206107e3565b5060009182526020526040902090565b805115611ee05780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b60005b83811015611f14578181015183820152602001611efc565b50506000910152565b6020815260008251806020840152611f3c816040850160208701611ef9565b601f01601f19169190910160400192915050565b80356001600160a01b0381168114611f6757600080fd5b919050565b60008060408385031215611f7f57600080fd5b611f8883611f50565b946020939093013593505050565b600080600060608486031215611fab57600080fd5b611fb484611f50565b9250611fc260208501611f50565b9150604084013590509250925092565b600060208284031215611fe457600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561201457600080fd5b61201d83611f50565b9150602083013567ffffffffffffffff8082111561203a57600080fd5b818501915085601f83011261204e57600080fd5b81358181111561206057612060611feb565b604051601f8201601f19908116603f0116810190838211818310171561208857612088611feb565b816040528281528860208487010111156120a157600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b600080600080600060a086880312156120db57600080fd5b6120e486611f50565b97602087013597506040870135966060810135965060800135945092505050565b60006020828403121561211757600080fd5b6107e382611f50565b6000806040838503121561213357600080fd5b61213c83611f50565b91506020830135801515811461215157600080fd5b809150509250929050565b6001600160a01b0391909116815260200190565b60008060006040848603121561218557600080fd5b83359250602084013567ffffffffffffffff808211156121a457600080fd5b818601915086601f8301126121b857600080fd5b8135818111156121c757600080fd5b8760208260051b85010111156121dc57600080fd5b6020830194508093505050509250925092565b6000806040838503121561220257600080fd5b61220b83611f50565b915061221960208401611f50565b90509250929050565b600181811c9082168061223657607f821691505b60208210810361225657634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b808201808211156107a9576107a961225c565b6020808252601390820152724578636565647320737570706c79206361707360681b604082015260600190565b818103818111156107a9576107a961225c565b634e487b7160e01b600052603260045260246000fd5b80820281158282048414176107a9576107a961225c565b60008261230f57634e487b7160e01b600052601260045260246000fd5b500490565b6001600160a01b039390931683526020830191909152604082015260600190565b60006020828403121561234757600080fd5b5051919050565b60008251612360818460208701611ef9565b9190910192915050565b601f821115610d51576000816000526020600020601f850160051c810160208610156123935750805b601f850160051c820191505b818110156123b25782815560010161239f565b505050505050565b815167ffffffffffffffff8111156123d4576123d4611feb565b6123e8816123e28454612222565b8461236a565b602080601f83116001811461241d57600084156124055750858301515b600019600386901b1c1916600185901b1785556123b2565b600085815260208120601f198616915b8281101561244c5788860151825594840194600190910190840161242d565b508582101561246a5787850151600019600388901b60f8161c191681555b5050505050600190811b0190555056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00a2646970667358221220da599c2be57685f8dd38a3e1944a48957ec10edab9521d1ec378e1dd2e9c0cfb64736f6c63430008160033