0 txs
2 calls
constructor
constructor()
functions
AMOUNT_DEVIATION_THRESHOLD
viewfunction AMOUNT_DEVIATION_THRESHOLD() view returns (uint256)
currentEpoch
viewfunction currentEpoch() view returns (uint256)
DENOMINATOR
viewfunction DENOMINATOR() view returns (uint256)
EPOCH_DURATION
viewfunction EPOCH_DURATION() view returns (uint256)
getExpectedAssetAmount
viewfunction getExpectedAssetAmount(uint256 amountForWithdraw, address _asToken) view returns (uint256)
getScheduleInfoByToken
viewfunction getScheduleInfoByToken(address _user, address[] _assets) view returns (address[] tokens, uint256[] claimableAmounts, uint256[] queuedAmounts, uint256[] feeAmounts)
isValidToken
viewfunction isValidToken(address) view returns (bool)
maxUserWithdrawSchedules
viewfunction maxUserWithdrawSchedules() view returns (uint256)
mBTC
viewfunction mBTC() view returns (address)
nextUserWithdrawalTime
viewfunction nextUserWithdrawalTime() view returns (uint256)
owner
viewfunction owner() view returns (address)
paused
viewfunction paused() view returns (bool)
priceProvider
viewfunction priceProvider() view returns (address)
startTimestamp
viewfunction startTimestamp() view returns (uint256)
thresholdWithdrawTime
viewfunction thresholdWithdrawTime() view returns (uint256)
userWithdrawSchedules
viewfunction userWithdrawSchedules(address, address, uint256) view returns (uint256 amount, uint256 endTime)
withdrawFee
viewfunction withdrawFee() view returns (uint256)
withdrawSchedulesPerAsset
viewfunction withdrawSchedulesPerAsset(address, uint256) view returns (uint256)
__BabypieWithdrawManager_init
nonpayablefunction __BabypieWithdrawManager_init(address _mBTC, uint256 _thresholdWithdrawTime, uint256 _maxUserWithdrawSchedules)
claimAssets
nonpayablefunction claimAssets(address[] _assets)
pause
nonpayablefunction pause()
renounceOwnership
nonpayablefunction renounceOwnership()
setValidToken
nonpayablefunction setValidToken(address _token, bool _isValid)
setWithdrawFee
nonpayablefunction setWithdrawFee(uint256 _withdrawFee)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
unpause
nonpayablefunction unpause()
updateNewThresholdWithdrawTime
nonpayablefunction updateNewThresholdWithdrawTime(uint256 _newThresholdWithdrawTime)
updatePriceProvider
nonpayablefunction updatePriceProvider(address _newPriceProvider)
userQueuingForWithdraw
nonpayablefunction userQueuingForWithdraw(uint256 amountForWithdraw, address _asToken, uint256 minAmount)
events
AssetsClaimed
event AssetsClaimed(address indexed user, uint256 amount, address indexed token)
Initialized
event Initialized(uint8 version)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
Paused
event Paused(address account)
PriceProviderUpdated
event PriceProviderUpdated(address _oldPriceProvider, address _newPriceProvider)
ThresholdWithdrawTimeUpdated
event ThresholdWithdrawTimeUpdated(uint256 _newThresholdWithdrawTime)
Unpaused
event Unpaused(address account)
UserQueuingForWithdrawal
event UserQueuingForWithdrawal(address indexed user, uint256 assetAmount, address indexed token, uint256 currentEpoch, uint256 endTime)
ValidTokenStatusSet
event ValidTokenStatusSet(address indexed _token, bool _isValid)
WithdrawFeeSet
event WithdrawFeeSet(uint256 _withdrawFee)
errors
ClaimingTimeIsNotStartedAt
error ClaimingTimeIsNotStartedAt()
InvalidAmount
error InvalidAmount()
InvalidClaimedSchedules
error InvalidClaimedSchedules()
InvalidConversionRatio
error InvalidConversionRatio()
InvalidEpoch
error InvalidEpoch()
InvalidPriceProvider
error InvalidPriceProvider()
InvalidThresholdWithdrawTime
error InvalidThresholdWithdrawTime()
InvalidToken
error InvalidToken()
InvalidTokenPrice
error InvalidTokenPrice()
InvalidWithdrawFee
error InvalidWithdrawFee()
LengthMismatch
error LengthMismatch()
MaxUserWithdrawSchedulesReached
error MaxUserWithdrawSchedulesReached()
MinRecNotMatch
error MinRecNotMatch()
NotAllowZeroAddress
error NotAllowZeroAddress()
NotAllowZeroAmount
error NotAllowZeroAmount()
ThisEpochIsNotEnded
error ThisEpochIsNotEnded()
creation bytecode
0x608060405234801562000010575f80fd5b50620000216200002760201b60201c565b620001c6565b5f60019054906101000a900460ff161562000079576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000070906200016e565b60405180910390fd5b60ff80165f8054906101000a900460ff1660ff1614620000e85760ff5f806101000a81548160ff021916908360ff1602179055507f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249860ff604051620000df9190620001ab565b60405180910390a15b565b5f82825260208201905092915050565b7f496e697469616c697a61626c653a20636f6e747261637420697320696e6974695f8201527f616c697a696e6700000000000000000000000000000000000000000000000000602082015250565b5f62000156602783620000ea565b91506200016382620000fa565b604082019050919050565b5f6020820190508181035f830152620001878162000148565b9050919050565b5f60ff82169050919050565b620001a5816200018e565b82525050565b5f602082019050620001c05f8301846200019a565b92915050565b613a4380620001d45f395ff3fe608060405234801561000f575f80fd5b50600436106101cd575f3560e01c806394eae95811610102578063cc424312116100a0578063e13b4f0e1161006f578063e13b4f0e146104c1578063e6fd48bc146104f1578063e941fa781461050f578063f2fde38b1461052d576101cd565b8063cc4243121461043b578063d95aced714610459578063df9858b714610475578063e050203414610491576101cd565b8063b888879e116100dc578063b888879e1461039e578063c1876453146103bc578063c360f1bf146103ec578063ca48f9e81461041f576101cd565b806394eae95814610346578063a70b9f0c14610364578063b6ac642a14610382576101cd565b8063715018a61161016f5780638456cb59116101495780638456cb59146102e25780638d9cb249146102ec5780638da5cb5b1461030a578063918f867414610328576101cd565b8063715018a61461029e57806373a8b8df146102a857806376671808146102c4576101cd565b806345e674c7116101ab57806345e674c7146102175780635c975abb146102335780635e8d907c146102515780636ae80dbf1461026d576101cd565b80630f9b092e146101d1578063218ed710146101ef5780633f4ba83a1461020d575b5f80fd5b6101d9610549565b6040516101e6919061280f565b60405180910390f35b6101f761054f565b604051610204919061280f565b60405180910390f35b610215610555565b005b610231600480360381019061022c919061288a565b610567565b005b61023b610611565b60405161024891906128cf565b60405180910390f35b61026b60048036038101906102669190612912565b610626565b005b6102876004803603810190610282919061293d565b6106a8565b60405161029592919061298d565b60405180910390f35b6102a66106ed565b005b6102c260048036038101906102bd91906129b4565b610700565b005b6102cc6108a0565b6040516102d9919061280f565b60405180910390f35b6102ea6108ce565b005b6102f46108e0565b604051610301919061280f565b60405180910390f35b610312610922565b60405161031f9190612a13565b60405180910390f35b61033061094a565b60405161033d919061280f565b60405180910390f35b61034e610950565b60405161035b9190612a13565b60405180910390f35b61036c610975565b604051610379919061280f565b60405180910390f35b61039c60048036038101906103979190612912565b61097c565b005b6103a6610a01565b6040516103b39190612a87565b60405180910390f35b6103d660048036038101906103d1919061288a565b610a26565b6040516103e391906128cf565b60405180910390f35b61040660048036038101906104019190612b01565b610a43565b6040516104169493929190612ccc565b60405180910390f35b61043960048036038101906104349190612d2b565b610e12565b005b610443611637565b604051610450919061280f565b60405180910390f35b610473600480360381019061046e9190612da5565b61163d565b005b61048f600480360381019061048a9190612de3565b6116eb565b005b6104ab60048036038101906104a69190612e2e565b611758565b6040516104b8919061280f565b60405180910390f35b6104db60048036038101906104d69190612e6c565b611778565b6040516104e8919061280f565b60405180910390f35b6104f9611b9e565b604051610506919061280f565b60405180910390f35b610517611ba4565b604051610524919061280f565b60405180910390f35b6105476004803603810190610542919061288a565b611baa565b005b60cc5481565b60cb5481565b61055d611c2c565b610565611caa565b565b61056f611c2c565b5f60d15f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160d15f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507ff01c4ba47ffa16ddc86be088e27d891895d6944b4f1b88a7d30fedb0296de55c8183604051610605929190612eaa565b60405180910390a15050565b5f60655f9054906101000a900460ff16905090565b61062e611c2c565b5f8103610667576040517f091b5fd600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060cc819055507fe7e5456666301a5d769404ed31d4deb535b81765da7597b33e2b67935c5bef828160405161069d919061280f565b60405180910390a150565b60c9602052825f5260405f20602052815f5260405f2081815481106106cb575f80fd5b905f5260205f2090600202015f925092505050805f0154908060010154905082565b6106f5611c2c565b6106fe5f611d0b565b565b5f8060019054906101000a900460ff1615905080801561072f575060015f8054906101000a900460ff1660ff16105b8061075b575061073e30611dce565b15801561075a575060015f8054906101000a900460ff1660ff16145b5b61079a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161079190612f51565b60405180910390fd5b60015f806101000a81548160ff021916908360ff16021790555080156107d55760015f60016101000a81548160ff0219169083151502179055505b6107dd611df0565b6107e5611e48565b6107ed611ea0565b8360ce5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508260cc819055508160cb819055504260cd81905550801561089a575f8060016101000a81548160ff0219169083151502179055507f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249860016040516108919190612fb4565b60405180910390a15b50505050565b5f600162093a8060cd54426108b59190612ffa565b6108bf919061305a565b6108c9919061308a565b905090565b6108d6611c2c565b6108de611ef8565b565b5f60cc5462093a8060016108f26108a0565b6108fc919061308a565b61090691906130bd565b60cd54610913919061308a565b61091d919061308a565b905090565b5f60335f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61271081565b60ce5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b62093a8081565b610984611c2c565b6127108111156109c0576040517f9ed580f500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060d0819055507f0df50a046e7f9e3be935db05f28219bf3f31635fa92255aae45b460d3167583c816040516109f6919061280f565b60405180910390a150565b60d15f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60cf602052805f5260405f205f915054906101000a900460ff1681565b6060806060805f8686905090508067ffffffffffffffff811115610a6a57610a696130fe565b5b604051908082528060200260200182016040528015610a985781602001602082028036833780820191505090505b5094508067ffffffffffffffff811115610ab557610ab46130fe565b5b604051908082528060200260200182016040528015610ae35781602001602082028036833780820191505090505b5093508067ffffffffffffffff811115610b0057610aff6130fe565b5b604051908082528060200260200182016040528015610b2e5781602001602082028036833780820191505090505b5092508067ffffffffffffffff811115610b4b57610b4a6130fe565b5b604051908082528060200260200182016040528015610b795781602001602082028036833780820191505090505b5091505f5b81811015610e07575f888883818110610b9a57610b9961312b565b5b9050602002016020810190610baf919061288a565b905080878381518110610bc557610bc461312b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505f60c95f8c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20805480602002602001604051908101604052809291908181526020015f905b82821015610cda578382905f5260205f2090600202016040518060400160405290815f820154815260200160018201548152505081526020019060010190610c97565b5050505090505f5b8151811015610df1575f828281518110610cff57610cfe61312b565b5b602002602001015190505f61271060d054835f0151610d1e91906130bd565b610d28919061305a565b90505f81835f0151610d3a9190612ffa565b905081898881518110610d5057610d4f61312b565b5b60200260200101818151610d64919061308a565b915081815250508260200151421115610dab57808b8881518110610d8b57610d8a61312b565b5b60200260200101818151610d9f919061308a565b91508181525050610ddb565b808a8881518110610dbf57610dbe61312b565b5b60200260200101818151610dd3919061308a565b915081815250505b5050508080610de990613158565b915050610ce2565b5050508080610dff90613158565b915050610b7e565b505093509350935093565b610e1a611f5a565b610e22611fa4565b60cf5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16610ea2576040517fc1ab6dc100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60cb5460c95f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208054905003610f58576040517fdacc14c300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff1660d15f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610fde576040517f4cd31fbb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f831480611083575060ce5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231336040518263ffffffff1660e01b81526004016110419190612a13565b602060405180830381865afa15801561105c573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061108091906131b3565b83115b156110ba576040517f2c5211c600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f6110c36108a0565b90505f3073ffffffffffffffffffffffffffffffffffffffff16638d9cb2496040518163ffffffff1660e01b8152600401602060405180830381865afa15801561110f573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061113391906131b3565b90505f8060d15f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e05a6185876040518263ffffffff1660e01b81526004016111919190612a13565b6040805180830381865afa1580156111ab573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111cf9190613208565b915091505f8673ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561121d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112419190613246565b90505f60ce5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112ae573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112d29190613246565b90505f8160ff16600a6112e591906133a0565b8360ff16600a6112f591906133a0565b8b61130091906130bd565b61130a919061305a565b90505f8460ff16600a61131d91906133a0565b868361132991906130bd565b611333919061305a565b90508881101561136f576040517f4d6d733600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f6127106105dc8461138191906130bd565b61138b919061305a565b836113969190612ffa565b90505f6127106105dc856113aa91906130bd565b6113b4919061305a565b846113bf919061308a565b9050818310806113ce57508083115b15611405576040517f0e92e0f400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60c95f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2060405180604001604052808581526020018b815250908060018154018082558091505060019003905f5260205f2090600202015f909190919091505f820151815f01556020820151816001015550508260ca5f8e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8c81526020019081526020015f205f828254611527919061308a565b9250508190555060ce5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639dc29fac338f6040518363ffffffff1660e01b815260040161158a9291906133ea565b5f604051808303815f87803b1580156115a1575f80fd5b505af11580156115b3573d5f803e3d5ffd5b505050508b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f544b1ce6b36e9947a8d70bb0f13774c594736507df7afbb81e945f9abf16287585428d60405161161893929190613411565b60405180910390a350505050505050505050611632611ff3565b505050565b6105dc81565b611645611c2c565b8060cf5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f038ca106c7edfaf696b760c2815d5ceaa7cdc1f97d6363c2d169d6b15704e46a826040516116df91906128cf565b60405180910390a25050565b6116f3611fa4565b6116fb611f5a565b5f5b8282905081101561174b5761173883838381811061171e5761171d61312b565b5b9050602002016020810190611733919061288a565b611ffd565b808061174390613158565b9150506116fd565b50611754611ff3565b5050565b60ca602052815f5260405f20602052805f5260405f205f91509150505481565b5f60cf5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff166117f9576040517fc1ab6dc100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff1660d15f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff160361187f576040517f4cd31fbb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f60ce5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231336040518263ffffffff1660e01b81526004016118da9190612a13565b602060405180830381865afa1580156118f5573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061191991906131b3565b90508084118061192857505f84145b1561195f576040517f2c5211c600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8060d15f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e05a6185866040518263ffffffff1660e01b81526004016119bb9190612a13565b6040805180830381865afa1580156119d5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119f99190613208565b915091505f8573ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a47573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a6b9190613246565b90505f60ce5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ad8573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611afc9190613246565b90505f8160ff16600a611b0f91906133a0565b8360ff16600a611b1f91906133a0565b8a611b2a91906130bd565b611b34919061305a565b90505f8460ff16600a611b4791906133a0565b8683611b5391906130bd565b611b5d919061305a565b90505f61271060d05483611b7191906130bd565b611b7b919061305a565b90505f8183611b8a9190612ffa565b905080995050505050505050505092915050565b60cd5481565b60d05481565b611bb2611c2c565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611c20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c17906134b6565b60405180910390fd5b611c2981611d0b565b50565b611c34612375565b73ffffffffffffffffffffffffffffffffffffffff16611c52610922565b73ffffffffffffffffffffffffffffffffffffffff1614611ca8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c9f9061351e565b60405180910390fd5b565b611cb261237c565b5f60655f6101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa611cf4612375565b604051611d019190612a13565b60405180910390a1565b5f60335f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160335f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b5f60019054906101000a900460ff16611e3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e35906135ac565b60405180910390fd5b611e466123c5565b565b5f60019054906101000a900460ff16611e96576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e8d906135ac565b60405180910390fd5b611e9e612425565b565b5f60019054906101000a900460ff16611eee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ee5906135ac565b60405180910390fd5b611ef661247d565b565b611f00611f5a565b600160655f6101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258611f43612375565b604051611f509190612a13565b60405180910390a1565b611f62610611565b15611fa2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f9990613614565b60405180910390fd5b565b600260975403611fe9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fe09061367c565b60405180910390fd5b6002609781905550565b6001609781905550565b60cf5f8273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1661207d576040517fc1ab6dc100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f805f60c95f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2090505f805b8280549050811015612248575f83828154811061211d5761211c61312b565b5b905f5260205f2090600202016040518060400160405290815f82015481526020016001820154815250509050806020015142106121ea57828061215f90613158565b9350505f815f015111156121bf575f61271060d054835f015161218291906130bd565b61218c919061305a565b90505f81835f015161219e9190612ffa565b905080886121ac919061308a565b975081876121ba919061308a565b965050505b5f8483815481106121d3576121d261312b565b5b905f5260205f2090600202015f0181905550612234565b5f83111561223357808484846122009190612ffa565b815481106122115761221061312b565b5b905f5260205f2090600202015f820151815f0155602082015181600101559050505b5b50808061224090613158565b9150506120fd565b505b5f81111561229a57818054806122635761226261369a565b5b600190038181905f5260205f2090600202015f8082015f9055600182015f9055505090558080612292906136c7565b91505061224a565b5f841115612333576122cd33858773ffffffffffffffffffffffffffffffffffffffff166124e69092919063ffffffff16565b8473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f71caaf9923cce437fe19c5fe15c4fb55d308cd6a1fd5d52f8ff7a802f41ee4f08660405161232a919061280f565b60405180910390a35b5f83111561236e5761236d612346610922565b848773ffffffffffffffffffffffffffffffffffffffff166124e69092919063ffffffff16565b5b5050505050565b5f33905090565b612384610611565b6123c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123ba90613738565b60405180910390fd5b565b5f60019054906101000a900460ff16612413576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161240a906135ac565b60405180910390fd5b61242361241e612375565b611d0b565b565b5f60019054906101000a900460ff16612473576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161246a906135ac565b60405180910390fd5b6001609781905550565b5f60019054906101000a900460ff166124cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124c2906135ac565b60405180910390fd5b5f60655f6101000a81548160ff021916908315150217905550565b6125678363a9059cbb60e01b84846040516024016125059291906133ea565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505061256c565b505050565b5f6125cd826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166126329092919063ffffffff16565b90505f815114806125ee5750808060200190518101906125ed919061376a565b5b61262d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161262490613805565b60405180910390fd5b505050565b606061264084845f85612649565b90509392505050565b60608247101561268e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161268590613893565b60405180910390fd5b5f808673ffffffffffffffffffffffffffffffffffffffff1685876040516126b6919061391d565b5f6040518083038185875af1925050503d805f81146126f0576040519150601f19603f3d011682016040523d82523d5f602084013e6126f5565b606091505b509150915061270687838387612712565b92505050949350505050565b60608315612773575f83510361276b5761272b85612786565b61276a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127619061397d565b60405180910390fd5b5b82905061277e565b61277d83836127a8565b5b949350505050565b5f808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b5f825111156127ba5781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127ee91906139ed565b60405180910390fd5b5f819050919050565b612809816127f7565b82525050565b5f6020820190506128225f830184612800565b92915050565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61285982612830565b9050919050565b6128698161284f565b8114612873575f80fd5b50565b5f8135905061288481612860565b92915050565b5f6020828403121561289f5761289e612828565b5b5f6128ac84828501612876565b91505092915050565b5f8115159050919050565b6128c9816128b5565b82525050565b5f6020820190506128e25f8301846128c0565b92915050565b6128f1816127f7565b81146128fb575f80fd5b50565b5f8135905061290c816128e8565b92915050565b5f6020828403121561292757612926612828565b5b5f612934848285016128fe565b91505092915050565b5f805f6060848603121561295457612953612828565b5b5f61296186828701612876565b935050602061297286828701612876565b9250506040612983868287016128fe565b9150509250925092565b5f6040820190506129a05f830185612800565b6129ad6020830184612800565b9392505050565b5f805f606084860312156129cb576129ca612828565b5b5f6129d886828701612876565b93505060206129e9868287016128fe565b92505060406129fa868287016128fe565b9150509250925092565b612a0d8161284f565b82525050565b5f602082019050612a265f830184612a04565b92915050565b5f819050919050565b5f612a4f612a4a612a4584612830565b612a2c565b612830565b9050919050565b5f612a6082612a35565b9050919050565b5f612a7182612a56565b9050919050565b612a8181612a67565b82525050565b5f602082019050612a9a5f830184612a78565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f840112612ac157612ac0612aa0565b5b8235905067ffffffffffffffff811115612ade57612add612aa4565b5b602083019150836020820283011115612afa57612af9612aa8565b5b9250929050565b5f805f60408486031215612b1857612b17612828565b5b5f612b2586828701612876565b935050602084013567ffffffffffffffff811115612b4657612b4561282c565b5b612b5286828701612aac565b92509250509250925092565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612b908161284f565b82525050565b5f612ba18383612b87565b60208301905092915050565b5f602082019050919050565b5f612bc382612b5e565b612bcd8185612b68565b9350612bd883612b78565b805f5b83811015612c08578151612bef8882612b96565b9750612bfa83612bad565b925050600181019050612bdb565b5085935050505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612c47816127f7565b82525050565b5f612c588383612c3e565b60208301905092915050565b5f602082019050919050565b5f612c7a82612c15565b612c848185612c1f565b9350612c8f83612c2f565b805f5b83811015612cbf578151612ca68882612c4d565b9750612cb183612c64565b925050600181019050612c92565b5085935050505092915050565b5f6080820190508181035f830152612ce48187612bb9565b90508181036020830152612cf88186612c70565b90508181036040830152612d0c8185612c70565b90508181036060830152612d208184612c70565b905095945050505050565b5f805f60608486031215612d4257612d41612828565b5b5f612d4f868287016128fe565b9350506020612d6086828701612876565b9250506040612d71868287016128fe565b9150509250925092565b612d84816128b5565b8114612d8e575f80fd5b50565b5f81359050612d9f81612d7b565b92915050565b5f8060408385031215612dbb57612dba612828565b5b5f612dc885828601612876565b9250506020612dd985828601612d91565b9150509250929050565b5f8060208385031215612df957612df8612828565b5b5f83013567ffffffffffffffff811115612e1657612e1561282c565b5b612e2285828601612aac565b92509250509250929050565b5f8060408385031215612e4457612e43612828565b5b5f612e5185828601612876565b9250506020612e62858286016128fe565b9150509250929050565b5f8060408385031215612e8257612e81612828565b5b5f612e8f858286016128fe565b9250506020612ea085828601612876565b9150509250929050565b5f604082019050612ebd5f830185612a04565b612eca6020830184612a04565b9392505050565b5f82825260208201905092915050565b7f496e697469616c697a61626c653a20636f6e747261637420697320616c7265615f8201527f647920696e697469616c697a6564000000000000000000000000000000000000602082015250565b5f612f3b602e83612ed1565b9150612f4682612ee1565b604082019050919050565b5f6020820190508181035f830152612f6881612f2f565b9050919050565b5f819050919050565b5f60ff82169050919050565b5f612f9e612f99612f9484612f6f565b612a2c565b612f78565b9050919050565b612fae81612f84565b82525050565b5f602082019050612fc75f830184612fa5565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f613004826127f7565b915061300f836127f7565b925082820390508181111561302757613026612fcd565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613064826127f7565b915061306f836127f7565b92508261307f5761307e61302d565b5b828204905092915050565b5f613094826127f7565b915061309f836127f7565b92508282019050808211156130b7576130b6612fcd565b5b92915050565b5f6130c7826127f7565b91506130d2836127f7565b92508282026130e0816127f7565b915082820484148315176130f7576130f6612fcd565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f613162826127f7565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361319457613193612fcd565b5b600182019050919050565b5f815190506131ad816128e8565b92915050565b5f602082840312156131c8576131c7612828565b5b5f6131d58482850161319f565b91505092915050565b6131e781612f78565b81146131f1575f80fd5b50565b5f81519050613202816131de565b92915050565b5f806040838503121561321e5761321d612828565b5b5f61322b8582860161319f565b925050602061323c858286016131f4565b9150509250929050565b5f6020828403121561325b5761325a612828565b5b5f613268848285016131f4565b91505092915050565b5f8160011c9050919050565b5f808291508390505b60018511156132c6578086048111156132a2576132a1612fcd565b5b60018516156132b15780820291505b80810290506132bf85613271565b9450613286565b94509492505050565b5f826132de5760019050613399565b816132eb575f9050613399565b8160018114613301576002811461330b5761333a565b6001915050613399565b60ff84111561331d5761331c612fcd565b5b8360020a91508482111561333457613333612fcd565b5b50613399565b5060208310610133831016604e8410600b841016171561336f5782820a90508381111561336a57613369612fcd565b5b613399565b61337c848484600161327d565b9250905081840481111561339357613392612fcd565b5b81810290505b9392505050565b5f6133aa826127f7565b91506133b5836127f7565b92506133e27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846132cf565b905092915050565b5f6040820190506133fd5f830185612a04565b61340a6020830184612800565b9392505050565b5f6060820190506134245f830186612800565b6134316020830185612800565b61343e6040830184612800565b949350505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6134a0602683612ed1565b91506134ab82613446565b604082019050919050565b5f6020820190508181035f8301526134cd81613494565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f613508602083612ed1565b9150613513826134d4565b602082019050919050565b5f6020820190508181035f830152613535816134fc565b9050919050565b7f496e697469616c697a61626c653a20636f6e7472616374206973206e6f7420695f8201527f6e697469616c697a696e67000000000000000000000000000000000000000000602082015250565b5f613596602b83612ed1565b91506135a18261353c565b604082019050919050565b5f6020820190508181035f8301526135c38161358a565b9050919050565b7f5061757361626c653a20706175736564000000000000000000000000000000005f82015250565b5f6135fe601083612ed1565b9150613609826135ca565b602082019050919050565b5f6020820190508181035f83015261362b816135f2565b9050919050565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c005f82015250565b5f613666601f83612ed1565b915061367182613632565b602082019050919050565b5f6020820190508181035f8301526136938161365a565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffd5b5f6136d1826127f7565b91505f82036136e3576136e2612fcd565b5b600182039050919050565b7f5061757361626c653a206e6f74207061757365640000000000000000000000005f82015250565b5f613722601483612ed1565b915061372d826136ee565b602082019050919050565b5f6020820190508181035f83015261374f81613716565b9050919050565b5f8151905061376481612d7b565b92915050565b5f6020828403121561377f5761377e612828565b5b5f61378c84828501613756565b91505092915050565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e5f8201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b5f6137ef602a83612ed1565b91506137fa82613795565b604082019050919050565b5f6020820190508181035f83015261381c816137e3565b9050919050565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f5f8201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b5f61387d602683612ed1565b915061388882613823565b604082019050919050565b5f6020820190508181035f8301526138aa81613871565b9050919050565b5f81519050919050565b5f81905092915050565b5f5b838110156138e25780820151818401526020810190506138c7565b5f8484015250505050565b5f6138f7826138b1565b61390181856138bb565b93506139118185602086016138c5565b80840191505092915050565b5f61392882846138ed565b915081905092915050565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000005f82015250565b5f613967601d83612ed1565b915061397282613933565b602082019050919050565b5f6020820190508181035f8301526139948161395b565b9050919050565b5f81519050919050565b5f601f19601f8301169050919050565b5f6139bf8261399b565b6139c98185612ed1565b93506139d98185602086016138c5565b6139e2816139a5565b840191505092915050565b5f6020820190508181035f830152613a0581846139b5565b90509291505056fea26469706673582212209d21a61ca61983de931b64ddaafad9a02ad09ad122877bfccc7801d1d4dc0e1f64736f6c63430008150033