[ { "inputs": [ { "internalType": "contract IStrategy", "name": "_strategy", "type": "address" }, { "internalType": "string", "name": "_name", "type": "string" }, { "internalType": "string", "name": "_symbol", "type": "string" }, { "internalType": "uint256", "name": "_approvalDelay", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "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": false, "internalType": "address", "name": "implementation", "type": "address" } ], "name": "NewStratCandidate", "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": 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": false, "internalType": "address", "name": "implementation", "type": "address" } ], "name": "UpgradeStrat", "type": "event" }, { "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": [], "name": "approvalDelay", "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": [], "name": "available", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "balance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "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": "_amount", "type": "uint256" } ], "name": "deposit", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "depositAll", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "earn", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "getPricePerFullShare", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_token", "type": "address" } ], "name": "inCaseTokensGetStuck", "outputs": [], "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": [], "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": [ { "internalType": "address", "name": "_implementation", "type": "address" } ], "name": "proposeStrat", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "stratCandidate", "outputs": [ { "internalType": "address", "name": "implementation", "type": "address" }, { "internalType": "uint256", "name": "proposedTime", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "strategy", "outputs": [ { "internalType": "contract IStrategy", "name": "", "type": "address" } ], "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": [], "name": "upgradeStrat", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "want", "outputs": [ { "internalType": "contract IERC20", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_shares", "type": "uint256" } ], "name": "withdraw", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "withdrawAll", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ]
60a06040523480156200001157600080fd5b5060405162003cea38038062003cea833981810160405281019062000037919062000306565b8282816003908051906020019062000051929190620001b6565b5080600490805190602001906200006a929190620001b6565b5050506200008d62000081620000e860201b60201c565b620000f060201b60201c565b600160068190555083600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060808181525050505050506200059a565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b828054620001c4906200048b565b90600052602060002090601f016020900481019282620001e8576000855562000234565b82601f106200020357805160ff191683800117855562000234565b8280016001018555821562000234579182015b828111156200023357825182559160200191906001019062000216565b5b50905062000243919062000247565b5090565b5b808211156200026257600081600090555060010162000248565b5090565b60006200027d6200027784620003cd565b620003a4565b9050828152602081018484840111156200029657600080fd5b620002a384828562000455565b509392505050565b600081519050620002bc8162000566565b92915050565b600082601f830112620002d457600080fd5b8151620002e684826020860162000266565b91505092915050565b600081519050620003008162000580565b92915050565b600080600080608085870312156200031d57600080fd5b60006200032d87828801620002ab565b945050602085015167ffffffffffffffff8111156200034b57600080fd5b6200035987828801620002c2565b935050604085015167ffffffffffffffff8111156200037757600080fd5b6200038587828801620002c2565b92505060606200039887828801620002ef565b91505092959194509250565b6000620003b0620003c3565b9050620003be8282620004c1565b919050565b6000604051905090565b600067ffffffffffffffff821115620003eb57620003ea62000526565b5b620003f68262000555565b9050602081019050919050565b600062000410826200042b565b9050919050565b6000620004248262000403565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60005b838110156200047557808201518184015260208101905062000458565b8381111562000485576000848401525b50505050565b60006002820490506001821680620004a457607f821691505b60208210811415620004bb57620004ba620004f7565b5b50919050565b620004cc8262000555565b810181811067ffffffffffffffff82111715620004ee57620004ed62000526565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b620005718162000417565b81146200057d57600080fd5b50565b6200058b816200044b565b81146200059757600080fd5b50565b60805161372d620005bd60003960008181611489015261154e015261372d6000f3fe608060405234801561001057600080fd5b50600436106101cf5760003560e01c8063853828b611610104578063b6b55f25116100a2578063def68a9c11610071578063def68a9c146104eb578063e2d1e75c14610507578063e668524414610525578063f2fde38b1461052f576101cf565b8063b6b55f251461048b578063d389800f146104a7578063dd62ed3e146104b1578063de5f6268146104e1576101cf565b8063a457c2d7116100de578063a457c2d7146103ef578063a8c62e761461041f578063a9059cbb1461043d578063b69ef8a81461046d576101cf565b8063853828b6146103a95780638da5cb5b146103b357806395d89b41146103d1576101cf565b8063395093511161017157806370a082311161014b57806370a0823114610332578063715018a61461036257806376dfabb81461036c57806377c7b8fc1461038b576101cf565b806339509351146102c857806348a0d754146102f85780635b12ff9b14610316576101cf565b80631f1fcd51116101ad5780631f1fcd511461024057806323b872dd1461025e5780632e1a7d4d1461028e578063313ce567146102aa576101cf565b806306fdde03146101d4578063095ea7b3146101f257806318160ddd14610222575b600080fd5b6101dc61054b565b6040516101e99190612bce565b60405180910390f35b61020c6004803603810190610207919061268b565b6105dd565b6040516102199190612b7d565b60405180910390f35b61022a610600565b6040516102379190612e70565b60405180910390f35b61024861060a565b6040516102559190612b98565b60405180910390f35b6102786004803603810190610273919061263c565b6106b1565b6040516102859190612b7d565b60405180910390f35b6102a860048036038101906102a39190612719565b6106e0565b005b6102b2610965565b6040516102bf9190612e8b565b60405180910390f35b6102e260048036038101906102dd919061268b565b61096e565b6040516102ef9190612b7d565b60405180910390f35b6103006109a5565b60405161030d9190612e70565b60405180910390f35b610330600480360381019061032b91906125ae565b610a3c565b005b61034c600480360381019061034791906125ae565b610bea565b6040516103599190612e70565b60405180910390f35b61036a610c32565b005b610374610c46565b604051610382929190612b54565b60405180910390f35b610393610c78565b6040516103a09190612e70565b60405180910390f35b6103b1610cd7565b005b6103bb610cea565b6040516103c89190612b02565b60405180910390f35b6103d9610d14565b6040516103e69190612bce565b60405180910390f35b6104096004803603810190610404919061268b565b610da6565b6040516104169190612b7d565b60405180910390f35b610427610e1d565b6040516104349190612bb3565b60405180910390f35b6104576004803603810190610452919061268b565b610e43565b6040516104649190612b7d565b60405180910390f35b610475610e66565b6040516104829190612e70565b60405180910390f35b6104a560048036038101906104a09190612719565b610fae565b005b6104af611147565b005b6104cb60048036038101906104c69190612600565b61122c565b6040516104d89190612e70565b60405180910390f35b6104e96112b3565b005b610505600480360381019061050091906125ae565b61134d565b005b61050f611487565b60405161051c9190612e70565b60405180910390f35b61052d6114ab565b005b610549600480360381019061054491906125ae565b611763565b005b60606003805461055a906130cf565b80601f0160208091040260200160405190810160405280929190818152602001828054610586906130cf565b80156105d35780601f106105a8576101008083540402835291602001916105d3565b820191906000526020600020905b8154815290600101906020018083116105b657829003601f168201915b5050505050905090565b6000806105e86117e7565b90506105f58185856117ef565b600191505092915050565b6000600254905090565b6000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631f1fcd516040518163ffffffff1660e01b815260040160206040518083038186803b15801561067457600080fd5b505afa158015610688573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106ac91906126f0565b905090565b6000806106bc6117e7565b90506106c98582856119ba565b6106d4858585611a46565b60019150509392505050565b60006107156106ed610600565b610707846106f9610e66565b611cc790919063ffffffff16565b611cdd90919063ffffffff16565b90506107213383611cf3565b600061072b61060a565b73ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016107639190612b02565b60206040518083038186803b15801561077b57600080fd5b505afa15801561078f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107b39190612742565b90508181101561092e5760006107d28284611eca90919063ffffffff16565b9050600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d826040518263ffffffff1660e01b815260040161082f9190612e70565b600060405180830381600087803b15801561084957600080fd5b505af115801561085d573d6000803e3d6000fd5b50505050600061086b61060a565b73ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016108a39190612b02565b60206040518083038186803b1580156108bb57600080fd5b505afa1580156108cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108f39190612742565b9050600061090a8483611eca90919063ffffffff16565b90508281101561092a576109278185611ee090919063ffffffff16565b94505b5050505b610960338361093b61060a565b73ffffffffffffffffffffffffffffffffffffffff16611ef69092919063ffffffff16565b505050565b60006012905090565b6000806109796117e7565b905061099a81858561098b858961122c565b6109959190612ed8565b6117ef565b600191505092915050565b60006109af61060a565b73ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016109e79190612b02565b60206040518083038186803b1580156109ff57600080fd5b505afa158015610a13573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a379190612742565b905090565b610a44611f7c565b8073ffffffffffffffffffffffffffffffffffffffff1663fbfa77cf6040518163ffffffff1660e01b815260040160206040518083038186803b158015610a8a57600080fd5b505afa158015610a9e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac291906125d7565b73ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff1614610b2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2690612d10565b60405180910390fd5b60405180604001604052808273ffffffffffffffffffffffffffffffffffffffff16815260200142815250600760008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550602082015181600101559050507f1aae2ec5647db56da2d513de40528ba3565c6057525637050660c4323bbac7df81604051610bdf9190612b02565b60405180910390a150565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610c3a611f7c565b610c446000611ffa565b565b60078060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154905082565b600080610c83610600565b14610cc857610cc3610c93610600565b610cb5670de0b6b3a7640000610ca7610e66565b611cc790919063ffffffff16565b611cdd90919063ffffffff16565b610cd2565b670de0b6b3a76400005b905090565b610ce8610ce333610bea565b6106e0565b565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610d23906130cf565b80601f0160208091040260200160405190810160405280929190818152602001828054610d4f906130cf565b8015610d9c5780601f10610d7157610100808354040283529160200191610d9c565b820191906000526020600020905b815481529060010190602001808311610d7f57829003601f168201915b5050505050905090565b600080610db16117e7565b90506000610dbf828661122c565b905083811015610e04576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dfb90612e30565b60405180910390fd5b610e1182868684036117ef565b60019250505092915050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080610e4e6117e7565b9050610e5b818585611a46565b600191505092915050565b6000610fa9600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663722713f76040518163ffffffff1660e01b815260040160206040518083038186803b158015610ed357600080fd5b505afa158015610ee7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f0b9190612742565b610f1361060a565b73ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610f4b9190612b02565b60206040518083038186803b158015610f6357600080fd5b505afa158015610f77573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f9b9190612742565b611ee090919063ffffffff16565b905090565b60026006541415610ff4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610feb90612e10565b60405180910390fd5b6002600681905550600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663573fef0a6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561106657600080fd5b505af115801561107a573d6000803e3d6000fd5b505050506000611088610e66565b90506110be33308461109861060a565b73ffffffffffffffffffffffffffffffffffffffff166120c0909392919063ffffffff16565b6110c6611147565b60006110d0610e66565b90506110e58282611eca90919063ffffffff16565b92506000806110f2610600565b14156111005783905061112f565b61112c8361111e61110f610600565b87611cc790919063ffffffff16565b611cdd90919063ffffffff16565b90505b6111393382612149565b505050600160068190555050565b60006111516109a5565b90506111a7600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168261118261060a565b73ffffffffffffffffffffffffffffffffffffffff16611ef69092919063ffffffff16565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d0e30db06040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561121157600080fd5b505af1158015611225573d6000803e3d6000fd5b5050505050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61134b6112be61060a565b73ffffffffffffffffffffffffffffffffffffffff166370a08231336040518263ffffffff1660e01b81526004016112f69190612b02565b60206040518083038186803b15801561130e57600080fd5b505afa158015611322573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113469190612742565b610fae565b565b611355611f7c565b61135d61060a565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156113cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c290612cf0565b60405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016114069190612b02565b60206040518083038186803b15801561141e57600080fd5b505afa158015611432573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114569190612742565b905061148333828473ffffffffffffffffffffffffffffffffffffffff16611ef69092919063ffffffff16565b5050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6114b3611f7c565b600073ffffffffffffffffffffffffffffffffffffffff16600760000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611548576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153f90612d90565b60405180910390fd5b426115817f0000000000000000000000000000000000000000000000000000000000000000600760010154611ee090919063ffffffff16565b106115c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b890612cd0565b60405180910390fd5b7f7f37d440e85aba7fbf641c4bda5ca4ef669a80bffaacde2aa8d9feb1b048c82c600760000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040516116159190612b02565b60405180910390a1600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fb6177876040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561168757600080fd5b505af115801561169b573d6000803e3d6000fd5b50505050600760000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600760000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555064012a05f200600760010181905550611761611147565b565b61176b611f7c565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156117db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117d290612c30565b60405180910390fd5b6117e481611ffa565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561185f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161185690612db0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156118cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118c690612c50565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516119ad9190612e70565b60405180910390a3505050565b60006119c6848461122c565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114611a405781811015611a32576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a2990612c70565b60405180910390fd5b611a3f84848484036117ef565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611ab6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aad90612d70565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611b26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b1d90612bf0565b60405180910390fd5b611b318383836122a9565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611bb7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bae90612c90565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611c4a9190612ed8565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611cae9190612e70565b60405180910390a3611cc18484846122ae565b50505050565b60008183611cd59190612f5f565b905092915050565b60008183611ceb9190612f2e565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611d63576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d5a90612d50565b60405180910390fd5b611d6f826000836122a9565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611df5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dec90612c10565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508160026000828254611e4c9190612fb9565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611eb19190612e70565b60405180910390a3611ec5836000846122ae565b505050565b60008183611ed89190612fb9565b905092915050565b60008183611eee9190612ed8565b905092915050565b611f778363a9059cbb60e01b8484604051602401611f15929190612b54565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506122b3565b505050565b611f846117e7565b73ffffffffffffffffffffffffffffffffffffffff16611fa2610cea565b73ffffffffffffffffffffffffffffffffffffffff1614611ff8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fef90612d30565b60405180910390fd5b565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b612143846323b872dd60e01b8585856040516024016120e193929190612b1d565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506122b3565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156121b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121b090612e50565b60405180910390fd5b6121c5600083836122a9565b80600260008282546121d79190612ed8565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461222c9190612ed8565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516122919190612e70565b60405180910390a36122a5600083836122ae565b5050565b505050565b505050565b6000612315826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff1661237a9092919063ffffffff16565b9050600081511115612375578080602001905181019061233591906126c7565b612374576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161236b90612df0565b60405180910390fd5b5b505050565b60606123898484600085612392565b90509392505050565b6060824710156123d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123ce90612cb0565b60405180910390fd5b6123e0856124a6565b61241f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161241690612dd0565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516124489190612aeb565b60006040518083038185875af1925050503d8060008114612485576040519150601f19603f3d011682016040523d82523d6000602084013e61248a565b606091505b509150915061249a8282866124c9565b92505050949350505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b606083156124d957829050612529565b6000835111156124ec5782518084602001fd5b816040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125209190612bce565b60405180910390fd5b9392505050565b60008135905061253f8161369b565b92915050565b6000815190506125548161369b565b92915050565b600081519050612569816136b2565b92915050565b60008151905061257e816136c9565b92915050565b600081359050612593816136e0565b92915050565b6000815190506125a8816136e0565b92915050565b6000602082840312156125c057600080fd5b60006125ce84828501612530565b91505092915050565b6000602082840312156125e957600080fd5b60006125f784828501612545565b91505092915050565b6000806040838503121561261357600080fd5b600061262185828601612530565b925050602061263285828601612530565b9150509250929050565b60008060006060848603121561265157600080fd5b600061265f86828701612530565b935050602061267086828701612530565b925050604061268186828701612584565b9150509250925092565b6000806040838503121561269e57600080fd5b60006126ac85828601612530565b92505060206126bd85828601612584565b9150509250929050565b6000602082840312156126d957600080fd5b60006126e78482850161255a565b91505092915050565b60006020828403121561270257600080fd5b60006127108482850161256f565b91505092915050565b60006020828403121561272b57600080fd5b600061273984828501612584565b91505092915050565b60006020828403121561275457600080fd5b600061276284828501612599565b91505092915050565b61277481612fed565b82525050565b61278381612fff565b82525050565b600061279482612ea6565b61279e8185612ebc565b93506127ae81856020860161309c565b80840191505092915050565b6127c381613054565b82525050565b6127d281613078565b82525050565b60006127e382612eb1565b6127ed8185612ec7565b93506127fd81856020860161309c565b6128068161318e565b840191505092915050565b600061281e602383612ec7565b91506128298261319f565b604082019050919050565b6000612841602283612ec7565b915061284c826131ee565b604082019050919050565b6000612864602683612ec7565b915061286f8261323d565b604082019050919050565b6000612887602283612ec7565b91506128928261328c565b604082019050919050565b60006128aa601d83612ec7565b91506128b5826132db565b602082019050919050565b60006128cd602683612ec7565b91506128d882613304565b604082019050919050565b60006128f0602683612ec7565b91506128fb82613353565b604082019050919050565b6000612913601483612ec7565b915061291e826133a2565b602082019050919050565b6000612936600683612ec7565b9150612941826133cb565b602082019050919050565b6000612959602183612ec7565b9150612964826133f4565b604082019050919050565b600061297c602083612ec7565b915061298782613443565b602082019050919050565b600061299f602183612ec7565b91506129aa8261346c565b604082019050919050565b60006129c2602583612ec7565b91506129cd826134bb565b604082019050919050565b60006129e5601583612ec7565b91506129f08261350a565b602082019050919050565b6000612a08602483612ec7565b9150612a1382613533565b604082019050919050565b6000612a2b601d83612ec7565b9150612a3682613582565b602082019050919050565b6000612a4e602a83612ec7565b9150612a59826135ab565b604082019050919050565b6000612a71601f83612ec7565b9150612a7c826135fa565b602082019050919050565b6000612a94602583612ec7565b9150612a9f82613623565b604082019050919050565b6000612ab7601f83612ec7565b9150612ac282613672565b602082019050919050565b612ad68161303d565b82525050565b612ae581613047565b82525050565b6000612af78284612789565b915081905092915050565b6000602082019050612b17600083018461276b565b92915050565b6000606082019050612b32600083018661276b565b612b3f602083018561276b565b612b4c6040830184612acd565b949350505050565b6000604082019050612b69600083018561276b565b612b766020830184612acd565b9392505050565b6000602082019050612b92600083018461277a565b92915050565b6000602082019050612bad60008301846127ba565b92915050565b6000602082019050612bc860008301846127c9565b92915050565b60006020820190508181036000830152612be881846127d8565b905092915050565b60006020820190508181036000830152612c0981612811565b9050919050565b60006020820190508181036000830152612c2981612834565b9050919050565b60006020820190508181036000830152612c4981612857565b9050919050565b60006020820190508181036000830152612c698161287a565b9050919050565b60006020820190508181036000830152612c898161289d565b9050919050565b60006020820190508181036000830152612ca9816128c0565b9050919050565b60006020820190508181036000830152612cc9816128e3565b9050919050565b60006020820190508181036000830152612ce981612906565b9050919050565b60006020820190508181036000830152612d0981612929565b9050919050565b60006020820190508181036000830152612d298161294c565b9050919050565b60006020820190508181036000830152612d498161296f565b9050919050565b60006020820190508181036000830152612d6981612992565b9050919050565b60006020820190508181036000830152612d89816129b5565b9050919050565b60006020820190508181036000830152612da9816129d8565b9050919050565b60006020820190508181036000830152612dc9816129fb565b9050919050565b60006020820190508181036000830152612de981612a1e565b9050919050565b60006020820190508181036000830152612e0981612a41565b9050919050565b60006020820190508181036000830152612e2981612a64565b9050919050565b60006020820190508181036000830152612e4981612a87565b9050919050565b60006020820190508181036000830152612e6981612aaa565b9050919050565b6000602082019050612e856000830184612acd565b92915050565b6000602082019050612ea06000830184612adc565b92915050565b600081519050919050565b600081519050919050565b600081905092915050565b600082825260208201905092915050565b6000612ee38261303d565b9150612eee8361303d565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612f2357612f22613101565b5b828201905092915050565b6000612f398261303d565b9150612f448361303d565b925082612f5457612f53613130565b5b828204905092915050565b6000612f6a8261303d565b9150612f758361303d565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612fae57612fad613101565b5b828202905092915050565b6000612fc48261303d565b9150612fcf8361303d565b925082821015612fe257612fe1613101565b5b828203905092915050565b6000612ff88261301d565b9050919050565b60008115159050919050565b600061301682612fed565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061305f82613066565b9050919050565b60006130718261301d565b9050919050565b60006130838261308a565b9050919050565b60006130958261301d565b9050919050565b60005b838110156130ba57808201518184015260208101905061309f565b838111156130c9576000848401525b50505050565b600060028204905060018216806130e757607f821691505b602082108114156130fb576130fa61315f565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b7f44656c617920686173206e6f7420706173736564000000000000000000000000600082015250565b7f21746f6b656e0000000000000000000000000000000000000000000000000000600082015250565b7f50726f706f73616c206e6f742076616c696420666f722074686973205661756c60008201527f7400000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f5468657265206973206e6f2063616e6469646174650000000000000000000000600082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00600082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6136a481612fed565b81146136af57600080fd5b50565b6136bb81612fff565b81146136c657600080fd5b50565b6136d28161300b565b81146136dd57600080fd5b50565b6136e98161303d565b81146136f457600080fd5b5056fea2646970667358221220f8df9376f1e8462714b492323a16addfd6671c0ae64dd948cd234685d90c814564736f6c634300080400330000000000000000000000007d531e80d1af62b25a575f427004f52375863dff000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000005460000000000000000000000000000000000000000000000000000000000000000673682d4a4f450000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000873684a4f45564c54000000000000000000000000000000000000000000000000