{ "_format": "hh-sol-artifact-1", "contractName": "Vester", "sourceName": "contracts/staking/Vester.sol", "abi": [ { "inputs": [ { "internalType": "string", "name": "_name", "type": "string" }, { "internalType": "string", "name": "_symbol", "type": "string" }, { "internalType": "uint256", "name": "_vestingDuration", "type": "uint256" }, { "internalType": "address", "name": "_esToken", "type": "address" }, { "internalType": "address", "name": "_pairToken", "type": "address" }, { "internalType": "address", "name": "_claimableToken", "type": "address" }, { "internalType": "address", "name": "_rewardTracker", "type": "address" }, { "internalType": "bool", "name": "_needCheckStake", "type": "bool" } ], "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": true, "internalType": "address", "name": "receiver", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "Claim", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "Deposit", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "duration", "type": "uint256" } ], "name": "DurationUpdated", "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": "PairTransfer", "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": "account", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "claimedAmount", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "balance", "type": "uint256" } ], "name": "Withdraw", "type": "event" }, { "inputs": [ { "internalType": "address", "name": "_account", "type": "address" } ], "name": "_updateVesting", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "address", "name": "", "type": "address" } ], "name": "allowance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "uint256", "name": "", "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": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "balances", "outputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "bonusRewards", "outputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "claim", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_account", "type": "address" }, { "internalType": "address", "name": "_receiver", "type": "address" } ], "name": "claimForAccount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_account", "type": "address" } ], "name": "claimable", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "claimableToken", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "claimedAmounts", "outputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "cumulativeClaimAmounts", "outputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "cumulativeRewardDeductions", "outputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "deposit", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_account", "type": "address" }, { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "depositForAccount", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "esToken", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_account", "type": "address" } ], "name": "getCombinedAverageStakedAmount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_account", "type": "address" } ], "name": "getMaxVestableAmount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_account", "type": "address" }, { "internalType": "uint256", "name": "_esAmount", "type": "uint256" } ], "name": "getPairAmount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_account", "type": "address" } ], "name": "getTotalVested", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_account", "type": "address" } ], "name": "getVestedAmount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "gov", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "hasPairToken", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "hasRewardTracker", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "handler", "type": "address" } ], "name": "isHandler", "outputs": [ { "internalType": "bool", "name": "status", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "lastVestingTimes", "outputs": [ { "internalType": "uint256", "name": "time", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "needCheckStake", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "pairAmounts", "outputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "pairSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "pairToken", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "rewardTracker", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_account", "type": "address" }, { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "setBonusRewards", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_account", "type": "address" }, { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "setCumulativeRewardDeductions", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_gov", "type": "address" } ], "name": "setGov", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_handler", "type": "address" }, { "internalType": "bool", "name": "_isActive", "type": "bool" } ], "name": "setHandler", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_rewardTracker", "type": "address" } ], "name": "setRewardTracker", "outputs": [], "stateMutability": "nonpayable", "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": "", "type": "address" }, { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "address", "name": "", "type": "address" }, { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_vestingDuration", "type": "uint256" } ], "name": "updateDuration", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_account", "type": "address" } ], "name": "updateVesting", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "vestingDuration", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "withdraw", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_token", "type": "address" }, { "internalType": "address", "name": "_account", "type": "address" }, { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "withdrawToken", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ], "bytecode": "0x6080604052346200046c57620020f1803803806200001d8162000471565b928339810190610100818303126200046c5780516001600160401b0381116200046c57826200004e91830162000497565b602082015190926001600160401b0382116200046c576200007191830162000497565b90604081015191620000866060830162000509565b90620000956080840162000509565b93620000a460a0850162000509565b9160e0620000b560c0870162000509565b9501519687151588036200046c576001600081905580546001600160a01b031916331790556004805460ff191660121790558051906001600160401b0382116200035d5760025490600182811c9216801562000461575b60208310146200033c5781601f849311620003fd575b50602090601f83116001146200037f5760009262000373575b50508160011b916000199060031b1c1916176002555b8051906001600160401b0382116200035d5760035490600182811c9216801562000352575b60208310146200033c5781601f849311620002ca575b50602090601f83116001146200023b576000926200022f575b50508160011b916000199060031b1c1916176003555b600555600680546001600160a01b03199081166001600160a01b039485161790915560078054821695841695909517909455600880548516918316919091179055600980549093169116179055600c805491151560ff1660ff1992909216919091179055604051611bb290816200051f8239f35b015190503880620001a5565b6003600090815293507fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b91905b601f1984168510620002ae576001945083601f1981161062000294575b505050811b01600355620001bb565b015160001960f88460031b161c1916905538808062000285565b8181015183556020948501946001909301929091019062000268565b60036000529091507fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b601f840160051c81016020851062000334575b90849392915b601f830160051c82018110620003245750506200018c565b600081558594506001016200030c565b508062000306565b634e487b7160e01b600052602260045260246000fd5b91607f169162000176565b634e487b7160e01b600052604160045260246000fd5b0151905038806200013b565b600260009081529350600080516020620020d183398151915291905b601f1984168510620003e1576001945083601f19811610620003c7575b505050811b0160025562000151565b015160001960f88460031b161c19169055388080620003b8565b818101518355602094850194600190930192909101906200039b565b6002600052909150600080516020620020d1833981519152601f840160051c8101916020851062000456575b90601f859493920160051c01905b81811062000446575062000122565b6000815584935060010162000437565b909150819062000429565b91607f16916200010c565b600080fd5b6040519190601f01601f191682016001600160401b038111838210176200035d57604052565b919080601f840112156200046c5782516001600160401b0381116200035d57602090620004cd601f8201601f1916830162000471565b928184528282870101116200046c5760005b818110620004f557508260009394955001015290565b8581018301518482018401528201620004df565b51906001600160a01b03821682036200046c5756fe6040608081526004908136101561001557600080fd5b600091823560e01c90816301e3366714610d5457816306fdde0314610c9557816308f26c7614610c6f578163095ea7b3146104965781630db9ea4a14610c3757816312d43a5114610c0e57816313e82e7a14610bcd5781631514617e14610bae57816315e90a4114610b8f57816316ca05c514610b6657816318160ddd14610b475781631b50ad0914610aec57816323b872dd14610ad557816327e235e3146106da578163313ce56714610ab4578163342fcda914610a7f578163387a785d14610a475781633ccfd60b146108a05781633de35b7914610877578163402914f51461085157816341f227241461080957816345f01ee6146107e357816346ea87af146107a55781634e71d92d146107735781635d50e7291461073b5781636bcb411a1461071257816370a08231146106da57816371417b32146106a25781637cf8f3b214610679578163930354731461065857816395d89b411461055157816397c313f2146105345781639cb7de4b146104d3578163a2545fa51461049b578163a9059cbb14610496578163ac110d1414610472578163b5ff136d1461043a578163b6b55f251461040d57508063cfad57a2146103bf578063d5a73fdd14610393578063d75abb5714610369578063d89b700714610322578063dd62ed3e146102f5578063e4214471146102d0578063f2293bb01461027d578063f421f62a146102535763f6d6d5aa1461022857600080fd5b3461024f578160031936011261024f5760085490516001600160a01b039091168152602090f35b5080fd5b503461024f578160031936011261024f5760095490516001600160a01b0390911615158152602090f35b82346102cd5760203660031901126102cd57610297610d87565b6001546001600160a01b0391906102b19083163314610e8d565b166bffffffffffffffffffffffff60a01b600954161760095580f35b80fd5b82346102cd5760203660031901126102cd576102f26102ed610d87565b611929565b80f35b503461024f578060031936011261024f5790602091610312610d87565b5061031b610da2565b5051908152f35b503461024f578060031936011261024f5761033b610d87565b610343610ed1565b61034b611b2a565b6001600160a01b031682526012602052812060243590556001815580f35b503461024f578160031936011261024f5760075490516001600160a01b0390911615158152602090f35b503461024f57602036600319011261024f576020906103b86103b3610d87565b6113be565b9051908152f35b82346102cd5760203660031901126102cd576103d9610d87565b600154906001600160a01b03906103f33383851614610e8d565b16906bffffffffffffffffffffffff60a01b161760015580f35b83903461024f57602036600319011261024f576104339061042c610ed1565b353361155a565b6001815580f35b50503461024f57602036600319011261024f5760209181906001600160a01b03610462610d87565b168152600f845220549051908152f35b50503461024f578160031936011261024f5760209060ff600c541690519015158152f35b610e6e565b50503461024f57602036600319011261024f5760209181906001600160a01b036104c3610d87565b1681526013845220549051908152f35b50503461024f578060031936011261024f576104ed610d87565b9060243591821515809303610530576001546001600160a01b0391906105169083163314610e8d565b168352601460205282209060ff8019835416911617905580f35b8380fd5b83346102cd5760203660031901126102cd576102f26102ed610d87565b91905034610654578260031936011261065457805191836003549060019082821c92828116801561064a575b6020958686108214610637575084885290811561061557506001146105bc575b6105b886866105ae828b0383610ded565b5191829182610e25565b0390f35b929550600383527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5b82841061060257505050826105b8946105ae92820101943861059d565b80548685018801529286019281016105e5565b60ff191687860152505050151560051b83010192506105ae826105b83861059d565b634e487b7160e01b845260229052602483fd5b93607f169361057d565b8280fd5b50503461024f57602036600319011261024f576020906103b86103b3610d87565b50503461024f578060031936011261024f576020906103b8610699610d87565b60243590611371565b50503461024f57602036600319011261024f5760209181906001600160a01b036106ca610d87565b1681526010845220549051908152f35b50503461024f57602036600319011261024f5760209181906001600160a01b03610702610d87565b168152600d845220549051908152f35b50503461024f578160031936011261024f5760095490516001600160a01b039091168152602090f35b50503461024f57602036600319011261024f5760209181906001600160a01b03610763610d87565b168152600e845220549051908152f35b50503461024f578160031936011261024f5790602091610791610ed1565b600161079d3333611aab565b925551908152f35b50503461024f57602036600319011261024f5760209160ff9082906001600160a01b036107d0610d87565b1681526014855220541690519015158152f35b50503461024f57602036600319011261024f576020906103b8610804610d87565b611254565b50503461024f578060031936011261024f57610823610d87565b61082b610ed1565b610833611b2a565b6001600160a01b031682526013602052812060243590556001815580f35b50503461024f57602036600319011261024f576020906103b8610872610d87565b611a6d565b50503461024f578160031936011261024f5760075490516001600160a01b039091168152602090f35b8391503461024f578160031936011261024f576108bb610ed1565b6108c53333611aab565b50338252602092600f84528083205491600d855281842054906108e8848361114f565b15610a0457507ff279e6a1f5e320cca91135676d9cb6e44ca8a08c0b88342bcdb1144f6511b5689293946109328260018060a01b03806007541661096c575b339060065416610f27565b61093c82336114d0565b338652600f8152858381205560108152858381205560118152858381205582519485528401523392a26001815580f35b338952600e84526109ff868a205461098533151561142d565b338b52600e865261099b81898d20541015611484565b338b52600e86526109af81898d2054611172565b338c52600e8752888c20556109c681600b54611172565b600b558a88518281527f659523c479d006050ebc0d0e48fea36d1b2c5d45b2f31402ac6f8671fc84cc04883392a3338360075416610f27565b610927565b825162461bcd60e51b8152908101869052601d60248201527f5665737465723a2076657374656420616d6f756e74206973207a65726f0000006044820152606490fd5b50503461024f57602036600319011261024f5760209181906001600160a01b03610a6f610d87565b1681526012845220549051908152f35b50503461024f573660031901126102cd57610433610a9b610d87565b610aa3610ed1565b610aab611b2a565b6024359061155a565b8284346102cd57806003193601126102cd575060ff60209254169051908152f35b83346102cd57610ae436610db8565b5050506113e8565b905034610654576020366003190112610654577f91abcc2d6823e3a3f11d31b208dd3065d2c6a791f1c7c9fe96a42ce12897eac5916020913590610b3b60018060a01b03600154163314610e8d565b8160055551908152a180f35b50503461024f578160031936011261024f57602090600a549051908152f35b50503461024f578160031936011261024f5760065490516001600160a01b039091168152602090f35b50503461024f578160031936011261024f57602090600b549051908152f35b50503461024f578160031936011261024f576020906005549051908152f35b50503461024f578060031936011261024f5790602091600161079d610bf0610d87565b610bf8610da2565b90610c01610ed1565b610c09611b2a565b611aab565b50503461024f578160031936011261024f5760015490516001600160a01b039091168152602090f35b50503461024f57602036600319011261024f5760209181906001600160a01b03610c5f610d87565b1681526011845220549051908152f35b50503461024f57602036600319011261024f576020906103b8610c90610d87565b61117f565b91905034610654578260031936011261065457805191836002549060019082821c928281168015610d4a575b602095868610821461063757508488529081156106155750600114610cf1576105b886866105ae828b0383610ded565b929550600283527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace5b828410610d3757505050826105b8946105ae92820101943861059d565b8054868501880152928601928101610d1a565b93607f1693610cc1565b83346102cd576102f2610d6636610db8565b60015490926001600160a01b0391610d819083163314610e8d565b16610f27565b600435906001600160a01b0382168203610d9d57565b600080fd5b602435906001600160a01b0382168203610d9d57565b6060906003190112610d9d576001600160a01b03906004358281168103610d9d57916024359081168103610d9d579060443590565b90601f8019910116810190811067ffffffffffffffff821117610e0f57604052565b634e487b7160e01b600052604160045260246000fd5b6020808252825181830181905290939260005b828110610e5a57505060409293506000838284010152601f8019910116010190565b818101860151848201604001528501610e38565b34610d9d576040366003190112610d9d57610e87610d87565b506113e8565b15610e9457565b60405162461bcd60e51b815260206004820152601560248201527423b7bb32b93730b136329d103337b93134b23232b760591b6044820152606490fd5b600260005414610ee2576002600055565b60405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606490fd5b60405163a9059cbb60e01b60208201526001600160a01b03929092166024830152604480830193909352918152610f6891610f63606483610ded565b610f6a565b565b60018060a01b0316906040516040810167ffffffffffffffff9082811082821117610e0f576040526020938483527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564858401526000808587829751910182855af1903d156110af573d92831161109b579061100593929160405192610ff888601f19601f8401160185610ded565b83523d868885013e6110ba565b805191821591848315611077575b5050509050156110205750565b6084906040519062461bcd60e51b82526004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152fd5b91938180945001031261024f578201519081151582036102cd575080388084611013565b634e487b7160e01b85526041600452602485fd5b906110059392506060915b9192901561111c57508151156110ce575090565b3b156110d75790565b60405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606490fd5b82519091501561112f5750805190602001fd5b60405162461bcd60e51b815290819061114b9060048301610e25565b0390fd5b9190820180921161115c57565b634e487b7160e01b600052601160045260246000fd5b9190820391821161115c57565b6001600160a01b03908116600081815260136020908152604082205460095492949093919216806111d1575b508352601290526040822054908181106111cc576111c99250611172565b90565b505090565b92826024929460405193848092633792def360e01b82528860048301525afa918215611249578592611214575b506012929161120c9161114f565b9290916111ab565b9091508281813d8311611242575b61122c8183610ded565b8101031261123e57519061120c6111fe565b8480fd5b503d611222565b6040513d87823e3d90fd5b6009546001600160a01b039081169190821561130957604051633792def360e01b81529116600482018190526020918281602481875afa9081156112fd57600091611311575b501561130957819060246040518095819363a318021760e01b835260048301525afa9081156112fd576000916112d1575b50905090565b82813d83116112f6575b6112e58183610ded565b810103126102cd57505180386112cb565b503d6112db565b6040513d6000823e3d90fd5b505050600090565b908382813d8311611337575b6113278183610ded565b810103126102cd5750513861129a565b503d61131d565b8181029291811591840414171561115c57565b811561135b570490565b634e487b7160e01b600052601260045260246000fd5b6009549091906001600160a01b0316156113b75761138e82611254565b9182156113095761139e9061117f565b908115611309576111c9926113b29161133e565b611351565b5050600090565b60018060a01b0316600052600d6020526111c9604060002054600f6020526040600020549061114f565b60405162461bcd60e51b815260206004820152601960248201527f5665737465723a206e6f6e2d7472616e736665727261626c65000000000000006044820152606490fd5b1561143457565b60405162461bcd60e51b815260206004820152602260248201527f5665737465723a206275726e2066726f6d20746865207a65726f206164647265604482015261737360f01b6064820152608490fd5b1561148b57565b60405162461bcd60e51b815260206004820152601d60248201527f5665737465723a2062616c616e6365206973206e6f7420656e6f7567680000006044820152606490fd5b6001600160a01b03166114e481151561142d565b7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6020600093838552600d82526115218160408720541015611484565b838552600d8252611536816040872054611172565b848652600d8352604086205561154e81600a54611172565b600a55604051908152a3565b919080156118405761156b83611929565b60018060a01b0392611584828560065416833091611885565b8381169182151591611595836118de565b6115a182600a5461114f565b600a5560009584875286856020988996600d885282827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60409d8e6115e98c8286205461114f565b858552600d835281852055518b8152a38785600754168061178e575b505050505060ff600c541680611781575b6116af575b505061162f6116298261117f565b916113be565b1161165f577fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c92939451908152a2565b845162461bcd60e51b8152600481018390526024808201527f5665737465723a206d6178207665737461626c6520616d6f756e7420657863656044820152631959195960e21b6064820152608490fd5b848260095416926008541660448a5180958193637aeceb1f60e11b83528b600484015260248301525afa918215611775579088918193611742575b50868152600d865220541161170057388061161b565b60648387519062461bcd60e51b825280600483015260248201527f5665737465723a20696e73756666696369656e74206365632062616c616e63656044820152fd5b86809294508193503d831161176e575b61175c8183610ded565b8101031261024f5787905191386116ea565b503d611752565b508751903d90823e3d90fd5b5081600954161515611616565b848452600e82528c888186205491600d85526117ad8188205483611371565b8381116117be575b50505050611605565b7f659523c479d006050ebc0d0e48fea36d1b2c5d45b2f31402ac6f8671fc84cc04966117fe6117f36118219661180394611172565b809781963091611885565b6118de565b61180f82600b5461114f565b600b55878752600e855286205461114f565b858552600e83528d8520558c51908152a3858138878180888e826117b5565b60405162461bcd60e51b815260206004820152601760248201527f5665737465723a20696e76616c6964205f616d6f756e740000000000000000006044820152606490fd5b6040516323b872dd60e01b60208201526001600160a01b03928316602482015292909116604483015260648083019390935291815260a081019181831067ffffffffffffffff841117610e0f57610f6892604052610f6a565b156118e557565b606460405162461bcd60e51b815260206004820152602060248201527f5665737465723a206d696e7420746f20746865207a65726f20616464726573736044820152fd5b61193281611a06565b6001600160a01b038083166000818152601160205260408082204290559094909392919083156119fe5783611966916114d0565b808552600f60205261197b838587205461114f565b908552600f602052838520556006541690813b15610530578251632770a7eb60e21b81523060048201526024810191909152929081908490604490829084905af180156119f2576119cb57505050565b67ffffffffffffffff83116119de575052565b634e487b7160e01b81526041600452602490fd5b509051903d90823e3d90fd5b505050505050565b6001600160a01b038116600081815260116020526040902054611a299042611172565b90600052600d60205260406000205491821561130957611a5d91611a4f611a54926113be565b61133e565b60055490611351565b818110611a68575090565b905090565b6111c99060018060a01b038116600052600f602052611aa5611a9f604060002054601060205260406000205490611172565b91611a06565b9061114f565b611ab481611929565b611afd611ac082611a6d565b809360018060a01b0380941693846000526010602052611ae58360406000205461114f565b85600052601060205260406000205560085416610f27565b7f47cee97cb7acd717b3c0aa1435d004cd5b3c8c57d70dbceb4e4458bbd60e39d46020604051848152a290565b33600052601460205260ff6040600020541615611b4357565b60405162461bcd60e51b81526020600482015260116024820152702b32b9ba32b91d103337b93134b23232b760791b6044820152606490fdfea264697066735822122055d234938b068d78fb05dc3de93320b156ed8eb76ad518619715c6f690de591364736f6c63430008130033405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace", "deployedBytecode": "0x6040608081526004908136101561001557600080fd5b600091823560e01c90816301e3366714610d5457816306fdde0314610c9557816308f26c7614610c6f578163095ea7b3146104965781630db9ea4a14610c3757816312d43a5114610c0e57816313e82e7a14610bcd5781631514617e14610bae57816315e90a4114610b8f57816316ca05c514610b6657816318160ddd14610b475781631b50ad0914610aec57816323b872dd14610ad557816327e235e3146106da578163313ce56714610ab4578163342fcda914610a7f578163387a785d14610a475781633ccfd60b146108a05781633de35b7914610877578163402914f51461085157816341f227241461080957816345f01ee6146107e357816346ea87af146107a55781634e71d92d146107735781635d50e7291461073b5781636bcb411a1461071257816370a08231146106da57816371417b32146106a25781637cf8f3b214610679578163930354731461065857816395d89b411461055157816397c313f2146105345781639cb7de4b146104d3578163a2545fa51461049b578163a9059cbb14610496578163ac110d1414610472578163b5ff136d1461043a578163b6b55f251461040d57508063cfad57a2146103bf578063d5a73fdd14610393578063d75abb5714610369578063d89b700714610322578063dd62ed3e146102f5578063e4214471146102d0578063f2293bb01461027d578063f421f62a146102535763f6d6d5aa1461022857600080fd5b3461024f578160031936011261024f5760085490516001600160a01b039091168152602090f35b5080fd5b503461024f578160031936011261024f5760095490516001600160a01b0390911615158152602090f35b82346102cd5760203660031901126102cd57610297610d87565b6001546001600160a01b0391906102b19083163314610e8d565b166bffffffffffffffffffffffff60a01b600954161760095580f35b80fd5b82346102cd5760203660031901126102cd576102f26102ed610d87565b611929565b80f35b503461024f578060031936011261024f5790602091610312610d87565b5061031b610da2565b5051908152f35b503461024f578060031936011261024f5761033b610d87565b610343610ed1565b61034b611b2a565b6001600160a01b031682526012602052812060243590556001815580f35b503461024f578160031936011261024f5760075490516001600160a01b0390911615158152602090f35b503461024f57602036600319011261024f576020906103b86103b3610d87565b6113be565b9051908152f35b82346102cd5760203660031901126102cd576103d9610d87565b600154906001600160a01b03906103f33383851614610e8d565b16906bffffffffffffffffffffffff60a01b161760015580f35b83903461024f57602036600319011261024f576104339061042c610ed1565b353361155a565b6001815580f35b50503461024f57602036600319011261024f5760209181906001600160a01b03610462610d87565b168152600f845220549051908152f35b50503461024f578160031936011261024f5760209060ff600c541690519015158152f35b610e6e565b50503461024f57602036600319011261024f5760209181906001600160a01b036104c3610d87565b1681526013845220549051908152f35b50503461024f578060031936011261024f576104ed610d87565b9060243591821515809303610530576001546001600160a01b0391906105169083163314610e8d565b168352601460205282209060ff8019835416911617905580f35b8380fd5b83346102cd5760203660031901126102cd576102f26102ed610d87565b91905034610654578260031936011261065457805191836003549060019082821c92828116801561064a575b6020958686108214610637575084885290811561061557506001146105bc575b6105b886866105ae828b0383610ded565b5191829182610e25565b0390f35b929550600383527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5b82841061060257505050826105b8946105ae92820101943861059d565b80548685018801529286019281016105e5565b60ff191687860152505050151560051b83010192506105ae826105b83861059d565b634e487b7160e01b845260229052602483fd5b93607f169361057d565b8280fd5b50503461024f57602036600319011261024f576020906103b86103b3610d87565b50503461024f578060031936011261024f576020906103b8610699610d87565b60243590611371565b50503461024f57602036600319011261024f5760209181906001600160a01b036106ca610d87565b1681526010845220549051908152f35b50503461024f57602036600319011261024f5760209181906001600160a01b03610702610d87565b168152600d845220549051908152f35b50503461024f578160031936011261024f5760095490516001600160a01b039091168152602090f35b50503461024f57602036600319011261024f5760209181906001600160a01b03610763610d87565b168152600e845220549051908152f35b50503461024f578160031936011261024f5790602091610791610ed1565b600161079d3333611aab565b925551908152f35b50503461024f57602036600319011261024f5760209160ff9082906001600160a01b036107d0610d87565b1681526014855220541690519015158152f35b50503461024f57602036600319011261024f576020906103b8610804610d87565b611254565b50503461024f578060031936011261024f57610823610d87565b61082b610ed1565b610833611b2a565b6001600160a01b031682526013602052812060243590556001815580f35b50503461024f57602036600319011261024f576020906103b8610872610d87565b611a6d565b50503461024f578160031936011261024f5760075490516001600160a01b039091168152602090f35b8391503461024f578160031936011261024f576108bb610ed1565b6108c53333611aab565b50338252602092600f84528083205491600d855281842054906108e8848361114f565b15610a0457507ff279e6a1f5e320cca91135676d9cb6e44ca8a08c0b88342bcdb1144f6511b5689293946109328260018060a01b03806007541661096c575b339060065416610f27565b61093c82336114d0565b338652600f8152858381205560108152858381205560118152858381205582519485528401523392a26001815580f35b338952600e84526109ff868a205461098533151561142d565b338b52600e865261099b81898d20541015611484565b338b52600e86526109af81898d2054611172565b338c52600e8752888c20556109c681600b54611172565b600b558a88518281527f659523c479d006050ebc0d0e48fea36d1b2c5d45b2f31402ac6f8671fc84cc04883392a3338360075416610f27565b610927565b825162461bcd60e51b8152908101869052601d60248201527f5665737465723a2076657374656420616d6f756e74206973207a65726f0000006044820152606490fd5b50503461024f57602036600319011261024f5760209181906001600160a01b03610a6f610d87565b1681526012845220549051908152f35b50503461024f573660031901126102cd57610433610a9b610d87565b610aa3610ed1565b610aab611b2a565b6024359061155a565b8284346102cd57806003193601126102cd575060ff60209254169051908152f35b83346102cd57610ae436610db8565b5050506113e8565b905034610654576020366003190112610654577f91abcc2d6823e3a3f11d31b208dd3065d2c6a791f1c7c9fe96a42ce12897eac5916020913590610b3b60018060a01b03600154163314610e8d565b8160055551908152a180f35b50503461024f578160031936011261024f57602090600a549051908152f35b50503461024f578160031936011261024f5760065490516001600160a01b039091168152602090f35b50503461024f578160031936011261024f57602090600b549051908152f35b50503461024f578160031936011261024f576020906005549051908152f35b50503461024f578060031936011261024f5790602091600161079d610bf0610d87565b610bf8610da2565b90610c01610ed1565b610c09611b2a565b611aab565b50503461024f578160031936011261024f5760015490516001600160a01b039091168152602090f35b50503461024f57602036600319011261024f5760209181906001600160a01b03610c5f610d87565b1681526011845220549051908152f35b50503461024f57602036600319011261024f576020906103b8610c90610d87565b61117f565b91905034610654578260031936011261065457805191836002549060019082821c928281168015610d4a575b602095868610821461063757508488529081156106155750600114610cf1576105b886866105ae828b0383610ded565b929550600283527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace5b828410610d3757505050826105b8946105ae92820101943861059d565b8054868501880152928601928101610d1a565b93607f1693610cc1565b83346102cd576102f2610d6636610db8565b60015490926001600160a01b0391610d819083163314610e8d565b16610f27565b600435906001600160a01b0382168203610d9d57565b600080fd5b602435906001600160a01b0382168203610d9d57565b6060906003190112610d9d576001600160a01b03906004358281168103610d9d57916024359081168103610d9d579060443590565b90601f8019910116810190811067ffffffffffffffff821117610e0f57604052565b634e487b7160e01b600052604160045260246000fd5b6020808252825181830181905290939260005b828110610e5a57505060409293506000838284010152601f8019910116010190565b818101860151848201604001528501610e38565b34610d9d576040366003190112610d9d57610e87610d87565b506113e8565b15610e9457565b60405162461bcd60e51b815260206004820152601560248201527423b7bb32b93730b136329d103337b93134b23232b760591b6044820152606490fd5b600260005414610ee2576002600055565b60405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606490fd5b60405163a9059cbb60e01b60208201526001600160a01b03929092166024830152604480830193909352918152610f6891610f63606483610ded565b610f6a565b565b60018060a01b0316906040516040810167ffffffffffffffff9082811082821117610e0f576040526020938483527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564858401526000808587829751910182855af1903d156110af573d92831161109b579061100593929160405192610ff888601f19601f8401160185610ded565b83523d868885013e6110ba565b805191821591848315611077575b5050509050156110205750565b6084906040519062461bcd60e51b82526004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152fd5b91938180945001031261024f578201519081151582036102cd575080388084611013565b634e487b7160e01b85526041600452602485fd5b906110059392506060915b9192901561111c57508151156110ce575090565b3b156110d75790565b60405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606490fd5b82519091501561112f5750805190602001fd5b60405162461bcd60e51b815290819061114b9060048301610e25565b0390fd5b9190820180921161115c57565b634e487b7160e01b600052601160045260246000fd5b9190820391821161115c57565b6001600160a01b03908116600081815260136020908152604082205460095492949093919216806111d1575b508352601290526040822054908181106111cc576111c99250611172565b90565b505090565b92826024929460405193848092633792def360e01b82528860048301525afa918215611249578592611214575b506012929161120c9161114f565b9290916111ab565b9091508281813d8311611242575b61122c8183610ded565b8101031261123e57519061120c6111fe565b8480fd5b503d611222565b6040513d87823e3d90fd5b6009546001600160a01b039081169190821561130957604051633792def360e01b81529116600482018190526020918281602481875afa9081156112fd57600091611311575b501561130957819060246040518095819363a318021760e01b835260048301525afa9081156112fd576000916112d1575b50905090565b82813d83116112f6575b6112e58183610ded565b810103126102cd57505180386112cb565b503d6112db565b6040513d6000823e3d90fd5b505050600090565b908382813d8311611337575b6113278183610ded565b810103126102cd5750513861129a565b503d61131d565b8181029291811591840414171561115c57565b811561135b570490565b634e487b7160e01b600052601260045260246000fd5b6009549091906001600160a01b0316156113b75761138e82611254565b9182156113095761139e9061117f565b908115611309576111c9926113b29161133e565b611351565b5050600090565b60018060a01b0316600052600d6020526111c9604060002054600f6020526040600020549061114f565b60405162461bcd60e51b815260206004820152601960248201527f5665737465723a206e6f6e2d7472616e736665727261626c65000000000000006044820152606490fd5b1561143457565b60405162461bcd60e51b815260206004820152602260248201527f5665737465723a206275726e2066726f6d20746865207a65726f206164647265604482015261737360f01b6064820152608490fd5b1561148b57565b60405162461bcd60e51b815260206004820152601d60248201527f5665737465723a2062616c616e6365206973206e6f7420656e6f7567680000006044820152606490fd5b6001600160a01b03166114e481151561142d565b7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6020600093838552600d82526115218160408720541015611484565b838552600d8252611536816040872054611172565b848652600d8352604086205561154e81600a54611172565b600a55604051908152a3565b919080156118405761156b83611929565b60018060a01b0392611584828560065416833091611885565b8381169182151591611595836118de565b6115a182600a5461114f565b600a5560009584875286856020988996600d885282827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60409d8e6115e98c8286205461114f565b858552600d835281852055518b8152a38785600754168061178e575b505050505060ff600c541680611781575b6116af575b505061162f6116298261117f565b916113be565b1161165f577fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c92939451908152a2565b845162461bcd60e51b8152600481018390526024808201527f5665737465723a206d6178207665737461626c6520616d6f756e7420657863656044820152631959195960e21b6064820152608490fd5b848260095416926008541660448a5180958193637aeceb1f60e11b83528b600484015260248301525afa918215611775579088918193611742575b50868152600d865220541161170057388061161b565b60648387519062461bcd60e51b825280600483015260248201527f5665737465723a20696e73756666696369656e74206365632062616c616e63656044820152fd5b86809294508193503d831161176e575b61175c8183610ded565b8101031261024f5787905191386116ea565b503d611752565b508751903d90823e3d90fd5b5081600954161515611616565b848452600e82528c888186205491600d85526117ad8188205483611371565b8381116117be575b50505050611605565b7f659523c479d006050ebc0d0e48fea36d1b2c5d45b2f31402ac6f8671fc84cc04966117fe6117f36118219661180394611172565b809781963091611885565b6118de565b61180f82600b5461114f565b600b55878752600e855286205461114f565b858552600e83528d8520558c51908152a3858138878180888e826117b5565b60405162461bcd60e51b815260206004820152601760248201527f5665737465723a20696e76616c6964205f616d6f756e740000000000000000006044820152606490fd5b6040516323b872dd60e01b60208201526001600160a01b03928316602482015292909116604483015260648083019390935291815260a081019181831067ffffffffffffffff841117610e0f57610f6892604052610f6a565b156118e557565b606460405162461bcd60e51b815260206004820152602060248201527f5665737465723a206d696e7420746f20746865207a65726f20616464726573736044820152fd5b61193281611a06565b6001600160a01b038083166000818152601160205260408082204290559094909392919083156119fe5783611966916114d0565b808552600f60205261197b838587205461114f565b908552600f602052838520556006541690813b15610530578251632770a7eb60e21b81523060048201526024810191909152929081908490604490829084905af180156119f2576119cb57505050565b67ffffffffffffffff83116119de575052565b634e487b7160e01b81526041600452602490fd5b509051903d90823e3d90fd5b505050505050565b6001600160a01b038116600081815260116020526040902054611a299042611172565b90600052600d60205260406000205491821561130957611a5d91611a4f611a54926113be565b61133e565b60055490611351565b818110611a68575090565b905090565b6111c99060018060a01b038116600052600f602052611aa5611a9f604060002054601060205260406000205490611172565b91611a06565b9061114f565b611ab481611929565b611afd611ac082611a6d565b809360018060a01b0380941693846000526010602052611ae58360406000205461114f565b85600052601060205260406000205560085416610f27565b7f47cee97cb7acd717b3c0aa1435d004cd5b3c8c57d70dbceb4e4458bbd60e39d46020604051848152a290565b33600052601460205260ff6040600020541615611b4357565b60405162461bcd60e51b81526020600482015260116024820152702b32b9ba32b91d103337b93134b23232b760791b6044820152606490fdfea264697066735822122055d234938b068d78fb05dc3de93320b156ed8eb76ad518619715c6f690de591364736f6c63430008130033", "linkReferences": {}, "deployedLinkReferences": {} }