287 txs
281 calls
constructor
constructor(uint256 _b, uint256 k, address appRegistry, address ant, address _antBeneficiary, uint256 _votingStartTime, uint256 _maxMultiplier)
functions
ANT
viewfunction ANT() view returns (address)
antBeneficiary
viewfunction antBeneficiary() view returns (address)
APP_REGISTRY
viewfunction APP_REGISTRY() view returns (address)
b
viewfunction b() view returns (uint256)
c
viewfunction c(bytes32[] appIds, bytes32 selectedAppId, uint256 newVotes) view returns (uint256)
getLeaderboard
viewfunction getLeaderboard() view returns (tuple[])
getUserTotalVotes
viewfunction getUserTotalVotes(address user) view returns (uint256 userTotalVotes)
getUserVotes
viewfunction getUserVotes(address user) view returns (tuple[])
getUserVotesLength
viewfunction getUserVotesLength(address user) view returns (uint256)
instantaneousMarketPrice
viewfunction instantaneousMarketPrice(bytes32 targetAppId) view returns (uint256)
K
viewfunction K() view returns (uint256)
maxMultiplier
viewfunction maxMultiplier() view returns (uint256)
MIN_VOTE_AMOUNT
viewfunction MIN_VOTE_AMOUNT() view returns (uint256)
owner
viewfunction owner() view returns (address)
timeMultiplier
viewfunction timeMultiplier() view returns (uint256)
totalAntPaid
viewfunction totalAntPaid() view returns (uint256)
userCost
viewfunction userCost(bytes32 selectedAppId, uint256 newVotes) view returns (uint256)
userVotes
viewfunction userVotes(address, uint256) view returns (bytes32 appId, uint256 votes)
votesForApp
viewfunction votesForApp(bytes32) view returns (uint256)
VOTING_DURATION
viewfunction VOTING_DURATION() view returns (uint256)
VOTING_START_TIME
viewfunction VOTING_START_TIME() view returns (uint256)
renounceOwnership
nonpayablefunction renounceOwnership()
setAntBeneficiary
nonpayablefunction setAntBeneficiary(address _antBeneficiary)
setB
nonpayablefunction setB(uint256 _b)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
vote
nonpayablefunction vote(bytes32 appId, uint256 newVotes)
events
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
SetAntBeneficiary
event SetAntBeneficiary(address indexed antBeneficiary)
SetB
event SetB(uint256 indexed b)
SetVotingActive
event SetVotingActive(bool indexed isVotingActive)
Voted
event Voted(address indexed user, bytes32 indexed appId, uint256 indexed votes)
errors
BCantBeZero
error BCantBeZero()
InvalidAppId
error InvalidAppId()
InvalidMaxMultiplier
error InvalidMaxMultiplier()
InvalidVotingStartTime
error InvalidVotingStartTime()
KCantBeZero
error KCantBeZero()
MinimumOneVoteRequired
error MinimumOneVoteRequired()
OwnableInvalidOwner
error OwnableInvalidOwner(address owner)
OwnableUnauthorizedAccount
error OwnableUnauthorizedAccount(address account)
PRBMath_MulDiv_Overflow
error PRBMath_MulDiv_Overflow(uint256 x, uint256 y, uint256 denominator)
PRBMath_MulDiv18_Overflow
error PRBMath_MulDiv18_Overflow(uint256 x, uint256 y)
PRBMath_SD59x18_Exp_InputTooBig
error PRBMath_SD59x18_Exp_InputTooBig(int256 x)
PRBMath_SD59x18_Exp2_InputTooBig
error PRBMath_SD59x18_Exp2_InputTooBig(int256 x)
PRBMath_SD59x18_IntoUD60x18_Underflow
error PRBMath_SD59x18_IntoUD60x18_Underflow(int256 x)
PRBMath_SD59x18_Log_InputTooSmall
error PRBMath_SD59x18_Log_InputTooSmall(int256 x)
PRBMath_SD59x18_Mul_InputTooSmall
error PRBMath_SD59x18_Mul_InputTooSmall()
PRBMath_SD59x18_Mul_Overflow
error PRBMath_SD59x18_Mul_Overflow(int256 x, int256 y)
PRBMath_UD60x18_IntoSD59x18_Overflow
error PRBMath_UD60x18_IntoSD59x18_Overflow(uint256 x)
SafeERC20FailedOperation
error SafeERC20FailedOperation(address token)
VotingNotActive
error VotingNotActive()
ZeroAddress
error ZeroAddress()
ZeroUserCostNotAllowed
error ZeroUserCostNotAllowed()
creation bytecode
0x610120604052348015610010575f5ffd5b506040516126c33803806126c383398101604081905261002f916101dc565b338061005457604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b61005d81610176565b50865f0361007e576040516304baf26760e21b815260040160405180910390fd5b855f0361009e576040516325e1988960e11b815260040160405180910390fd5b6001600160a01b03851615806100bb57506001600160a01b038416155b806100cd57506001600160a01b038316155b156100eb5760405163d92e233d60e01b815260040160405180910390fd5b670de0b6b3a764000081101561011457604051632e46bbf160e11b815260040160405180910390fd5b428210156101355760405163158a427960e01b815260040160405180910390fd5b6001969096556080949094526001600160a01b0392831660c052600280546001600160a01b0319169184169190911790551660a05260e0526101005261024d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146101d9575f5ffd5b50565b5f5f5f5f5f5f5f60e0888a0312156101f2575f5ffd5b8751602089015160408a0151919850965061020c816101c5565b606089015190955061021d816101c5565b608089015190945061022e816101c5565b60a089015160c090990151979a96995094979396949593949392505050565b60805160a05160c05160e051610100516123e56102de5f395f8181610190015261106201525f81816101f701528181610a9901528181610ac9015261100201525f81816102db0152818161065b01528181610b2601528181610cf901528181610e190152610ea201525f818161026c0152610c1a01525f818161039201528181610dc50152610f9801526123e55ff3fe608060405234801561000f575f5ffd5b5060043610610187575f3560e01c80637d57c86f116100d9578063a438d20811610093578063ae0563691161006e578063ae056369146103c7578063be248dfa146103da578063ec18c987146103ed578063f2fde38b146103f5575f5ffd5b8063a438d20814610383578063a932492f1461038d578063ac3ad744146103b4575f5ffd5b80637d57c86f146102d657806384c125d1146102fd5780638b3511f7146103255780638da5cb5b1461034d578063950c78221461035d5780639ef1204c14610370575f5ffd5b80634df7e3d01161014457806365595c611161011f57806365595c61146102675780636d763a6e146102a6578063715018a6146102bb5780637183ab24146102c3575f5ffd5b80634df7e3d01461022c57806360f2e25d1461023557806361fb4cc814610248575f5ffd5b80630187aea01461018b578063038a3538146101c557806309cdcf9b146101d45780630c460ff1146101e95780632476d67c146101f257806324ffcfc814610219575b5f5ffd5b6101b27f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020015b60405180910390f35b6101b2670de0b6b3a764000081565b6101e76101e2366004611fea565b610408565b005b6101b260035481565b6101b27f000000000000000000000000000000000000000000000000000000000000000081565b6101e761022736600461201c565b610462565b6101b260015481565b6101b261024336600461209d565b6104da565b6101b2610256366004611fea565b60046020525f908152604090205481565b61028e7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016101bc565b6102ae610656565b6040516101bc9190612143565b6101e76108ef565b6101b26102d136600461201c565b610902565b61028e7f000000000000000000000000000000000000000000000000000000000000000081565b6101b261030b36600461201c565b6001600160a01b03165f9081526005602052604090205490565b610338610333366004612191565b6109da565b604080519283526020830191909152016101bc565b5f546001600160a01b031661028e565b6102ae61036b36600461201c565b610a12565b6101e761037e3660046121b9565b610a97565b6101b262093a8081565b6101b27f000000000000000000000000000000000000000000000000000000000000000081565b6101b26103c23660046121b9565b610cf5565b60025461028e906001600160a01b031681565b6101b26103e8366004611fea565b610df7565b6101b2610fe9565b6101e761040336600461201c565b6110ad565b6104106110ef565b805f03610430576040516304baf26760e21b815260040160405180910390fd5b600181905560405181907f045339259e8d402466595bf58de66f0395ad17e0f15f881e89524dc360a8cbe2905f90a250565b61046a6110ef565b6001600160a01b0381166104915760405163d92e233d60e01b815260040160405180910390fd5b600280546001600160a01b0319166001600160a01b0383169081179091556040517fe7884506c4e20a115af6982c6cdf5ff09149ab7b69d9e5096ec685b1455efc17905f90a250565b82516001545f9190829081805b8481101561056f575f60045f8b8481518110610505576105056121d9565b602002602001015181526020019081526020015f20549050888a8381518110610530576105306121d9565b60200260200101510361054a576105478882612201565b90505b805f610556828761111b565b905080851015610564578094505b5050506001016104e7565b505f61057a82611135565b90505f5b8581101561061f575f60045f8c848151811061059c5761059c6121d9565b602002602001015181526020019081526020015f20549050898b83815181106105c7576105c76121d9565b6020026020010151036105e1576105de8982612201565b90505b5f6105fe846105f86105f3858a61111b565b611135565b90611162565b905061061361060c82611170565b88906111e6565b9650505060010161057e565b505f61064661063f61063a610633886111f4565b85906111e6565b61122a565b8590611250565b96505050505050505b9392505050565b60605f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166333f717fe6040518163ffffffff1660e01b81526004015f60405180830381865afa1580156106b4573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526106db9190810190612214565b90505f815167ffffffffffffffff8111156106f8576106f8612035565b60405190808252806020026020018201604052801561073c57816020015b604080518082019091525f80825260208201528152602001906001900390816107165790505b5090505f5b82518110156107c7576040518060400160405280848381518110610767576107676121d9565b6020026020010151815260200160045f868581518110610789576107896121d9565b602002602001015181526020019081526020015f20548152508282815181106107b4576107b46121d9565b6020908102919091010152600101610741565b505f5b600182516107d891906122a5565b8110156108e8575f5b60018284516107f091906122a5565b6107fa91906122a5565b8110156108df578261080d826001612201565b8151811061081d5761081d6121d9565b60200260200101516020015183828151811061083b5761083b6121d9565b60200260200101516020015110156108d7575f838281518110610860576108606121d9565b60200260200101519050838260016108789190612201565b81518110610888576108886121d9565b60200260200101518483815181106108a2576108a26121d9565b602090810291909101015280846108ba846001612201565b815181106108ca576108ca6121d9565b6020026020010181905250505b6001016107e1565b506001016107ca565b5092915050565b6108f76110ef565b6109005f61125e565b565b6001600160a01b0381165f90815260056020908152604080832080548251818502810185019093528083528493849084015b82821015610977578382905f5260205f2090600202016040518060400160405290815f820154815260200160018201548152505081526020019060010190610934565b505050506001600160a01b0384165f908152600560205260408120549192505b818110156109d2578281815181106109b1576109b16121d9565b602002602001015160200151846109c89190612201565b9350600101610997565b505050919050565b6005602052815f5260405f2081815481106109f3575f80fd5b5f91825260209091206002909102018054600190910154909250905082565b6001600160a01b0381165f908152600560209081526040808320805482518185028101850190935280835260609492939192909184015b82821015610a8c578382905f5260205f2090600202016040518060400160405290815f820154815260200160018201548152505081526020019060010190610a49565b505050509050919050565b7f0000000000000000000000000000000000000000000000000000000000000000421080610af05750610aed62093a807f0000000000000000000000000000000000000000000000000000000000000000612201565b42115b15610b0e57604051639b8cc47560e01b815260040160405180910390fd5b6040516314b6dfa760e11b81526004810183905282907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063296dbf4e90602401602060405180830381865afa158015610b73573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b9791906122b8565b610bb457604051636470515b60e01b815260040160405180910390fd5b670de0b6b3a7640000821015610bdc57604051629de9b360e81b815260040160405180910390fd5b5f610be78484610cf5565b9050805f03610c09576040516308908ab160e01b815260040160405180910390fd5b600254610c45906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811691339116846112ad565b5f8481526004602052604081208054859290610c62908490612201565b9091555050335f908152600560209081526040808320815180830190925287825281830187815281546001818101845592865293852092516002909402909201928355905191015560038054839290610cbc908490612201565b90915550506040518390859033907ff3030daa88eabb3b7f7583ba11debc017684b88752ce6f84f24120427ac5c187905f90a450505050565b5f5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166333f717fe6040518163ffffffff1660e01b81526004015f60405180830381865afa158015610d52573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610d799190810190612214565b90505f610d87825f5f6104da565b90505f610d958387876104da565b90505f610da283836122a5565b90505f610dbf82610db1610fe9565b670de0b6b3a764000061130d565b610de9907f00000000000000000000000000000000000000000000000000000000000000006122d7565b955050505050505b92915050565b6040516314b6dfa760e11b8152600481018290525f9082906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063296dbf4e90602401602060405180830381865afa158015610e5e573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e8291906122b8565b610e9f57604051636470515b60e01b815260040160405180910390fd5b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166333f717fe6040518163ffffffff1660e01b81526004015f60405180830381865afa158015610efb573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610f229190810190612214565b5f85815260046020526040812054600154929350918291610f43838361111b565b90505f610f51865f5f6104da565b9050805f610f5f828661111b565b90505f610f6b85611135565b90505f610f7783611135565b90505f610f848383611162565b90505f610f9082611170565b90505f610fc57f0000000000000000000000000000000000000000000000000000000000000000670de0b6b3a76400006122d7565b90505f610fd282846113c3565b9f5050505050505050505050505050505b50919050565b5f670de0b6b3a7640000670c7d713b49da0000826110277f0000000000000000000000000000000000000000000000000000000000000000426122a5565b905062093a805f61103983868461130d565b90508381101561104d575092949350505050565b5f61105982838861130d565b90505f611086877f00000000000000000000000000000000000000000000000000000000000000006122a5565b90505f61109482848a61130d565b90506110a08189612201565b9850505050505050505090565b6110b56110ef565b6001600160a01b0381166110e357604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b6110ec8161125e565b50565b5f546001600160a01b031633146109005760405163118cdaa760e01b81523360048201526024016110da565b5f61064f61113284670de0b6b3a764000085611487565b90565b5f816001600160ff1b03811115610df157604051633d1861a160e21b8152600481018490526024016110da565b5f61064f61113283856122ee565b5f8168023f2fa8f6da5b9d311981121561118c57505f92915050565b680736ea4425c11ac6308113156111b95760405163ca7ec0c560e01b8152600481018490526024016110da565b6714057b7ef767814f81026111de6111d9670de0b6b3a7640000835b0590565b61154c565b949350505050565b5f61064f6111328385612321565b5f610df16714057b7ef767814f670de0b6b3a7640000611216611132866115ed565b6112209190612348565b6111329190612377565b5f8181811215610df15760405163bba41a1560e01b8152600481018490526024016110da565b5f61064f611132848461175b565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b17905261130790859061180d565b50505050565b5f838302815f1985870982811083820303915050805f03611341578382816113375761133761230d565b049250505061064f565b808411611358576113586003851502601118611879565b5f848688095f868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150509392505050565b5f8282600160ff1b8214806113db5750600160ff1b81145b156113f95760405163a6070c2560e01b815260040160405180910390fd5b5f5f5f8412611408578361140c565b835f035b91505f831261141b578261141f565b825f035b90505f61142c838361175b565b90506001600160ff1b038111156114605760405163120b5b4360e01b815260048101899052602481018890526044016110da565b5f198585181361147a8161147657825f03611132565b8290565b9998505050505050505050565b5f80805f19858709858702925082811083820303915050805f036114b4578382816113375761133761230d565b8381106114e557604051630c740aef60e31b81526004810187905260248101869052604481018590526064016110da565b5f8486880960026001871981018816978890046003810283188082028403028082028403028082028403028082028403028082028403029081029092039091025f889003889004909101858311909403939093029303949094049190911702949350505050565b5f81818112156115a65768033dd1780914b971141981121561157057505f92915050565b61159f6115826111326111d9845f0390565b6ec097ce7bc90715b34b9f1000000000816111d5576111d561230d565b9150610fe3565b680a688906bd8affffff8113156115d257604051626c1a0560e31b8152600481018490526024016110da565b670de0b6b3a7640000604082901b056111de6111328261188a565b5f818181136116125760405163059b101b60e01b8152600481018490526024016110da565b5f670de0b6b3a7640000821261162a5750600161164f565b505f19816ec097ce7bc90715b34b9f10000000008161164b5761164b61230d565b0591505b5f6116da670de0b6b3a7640000840560016fffffffffffffffffffffffffffffffff821160071b91821c67ffffffffffffffff811160061b90811c63ffffffff811160051b90811c61ffff811160041b90811c60ff8111600390811b91821c600f811160021b90811c918211871b91821c969096119490961792909217171791909117919091171790565b9050670de0b6b3a7640000810283821d670de0b6b3a763ffff198101611707575091909102949350505050565b671bc16d674ec800006706f05b59d3b200005b5f81131561174c57670de0b6b3a7640000838002059250818312611744579283019260019290921d915b60011d61171a565b50505091909102949350505050565b5f80805f19848609848602925082811083820303915050805f0361178c5750670de0b6b3a764000090049050610df1565b670de0b6b3a764000081106117be57604051635173648d60e01b815260048101869052602481018590526044016110da565b5f670de0b6b3a764000085870962040000818503049310909103600160ee1b02919091177faccb18165bd6fe31ae1cf318dc5b51eee0e1ba569b88cd74c1773b91fac106690291505092915050565b5f5f60205f8451602086015f885af18061182c576040513d5f823e3d81fd5b50505f513d91508115611843578060011415611850565b6001600160a01b0384163b155b1561130757604051635274afe760e01b81526001600160a01b03851660048201526024016110da565b634e487b715f52806020526024601cfd5b600160bf1b67ff00000000000000821615611997576780000000000000008216156118be5768016a09e667f3bcc9090260401c5b6740000000000000008216156118dd576801306fe0a31b7152df0260401c5b6720000000000000008216156118fc576801172b83c7d517adce0260401c5b67100000000000000082161561191b5768010b5586cf9890f62a0260401c5b67080000000000000082161561193a576801059b0d31585743ae0260401c5b67040000000000000082161561195957680102c9a3e778060ee70260401c5b6702000000000000008216156119785768010163da9fb33356d80260401c5b67010000000000000082161561199757680100b1afa5abcbed610260401c5b66ff000000000000821615611a965766800000000000008216156119c45768010058c86da1c09ea20260401c5b66400000000000008216156119e2576801002c605e2e8cec500260401c5b6620000000000000821615611a0057680100162f3904051fa10260401c5b6610000000000000821615611a1e576801000b175effdc76ba0260401c5b6608000000000000821615611a3c57680100058ba01fb9f96d0260401c5b6604000000000000821615611a5a5768010002c5cc37da94920260401c5b6602000000000000821615611a78576801000162e525ee05470260401c5b6601000000000000821615611a965768010000b17255775c040260401c5b65ff0000000000821615611b8c5765800000000000821615611ac1576801000058b91b5bc9ae0260401c5b65400000000000821615611ade57680100002c5c89d5ec6d0260401c5b65200000000000821615611afb5768010000162e43f4f8310260401c5b65100000000000821615611b1857680100000b1721bcfc9a0260401c5b65080000000000821615611b355768010000058b90cf1e6e0260401c5b65040000000000821615611b52576801000002c5c863b73f0260401c5b65020000000000821615611b6f57680100000162e430e5a20260401c5b65010000000000821615611b8c576801000000b1721835510260401c5b64ff00000000821615611c7957648000000000821615611bb557680100000058b90c0b490260401c5b644000000000821615611bd15768010000002c5c8601cc0260401c5b642000000000821615611bed576801000000162e42fff00260401c5b641000000000821615611c095768010000000b17217fbb0260401c5b640800000000821615611c25576801000000058b90bfce0260401c5b640400000000821615611c4157680100000002c5c85fe30260401c5b640200000000821615611c5d5768010000000162e42ff10260401c5b640100000000821615611c7957680100000000b17217f80260401c5b63ff000000821615611d5d576380000000821615611ca05768010000000058b90bfc0260401c5b6340000000821615611cbb576801000000002c5c85fe0260401c5b6320000000821615611cd657680100000000162e42ff0260401c5b6310000000821615611cf1576801000000000b17217f0260401c5b6308000000821615611d0c57680100000000058b90c00260401c5b6304000000821615611d275768010000000002c5c8600260401c5b6302000000821615611d42576801000000000162e4300260401c5b6301000000821615611d5d5768010000000000b172180260401c5b62ff0000821615611e385762800000821615611d82576801000000000058b90c0260401c5b62400000821615611d9c57680100000000002c5c860260401c5b62200000821615611db65768010000000000162e430260401c5b62100000821615611dd057680100000000000b17210260401c5b62080000821615611dea5768010000000000058b910260401c5b62040000821615611e04576801000000000002c5c80260401c5b62020000821615611e1e57680100000000000162e40260401c5b62010000821615611e38576801000000000000b1720260401c5b61ff00821615611f0a57618000821615611e5b57680100000000000058b90260401c5b614000821615611e745768010000000000002c5d0260401c5b612000821615611e8d576801000000000000162e0260401c5b611000821615611ea65768010000000000000b170260401c5b610800821615611ebf576801000000000000058c0260401c5b610400821615611ed857680100000000000002c60260401c5b610200821615611ef157680100000000000001630260401c5b610100821615611f0a57680100000000000000b10260401c5b60ff821615611fd3576080821615611f2b57680100000000000000590260401c5b6040821615611f43576801000000000000002c0260401c5b6020821615611f5b57680100000000000000160260401c5b6010821615611f73576801000000000000000b0260401c5b6008821615611f8b57680100000000000000060260401c5b6004821615611fa357680100000000000000030260401c5b6002821615611fbb57680100000000000000010260401c5b6001821615611fd357680100000000000000010260401c5b670de0b6b3a76400000260409190911c60bf031c90565b5f60208284031215611ffa575f5ffd5b5035919050565b80356001600160a01b0381168114612017575f5ffd5b919050565b5f6020828403121561202c575f5ffd5b61064f82612001565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561207257612072612035565b604052919050565b5f67ffffffffffffffff82111561209357612093612035565b5060051b60200190565b5f5f5f606084860312156120af575f5ffd5b833567ffffffffffffffff8111156120c5575f5ffd5b8401601f810186136120d5575f5ffd5b80356120e86120e38261207a565b612049565b8082825260208201915060208360051b850101925088831115612109575f5ffd5b6020840193505b8284101561212b578335825260209384019390910190612110565b98602088013598506040909701359695505050505050565b602080825282518282018190525f918401906040840190835b8181101561218657835180518452602090810151818501529093019260409092019160010161215c565b509095945050505050565b5f5f604083850312156121a2575f5ffd5b6121ab83612001565b946020939093013593505050565b5f5f604083850312156121ca575f5ffd5b50508035926020909101359150565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b80820180821115610df157610df16121ed565b5f60208284031215612224575f5ffd5b815167ffffffffffffffff81111561223a575f5ffd5b8201601f8101841361224a575f5ffd5b80516122586120e38261207a565b8082825260208201915060208360051b850101925086831115612279575f5ffd5b6020840193505b8284101561229b578351825260209384019390910190612280565b9695505050505050565b81810381811115610df157610df16121ed565b5f602082840312156122c8575f5ffd5b8151801515811461064f575f5ffd5b8082028115828204841417610df157610df16121ed565b8181035f8312801583831316838312821617156108e8576108e86121ed565b634e487b7160e01b5f52601260045260245ffd5b8082018281125f831280158216821582161715612340576123406121ed565b505092915050565b8082025f8212600160ff1b84141615612363576123636121ed565b8181058314821517610df157610df16121ed565b5f8261239157634e487b7160e01b5f52601260045260245ffd5b600160ff1b82145f19841416156123aa576123aa6121ed565b50059056fea2646970667358221220be64d57f26ae0bc12fef5a85eb72423812144e1b38c1c96937827589854d44a064736f6c634300081c00330000000000000000000000000000000000000000000000d8e27e4dda17eca800000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000081fec66e8ee72cfa971761ed241b7d0e91a4d122000000000000000000000000a78d8321b20c4ef90ecd72f2588aa985a4bdb684000000000000000000000000675d39cdcea31ba8313565b03d684a3bbe183a1a00000000000000000000000000000000000000000000000000000000681c8eb00000000000000000000000000000000000000000000000001bc16d674ec80000