[ { "inputs": [ { "internalType": "address", "name": "vault_", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "previousAdmin", "type": "address" }, { "indexed": false, "internalType": "address", "name": "newAdmin", "type": "address" } ], "name": "AdminChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "spender", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "beacon", "type": "address" } ], "name": "BeaconUpgraded", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "from", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "CancelUnstake", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "from", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "ClaimUnstake", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "from", "type": "address" }, { "indexed": false, "internalType": "address", "name": "token", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "Donate", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "from", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "Harvest", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint8", "name": "version", "type": "uint8" } ], "name": "Initialized", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "previousOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferred", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "from", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "Stake", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "from", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "StartUnstake", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "implementation", "type": "address" } ], "name": "Upgraded", "type": "event" }, { "inputs": [ { "internalType": "contract IERC20", "name": "", "type": "address" } ], "name": "accruedProtocolFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "token", "type": "address" } ], "name": "addRewardToken", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" } ], "name": "allowance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "approve", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "cancelUnstaking", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "circulatingSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "contract IERC20", "name": "tok", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" } ], "name": "claimProtocolFee", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "claimUnstaked", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "subtractedValue", "type": "uint256" } ], "name": "decreaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "t", "type": "uint256" } ], "name": "emissionCurve", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "emissionRate", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "reap", "type": "bool" } ], "name": "harvest", "outputs": [ { "internalType": "uint256[]", "name": "", "type": "uint256[]" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "addedValue", "type": "uint256" } ], "name": "increaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "name", "type": "string" }, { "internalType": "string", "name": "symbol", "type": "string" }, { "internalType": "address", "name": "admin", "type": "address" }, { "internalType": "address", "name": "factory", "type": "address" }, { "components": [ { "internalType": "uint256", "name": "initialSupply", "type": "uint256" }, { "internalType": "uint256", "name": "decay", "type": "uint256" }, { "internalType": "uint256", "name": "unstakingTime", "type": "uint256" } ], "internalType": "struct ES33Parameters", "name": "params", "type": "tuple" } ], "name": "initialize", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [], "name": "mintEmission", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "rewardRate", "outputs": [ { "internalType": "address[]", "name": "tokens", "type": "address[]" }, { "internalType": "uint256[]", "name": "rates", "type": "uint256[]" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "distributor_", "type": "address" } ], "name": "setDistributor", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "t", "type": "uint256" } ], "name": "setEmissionStart", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "token", "type": "address" }, { "internalType": "uint256", "name": "feeRate", "type": "uint256" } ], "name": "setProtocolFeeRate", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "stake", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "factory", "type": "address" }, { "internalType": "address", "name": "vc", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "stakeLiquidity", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "acc", "type": "address" } ], "name": "stakedBalanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "startUnstaking", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "statistics", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "acc", "type": "address" } ], "name": "unstakingBalanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "unstakingEndDate", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newImplementation", "type": "address" } ], "name": "upgradeTo", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newImplementation", "type": "address" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "upgradeToAndCall", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "stateMutability": "payable", "type": "receive" } ]
60a0604090808252346200027c5760009080620033ea803803809162000026828562000324565b83396020928391810103126200022b57516001600160a01b03811681036200022b5760805262013e31461462000076575b82516130a190816200034982396080518181816104480152610fac0152f35b73430000000000000000000000000000000000000290813b156200022b57835163388a0bbd60e11b8152600491908481848183885af180156200028957620002e4575b50823b1562000251578451634e606c4760e01b81528481848183885af180156200028957908591620002cc575b50508451631a33757d60e01b808252600284830152908281602481897343000000000000000000000000000000000000035af18015620002c25790839162000293575b505085519081526002838201528181602481887343000000000000000000000000000000000000045af18015620002895762000255575b5050732536fe9ab3f511540f2f9e2ec2a805005c3dd800803b15620002515783809160248751809481936336b91f2b60e01b83527395b5a949060139fda5589fb8c2fe23cf2da30c13888401525af1801562000247579084916200022f575b5050813b156200022b577379799832d9288509d2c37a2ae6b0d742ae5c434d602484928387519586948593631d70c8d360e31b85528401525af180156200022157156200005757620002128291620002fa565b6200021e578062000057565b80fd5b83513d84823e3d90fd5b8280fd5b6200023a90620002fa565b6200022b578238620001bf565b85513d86823e3d90fd5b8380fd5b813d831162000281575b6200026b818362000324565b810103126200027c57388062000160565b600080fd5b503d6200025f565b86513d87823e3d90fd5b813d8311620002ba575b620002a9818362000324565b810103126200027c57813862000129565b503d6200029d565b87513d88823e3d90fd5b620002d790620002fa565b62000251578338620000e6565b620002f290949194620002fa565b9238620000b9565b6001600160401b0381116200030e57604052565b634e487b7160e01b600052604160045260246000fd5b601f909101601f19168101906001600160401b038211908210176200030e5760405256fe6080604052600436101561001b575b361561001957600080fd5b005b60003560e01c806306fdde0314610276578063095ea7b3146102715780630ae1ad091461026c578063167653911461026757806318160ddd146102085780631c03e6cc14610262578063234427581461025d57806323b872dd14610258578063250b346a14610253578063284e13331461024e578063313ce567146102495780633659cfe614610244578063395093511461023f5780634f1ef2861461023a578063558939f81461023557806369da6d531461023057806370a082311461022b57806370a1903d14610226578063715018a61461022157806375619ab51461021c5780637b0a47ee146102175780637d06bf94146102125780638da5cb5b1461020d5780639358928b1461020857806395d89b411461020357806395e272bd146101fe57806396afc450146101f9578063a457c2d7146101f4578063a694fc3a146101ef578063a9059cbb146101ea578063c5018136146101e5578063c8268604146101e0578063d276290d146101db578063dd62ed3e146101d6578063f2fde38b146101d1578063f82e5805146101cc578063f9b5eb59146101c75763fb4af5760361000e57611804565b6117c7565b61179d565b61170c565b6116b9565b61163e565b611601565b6115e3565b6115b9565b6114aa565b61140a565b6113c8565b611399565b6112f5565b610733565b6112cc565b611248565b6111d8565b611191565b611133565b610db9565b610d3e565b610cfb565b610bc0565b610ac6565b6109b7565b61098a565b61096e565b61090b565b6108a5565b6107f5565b6107b8565b610751565b6106f6565b61041b565b6103ba565b6102c4565b6020808252825181830181905290939260005b8281106102b057505060409293506000838284010152601f8019910116010190565b81810186015184820160400152850161028e565b346103a4576000806003193601126103a157604051816036546102e6816127cc565b808452906001908181169081156103795750600114610320575b61031c8461031081880382610a53565b6040519182918261027b565b0390f35b60368352602094507f4a11f94e20a93c79f6ec743a1954ec4fc2c08429ae2122118bf234b2185c81b85b828410610366575050508161031c936103109282010193610300565b805485850187015292850192810161034a565b61031c96506103109450602092508593915060ff191682840152151560051b82010193610300565b80fd5b600080fd5b6001600160a01b038116036103a457565b346103a45760403660031901126103a4576103e46004356103da816103a9565b6024359033612c11565b602060405160018152f35b60609060031901126103a457600435610407816103a9565b90602435610414816103a9565b9060443590565b610424366103ef565b9161042d61256a565b6104378330612993565b5060405163095ea7b360e01b8152927f0000000000000000000000000000000000000000000000000000000000000000906020908561047a828560048401611a1d565b03958281600098818a305af1801561064e576106c9575b506040516308311f8f60e21b81528281806104af3060048301611938565b038160018060a01b038099165afa93841561064e578591889561069a575b50604051632c406d2360e01b81526001600160a01b03861660048201819052600060248301819052306044840152606483018190526001600160801b03958616600f90810b608485015260a4840182905260c48401829052348716900b60e484015261010483019190915260016101248301526101448201819052610180610164830152610184820152911692908781806101a48101038134885af1801561064e57610680575b508060405180966370a0823160e01b8252818061059430600483016112b9565b039188165afa801561064e57879586928392610653575b50506040516342f3185360e11b81526001600160a01b039586166004820181905260016024830152604482015260006064820181905293909116600f0b60848201529590931660a486015260c4850181905260e485018190526101206101048601526101248501528391829081610144810103925af1801561064e5761062f575080f35b61064a903d8084833e6106428183610a53565b810190611a4f565b5080f35b61195b565b6106729250803d10610679575b61066a8183610a53565b810190611ad2565b38806105ab565b503d610660565b610693903d808a833e6106428183610a53565b5038610574565b6106bb919550843d86116106c2575b6106b38183610a53565b810190611923565b93386104cd565b503d6106a9565b6106e890833d85116106ef575b6106e08183610a53565b810190611a08565b5038610491565b503d6106d6565b346103a45760203660031901126103a457600435610713816103a9565b60018060a01b031660005260cf6020526020604060002054604051908152f35b346103a45760003660031901126103a4576020603554604051908152f35b346103a45760203660031901126103a457610019600435610771816103a9565b61077961256a565b6001600160a01b0316612f88565b6001600160a01b0316600090815260336020526040902090565b9060018060a01b0316600052602052604060002090565b346103a45760203660031901126103a4576004356107d5816103a9565b60018060a01b031660005260d66020526020604060002054604051908152f35b346103a457610803366103ef565b9060018060a01b03831660005260346020526108233360406000206107a1565b549260018401610844575b6108389350612a56565b60405160018152602090f35b8284106108605761085b8361083895033383612c11565b61082e565b60405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606490fd5b346103a45760403660031901126103a4576109046004356108c5816103a9565b6024356108d1816103a9565b6108d961256a565b6108e161266b565b6001600160a01b038216600090815260d760205260408120805491905591612df1565b6001606555005b346103a45760003660031901126103a45760c9546001600160a01b0316338190036103a45761093942611b75565b60cc54918282039182116109695781830180931161096957816109619160209460cc55612b25565b604051908152f35b611ae8565b346103a45760003660031901126103a457602060405160128152f35b346103a45760203660031901126103a4576100196004356109aa816103a9565b6109b261256a565b612d2a565b346103a45760403660031901126103a4576004356109d4816103a9565b3360005260346020526109eb8160406000206107a1565b546024358101809111610969576103e49133612c11565b634e487b7160e01b600052604160045260246000fd5b606081019081106001600160401b03821117610a3357604052565b610a02565b604081019081106001600160401b03821117610a3357604052565b90601f801991011681019081106001600160401b03821117610a3357604052565b6001600160401b038111610a3357601f01601f191660200190565b929192610a9b82610a74565b91610aa96040519384610a53565b8294818452818301116103a4578281602093846000960137010152565b346103a45760403660031901126103a457600435610ae3816103a9565b6024356001600160401b0381116103a457366023820112156103a457610b13903690602481600401359101610a8f565b610b1b61256a565b610b2482612d2a565b805115801590610b9a575b610b3557005b6100199160008060405193610b4985610a18565b602785527f416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c6020860152660819985a5b195960ca1b6040860152602081519101845af4610b94611dff565b91612ef3565b506001610b2f565b9080601f830112156103a457816020610bbd93359101610a8f565b90565b60e03660031901126103a4576001600160401b036004358181116103a457610bec903690600401610ba2565b906024359081116103a457610c05903690600401610ba2565b604435610c11816103a9565b60643590610c1e826103a9565b60603660831901126103a457610c6f9260005494610c5360ff8760081c161580978198610ced575b8115610ccd575b506118c0565b85610c66600160ff196000541617600055565b610cb457611967565b610c7557005b610c8561ff001960005416600055565b604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602090a1005b610cc861010061ff00196000541617600055565b611967565b303b15915081610cdf575b5038610c4d565b6001915060ff161438610cd8565b600160ff8216109150610c46565b346103a45760403660031901126103a457600435610d18816103a9565b610d2061256a565b6001600160a01b0316600090815260cd602052604090206024359055005b346103a45760203660031901126103a457600435610d5b816103a9565b60018060a01b031660005260336020526020604060002054604051908152f35b801515036103a457565b90815180825260208080930193019160005b828110610da5575050505090565b835185529381019392810192600101610d97565b346103a4576020806003193601126103a457600490813591610dda83610d7b565b610de261266b565b610dea612ffb565b90610df58251611c3b565b610dff8351611c3b565b94610ee1575b505033610e27575b50600160655561031c604051928284938452830190610d85565b60005b8151811015610ed95780610e69610e63610e57610e4a610e819587611c92565b516001600160a01b031690565b6001600160a01b031690565b33612501565b80610e748388611c92565b5280610e86575b50611c6d565b610e2a565b610ed3907fc9695243a805adb74c91f28311176c65b417e842d5699893cef56d18bfa48cba60405180610eba843383611a1d565b0390a133610ece610e57610e4a8689611c92565b612df1565b38610e7b565b505038610e0d565b916000949391945b8151811015610f6d57610f05610e57610e57610e4a8486611c92565b908360405180936370a0823160e01b82528180610f24308d83016112b9565b03915afa801561064e57610f4b92600091610f50575b50610f458287611c92565b52611c6d565b610ee9565b610f679150853d87116106795761066a8183610a53565b38610f3a565b5060c9549091906001600160a01b0316610fdb6000806040938451610fa781610f998982019485611cab565b03601f198101835282610a53565b5190827f00000000000000000000000000000000000000000000000000000000000000005af1610fd5611dff565b50611ae1565b60005b835181101561112557610ffa610e57610e57610e4a8488611c92565b82516370a0823160e01b8152919084908390818061101a308e83016112b9565b03915afa91821561064e576111039261104791600091611108575b506110408389611c92565b5190611b2d565b6110518288611c92565b526110fe61105f8288611c92565b516110f86110a861109a611093611079610e4a888d611c92565b6001600160a01b0316600090815260cd6020526040902090565b5484611b62565b670de0b6b3a7640000900490565b6110d56110bb610e57610e4a888d611c92565b6001600160a01b0316600090815260d76020526040902090565b6110e0828254611b3a565b90556110f2610e57610e4a878c611c92565b92611b2d565b9061249e565b611c6d565b610fde565b61111f9150863d88116106795761066a8183610a53565b38611035565b505092935090503880610e05565b346103a4576000806003193601126103a15761114d61256a565b609780546001600160a01b0319811690915581906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b346103a45760203660031901126103a4576004356111ae816103a9565b6111b661256a565b60c980546001600160a01b0319166001600160a01b0392909216919091179055005b346103a45760003660031901126103a4576111f1612326565b604051906040820192604083528051809452606083019360208092019060005b81811061122b5785870384870152858061031c8988610d85565b82516001600160a01b031687529583019591830191600101611211565b346103a45760003660031901126103a45761126161266b565b61126a33611e4f565b507fa7f85e651af05027a4f843edc9b8e9aa3b3afb933dfc1e61752cb2bb3b13e88a6112af61129833612460565b6112a28133612408565b6040519182913383611a1d565b0390a16001606555005b6001600160a01b03909116815260200190565b346103a45760003660031901126103a4576097546040516001600160a01b039091168152602090f35b346103a4576000806003193601126103a15760405181603754611317816127cc565b8084529060019081811690811561037957506001146113405761031c8461031081880382610a53565b60378352602094507f42a7b7dd785cd69714a189dffb3fd7d7174edc9ece837694ce50f7078f7c31ae5b828410611386575050508161031c936103109282010193610300565b805485850187015292850192810161136a565b346103a45760003660031901126103a457606060ce5460d15460cc549060405192835260208301526040820152f35b346103a45760003660031901126103a45760014201804211610969576113ed90611b75565b6113f642611b75565b810390811161096957602090604051908152f35b346103a45760403660031901126103a457600435611427816103a9565b602435903360005260346020526114428160406000206107a1565b54918083106114575761083892039033612c11565b60405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608490fd5b346103a45760203660031901126103a4576004356114c661266b565b6114cf33611e4f565b506114da8133612408565b331561156a5761155d817febedb8b3c678666e7f36970bc8f57abf6d8fa2e828c0da91ea5b75bf68ed101a9261150f33610787565b5461151c82821015612bba565b0361152633610787565b556115348160355403603555565b604051818152600090339060008051602061304c83398151915290602090a36112a28130612b25565b0390a16100196001606555565b60405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608490fd5b346103a45760403660031901126103a4576103e46004356115d9816103a9565b6024359033612a56565b346103a45760203660031901126103a4576020610961600435611b75565b346103a45760203660031901126103a45760043561161e816103a9565b60018060a01b031660005260d26020526020604060002054604051908152f35b346103a4576000806003193601126103a15761165861266b565b33815260d6602052604081205442106103a1576116b161167733612460565b7f10c7921ed3e32590c33b35e9cfd1992dc6fee2731c0d778f069b632a25a29098604051806116a7843383611a1d565b0390a13330612a56565b600160655580f35b346103a45760403660031901126103a45760206117036004356116db816103a9565b602435906116e8826103a9565b6001600160a01b0316600090815260348452604090206107a1565b54604051908152f35b346103a45760203660031901126103a457600435611729816103a9565b61173161256a565b6001600160a01b0381161561174957610019906125c2565b60405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608490fd5b346103a45760203660031901126103a4576117b661256a565b60043560cb55602060405160008152f35b346103a45760203660031901126103a4576004356117e4816103a9565b60018060a01b031660005260d76020526020604060002054604051908152f35b346103a4576000806003193601126103a15761181e61266b565b61182733611e4f565b5033815260cf602052604081205460ce548181039081116109695760ce5533825260cf6020526040822080549082820391821161096957556118698133612434565b60ca544201804211610969577fc5c017fa02961036dfcf0d268c557fe1fb23498bdb5f28720895097d638d7b32916118b59133855260d660205260408520556040519182913383611a1d565b0390a1600160655580f35b156118c757565b60405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608490fd5b908160209103126103a45751610bbd816103a9565b90815273eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee602082015260400190565b6040513d6000823e3d90fd5b9061199f9160c43560ca5561197b846125c2565b61199560ff60005460081c166119908161260b565b61260b565b60016065556126c1565b6020604051809363171223dd60e01b8252816000816119c13060048301611938565b03926001600160a01b03165af191821561064e576119e8926119ea575b5060843590612b25565b565b611a019060203d81116106c2576106b38183610a53565b50386119de565b908160209103126103a45751610bbd81610d7b565b6001600160a01b039091168152602081019190915260400190565b6001600160401b038111610a335760051b60200190565b60209081818403126103a4578051906001600160401b0382116103a457019180601f840112156103a4578251611a8481611a38565b93611a926040519586610a53565b818552838086019260051b8201019283116103a4578301905b828210611ab9575050505090565b815180600f0b81036103a4578152908301908301611aab565b908160209103126103a4575190565b156103a457565b634e487b7160e01b600052601160045260246000fd5b906a31a17e847807b1bc00000091820391821161096957565b90670de0b6b3a764000091820391821161096957565b9190820391821161096957565b9190820180921161096957565b906a31a17e847807b1bc000000918083029283040361096957565b8181029291811591840414171561096957565b60cb548015611c3457808210611c3457810390811161096957670de0b6ad03887372600182811615611c255781925b811c805b611bc057505050611bbb610bbd91611b47565b611afe565b82800292808404036103a4576706f05b59d3b20000928381019081106103a457670de0b6b3a764000080910493838316611bff575b5050811c80611ba8565b848692939602918583041415851515166103a45781019081106103a45704923880611bf5565b670de0b6b3a764000092611ba4565b5050600090565b90611c4582611a38565b611c526040519182610a53565b8281528092611c63601f1991611a38565b0190602036910137565b60001981146109695760010190565b634e487b7160e01b600052603260045260246000fd5b8051821015611ca65760209160051b010190565b611c7c565b636988ad4560e11b8152600360e51b6020820152600360e61b6040820152600960e51b606080830191909152604360781b600160e11b0160808301526feeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee600360e01b0160a0830152637777777760e11b60c0830152600160e11b60e0830181905260006101008401819052610120840152610140830152600160e61b61016083015261900160d91b6101808301529190911b6001600160601b031916610190820152610bbd906101a4906060910181815260c0602082018190526002604083018190526000848401819052600160f81b608085015260a0840181905273c84499ee6934209af2ff925783aabe410d537f128385015260e084019490945261010083019190915261012082015260016001607f1b03600160f01b0161014082015260016001607f1b03608160f11b016101608201526101808101919091526101a00190565b3d15611e2a573d90611e1082610a74565b91611e1e6040519384610a53565b82523d6000602084013e565b606090565b8115611e39570490565b634e487b7160e01b600052601260045260246000fd5b90611e58612ffb565b611e628151611c3b565b92611e6d8251611c3b565b9060005b8351811015611ef657611e8d610e57610e57610e4a8488611c92565b6040516370a0823160e01b815260209291839082908180611eb130600483016112b9565b03915afa90811561064e57611ed493600092611ed9575b5050610f458289611c92565b611e71565b611eef9250803d106106795761066a8183610a53565b3880611ec8565b5060c954919490939092916001600160a01b031690604095611f2b600080895195602096610fa781610f998a82019485611cab565b60005b845181101561201b57611f4a610e57610e57610e4a8489611c92565b9084895180936370a0823160e01b82528180611f6930600483016112b9565b03915afa91821561064e57611ff992611f8f91600091611ffe575b50611040838a611c92565b611f998289611c92565b526110fe611fa78289611c92565b516110f888611fdc6110bb610e57610e4a88611fd661109a611fcf611079610e4a858b611c92565b548a611b62565b95611c92565b611fe7828254611b3a565b90556110f2610e57610e4a878d611c92565b611f2e565b6120159150873d89116106795761066a8183610a53565b38611f84565b509095909493509190506001600160a01b0383168061203c575b5050505090565b60009594919293955b83518110156120d0578061206b612065610e57610e4a6120829589611c92565b84612501565b806120768387611c92565b52806120875750611c6d565b612045565b807fc9695243a805adb74c91f28311176c65b417e842d5699893cef56d18bfa48cba610ed3928b6120bc8b5192839283611a1d565b0390a189610ece610e57610e4a868b611c92565b5050929350505038808080612035565b6120e8612ffb565b906120f38251611c3b565b916120fe8151611c3b565b9160005b82518110156121875761211e610e57610e57610e4a8487611c92565b6040516370a0823160e01b81526020929183908290818061214230600483016112b9565b03915afa90811561064e576121659360009261216a575b5050610f458288611c92565b612102565b6121809250803d106106795761066a8183610a53565b3880612159565b5060c954909391906001600160a01b03166040946121b8600080885194602095610fa781610f998982019485611cab565b60005b8351811015612220576121d7610e57610e57610e4a8488611c92565b9083885180936370a0823160e01b825281806121f630600483016112b9565b03915afa91821561064e5761221b926110479160009161110857506110408389611c92565b6121bb565b50945050505090565b81601f820112156103a45780519161224083611a38565b9261224e6040519485610a53565b808452602092838086019260051b8201019283116103a4578301905b828210612278575050505090565b8151815290830190830161226a565b9190916040818403126103a4578051926001600160401b03938481116103a45782019381601f860112156103a45784516122c081611a38565b906122ce6040519283610a53565b808252602096878084019260051b820101918583116103a45788809201905b83821061230d5750505050948301519081116103a457610bbd9201612229565b828091835161231b816103a9565b8152019101906122ed565b61232e6120e0565b5060c95461234690610e57906001600160a01b031681565b9060405180926324e80df360e21b82528160046000938480945af190811561064e57809381926123e1575b5060ce549081156123d5575b84518110156123d057806123c1836123bc886123b66123b0611079610e4a886123a96123cb9b8e611c92565b5195611c92565b54611b17565b90611b62565b611e2f565b610f458286611c92565b61237d565b505090565b5050610bbd9051611c3b565b90935061240091503d8085833e6123f88183610a53565b810190612287565b909238612371565b60ce548281018091116109695760ce5560005260cf602052604060002080549182018092116109695755565b60d1548281018091116109695760d15560005260d2602052604060002080549182018092116109695755565b8060005260d26020526040600020549060d1548281039081116109695760d15560005260d26020526040600020805490828203918211610969575590565b60005260d0602052604060002060ce54806124c7575b5060010180549182018092116109695755565b670de0b6b3a764000090818402918483041484151715610969576124ea91611e2f565b9080549182018092116109695790815560016124b4565b90600090815260d06020526040812082825260cf6020526040822054815490600283019384602052604081205483039483861161096957670de0b6b3a764000061254f600197604095611b62565b04968252602052205501805490828203918211610969575590565b6097546001600160a01b0316330361257e57565b606460405162461bcd60e51b815260206004820152602060248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152fd5b609780546001600160a01b039283166001600160a01b0319821681179092559091167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a3565b1561261257565b60405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608490fd5b60026065541461267c576002606555565b60405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606490fd5b906126d760ff60005460081c166119908161260b565b81516001600160401b038111610a33576126fb816126f66036546127cc565b612806565b602080601f831160011461273d575081906119e894600092612732575b50508160011b916000199060031b1c1916176036556128ae565b015190503880612718565b60366000529293919291601f1984167f4a11f94e20a93c79f6ec743a1954ec4fc2c08429ae2122118bf234b2185c81b8936000905b8282106127b45750509160019391856119e89796941061279b575b505050811b016036556128ae565b015160001960f88460031b161c1916905538808061278d565b80600186978294978701518155019601940190612772565b90600182811c921680156127fc575b60208310146127e657565b634e487b7160e01b600052602260045260246000fd5b91607f16916127db565b601f8111612812575050565b6000906036825260208220906020601f850160051c83019410612850575b601f0160051c01915b82811061284557505050565b818155600101612839565b9092508290612830565b601f8111612866575050565b6000906037825260208220906020601f850160051c830194106128a4575b601f0160051c01915b82811061289957505050565b81815560010161288d565b9092508290612884565b9081516001600160401b038111610a33576128d3816128ce6037546127cc565b61285a565b602080601f831160011461290f5750819293600092612904575b50508160011b916000199060031b1c191617603755565b0151905038806128ed565b6037600052601f198316949091907f42a7b7dd785cd69714a189dffb3fd7d7174edc9ece837694ce50f7078f7c31ae926000905b87821061297b575050836001959610612962575b505050811b01603755565b015160001960f88460031b161c19169055388080612957565b80600185968294968601518155019501930190612943565b9061299e9133612a56565b600190565b156129aa57565b60405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608490fd5b15612a0257565b60405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608490fd5b916001600160a01b038084169290918315612ad257612ab78260008051602061304c83398151915294612acd941696612a908815156129a3565b612ab184612a9d83610787565b54612aaa828210156129fb565b0391610787565b55610787565b8054820190556040519081529081906020820190565b0390a3565b60405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608490fd5b6001600160a01b03811691908215612b75576035549082820180921161096957600092612b6660209260008051602061304c83398151915294603555610787565b818154019055604051908152a3565b60405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606490fd5b15612bc157565b60405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608490fd5b6001600160a01b038082169291908315612cd9578216938415612c895780612c787f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92594612c73612acd9560018060a01b03166000526034602052604060002090565b6107a1565b556040519081529081906020820190565b60405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608490fd5b60405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608490fd5b803b15612d96577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b039290921691821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b600080a2565b60405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608490fd5b612e779160008060405193612e2b85612e1d6020998a83019763a9059cbb60e01b895260248401611a1d565b03601f198101875286610a53565b60018060a01b03169260405194612e4186610a38565b8786527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c656488870152519082855af1610b94611dff565b80519081612e8457505050565b8280612e94938301019101611a08565b15612e9c5750565b6084906040519062461bcd60e51b82526004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152fd5b91929015612f555750815115612f07575090565b3b15612f105790565b60405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606490fd5b825190915015612f685750805190602001fd5b60405162461bcd60e51b8152908190612f84906004830161027b565b0390fd5b600081815260d56020526040812054612ff65760d45490600160401b821015610a3357600182018060d455821015611ca6577f9780e26d96b1f2a9a18ef8fc72d589dbf03ef788137b64f43897e83a91e7feec90910182905560d45491815260d56020526040902055600190565b905090565b6040519060d454808352826020918282019060d460005283600020936000905b828210613031575050506119e892500383610a53565b85548452600195860195889550938101939091019061301b56feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220634eeaed33039c60cc40e735f5baf69cf7bc9e3caf1ad5467f4ed9537b7ac7b764736f6c6343000813003300000000000000000000000010f6b147d51f7578f760065df7f174c3bc95382c