0 txs
78 calls
constructor
constructor(address _tokenAddr, address _permit2Address)
functions
_DAY
viewfunction _DAY() view returns (uint256)
balanceOf
viewfunction balanceOf(address _addr) view returns (uint256)
balanceOfAt
viewfunction balanceOfAt(address _addr, uint256 _block) view returns (uint256)
balanceOfAtTime
viewfunction balanceOfAtTime(address _addr, uint256 _t) view returns (uint256)
BASE_RATE
viewfunction BASE_RATE() view returns (int256)
decimals
viewfunction decimals() view returns (uint256)
epoch
viewfunction epoch() view returns (uint256)
getLastUserSlope
viewfunction getLastUserSlope(address _addr) view returns (int256)
getUserPointHistory
viewfunction getUserPointHistory(address _userAddress, uint256 _index) view returns (tuple)
locked
viewfunction locked(address) view returns (int256 amount, uint256 end)
lockedEnd
viewfunction lockedEnd(address _addr) view returns (uint256)
MAXTIME
viewfunction MAXTIME() view returns (uint256)
MULTIPLIER
viewfunction MULTIPLIER() view returns (uint256)
NAME
viewfunction NAME() view returns (string)
owner
viewfunction owner() view returns (address)
pendingOwner
viewfunction pendingOwner() view returns (address)
permit2Address
viewfunction permit2Address() view returns (address)
slopeChanges
viewfunction slopeChanges(uint256) view returns (int256)
smartWalletChecker
viewfunction smartWalletChecker() view returns (address)
supply
viewfunction supply() view returns (uint256)
supplyPointHistory
viewfunction supplyPointHistory(uint256) view returns (int256 bias, int256 slope, uint256 ts, uint256 blk)
SYMBOL
viewfunction SYMBOL() view returns (string)
token
viewfunction token() view returns (address)
totalSupply
viewfunction totalSupply() view returns (uint256)
totalSupplyAt
viewfunction totalSupplyAt(uint256 _block) view returns (uint256)
totalSupplyAtTime
viewfunction totalSupplyAtTime(uint256 _t) view returns (uint256)
userPointEpoch
viewfunction userPointEpoch(address) view returns (uint256)
userPointHistory
viewfunction userPointHistory(address, uint256) view returns (int256 bias, int256 slope, uint256 ts, uint256 blk)
userPointHistoryTs
viewfunction userPointHistoryTs(address _addr, uint256 _idx) view returns (uint256)
WEEK
viewfunction WEEK() view returns (uint256)
acceptOwnership
nonpayablefunction acceptOwnership()
checkpointSupply
nonpayablefunction checkpointSupply()
createLock
nonpayablefunction createLock(uint256 _value, uint256 _unlockTime, uint256 nonce, uint256 deadline, bytes signature)
createLockFor
nonpayablefunction createLockFor(address _beneficiary, uint256 _value, uint256 _unlockTime, uint256 nonce, uint256 deadline, bytes signature)
increaseAmount
nonpayablefunction increaseAmount(uint256 _value, uint256 nonce, uint256 deadline, bytes signature)
increaseAmountFor
nonpayablefunction increaseAmountFor(address _beneficiary, uint256 _value, uint256 nonce, uint256 deadline, bytes signature)
increaseUnlockTime
nonpayablefunction increaseUnlockTime(uint256 _unlockTime)
renounceOwnership
nonpayablefunction renounceOwnership()
setPermit2Address
nonpayablefunction setPermit2Address(address newAddress)
setSmartWalletChecker
nonpayablefunction setSmartWalletChecker(address _check)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
withdraw
nonpayablefunction withdraw()
events
Deposit
event Deposit(address indexed provider, address indexed beneficiary, uint256 value, uint256 afterAmount, uint256 indexed locktime, uint256 _type, uint256 ts)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
OwnershipTransferStarted
event OwnershipTransferStarted(address indexed previousOwner, address indexed newOwner)
SetPermit2Address
event SetPermit2Address(address oldAddress, address newAddress)
SetSmartWalletChecker
event SetSmartWalletChecker(address sender, address indexed newChecker, address oldChecker)
Supply
event Supply(uint256 prevSupply, uint256 supply)
Withdraw
event Withdraw(address indexed provider, uint256 value, uint256 ts)
errors
No errors.
creation bytecode
0x60c060409080825234620002065781816200327d80380380916200002482856200020b565b83398101031262000206576200003a8162000245565b906200004a602080920162000245565b60016000818155600280546001600160a01b03199081169091558254338183168117909455875192966001600160a01b03959094869283167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08a80a316918215620001dc575082608052600354161760035584516080810181811060018060401b03821117620001c85790849291875285815260038382018781528883014281526060840191438352898052600787528a8a209451855551600185015551600284015551910155600486518094819363313ce56760e01b8352165afa918215620001be57839262000173575b8460ff841660a0525161302290816200025b82396080518181816102020152818161145f0152818161228201526126e7015260a0518161170d0152f35b90809250813d8311620001b6575b6200018d81836200020b565b81010312620001b257519060ff82168203620001af575060ff90388062000136565b80fd5b5080fd5b503d62000181565b84513d85823e3d90fd5b634e487b7160e01b86526041600452602486fd5b62461bcd60e51b8152600481018690526005602482015264043453030360dc1b6044820152606490fd5b600080fd5b601f909101601f19168101906001600160401b038211908210176200022f57604052565b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b0382168203620002065756fe608080604052600436101561001357600080fd5b60003560e01c9081625c9be11461186a5750806303015053146117f2578063047fc9aa146117d4578063059f8b16146117b157806318160ddd146117575780633037408d14611730578063313ce567146116f557806331a8bbce146116a657806334d901a41461163f5780633ccfd60b1461139157806341910f90146113745780634deafcae146113375780634ee2cd7e14611310578063643dafde1461127957806370a0823114611256578063715018a6146111ef57806379ba5097146111275780637b7933b414610e465780637c616fe614610bfd5780637df1485414610bd457806381fc83bb14610b9a57806387ac297e14610afb5780638da5cb5b14610ad2578063900cf0cf14610ab457806393491157146109e4578063981b24d014610852578063a154f1bb1461079b578063a3f4df7e1461074a578063ab6fd71c14610602578063c5224983146105d9578063cbf9fe5f14610596578063d2dcd93314610525578063db2869681461041d578063e30c3978146103f4578063eac6a667146103a9578063ee00ef3a1461038a578063f2fde38b1461031d578063f3a6d608146102c9578063f4359ce5146102ab578063f52a36f71461027f578063f76f8d78146102365763fc0c546a146101ec57600080fd5b34610231576000366003190112610231576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b600080fd5b346102315760003660031901126102315761027b604051610256816118b8565b60048152631d99531560e21b6020820152604051918291602083526020830190611999565b0390f35b3461023157602036600319011261023157600435600052600a6020526020604060002054604051908152f35b3461023157600036600319011261023157602060405162093a808152f35b34610231576020366003190112610231576001600160a01b036102ea611886565b16600052600960205260406000205460086020526040600020906000526020526020600160406000200154604051908152f35b3461023157602036600319011261023157610336611886565b61033e611a04565b600280546001600160a01b0319166001600160a01b039283169081179091556001549091167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e22700600080a3005b34610231576000366003190112610231576020604051630784ce008152f35b34610231576040366003190112610231576001600160a01b036103ca611886565b16600052600860205260406000206024356000526020526020600260406000200154604051908152f35b34610231576000366003190112610231576002546040516001600160a01b039091168152602090f35b346102315760a036600319011261023157610436611886565b60243560843567ffffffffffffffff811161023157610459903690600401611942565b906104626120fe565b60018060a01b0383166000526005602052604060002092600160405194610488866118b8565b805486520154602085019081526104a08315156120ca565b6000855113156104f857514210156104cb576104c493606435926044359233612154565b6001600055005b60405162461bcd60e51b8152602060048201526005602482015264564530303560d81b6044820152606490fd5b60405162461bcd60e51b815260206004820152600560248201526415914c0c0d60da1b6044820152606490fd5b3461023157602036600319011261023157600435801561058f575b6105876020916006546000526007835260406000206003604051916105648361189c565b805483526001810154868401526002810154604084015201546060820152612e09565b604051908152f35b5042610540565b34610231576020366003190112610231576001600160a01b036105b7611886565b1660005260056020526040806000206001815491015482519182526020820152f35b34610231576000366003190112610231576003546040516001600160a01b039091168152602090f35b346102315760a03660031901126102315760043560843567ffffffffffffffff811161023157610636903690600401611942565b61063f33612ebf565b6106476120fe565b61065762093a80602435046119d9565b336000526005602052604060002092600160405194610675866118b8565b805486520154602085015261068b8115156120ca565b835161071d5761069a42611af1565b8211156106f0576106aa42611ae0565b82116106c3576104c493606435926044359233336125bc565b60405162461bcd60e51b8152602060048201526005602482015264564530303360d81b6044820152606490fd5b60405162461bcd60e51b81526020600482015260056024820152642b2298181960d91b6044820152606490fd5b60405162461bcd60e51b8152602060048201526005602482015264564530303160d81b6044820152606490fd5b346102315760003660031901126102315761027b60405161076a816118b8565b601081526f159bdd194b595cd8dc9bddd95908131560821b6020820152604051918291602083526020830190611999565b34610231576020366003190112610231576107b4611886565b6107bc611a04565b6001600160a01b03818116801561082557600380546001600160a01b03198116929092179055604080516001600160a01b0393909216831682529290911660208201527f35f7c25f313d8b378045946ab43056cd8fbf3cb403496ebaa0beef117936ec329190a1005b60405162461bcd60e51b8152602060048201526005602482015264043453030360dc1b6044820152606490fd5b34610231576020806003193601126102315760043561087343821115612aba565b6006546108808183612d82565b80600052600784526040600020916040519261089b8461189c565b80548452600181015486850152600360028201549160408601928352015494606085019580875260009385106000146109985750600184018094116109825761058795610936946000526007885260406000206040516108fa8161189c565b8154815260018201548a82015260606003600284015493604084019485520154910193818552835191820361093c575b50505050505b51611b01565b90612e09565b61097795965091610961610957610967936109719695611a81565b9151885190611a81565b906119f1565b9251905190611a81565b90611ab1565b90868080808061092a565b634e487b7160e01b600052601160045260246000fd5b610936945061058796914382036109b2575b505050610930565b6109db9394506109c8610971926109d392611a81565b610961865142611a81565b915143611a81565b908680806109aa565b346102315760c0366003190112610231576109fd611886565b60243560a43567ffffffffffffffff811161023157610a20903690600401611942565b90610a29611a04565b610a316120fe565b610a4162093a80604435046119d9565b9260018060a01b03811660005260056020526040600020600160405191610a67836118b8565b8054835201546020820152610a7d8315156120ca565b805161071d57610a8c42611af1565b8511156106f057610a9c42611ae0565b85116106c3576104c4946084359360643593336125bc565b34610231576000366003190112610231576020600654604051908152f35b34610231576000366003190112610231576001546040516001600160a01b039091168152602090f35b346102315760803660031901126102315760043560643567ffffffffffffffff811161023157610b2f903690600401611942565b610b3833612ebf565b610b406120fe565b3360005260056020526040600020600160405191610b5d836118b8565b80548352015460208201908152610b758415156120ca565b6000825113156104f857514210156104cb576104c49260443591602435913333612154565b34610231576020366003190112610231576001600160a01b03610bbb611886565b1660005260096020526020604060002054604051908152f35b3461023157600036600319011261023157600b546040516001600160a01b039091168152602090f35b346102315760208060031936011261023157610c176120fe565b610c2033612ebf565b336000526005808252604060002091600160405193610c3e856118b8565b80548552015492818101938452610c5b62093a80600435046119d9565b908451421015610e1b57600081511315610df0578451821115610dc557610c8142611ae0565b8211610d9a576040518381019080821067ffffffffffffffff831117610d845760009160405252805185519160405191610cba836118b8565b825284820192835251955160405196610cd2886118b8565b87528487015260045481519093906000811280151661098257600080516020612fcd83398151915297604097610d28938593845280610d7c575b5033600052875287600020825181556001865191015533611b43565b51905190845190600082528482015260038582015242606082015233907f193fa1e51a172de243b75f244207219f0fc534504ae9142df54912cc47f5838e60803392a4825191818352820152a16001600055005b86528a610d0c565b634e487b7160e01b600052604160045260246000fd5b606483856040519162461bcd60e51b83526004830152602482015264564530303960d81b6044820152fd5b606483856040519162461bcd60e51b835260048301526024820152640ac8a6060760db1b6044820152fd5b606483856040519162461bcd60e51b83526004830152602482015264564530303760d81b6044820152fd5b606483856040519162461bcd60e51b835260048301526024820152642b2298181b60d91b6044820152fd5b346102315760003660031901126102315760006020604051610e67816118b8565b828152015260006020604051610e7c816118b8565b8281520152604051610e8d816118d4565b610e95611a5c565b8152610e9f611a5c565b602082015260006040820152600060608201526006546080820152604051610ec68161189c565b6000815260006020820152426040820152436060820152906080810151806110e2575b50604082015160608301516000824281106110a9575b610f0d62093a8085046119d9565b6000905b60ff8210610f58575b876080880151806006556000526007602052600360606040600020928051845560208101516001850155604081015160028501550151910155600080f35b610f6190611af1565b6000908042811115611086575050610fa8600091610f9c8a610f96429a5b610f9060208451940151918d611a81565b90611a8e565b90611b0e565b8a5260208a0151611b27565b8060208a01528189511261107e575b12611072575b84856040890152610fea670de0b6b3a7640000610fe3610fdd868a611a81565b876119f1565b0486611b01565b6060890152608087015191600180840180941161098257838a9460808b015242891460001461103057505050505050505050608090436060840152908380808080610f1a565b9061106a92916000526007602052604060002090855182556020860151908201556040850151600282015560036060860151910155611ad1565b915094610f11565b60006020880152610fbd565b818952610fb7565b6000925096610fa891978352600a602052610f9c8a610f96604086205493610f7f565b90506110b58243611a81565b670de0b6b3a76400009080820291820403610982576110dc90610971604088015142611a81565b90610eff565b909150600052600760205260406000206003604051916111018361189c565b805483526001810154602084015260028101546040840152015460608201529082610ee9565b34610231576000366003190112610231576002546001600160a01b033381831603611198576bffffffffffffffffffffffff60a01b8092166002556001549133908316176001553391167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a3005b60405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b6064820152608490fd5b3461023157600036600319011261023157611208611a04565b600280546001600160a01b03199081169091556001805491821690556000906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b34610231576020366003190112610231576020610587611274611886565b61296d565b3461023157604036600319011261023157611292611886565b61129a611a5c565b5060018060a01b031660005260086020526040600020602435600052602052608060406000206040516112cc8161189c565b815491828252600181015460208301908152606060036002840154936040860194855201549301928352604051938452516020840152516040830152516060820152f35b3461023157604036600319011261023157602061058761132e611886565b60243590612aee565b34610231576020366003190112610231576001600160a01b03611358611886565b1660005260056020526020600160406000200154604051908152f35b346102315760003660031901126102315760206040516127108152f35b34610231576000366003190112610231576113aa6120fe565b336000526020600581526040600020549060016040600020015490604051926113d2846118b8565b8352808301918083524210611613576114498351933360005260058352604060002054936001604060002001546040519561140c876118b8565b8652848601526000815260008252336000526005845260016040600020918351835551910155600454936114408686611a81565b60045533611b43565b6040516370a0823160e01b8082523360048301527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316908383602481855afa9283156115a1576000936115e4575b50836000604460405163a9059cbb60e01b815233600482015289602482015282865af13d15601f3d11600160005114161716156115ad57839060246040518094819382523360048301525afa9081156115a15760009161156c575b600080516020612fcd8339815191526040868661155b8a6115268161151f8b8b611a81565b1115612faf565b845181815242848201527ff279e6a1f5e320cca91135676d9cb6e44ca8a08c0b88342bcdb1144f6511b568863392a283611a81565b908351928352820152a16001600055005b93928092915084813d831161159a575b6115868183611920565b8101031261023157925191929091846114fa565b503d61157c565b6040513d6000823e3d90fd5b60405162461bcd60e51b815260048101859052600f60248201526e1514905394d1915497d19052531151608a1b6044820152606490fd5b9092508381813d831161160c575b6115fc8183611920565b810103126102315751918661149f565b503d6115f2565b6064906040519062461bcd60e51b825260048201526005602482015264056453031360dc1b6044820152fd5b34610231576040366003190112610231576001600160a01b03611660611886565b1660009081526008602090815260408083206024358452825291829020805460018201546002830154600390930154855192835293820152928301526060820152608090f35b3461023157602036600319011261023157600435600090815260076020908152604091829020805460018201546002830154600390930154855192835293820152928301526060820152608090f35b346102315760003660031901126102315760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b3461023157604036600319011261023157602061058761174e611886565b60243590612a20565b346102315760003660031901126102315760065460005260076020526020610587604060002060036040519161178c8361189c565b8054835260018101548584015260028101546040840152015460608201524290612e09565b34610231576000366003190112610231576020604051670de0b6b3a76400008152f35b34610231576000366003190112610231576020600454604051908152f35b346102315760203660031901126102315761180b611886565b611813611a04565b600b80546001600160a01b039283166001600160a01b0319821681179092556040805133815293909116602084015290917f110e4fb601987aad2c8d06ece3232441d81dc8f16bb15115399314fd91597c6f9190a2005b3461023157600036600319011261023157806201518060209252f35b600435906001600160a01b038216820361023157565b6080810190811067ffffffffffffffff821117610d8457604052565b6040810190811067ffffffffffffffff821117610d8457604052565b60a0810190811067ffffffffffffffff821117610d8457604052565b6060810190811067ffffffffffffffff821117610d8457604052565b67ffffffffffffffff8111610d8457604052565b90601f8019910116810190811067ffffffffffffffff821117610d8457604052565b81601f820112156102315780359067ffffffffffffffff8211610d845760405192611977601f8401601f191660200185611920565b8284526020838301011161023157816000926020809301838601378301015290565b919082519283825260005b8481106119c5575050826000602080949584010152601f8019910116010190565b6020818301810151848301820152016119a4565b9062093a809182810292818404149015171561098257565b8181029291811591840414171561098257565b6001546001600160a01b03163303611a1857565b606460405162461bcd60e51b815260206004820152602060248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152fd5b60405190611a698261189c565b60006060838281528260208201528260408201520152565b9190820391821161098257565b818102929160008212600160ff1b82141661098257818405149015171561098257565b8115611abb570490565b634e487b7160e01b600052601260045260246000fd5b60001981146109825760010190565b90630784ce00820180921161098257565b9062093a80820180921161098257565b9190820180921161098257565b8181039291600013801582851316918412161761098257565b9190916000838201938412911290801582169115161761098257565b9160405191611b51836118d4565b611b59611a5c565b8352611b63611a5c565b6020840152600060408401819052606084015260065460808401526001600160a01b038416611fd5575b604051611b998161189c565b6000815260006020820152426040820152436060820152608084015180611f92575b5060408101518060608301516000824211611f55575b611be162093a80849594046119d9565b926000935b60ff8510611e17575b50505050608086015160065550506001600160a01b038516611dab575b6080840151600052600760205260036060604060002092805184556020810151600185015560408101516002850155015191015560018060a01b038416611c54575b50505050565b60208091019142835111611d52575b0190815190428211611d13575b5050506001600160a01b03821660009081526009602052604090205460018101919082106109825760209060018060a01b038416600052600982528260406000205542604083830151015243606083830151015201519160018060a01b0316600052600860205260406000209060005260205260036060604060002092805184556020810151600185015560408101516002850155015191015538808080611c4e565b5110611d21575b8080611c70565b611d3660208084015101516060840151611b0e565b9081606084015251600052600a60205260406000205538611d1a565b611d6482855101516040860151611b27565b80604086015282820151845114611d90575b5060408401518351600052600a8352604060002055611c63565b84830151830151611da091611b0e565b604085015238611d76565b6000611dc4602080870151015160208751015190611b0e565b611dd360208401918251611b27565b8152611df1611dea60208801515188515190611b0e565b8451611b27565b9081845282815112611e0e575b501215611c0c5760008152611c0c565b82905238611dfe565b611e2090611af1565b60009042811115611f325750611e58600091611e4c89610f96429a610f9060208451940151918d611a81565b89526020890151611b27565b80602089015281885112611f2a575b12611f1e575b8493856040880152611e9b670de0b6b3a7640000611e94611e8e858a611a81565b866119f1565b0485611b01565b606088015260808a0151600181018111610982576001810160808c01528791428803611eda575050505050505050436060820152388080808080611bef565b6001611f1592016000526007602052604060002083518155602084015160018201556040840151600282015560036060850151910155611ad1565b94959050611be6565b60006020870152611e6d565b818852611e67565b9560009150611e5890878352600a602052611e4c89610f96604086205493610f7f565b50611f608143611a81565b670de0b6b3a76400008082810204820361098257611f8d91611f86604088015142611a81565b9102611ab1565b611bd1565b905060005260076020526040600020600360405191611fb08361189c565b8054835260018101546020840152600281015460408401520154606082015238611bbb565b6020810180514210806120bf575b612091575b602083014281511180612086575b612051575b8151600052600a602052604060002054604086015251908161201f575b5050611b8d565b5181036120395750604083015160608401525b3880612018565b600052600a6020526040600020546060840152612032565b630784ce0061271085510505602080870151015261207b6020808701510151610f90428451611a81565b602086015152611ffb565b506000845113611ff6565b630784ce00612710835105056020855101526120b7602085510151610f90428451611a81565b845152611fe8565b506000825113611fe3565b156120d157565b60405162461bcd60e51b8152602060048201526005602482015264056453030360dc1b6044820152606490fd5b60026000541461210f576002600055565b60405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606490fd5b9591939490929460008651936020880197885160405196612174886118b8565b875260208701525197516040519861218b8a6118b8565b895260208901526121dc85600454996121a48a8c611b01565b6004556121b28a8351611b27565b825260018060a01b0389168552600560205260408520825181556001602084015191015588611b43565b86612267575b505050509161225a91600080516020612fcd83398151915295847f193fa1e51a172de243b75f244207219f0fc534504ae9142df54912cc47f5838e60806020604099985193015194895193878552602085015260028a85015242606085015260018060a01b03169360018060a01b031692a482611b01565b82519182526020820152a1565b60018060a01b03600354169360405191612280836118b8565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316835260208301899052604051926122c0846118f0565b8352846020840152816040840152604051956122db876118b8565b30875289602088015260018060a01b038451511692604051966370a0823160e01b8852306004890152602088602481885afa9788156125b157908e9594939291889961256e575b50908794939291159081612565575b501561248a5750506020928260649260018060a01b038a5116868b015190604051946323b872dd60e01b86526004860152602485015260448401525af13d15601f3d1160018551141617161561244e5760206024915b51516040516370a0823160e01b815230600482015292839182906001600160a01b03165afa91821561244257916123fa575b50926123ed61225a959360206123e3600080516020612fcd8339815191529b9560409b9a98611a81565b9101511015612faf565b92949581978395506121e2565b9791949296959390506020883d60201161243a575b8161241c60209383611920565b810103126102315796519096949592949193919291906123ed6123b9565b3d915061240f565b604051903d90823e3d90fd5b60405162461bcd60e51b81526020600482015260146024820152731514905394d1915497d19493d357d1905253115160621b6044820152606490fd5b9250925050803b15612561578a849161250483896125256040519788968795869463187945bd60e11b86526124d68d6004880190516020809160018060a01b0381511684520151910152565b60208d810151604488015260408e0151606488015281516001600160a01b03166084880152015160a4860152565b6001600160a01b031660c484015261010060e4840152610104830190611999565b03925af180156125565761253f575b506020602491612387565b6024919261254e60209261190c565b929150612534565b6040513d85823e3d90fd5b8380fd5b90501538612331565b91929394955097506020813d6020116125a9575b8161258f60209383611920565b810103126125a55751968d949392919087612322565b8680fd5b3d9150612582565b6040513d89823e3d90fd5b969591949093929583519061264e600092602087018051976040519889936125e3856118b8565b84526020840152519051604051916125fa836118b8565b825260208201526004549a61260f8b8d611b01565b60045561261d8b8451611b27565b835280612962575b5060018060a01b0389168552600560205260408520825181556001602084015191015588611b43565b866126cc575b505050509161225a91600080516020612fcd83398151915295847f193fa1e51a172de243b75f244207219f0fc534504ae9142df54912cc47f5838e60806020604099985193015194895193878552602085015260018a85015242606085015260018060a01b03169360018060a01b031692a482611b01565b60018060a01b036003541693604051916126e5836118b8565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031683526020830189905260405192612725846118f0565b835284602084015281604084015260405195612740876118b8565b30875289602088015260018060a01b038451511692604051966370a0823160e01b8852306004890152602088602481885afa9788156125b157908e95949392918899612923575b5090879493929115908161291a575b501561289d5750506020928260649260018060a01b038a5116868b015190604051946323b872dd60e01b86526004860152602485015260448401525af13d15601f3d1160018551141617161561244e5760206024915b51516040516370a0823160e01b815230600482015292839182906001600160a01b03165afa9182156124425791612855575b509261284861225a959360206123e3600080516020612fcd8339815191529b9560409b9a98611a81565b9294958197839550612654565b9791949296959390506020883d602011612895575b8161287760209383611920565b8101031261023157965190969495929491939192919061284861281e565b3d915061286a565b9250925050803b15612561578a849161250483896128e96040519788968795869463187945bd60e11b86526124d68d6004880190516020809160018060a01b0381511684520151910152565b03925af1801561255657612903575b5060206024916127ec565b6024919261291260209261190c565b9291506128f8565b90501538612796565b91929394955097506020813d60201161295a575b8161294460209383611920565b810103126125a55751968d949392919087612787565b3d9150612937565b602083015238612625565b6001600160a01b03166000908152600960205260408120548061298e575090565b600860205260408220908252602052604081209080604051926129b08461189c565b8054906001810154908160208701526003600282015491826040890152015460608701524203029003808452126129e657505190565b81525190565b156129f357565b60405162461bcd60e51b8152602060048201526005602482015264474330303760d81b6044820152606490fd5b8115612ab2575b6001600160a01b031660009081526009602052604081205480612a4a5750905090565b600860205260408220908252602052806040812060405193612a6b8561189c565b81548552600182015460208601908152612a9c600284015460036040890195828752015460608901528310156129ec565b519151900302835103808452126129e657505190565b429150612a27565b15612ac157565b60405162461bcd60e51b8152602060048201526005602482015264564530313160d81b6044820152606490fd5b612afa43831115612aba565b604091825191612b09836118d4565b60209384840160009485825282810190868252606081019287845260808083019689885289845260018060a01b031691828a5260098b52868a20548152895b82811115612ceb575b50505087526008885283872090518752875282862094835197612b738961189c565b86548952600187015494818a019586526003600289015498828c01998a52015460608b0152612ba760065480865284612d82565b91828a5260078152818a2092825195612bbf8761189c565b8454875260018501548388015260606003600287015496868a01978852015497019687528b88528b8a52518110600014612cc95760018101809111612cb557606083926003612c52958e612c479581526007845220855192612c208461189c565b81548452600182015490840152600281015495830195865201549182910152865190611a81565b865251825190611a81565b86525b51948351612c82575b5050505051915190030282510380925280821215600014612c7d575090565b905090565b612ca592610961612cab96979593612c9d9351925190611a81565b905190611ab1565b90611b01565b9038808080612c5e565b634e487b7160e01b8b52601160045260248bfd5b505050612cd7835143611a81565b8452612ce4815142611a81565b8652612c55565b8451825180821015612d7b57612d0091611b01565b6001808201809211612d6757858d5260088e52898d2091901c808d52908d52888c20600301548b10612d3c578552612d3790611ad1565b612b48565b6000198101908111612d53578252612d3790611ad1565b634e487b7160e01b8c52601160045260248cfd5b634e487b7160e01b8d52601160045260248dfd5b5050612b51565b6000919082915b6080831115612d99575b50505090565b90919281811015612e0357612dae8282611b01565b6001808201809211610982571c90816000526007602052836003604060002001541115600014612dea5750612de39093611ad1565b9190612d89565b939150600019810190811161098257612de39091611ad1565b92612d93565b90604090818301612e1d81518310156129ec565b612e2c62093a808251046119d9565b916000925b60ff8410612e54575b50505050506000815112612e4c575190565b600081525190565b612e5d90611af1565b600090858184811115612ead5750505081935b6020870180518551870381028951038952848714612ea557612e9f93612e9591611b27565b9052848452611ad1565b92612e31565b505050612e3a565b8352600a602052909120549093612e70565b6001600160a01b0390811690328203612ed6575050565b600b54169081612f34575b60405162461bcd60e51b815260206004820152602560248201527f536d61727420636f6e7472616374206465706f7369746f7273206e6f7420616c6044820152641b1bddd95960da1b6064820152608490fd5b602090602460405180948193631846d2f560e31b835260048301525afa9081156115a157600091612f6e575b50612f6c578080612ee1565b565b6020813d8211612fa7575b81612f8660209383611920565b81010312612fa35751908115158203612fa0575038612f60565b80fd5b5080fd5b3d9150612f79565b15612fb657565b634e487b7160e01b600052600160045260246000fdfe5e2aa66efd74cce82b21852e317e5490d9ecc9e6bb953ae24d90851258cc2f5ca2646970667358221220a28fac193555367f3b0dd27cb05bdd3527aac30315781a8b6750452bb5d5b1f964736f6c634300081100330000000000000000000000009ed1439d328647bdb148c20316ea024c719a735b000000000000000000000000c53c83d26151dbcffa349fae20b6155299e87a35