More Info
Private Name Tags
ContractCreator
Latest 10 from a total of 10 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Un Farm Now | 11733323 | 1438 days ago | IN | 0 ETH | 0.00132336 | ||||
Un Farm Now | 11733306 | 1438 days ago | IN | 0 ETH | 0.01284325 | ||||
Farm Now | 11729679 | 1438 days ago | IN | 0 ETH | 0.01336904 | ||||
Add Token Reward | 11692804 | 1444 days ago | IN | 0 ETH | 0.01039317 | ||||
Add Token Reward | 11692804 | 1444 days ago | IN | 0 ETH | 0.01044798 | ||||
Add Token Reward | 11692803 | 1444 days ago | IN | 0 ETH | 0.01045555 | ||||
Add Token Reward | 11692803 | 1444 days ago | IN | 0 ETH | 0.01107521 | ||||
Add Period | 11692741 | 1444 days ago | IN | 0 ETH | 0.01275892 | ||||
Add Period | 11692739 | 1444 days ago | IN | 0 ETH | 0.01275892 | ||||
Add Period | 11692738 | 1444 days ago | IN | 0 ETH | 0.01387942 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
YFDOTFarm
Compiler Version
v0.8.0+commit.c7dfd78e
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2021-01-20 */ // SPDX-License-Identifier: none pragma solidity >=0.5.0 <0.9.0; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes memory) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } } library Address { function isContract(address account) internal view returns (bool) { // This method relies on extcodesize, which returns 0 for contracts in // construction, since the code is only stored at the end of the // constructor execution. uint256 size; // solhint-disable-next-line no-inline-assembly assembly { size := extcodesize(account) } return size > 0; } function sendValue(address payable recipient, uint256 amount) internal { require(address(this).balance >= amount, "Address: insufficient balance"); // solhint-disable-next-line avoid-low-level-calls, avoid-call-value (bool success, ) = recipient.call{ value: amount }(""); require(success, "Address: unable to send value, recipient may have reverted"); } function functionCall(address target, bytes memory data) internal returns (bytes memory) { return functionCall(target, data, "Address: low-level call failed"); } function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) { return functionCallWithValue(target, data, 0, errorMessage); } function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) { return functionCallWithValue(target, data, value, "Address: low-level call with value failed"); } function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) { require(address(this).balance >= value, "Address: insufficient balance for call"); require(isContract(target), "Address: call to non-contract"); // solhint-disable-next-line avoid-low-level-calls (bool success, bytes memory returndata) = target.call{ value: value }(data); return _verifyCallResult(success, returndata, errorMessage); } function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) { return functionStaticCall(target, data, "Address: low-level static call failed"); } function functionStaticCall(address target, bytes memory data, string memory errorMessage) internal view returns (bytes memory) { require(isContract(target), "Address: static call to non-contract"); // solhint-disable-next-line avoid-low-level-calls (bool success, bytes memory returndata) = target.staticcall(data); return _verifyCallResult(success, returndata, errorMessage); } function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) { return functionDelegateCall(target, data, "Address: low-level delegate call failed"); } function functionDelegateCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) { require(isContract(target), "Address: delegate call to non-contract"); // solhint-disable-next-line avoid-low-level-calls (bool success, bytes memory returndata) = target.delegatecall(data); return _verifyCallResult(success, returndata, errorMessage); } function _verifyCallResult(bool success, bytes memory returndata, string memory errorMessage) private pure returns(bytes memory) { if (success) { return returndata; } else { // Look for revert reason and bubble it up if present if (returndata.length > 0) { // The easiest way to bubble the revert reason is using memory via assembly // solhint-disable-next-line no-inline-assembly assembly { let returndata_size := mload(returndata) revert(add(32, returndata), returndata_size) } } else { revert(errorMessage); } } } } library SafeMath { function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) { uint256 c = a + b; if (c < a) return (false, 0); return (true, c); } function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) { if (b > a) return (false, 0); return (true, a - b); } function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) { if (a == 0) return (true, 0); uint256 c = a * b; if (c / a != b) return (false, 0); return (true, c); } function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) { if (b == 0) return (false, 0); return (true, a / b); } function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) { if (b == 0) return (false, 0); return (true, a % b); } function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { require(b <= a, "SafeMath: subtraction overflow"); return a - b; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) return 0; uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { require(b > 0, "SafeMath: division by zero"); return a / b; } function mod(uint256 a, uint256 b) internal pure returns (uint256) { require(b > 0, "SafeMath: modulo by zero"); return a % b; } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); return a - b; } function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); return a / b; } function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); return a % b; } } interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); event Transfer(address indexed from,address indexed to,uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } library SafeERC20 { using SafeMath for uint256; using Address for address; function safeTransfer(IERC20 token, address to, uint256 value) internal { callOptionalReturn(token, abi.encodeWithSelector(token.transfer.selector, to, value)); } function safeTransferFrom(IERC20 token, address from, address to, uint256 value) internal { callOptionalReturn(token, abi.encodeWithSelector(token.transferFrom.selector, from, to, value)); } function safeApprove(IERC20 token, address spender, uint256 value) internal { require((value == 0) || (token.allowance(address(this), spender) == 0), "SafeERC20: approve from non-zero to non-zero allowance" ); callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, value)); } function safeIncreaseAllowance(IERC20 token, address spender, uint256 value) internal { uint256 newAllowance = token.allowance(address(this), spender).add(value); callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance)); } function safeDecreaseAllowance(IERC20 token, address spender, uint256 value) internal { uint256 newAllowance = token.allowance(address(this), spender).sub(value, "SafeERC20: decreased allowance below zero"); callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance)); } function callOptionalReturn(IERC20 token, bytes memory data) private { require(address(token).isContract(), "SafeERC20: call to non-contract"); (bool success, bytes memory returndata) = address(token).call(data); require(success, "SafeERC20: low-level call failed"); if (returndata.length > 0) { require(abi.decode(returndata, (bool)), "SafeERC20: ERC20 operation did not succeed"); } } } contract YFDOTFarm is Context { using SafeERC20 for IERC20; using Address for address; using SafeMath for uint256; struct periodList{ uint256 periodTime; uint256 cooldownTime; uint256 formulaParam1; uint256 formulaParam2; uint256 formulaPenalty1; uint256 formulaPenalty2; } struct userFarming{ bool activeFarm; uint periodChoosed; address tokenWantFarm; uint256 amountFarmd; uint256 startFarm; uint256 claimFarm; uint256 endFarm; uint256 cooldownDate; uint256 claimed; } struct rewardDetail{ string symboltoken; uint256 equalReward; uint256 minimalFarm; uint256 maximalFarm; uint decimaltoken; } mapping (uint => periodList) private period; mapping (address => rewardDetail) private ERC20perYFDOT; mapping (address => userFarming) private FarmDetail; mapping (address => uint256) private devBalance; address private _owner; address private _YFDOTtoken; address[] private _tokenFarmList; address[] private _FarmerList; uint[] private _periodList; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); event Farm(address indexed Farmr, address indexed tokenFarmTarget, uint256 indexed amountTokenFarmd); event UnFarm(address indexed Farmr, address indexed tokenFarmTarget, uint256 indexed amountTokenFarmd); event Claim(address indexed Farmr, address indexed tokenFarmTarget, uint256 indexed amountReward); constructor(address YFDOTAddress){ rewardDetail storage est = ERC20perYFDOT[YFDOTAddress]; rewardDetail storage nul = ERC20perYFDOT[address(0)]; require(YFDOTAddress.isContract() == true,"This address is not Smartcontract"); require(IERC20(YFDOTAddress).totalSupply() != 0, "This address is not ERC20 Token"); address msgSender = _msgSender(); _YFDOTtoken = YFDOTAddress; _owner = msgSender; _tokenFarmList.push(address(0)); est.symboltoken = "YFDOT"; est.decimaltoken = 18; nul.symboltoken = "ETH"; nul.minimalFarm = 10**16; nul.equalReward = 10**18; nul.maximalFarm = 5 * (10**18); nul.decimaltoken = 18; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "New owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } function addTokenReward(address erc20Token, uint256 amountEqual, uint256 minFarm, uint256 maxFarm, uint decimall, string memory symboltokens) public virtual onlyOwner{ if(erc20Token != address(0)){ require(erc20Token.isContract() == true,"This address is not Smartcontract"); require(IERC20(erc20Token).totalSupply() != 0, "This address is not ERC20 Token"); } rewardDetail storage est = ERC20perYFDOT[erc20Token]; est.equalReward = amountEqual; est.symboltoken = symboltokens; est.minimalFarm = minFarm; est.maximalFarm = maxFarm; est.decimaltoken = decimall; _tokenFarmList.push(erc20Token); } function editTokenReward(address erc20Token, uint256 amountEqual, uint256 minFarm, uint256 maxFarm, uint decimall, string memory symboltokens) public virtual onlyOwner{ if(erc20Token != address(0)){ require(erc20Token.isContract() == true,"This address is not Smartcontract"); require(IERC20(erc20Token).totalSupply() != 0, "This address is not ERC20 Token"); } rewardDetail storage est = ERC20perYFDOT[erc20Token]; est.equalReward = amountEqual; est.symboltoken = symboltokens; est.minimalFarm = minFarm; est.maximalFarm = maxFarm; est.decimaltoken = decimall; } function addPeriod(uint256 timePeriodFarm, uint256 timeCooldownUnFarm, uint256 formula1, uint256 formula2, uint256 fpel1, uint256 fpel2) public virtual onlyOwner{ uint newPeriod = _periodList.length; if(newPeriod == 0){ newPeriod = 1; }else{ newPeriod = newPeriod + 1; } periodList storage sys = period[newPeriod]; sys.periodTime = timePeriodFarm; sys.cooldownTime = timeCooldownUnFarm; sys.formulaParam1 = formula1; sys.formulaParam2 = formula2; sys.formulaPenalty1 = fpel1; sys.formulaPenalty2 = fpel2; _periodList.push(newPeriod); } function editPeriod(uint periodEdit, uint256 timePeriodFarm, uint256 timeCooldownUnFarm, uint256 formula1, uint256 formula2, uint256 fpel1, uint256 fpel2) public virtual onlyOwner{ periodList storage sys = period[periodEdit]; sys.periodTime = timePeriodFarm; sys.cooldownTime = timeCooldownUnFarm; sys.formulaParam1 = formula1; sys.formulaParam2 = formula2; sys.formulaPenalty1 = fpel1; sys.formulaPenalty2 = fpel2; } function claimDevBalance(address target) public virtual onlyOwner{ if(target == address(0)){ payable(_owner).transfer(devBalance[target]); }else{ IERC20(target).safeTransfer(_owner, devBalance[target]); } devBalance[target] = 0; } function claimReward() public virtual{ address msgSender = _msgSender(); userFarming storage usr = FarmDetail[msgSender]; uint256 getrewardbalance = IERC20(_YFDOTtoken).balanceOf(address(this)); uint256 getReward = getRewardClaimable(msgSender); uint256 today = block.timestamp; require(getrewardbalance >= getReward, "Please wait until reward pool filled, try again later."); require(usr.claimFarm < block.timestamp, "Please wait until wait time reached."); usr.claimed = usr.claimed.add(getReward); usr.claimFarm = today.add(7 days); IERC20(_YFDOTtoken).safeTransfer(msgSender, getReward); emit Claim(msgSender, _YFDOTtoken, getReward); } function FarmNow(address tokenTargetFarm, uint256 amountWantFarm, uint periodwant) public payable virtual{ address msgSender = _msgSender(); uint256 getallowance; if(tokenTargetFarm != address(0)){ getallowance = IERC20(tokenTargetFarm).allowance(msgSender, address(this)); } if(getRewardClaimable(msgSender) > 0){ revert("Please claim your reward from previous Farming"); } uint256 today = block.timestamp; userFarming storage usr = FarmDetail[msgSender]; periodList storage sys = period[periodwant]; rewardDetail storage est = ERC20perYFDOT[tokenTargetFarm]; if(tokenTargetFarm == address(0)){ require(msg.value >= est.minimalFarm, "Minimum Farming value required"); require(msg.value <= est.maximalFarm, "Maximum Farming value is reached"); }else{ require(amountWantFarm >= est.minimalFarm, "Minimum Farming value required"); require(amountWantFarm <= est.maximalFarm, "Maximum Farming value is reached"); require(getallowance >= amountWantFarm, "Insufficient token approval balance, you must increase your allowance" ); } usr.activeFarm = true; usr.periodChoosed = periodwant; usr.tokenWantFarm = tokenTargetFarm; usr.amountFarmd = amountWantFarm; usr.startFarm = today; usr.claimFarm = today.add(7 days); usr.cooldownDate = today.add(sys.cooldownTime); usr.endFarm = today.add(sys.periodTime); usr.claimed = 0; bool checkregis = false; for(uint i = 0; i < _FarmerList.length; i++){ if(_FarmerList[i] == msgSender){ checkregis = true; } } if(checkregis == false){ _FarmerList.push(msgSender); } if(tokenTargetFarm != address(0)){ IERC20(tokenTargetFarm).safeTransferFrom(msgSender, address(this), amountWantFarm); } emit Farm(msgSender, tokenTargetFarm, amountWantFarm); } function unFarmNow() public virtual{ address msgSender = _msgSender(); userFarming storage usr = FarmDetail[msgSender]; periodList storage sys = period[usr.periodChoosed]; require(usr.activeFarm == true, "Farm not active yet" ); uint256 tokenUnFarm; if(block.timestamp < usr.cooldownDate){ uint256 penfee = usr.amountFarmd.mul(sys.formulaPenalty1); penfee = penfee.div(sys.formulaPenalty2); penfee = penfee.div(100); tokenUnFarm = usr.amountFarmd.sub(penfee); devBalance[usr.tokenWantFarm] = devBalance[usr.tokenWantFarm].add(penfee); }else{ tokenUnFarm = usr.amountFarmd; } usr.activeFarm = false; if(block.timestamp < usr.endFarm){ usr.endFarm = block.timestamp; } if(usr.tokenWantFarm == address(0)){ payable(msgSender).transfer(tokenUnFarm); }else{ IERC20(usr.tokenWantFarm).safeTransfer(msgSender, tokenUnFarm); } uint256 getCLaimableRwt = getRewardClaimable(msgSender); if(getCLaimableRwt > 0){ IERC20(_YFDOTtoken).safeTransfer(msgSender, getCLaimableRwt); usr.claimed = usr.claimed.add(getCLaimableRwt); } emit UnFarm(msgSender, usr.tokenWantFarm, usr.amountFarmd); emit Claim(msgSender, _YFDOTtoken, getCLaimableRwt); } function getDevBalance(address target) public view returns(uint256){ return devBalance[target]; } function getEqualReward(address erc20Token) public view returns(uint256, string memory, uint256, uint256, uint){ rewardDetail storage est = ERC20perYFDOT[erc20Token]; return( est.equalReward, est.symboltoken, est.minimalFarm, est.maximalFarm, est.decimaltoken ); } function getTotalFarmer() public view returns(uint256){ return _FarmerList.length; } function getActiveFarmer() view public returns(uint256){ uint256 activeFarm; for(uint i = 0; i < _FarmerList.length; i++){ userFarming memory l = FarmDetail[_FarmerList[i]]; if(l.activeFarm == true){ activeFarm = activeFarm + 1; } } return activeFarm; } function getTokenList() public view returns(address[] memory){ return _tokenFarmList; } function getPeriodList() public view returns(uint[] memory){ return _periodList; } function getPeriodDetail(uint periodwant) public view returns(uint256, uint256, uint256, uint256, uint256, uint256){ periodList storage sys = period[periodwant]; return( sys.periodTime, sys.cooldownTime, sys.formulaParam1, sys.formulaParam2, sys.formulaPenalty1, sys.formulaPenalty2 ); } function getUserInfo(address FarmrAddress) public view returns(bool, uint, address, string memory, uint256, uint256, uint256, uint256, uint256, uint256){ userFarming storage usr = FarmDetail[FarmrAddress]; rewardDetail storage est = ERC20perYFDOT[usr.tokenWantFarm]; uint256 amountTotalFarmd; if(usr.activeFarm == false){ amountTotalFarmd = 0; }else{ amountTotalFarmd = usr.amountFarmd; } return( usr.activeFarm, usr.periodChoosed, usr.tokenWantFarm, est.symboltoken, amountTotalFarmd, usr.startFarm, usr.claimFarm.add(1 minutes), usr.endFarm, usr.cooldownDate, usr.claimed ); } function getRewardClaimable(address FarmrAddress) public view returns(uint256){ userFarming storage usr = FarmDetail[FarmrAddress]; periodList storage sys = period[usr.periodChoosed]; rewardDetail storage est = ERC20perYFDOT[usr.tokenWantFarm]; uint256 rewards; if(usr.amountFarmd == 0 && usr.tokenWantFarm == address(0)){ rewards = 0; }else{ uint256 today = block.timestamp; uint256 diffTime; if(today > usr.endFarm){ diffTime = usr.endFarm.sub(usr.startFarm); }else{ diffTime = today.sub(usr.startFarm); } rewards = usr.amountFarmd.mul(diffTime); uint256 getTokenEqual = est.equalReward; rewards = rewards.mul(getTokenEqual); rewards = rewards.mul(sys.formulaParam1); rewards = rewards.div(10**est.decimaltoken); rewards = rewards.div(sys.formulaParam2); rewards = rewards.div(100); rewards = rewards.sub(usr.claimed); } return rewards; } function getRewardObtained(address FarmrAddress) public view returns(uint256){ userFarming storage usr = FarmDetail[FarmrAddress]; periodList storage sys = period[usr.periodChoosed]; rewardDetail storage est = ERC20perYFDOT[usr.tokenWantFarm]; uint256 rewards; if(usr.amountFarmd == 0 && usr.tokenWantFarm == address(0)){ rewards = 0; }else{ uint256 today = block.timestamp; uint256 diffTime; if(today > usr.endFarm){ diffTime = usr.endFarm.sub(usr.startFarm); }else{ diffTime = today.sub(usr.startFarm); } rewards = usr.amountFarmd.mul(diffTime); uint256 getTokenEqual = est.equalReward; rewards = rewards.mul(getTokenEqual); rewards = rewards.mul(sys.formulaParam1); rewards = rewards.div(10**est.decimaltoken); rewards = rewards.div(sys.formulaParam2); rewards = rewards.div(100); } return rewards; } function getRewardEstimator(address FarmrAddress) public view returns(uint256,uint256,uint256,uint256,uint256,uint256){ userFarming storage usr = FarmDetail[FarmrAddress]; periodList storage sys = period[usr.periodChoosed]; rewardDetail storage est = ERC20perYFDOT[usr.tokenWantFarm]; uint256 amountFarmdNow; if(usr.activeFarm == true){ amountFarmdNow = usr.amountFarmd; uint256 perSec = amountFarmdNow.mul(sys.formulaParam1); uint256 getTokenEqual = est.equalReward; perSec = perSec.mul(getTokenEqual); perSec = perSec.div(sys.formulaParam2); perSec = perSec.div(100); perSec = perSec.div(10**est.decimaltoken); return( perSec, perSec.mul(60), perSec.mul(3600), perSec.mul(86400), perSec.mul(604800), perSec.mul(2592000) ); }else{ return(0,0,0,0,0,0); } } function getRewardCalculator(address tokenWantFarm, uint256 amountWantFarm, uint periodwant) public view returns(uint256){ periodList storage sys = period[periodwant]; rewardDetail storage est = ERC20perYFDOT[tokenWantFarm]; uint256 startDate = block.timestamp; uint256 endDate = startDate.add(sys.periodTime); uint256 diffTime = endDate.sub(startDate); uint256 rewards = amountWantFarm.mul(diffTime); uint256 getTokenEqual = est.equalReward; rewards = rewards.mul(getTokenEqual); rewards = rewards.mul(sys.formulaParam1); rewards = rewards.div(10**est.decimaltoken); rewards = rewards.div(sys.formulaParam2); rewards = rewards.div(100); return rewards; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"YFDOTAddress","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"Farmr","type":"address"},{"indexed":true,"internalType":"address","name":"tokenFarmTarget","type":"address"},{"indexed":true,"internalType":"uint256","name":"amountReward","type":"uint256"}],"name":"Claim","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"Farmr","type":"address"},{"indexed":true,"internalType":"address","name":"tokenFarmTarget","type":"address"},{"indexed":true,"internalType":"uint256","name":"amountTokenFarmd","type":"uint256"}],"name":"Farm","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":"Farmr","type":"address"},{"indexed":true,"internalType":"address","name":"tokenFarmTarget","type":"address"},{"indexed":true,"internalType":"uint256","name":"amountTokenFarmd","type":"uint256"}],"name":"UnFarm","type":"event"},{"inputs":[{"internalType":"address","name":"tokenTargetFarm","type":"address"},{"internalType":"uint256","name":"amountWantFarm","type":"uint256"},{"internalType":"uint256","name":"periodwant","type":"uint256"}],"name":"FarmNow","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"timePeriodFarm","type":"uint256"},{"internalType":"uint256","name":"timeCooldownUnFarm","type":"uint256"},{"internalType":"uint256","name":"formula1","type":"uint256"},{"internalType":"uint256","name":"formula2","type":"uint256"},{"internalType":"uint256","name":"fpel1","type":"uint256"},{"internalType":"uint256","name":"fpel2","type":"uint256"}],"name":"addPeriod","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"erc20Token","type":"address"},{"internalType":"uint256","name":"amountEqual","type":"uint256"},{"internalType":"uint256","name":"minFarm","type":"uint256"},{"internalType":"uint256","name":"maxFarm","type":"uint256"},{"internalType":"uint256","name":"decimall","type":"uint256"},{"internalType":"string","name":"symboltokens","type":"string"}],"name":"addTokenReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"name":"claimDevBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claimReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"periodEdit","type":"uint256"},{"internalType":"uint256","name":"timePeriodFarm","type":"uint256"},{"internalType":"uint256","name":"timeCooldownUnFarm","type":"uint256"},{"internalType":"uint256","name":"formula1","type":"uint256"},{"internalType":"uint256","name":"formula2","type":"uint256"},{"internalType":"uint256","name":"fpel1","type":"uint256"},{"internalType":"uint256","name":"fpel2","type":"uint256"}],"name":"editPeriod","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"erc20Token","type":"address"},{"internalType":"uint256","name":"amountEqual","type":"uint256"},{"internalType":"uint256","name":"minFarm","type":"uint256"},{"internalType":"uint256","name":"maxFarm","type":"uint256"},{"internalType":"uint256","name":"decimall","type":"uint256"},{"internalType":"string","name":"symboltokens","type":"string"}],"name":"editTokenReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getActiveFarmer","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"name":"getDevBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"erc20Token","type":"address"}],"name":"getEqualReward","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"string","name":"","type":"string"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"periodwant","type":"uint256"}],"name":"getPeriodDetail","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getPeriodList","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenWantFarm","type":"address"},{"internalType":"uint256","name":"amountWantFarm","type":"uint256"},{"internalType":"uint256","name":"periodwant","type":"uint256"}],"name":"getRewardCalculator","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"FarmrAddress","type":"address"}],"name":"getRewardClaimable","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"FarmrAddress","type":"address"}],"name":"getRewardEstimator","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"FarmrAddress","type":"address"}],"name":"getRewardObtained","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTokenList","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTotalFarmer","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"FarmrAddress","type":"address"}],"name":"getUserInfo","outputs":[{"internalType":"bool","name":"","type":"bool"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"address","name":"","type":"address"},{"internalType":"string","name":"","type":"string"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"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":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unFarmNow","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60806040523480156200001157600080fd5b5060405162002c8738038062002c87833981016040819052620000349162000341565b6001600160a01b0381166000818152600160209081526040822091805290917fa6eef7e35abe7026729641147f7915573c7e97b47efa546f5f6e3230263bcb49916200008a919062001a6462000291821b17901c565b1515600114620000b75760405162461bcd60e51b8152600401620000ae90620003c1565b60405180910390fd5b826001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b158015620000f157600080fd5b505afa15801562000106573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200012c919062000371565b6200014b5760405162461bcd60e51b8152600401620000ae906200038a565b60006200015762000297565b600580546001600160a01b038088166001600160a01b031992831617835560048054918516918316919091179055600680546001810182556000919091527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0180549091169055604080518082019091528181526416519113d560da1b602091909101908152919250620001ed9185916200029b565b50601260048401556040805180820190915260038082526208aa8960eb1b6020909201918252620002209184916200029b565b50662386f26fc100006002830155670de0b6b3a76400006001830155674563918244f400006003830155601260048301556040516001600160a01b038216906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3505050506200043f565b3b151590565b3390565b828054620002a99062000402565b90600052602060002090601f016020900481019282620002cd576000855562000318565b82601f10620002e857805160ff191683800117855562000318565b8280016001018555821562000318579182015b8281111562000318578251825591602001919060010190620002fb565b50620003269291506200032a565b5090565b5b808211156200032657600081556001016200032b565b60006020828403121562000353578081fd5b81516001600160a01b03811681146200036a578182fd5b9392505050565b60006020828403121562000383578081fd5b5051919050565b6020808252601f908201527f546869732061646472657373206973206e6f7420455243323020546f6b656e00604082015260600190565b60208082526021908201527f546869732061646472657373206973206e6f7420536d617274636f6e747261636040820152601d60fa1b606082015260800190565b6002810460018216806200041757607f821691505b602082108114156200043957634e487b7160e01b600052602260045260246000fd5b50919050565b612838806200044f6000396000f3fe6080604052600436106101405760003560e01c80638d5bc68c116100b6578063d4259bb61161006f578063d4259bb614610365578063d92ee2fe14610396578063e48f0de6146103b8578063f2fde38b146103d8578063f3feded8146103f8578063fa65069f1461041857610140565b80638d5bc68c146102b95780638da5cb5b146102ce5780638e878729146102f0578063a3d7418c14610310578063aeaa1c9414610330578063b88a802f1461035057610140565b80636386c1c7116101085780636386c1c7146101f957806370cc190e1461022f578063715018a61461024f5780637a3f6ca91461026457806383e0c8781461028457806385dece881461029957610140565b806305f74fe81461014557806314ea1e891461017b578063273cbaa014610190578063301f77cf146101b25780635f536c8d146101e4575b600080fd5b34801561015157600080fd5b50610165610160366004611d58565b610438565b604051610172919061256b565b60405180910390f35b61018e610189366004611d72565b610457565b005b34801561019c57600080fd5b506101a56107c1565b604051610172919061200d565b3480156101be57600080fd5b506101d26101cd366004611d58565b610823565b604051610172969594939291906125aa565b3480156101f057600080fd5b50610165610964565b34801561020557600080fd5b50610219610214366004611d58565b61096a565b6040516101729a99989796959493929190612092565b34801561023b57600080fd5b506101d261024a366004611e9d565b610abc565b34801561025b57600080fd5b5061018e610af0565b34801561027057600080fd5b5061018e61027f366004611da4565b610b6f565b34801561029057600080fd5b50610165610d11565b3480156102a557600080fd5b506101656102b4366004611d58565b610e0d565b3480156102c557600080fd5b5061018e610f58565b3480156102da57600080fd5b506102e36111b3565b6040516101729190611fa2565b3480156102fc57600080fd5b5061018e61030b366004611ecd565b6111c2565b34801561031c57600080fd5b5061016561032b366004611d58565b611280565b34801561033c57600080fd5b5061018e61034b366004611f0f565b61139c565b34801561035c57600080fd5b5061018e611403565b34801561037157600080fd5b50610385610380366004611d58565b611579565b604051610172959493929190612574565b3480156103a257600080fd5b506103ab611662565b604051610172919061205a565b3480156103c457600080fd5b506101656103d3366004611d72565b6116b9565b3480156103e457600080fd5b5061018e6103f3366004611d58565b611780565b34801561040457600080fd5b5061018e610413366004611da4565b611837565b34801561042457600080fd5b5061018e610433366004611d58565b61198a565b6001600160a01b0381166000908152600360205260409020545b919050565b6000610461611a6a565b905060006001600160a01b038516156104f557604051636eb1769f60e11b81526001600160a01b0386169063dd62ed3e906104a29085903090600401611fb6565b60206040518083038186803b1580156104ba57600080fd5b505afa1580156104ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104f29190611eb5565b90505b600061050083610e0d565b11156105275760405162461bcd60e51b815260040161051e90612134565b60405180910390fd5b6001600160a01b038083166000908152600260209081526040808320878452838352818420948a16808552600190935292204293916105ad5780600201543410156105845760405162461bcd60e51b815260040161051e9061234a565b80600301543411156105a85760405162461bcd60e51b815260040161051e90612471565b610615565b80600201548810156105d15760405162461bcd60e51b815260040161051e9061234a565b80600301548811156105f55760405162461bcd60e51b815260040161051e90612471565b878510156106155760405162461bcd60e51b815260040161051e90612225565b8254600160ff199091168117845583018790556002830180546001600160a01b0319166001600160a01b038b1617905560038301889055600483018490556106608462093a80611a6e565b60058401556001820154610675908590611a6e565b60078401558154610687908590611a6e565b6006840155600060088401819055805b6007548110156106fe57876001600160a01b0316600782815481106106cc57634e487b7160e01b600052603260045260246000fd5b6000918252602090912001546001600160a01b031614156106ec57600191505b806106f6816127bb565b915050610697565b508061075057600780546001810182556000919091527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c6880180546001600160a01b0319166001600160a01b0389161790555b6001600160a01b038a1615610774576107746001600160a01b038b1688308c611aa6565b888a6001600160a01b0316886001600160a01b03167f22357843602b631ef738ef8439659fbccae0f50c9f1a17abcedfafd2f785a0d660405160405180910390a450505050505050505050565b6060600680548060200260200160405190810160405280929190818152602001828054801561081957602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116107fb575b5050505050905090565b6001600160a01b0380821660009081526002602081815260408084206001808201548652858452828620948201549096168552918590528320815493948594859485948594859491939091859160ff1615151415610941575060038301546002830154600090610894908390611b04565b60018401549091506108a68282611b04565b91506108bf856003015483611b4990919063ffffffff16565b91506108cc826064611b49565b91506108e98460040154600a6108e29190612650565b8390611b49565b9150816108f781603c611b04565b61090384610e10611b04565b6109108562015180611b04565b61091d8662093a80611b04565b61092a8762278d00611b04565b9b509b509b509b509b509b5050505050505061095b565b600080600080600080995099509950995099509950505050505b91939550919395565b60075490565b6001600160a01b03808216600090815260026020818152604080842092830154909416835260019052918120825491928392839260609284928392839283928392839291839060ff166109bf575060006109c6565b5060038201545b8254600184015460028501546004860154600587015460ff909416936001600160a01b0390921691869186916109fd90603c611a6e565b89600601548a600701548b60080154868054610a1890612780565b80601f0160208091040260200160405190810160405280929190818152602001828054610a4490612780565b8015610a915780601f10610a6657610100808354040283529160200191610a91565b820191906000526020600020905b815481529060010190602001808311610a7457829003601f168201915b505050505096509c509c509c509c509c509c509c509c509c509c505050509193959799509193959799565b6000908152602081905260409020805460018201546002830154600384015460048501546005909501549395929491939092565b610af8611a6a565b6004546001600160a01b03908116911614610b255760405162461bcd60e51b815260040161051e906120fd565b6004546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600480546001600160a01b0319169055565b610b77611a6a565b6004546001600160a01b03908116911614610ba45760405162461bcd60e51b815260040161051e906120fd565b6001600160a01b03861615610c7357610bc5866001600160a01b0316611a64565b1515600114610be65760405162461bcd60e51b815260040161051e90612430565b856001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b158015610c1f57600080fd5b505afa158015610c33573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c579190611eb5565b610c735760405162461bcd60e51b815260040161051e90612381565b6001600160a01b038616600090815260016020818152604090922090810187905582519091610ca6918391850190611ca8565b50600281019490945550600383019190915560049091015550600680546001810182556000919091527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0180546001600160a01b0319166001600160a01b0392909216919091179055565b60008060005b600754811015610e075760006002600060078481548110610d4857634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b039081168452838201949094526040928301909120825161012081018452815460ff161515808252600183810154948301949094526002830154909516938101939093526003810154606084015260048101546080840152600581015460a0840152600681015460c0840152600781015460e0840152600801546101008301529092501415610df457610df18360016125d2565b92505b5080610dff816127bb565b915050610d17565b50905090565b6001600160a01b038082166000908152600260208181526040808420600180820154865285845282862094820154909616855294909152822060038401549293928490158015610e68575060028401546001600160a01b0316155b15610e7557506000610f4f565b60068401544290600090821115610ea05760048601546006870154610e9991611b74565b9050610eb3565b6004860154610eb0908390611b74565b90505b6003860154610ec29082611b04565b6001850154909350610ed48482611b04565b9350610eed866002015485611b0490919063ffffffff16565b9350610f0a8560040154600a610f039190612650565b8590611b49565b9350610f23866003015485611b4990919063ffffffff16565b9350610f30846064611b49565b9350610f49876008015485611b7490919063ffffffff16565b93505050505b95945050505050565b6000610f62611a6a565b6001600160a01b038116600090815260026020908152604080832060018082015485529284905292208254939450919260ff16151514610fb45760405162461bcd60e51b815260040161051e9061231d565b60008260070154421015611064576000610fdf83600401548560030154611b0490919063ffffffff16565b9050610ff8836005015482611b4990919063ffffffff16565b9050611005816064611b49565b60038501549091506110179082611b74565b60028501546001600160a01b03166000908152600360205260409020549092506110419082611a6e565b60028501546001600160a01b03166000908152600360205260409020555061106b565b5060038201545b825460ff191683556006830154421015611086574260068401555b60028301546001600160a01b03166110d4576040516001600160a01b0385169082156108fc029083906000818181858888f193505050501580156110ce573d6000803e3d6000fd5b506110ed565b60028301546110ed906001600160a01b03168583611ba0565b60006110f885610e0d565b9050801561112c57600554611117906001600160a01b03168683611ba0565b60088401546111269082611a6e565b60088501555b600384015460028501546040516001600160a01b03918216918816907feb825f41c5f1169295be69cb7a530de636e0a61af9e8ea0d1d68f462e424dc8990600090a460055460405182916001600160a01b0390811691908816907f70eb43c4a8ae8c40502dcf22436c509c28d6ff421cf07c491be56984bd98706890600090a45050505050565b6004546001600160a01b031690565b6111ca611a6a565b6004546001600160a01b039081169116146111f75760405162461bcd60e51b815260040161051e906120fd565b6008548061120757506001611215565b6112128160016125d2565b90505b600081815260208190526040812097885560018089019790975560028801959095556003870193909355600486019190915560059094019390935560088054928301815590527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30155565b6001600160a01b0380821660009081526002602081815260408084206001808201548652858452828620948201549096168552949091528220600384015492939284901580156112db575060028401546001600160a01b0316155b156112e857506000610f4f565b60068401544290600090821115611313576004860154600687015461130c91611b74565b9050611326565b6004860154611323908390611b74565b90505b60038601546113359082611b04565b60018501549093506113478482611b04565b9350611360866002015485611b0490919063ffffffff16565b93506113768560040154600a610f039190612650565b935061138f866003015485611b4990919063ffffffff16565b9350610f49846064611b49565b6113a4611a6a565b6004546001600160a01b039081169116146113d15760405162461bcd60e51b815260040161051e906120fd565b600096875260208790526040909620948555600185019390935560028401919091556003830155600482015560050155565b600061140d611a6a565b6001600160a01b0380821660009081526002602052604080822060055491516370a0823160e01b815294955093919216906370a0823190611452903090600401611fa2565b60206040518083038186803b15801561146a57600080fd5b505afa15801561147e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114a29190611eb5565b905060006114af84610e0d565b905042818310156114d25760405162461bcd60e51b815260040161051e90612290565b428460050154106114f55760405162461bcd60e51b815260040161051e906124f0565b60088401546115049083611a6e565b60088501556115168162093a80611a6e565b60058086019190915554611534906001600160a01b03168684611ba0565b60055460405183916001600160a01b0390811691908816907f70eb43c4a8ae8c40502dcf22436c509c28d6ff421cf07c491be56984bd98706890600090a45050505050565b6000606060008060008060016000886001600160a01b03166001600160a01b0316815260200190815260200160002090508060010154816000018260020154836003015484600401548380546115ce90612780565b80601f01602080910402602001604051908101604052809291908181526020018280546115fa90612780565b80156116475780601f1061161c57610100808354040283529160200191611647565b820191906000526020600020905b81548152906001019060200180831161162a57829003601f168201915b50505050509350955095509550955095505091939590929450565b6060600880548060200260200160405190810160405280929190818152602001828054801561081957602002820191906000526020600020905b81548152602001906001019080831161169c575050505050905090565b6000818152602081815260408083206001600160a01b0387168452600190925282208154429084906116ec908390611a6e565b905060006116fa8284611b74565b905060006117088983611b04565b600186015490915061171a8282611b04565b9150611733876002015483611b0490919063ffffffff16565b91506117498660040154600a6108e29190612650565b9150611762876003015483611b4990919063ffffffff16565b915061176f826064611b49565b9750505050505050505b9392505050565b611788611a6a565b6004546001600160a01b039081169116146117b55760405162461bcd60e51b815260040161051e906120fd565b6001600160a01b0381166117db5760405162461bcd60e51b815260040161051e906123f9565b6004546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600480546001600160a01b0319166001600160a01b0392909216919091179055565b61183f611a6a565b6004546001600160a01b0390811691161461186c5760405162461bcd60e51b815260040161051e906120fd565b6001600160a01b0386161561193b5761188d866001600160a01b0316611a64565b15156001146118ae5760405162461bcd60e51b815260040161051e90612430565b856001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b1580156118e757600080fd5b505afa1580156118fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061191f9190611eb5565b61193b5760405162461bcd60e51b815260040161051e90612381565b6001600160a01b03861660009081526001602081815260409092209081018790558251909161196e918391850190611ca8565b5060028101949094555060038301919091556004909101555050565b611992611a6a565b6004546001600160a01b039081169116146119bf5760405162461bcd60e51b815260040161051e906120fd565b6001600160a01b038116611a1e576004546001600160a01b03828116600090815260036020526040808220549051929093169280156108fc02929091818181858888f19350505050158015611a18573d6000803e3d6000fd5b50611a4a565b6004546001600160a01b03828116600081815260036020526040902054611a4a93919290911690611ba0565b6001600160a01b0316600090815260036020526040812055565b3b151590565b3390565b600080611a7b83856125d2565b905083811015611a9d5760405162461bcd60e51b815260040161051e90612182565b90505b92915050565b611afe846323b872dd60e01b858585604051602401611ac793929190611fd0565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152611bc4565b50505050565b600082611b1357506000611aa0565b6000611b1f838561271e565b905082611b2c85836125ea565b14611a9d5760405162461bcd60e51b815260040161051e906123b8565b6000808211611b6a5760405162461bcd60e51b815260040161051e906122e6565b611a9d82846125ea565b600082821115611b965760405162461bcd60e51b815260040161051e906121ee565b611a9d828461273d565b611bbf8363a9059cbb60e01b8484604051602401611ac7929190611ff4565b505050565b611bd6826001600160a01b0316611a64565b611bf25760405162461bcd60e51b815260040161051e90612534565b600080836001600160a01b031683604051611c0d9190611f86565b6000604051808303816000865af19150503d8060008114611c4a576040519150601f19603f3d011682016040523d82523d6000602084013e611c4f565b606091505b509150915081611c715760405162461bcd60e51b815260040161051e906121b9565b805115611afe5780806020019051810190611c8c9190611e7d565b611afe5760405162461bcd60e51b815260040161051e906124a6565b828054611cb490612780565b90600052602060002090601f016020900481019282611cd65760008555611d1c565b82601f10611cef57805160ff1916838001178555611d1c565b82800160010185558215611d1c579182015b82811115611d1c578251825591602001919060010190611d01565b50611d28929150611d2c565b5090565b5b80821115611d285760008155600101611d2d565b80356001600160a01b038116811461045257600080fd5b600060208284031215611d69578081fd5b611a9d82611d41565b600080600060608486031215611d86578182fd5b611d8f84611d41565b95602085013595506040909401359392505050565b60008060008060008060c08789031215611dbc578182fd5b611dc587611d41565b9550602080880135955060408801359450606088013593506080880135925060a088013567ffffffffffffffff80821115611dfe578384fd5b818a0191508a601f830112611e11578384fd5b813581811115611e2357611e236127ec565b604051601f8201601f1916810185018381118282101715611e4657611e466127ec565b60405281815283820185018d1015611e5c578586fd5b81858501868301378585838301015280955050505050509295509295509295565b600060208284031215611e8e578081fd5b81518015158114611a9d578182fd5b600060208284031215611eae578081fd5b5035919050565b600060208284031215611ec6578081fd5b5051919050565b60008060008060008060c08789031215611ee5578182fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b600080600080600080600060e0888a031215611f29578081fd5b505085359760208701359750604087013596606081013596506080810135955060a0810135945060c0013592509050565b60008151808452611f72816020860160208601612754565b601f01601f19169290920160200192915050565b60008251611f98818460208701612754565b9190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b0392831681529116602082015260400190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b03929092168252602082015260400190565b6020808252825182820181905260009190848201906040850190845b8181101561204e5783516001600160a01b031683529284019291840191600101612029565b50909695505050505050565b6020808252825182820181905260009190848201906040850190845b8181101561204e57835183529284019291840191600101612076565b8a15158152602081018a90526001600160a01b0389166040820152610140606082018190526000906120c68382018b611f5a565b6080840199909952505060a081019590955260c085019390935260e084019190915261010083015261012090910152949350505050565b60208082526017908201527f43616c6c6572206973206e6f7420746865206f776e6572000000000000000000604082015260600190565b6020808252602e908201527f506c6561736520636c61696d20796f7572207265776172642066726f6d20707260408201526d6576696f7573204661726d696e6760901b606082015260800190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b6020808252818101527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564604082015260600190565b6020808252601e908201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604082015260600190565b60208082526045908201527f496e73756666696369656e7420746f6b656e20617070726f76616c2062616c6160408201527f6e63652c20796f75206d75737420696e63726561736520796f757220616c6c6f60608201526477616e636560d81b608082015260a00190565b60208082526036908201527f506c65617365207761697420756e74696c2072657761726420706f6f6c206669604082015275363632b216103a393c9030b3b0b4b7103630ba32b91760511b606082015260800190565b6020808252601a908201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604082015260600190565b60208082526013908201527211985c9b481b9bdd081858dd1a5d99481e595d606a1b604082015260600190565b6020808252601e908201527f4d696e696d756d204661726d696e672076616c75652072657175697265640000604082015260600190565b6020808252601f908201527f546869732061646472657373206973206e6f7420455243323020546f6b656e00604082015260600190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b6020808252601d908201527f4e6577206f776e657220697320746865207a65726f2061646472657373000000604082015260600190565b60208082526021908201527f546869732061646472657373206973206e6f7420536d617274636f6e747261636040820152601d60fa1b606082015260800190565b6020808252818101527f4d6178696d756d204661726d696e672076616c75652069732072656163686564604082015260600190565b6020808252602a908201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6040820152691bdd081cdd58d8d9595960b21b606082015260800190565b60208082526024908201527f506c65617365207761697420756e74696c20776169742074696d6520726561636040820152633432b21760e11b606082015260800190565b6020808252601f908201527f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e747261637400604082015260600190565b90815260200190565b600086825260a0602083015261258d60a0830187611f5a565b604083019590955250606081019290925260809091015292915050565b958652602086019490945260408501929092526060840152608083015260a082015260c00190565b600082198211156125e5576125e56127d6565b500190565b60008261260557634e487b7160e01b81526012600452602481fd5b500490565b80825b600180861161261c5750612647565b81870482111561262e5761262e6127d6565b8086161561263b57918102915b9490941c93800261260d565b94509492505050565b6000611a9d600019848460008261266957506001611779565b8161267657506000611779565b816001811461268c5760028114612696576126c3565b6001915050611779565b60ff8411156126a7576126a76127d6565b6001841b9150848211156126bd576126bd6127d6565b50611779565b5060208310610133831016604e8410600b84101617156126f6575081810a838111156126f1576126f16127d6565b611779565b612703848484600161260a565b808604821115612715576127156127d6565b02949350505050565b6000816000190483118215151615612738576127386127d6565b500290565b60008282101561274f5761274f6127d6565b500390565b60005b8381101561276f578181015183820152602001612757565b83811115611afe5750506000910152565b60028104600182168061279457607f821691505b602082108114156127b557634e487b7160e01b600052602260045260246000fd5b50919050565b60006000198214156127cf576127cf6127d6565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fdfea2646970667358221220c582c031845b8ecf41c54b6d5346aab421f413b1101201f0e832c5fb1e40030864736f6c634300080000330000000000000000000000002e6539edc3b76f1e21b71d214527faba875f70f3
Deployed Bytecode
0x6080604052600436106101405760003560e01c80638d5bc68c116100b6578063d4259bb61161006f578063d4259bb614610365578063d92ee2fe14610396578063e48f0de6146103b8578063f2fde38b146103d8578063f3feded8146103f8578063fa65069f1461041857610140565b80638d5bc68c146102b95780638da5cb5b146102ce5780638e878729146102f0578063a3d7418c14610310578063aeaa1c9414610330578063b88a802f1461035057610140565b80636386c1c7116101085780636386c1c7146101f957806370cc190e1461022f578063715018a61461024f5780637a3f6ca91461026457806383e0c8781461028457806385dece881461029957610140565b806305f74fe81461014557806314ea1e891461017b578063273cbaa014610190578063301f77cf146101b25780635f536c8d146101e4575b600080fd5b34801561015157600080fd5b50610165610160366004611d58565b610438565b604051610172919061256b565b60405180910390f35b61018e610189366004611d72565b610457565b005b34801561019c57600080fd5b506101a56107c1565b604051610172919061200d565b3480156101be57600080fd5b506101d26101cd366004611d58565b610823565b604051610172969594939291906125aa565b3480156101f057600080fd5b50610165610964565b34801561020557600080fd5b50610219610214366004611d58565b61096a565b6040516101729a99989796959493929190612092565b34801561023b57600080fd5b506101d261024a366004611e9d565b610abc565b34801561025b57600080fd5b5061018e610af0565b34801561027057600080fd5b5061018e61027f366004611da4565b610b6f565b34801561029057600080fd5b50610165610d11565b3480156102a557600080fd5b506101656102b4366004611d58565b610e0d565b3480156102c557600080fd5b5061018e610f58565b3480156102da57600080fd5b506102e36111b3565b6040516101729190611fa2565b3480156102fc57600080fd5b5061018e61030b366004611ecd565b6111c2565b34801561031c57600080fd5b5061016561032b366004611d58565b611280565b34801561033c57600080fd5b5061018e61034b366004611f0f565b61139c565b34801561035c57600080fd5b5061018e611403565b34801561037157600080fd5b50610385610380366004611d58565b611579565b604051610172959493929190612574565b3480156103a257600080fd5b506103ab611662565b604051610172919061205a565b3480156103c457600080fd5b506101656103d3366004611d72565b6116b9565b3480156103e457600080fd5b5061018e6103f3366004611d58565b611780565b34801561040457600080fd5b5061018e610413366004611da4565b611837565b34801561042457600080fd5b5061018e610433366004611d58565b61198a565b6001600160a01b0381166000908152600360205260409020545b919050565b6000610461611a6a565b905060006001600160a01b038516156104f557604051636eb1769f60e11b81526001600160a01b0386169063dd62ed3e906104a29085903090600401611fb6565b60206040518083038186803b1580156104ba57600080fd5b505afa1580156104ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104f29190611eb5565b90505b600061050083610e0d565b11156105275760405162461bcd60e51b815260040161051e90612134565b60405180910390fd5b6001600160a01b038083166000908152600260209081526040808320878452838352818420948a16808552600190935292204293916105ad5780600201543410156105845760405162461bcd60e51b815260040161051e9061234a565b80600301543411156105a85760405162461bcd60e51b815260040161051e90612471565b610615565b80600201548810156105d15760405162461bcd60e51b815260040161051e9061234a565b80600301548811156105f55760405162461bcd60e51b815260040161051e90612471565b878510156106155760405162461bcd60e51b815260040161051e90612225565b8254600160ff199091168117845583018790556002830180546001600160a01b0319166001600160a01b038b1617905560038301889055600483018490556106608462093a80611a6e565b60058401556001820154610675908590611a6e565b60078401558154610687908590611a6e565b6006840155600060088401819055805b6007548110156106fe57876001600160a01b0316600782815481106106cc57634e487b7160e01b600052603260045260246000fd5b6000918252602090912001546001600160a01b031614156106ec57600191505b806106f6816127bb565b915050610697565b508061075057600780546001810182556000919091527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c6880180546001600160a01b0319166001600160a01b0389161790555b6001600160a01b038a1615610774576107746001600160a01b038b1688308c611aa6565b888a6001600160a01b0316886001600160a01b03167f22357843602b631ef738ef8439659fbccae0f50c9f1a17abcedfafd2f785a0d660405160405180910390a450505050505050505050565b6060600680548060200260200160405190810160405280929190818152602001828054801561081957602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116107fb575b5050505050905090565b6001600160a01b0380821660009081526002602081815260408084206001808201548652858452828620948201549096168552918590528320815493948594859485948594859491939091859160ff1615151415610941575060038301546002830154600090610894908390611b04565b60018401549091506108a68282611b04565b91506108bf856003015483611b4990919063ffffffff16565b91506108cc826064611b49565b91506108e98460040154600a6108e29190612650565b8390611b49565b9150816108f781603c611b04565b61090384610e10611b04565b6109108562015180611b04565b61091d8662093a80611b04565b61092a8762278d00611b04565b9b509b509b509b509b509b5050505050505061095b565b600080600080600080995099509950995099509950505050505b91939550919395565b60075490565b6001600160a01b03808216600090815260026020818152604080842092830154909416835260019052918120825491928392839260609284928392839283928392839291839060ff166109bf575060006109c6565b5060038201545b8254600184015460028501546004860154600587015460ff909416936001600160a01b0390921691869186916109fd90603c611a6e565b89600601548a600701548b60080154868054610a1890612780565b80601f0160208091040260200160405190810160405280929190818152602001828054610a4490612780565b8015610a915780601f10610a6657610100808354040283529160200191610a91565b820191906000526020600020905b815481529060010190602001808311610a7457829003601f168201915b505050505096509c509c509c509c509c509c509c509c509c509c505050509193959799509193959799565b6000908152602081905260409020805460018201546002830154600384015460048501546005909501549395929491939092565b610af8611a6a565b6004546001600160a01b03908116911614610b255760405162461bcd60e51b815260040161051e906120fd565b6004546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600480546001600160a01b0319169055565b610b77611a6a565b6004546001600160a01b03908116911614610ba45760405162461bcd60e51b815260040161051e906120fd565b6001600160a01b03861615610c7357610bc5866001600160a01b0316611a64565b1515600114610be65760405162461bcd60e51b815260040161051e90612430565b856001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b158015610c1f57600080fd5b505afa158015610c33573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c579190611eb5565b610c735760405162461bcd60e51b815260040161051e90612381565b6001600160a01b038616600090815260016020818152604090922090810187905582519091610ca6918391850190611ca8565b50600281019490945550600383019190915560049091015550600680546001810182556000919091527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0180546001600160a01b0319166001600160a01b0392909216919091179055565b60008060005b600754811015610e075760006002600060078481548110610d4857634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b039081168452838201949094526040928301909120825161012081018452815460ff161515808252600183810154948301949094526002830154909516938101939093526003810154606084015260048101546080840152600581015460a0840152600681015460c0840152600781015460e0840152600801546101008301529092501415610df457610df18360016125d2565b92505b5080610dff816127bb565b915050610d17565b50905090565b6001600160a01b038082166000908152600260208181526040808420600180820154865285845282862094820154909616855294909152822060038401549293928490158015610e68575060028401546001600160a01b0316155b15610e7557506000610f4f565b60068401544290600090821115610ea05760048601546006870154610e9991611b74565b9050610eb3565b6004860154610eb0908390611b74565b90505b6003860154610ec29082611b04565b6001850154909350610ed48482611b04565b9350610eed866002015485611b0490919063ffffffff16565b9350610f0a8560040154600a610f039190612650565b8590611b49565b9350610f23866003015485611b4990919063ffffffff16565b9350610f30846064611b49565b9350610f49876008015485611b7490919063ffffffff16565b93505050505b95945050505050565b6000610f62611a6a565b6001600160a01b038116600090815260026020908152604080832060018082015485529284905292208254939450919260ff16151514610fb45760405162461bcd60e51b815260040161051e9061231d565b60008260070154421015611064576000610fdf83600401548560030154611b0490919063ffffffff16565b9050610ff8836005015482611b4990919063ffffffff16565b9050611005816064611b49565b60038501549091506110179082611b74565b60028501546001600160a01b03166000908152600360205260409020549092506110419082611a6e565b60028501546001600160a01b03166000908152600360205260409020555061106b565b5060038201545b825460ff191683556006830154421015611086574260068401555b60028301546001600160a01b03166110d4576040516001600160a01b0385169082156108fc029083906000818181858888f193505050501580156110ce573d6000803e3d6000fd5b506110ed565b60028301546110ed906001600160a01b03168583611ba0565b60006110f885610e0d565b9050801561112c57600554611117906001600160a01b03168683611ba0565b60088401546111269082611a6e565b60088501555b600384015460028501546040516001600160a01b03918216918816907feb825f41c5f1169295be69cb7a530de636e0a61af9e8ea0d1d68f462e424dc8990600090a460055460405182916001600160a01b0390811691908816907f70eb43c4a8ae8c40502dcf22436c509c28d6ff421cf07c491be56984bd98706890600090a45050505050565b6004546001600160a01b031690565b6111ca611a6a565b6004546001600160a01b039081169116146111f75760405162461bcd60e51b815260040161051e906120fd565b6008548061120757506001611215565b6112128160016125d2565b90505b600081815260208190526040812097885560018089019790975560028801959095556003870193909355600486019190915560059094019390935560088054928301815590527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30155565b6001600160a01b0380821660009081526002602081815260408084206001808201548652858452828620948201549096168552949091528220600384015492939284901580156112db575060028401546001600160a01b0316155b156112e857506000610f4f565b60068401544290600090821115611313576004860154600687015461130c91611b74565b9050611326565b6004860154611323908390611b74565b90505b60038601546113359082611b04565b60018501549093506113478482611b04565b9350611360866002015485611b0490919063ffffffff16565b93506113768560040154600a610f039190612650565b935061138f866003015485611b4990919063ffffffff16565b9350610f49846064611b49565b6113a4611a6a565b6004546001600160a01b039081169116146113d15760405162461bcd60e51b815260040161051e906120fd565b600096875260208790526040909620948555600185019390935560028401919091556003830155600482015560050155565b600061140d611a6a565b6001600160a01b0380821660009081526002602052604080822060055491516370a0823160e01b815294955093919216906370a0823190611452903090600401611fa2565b60206040518083038186803b15801561146a57600080fd5b505afa15801561147e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114a29190611eb5565b905060006114af84610e0d565b905042818310156114d25760405162461bcd60e51b815260040161051e90612290565b428460050154106114f55760405162461bcd60e51b815260040161051e906124f0565b60088401546115049083611a6e565b60088501556115168162093a80611a6e565b60058086019190915554611534906001600160a01b03168684611ba0565b60055460405183916001600160a01b0390811691908816907f70eb43c4a8ae8c40502dcf22436c509c28d6ff421cf07c491be56984bd98706890600090a45050505050565b6000606060008060008060016000886001600160a01b03166001600160a01b0316815260200190815260200160002090508060010154816000018260020154836003015484600401548380546115ce90612780565b80601f01602080910402602001604051908101604052809291908181526020018280546115fa90612780565b80156116475780601f1061161c57610100808354040283529160200191611647565b820191906000526020600020905b81548152906001019060200180831161162a57829003601f168201915b50505050509350955095509550955095505091939590929450565b6060600880548060200260200160405190810160405280929190818152602001828054801561081957602002820191906000526020600020905b81548152602001906001019080831161169c575050505050905090565b6000818152602081815260408083206001600160a01b0387168452600190925282208154429084906116ec908390611a6e565b905060006116fa8284611b74565b905060006117088983611b04565b600186015490915061171a8282611b04565b9150611733876002015483611b0490919063ffffffff16565b91506117498660040154600a6108e29190612650565b9150611762876003015483611b4990919063ffffffff16565b915061176f826064611b49565b9750505050505050505b9392505050565b611788611a6a565b6004546001600160a01b039081169116146117b55760405162461bcd60e51b815260040161051e906120fd565b6001600160a01b0381166117db5760405162461bcd60e51b815260040161051e906123f9565b6004546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600480546001600160a01b0319166001600160a01b0392909216919091179055565b61183f611a6a565b6004546001600160a01b0390811691161461186c5760405162461bcd60e51b815260040161051e906120fd565b6001600160a01b0386161561193b5761188d866001600160a01b0316611a64565b15156001146118ae5760405162461bcd60e51b815260040161051e90612430565b856001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b1580156118e757600080fd5b505afa1580156118fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061191f9190611eb5565b61193b5760405162461bcd60e51b815260040161051e90612381565b6001600160a01b03861660009081526001602081815260409092209081018790558251909161196e918391850190611ca8565b5060028101949094555060038301919091556004909101555050565b611992611a6a565b6004546001600160a01b039081169116146119bf5760405162461bcd60e51b815260040161051e906120fd565b6001600160a01b038116611a1e576004546001600160a01b03828116600090815260036020526040808220549051929093169280156108fc02929091818181858888f19350505050158015611a18573d6000803e3d6000fd5b50611a4a565b6004546001600160a01b03828116600081815260036020526040902054611a4a93919290911690611ba0565b6001600160a01b0316600090815260036020526040812055565b3b151590565b3390565b600080611a7b83856125d2565b905083811015611a9d5760405162461bcd60e51b815260040161051e90612182565b90505b92915050565b611afe846323b872dd60e01b858585604051602401611ac793929190611fd0565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152611bc4565b50505050565b600082611b1357506000611aa0565b6000611b1f838561271e565b905082611b2c85836125ea565b14611a9d5760405162461bcd60e51b815260040161051e906123b8565b6000808211611b6a5760405162461bcd60e51b815260040161051e906122e6565b611a9d82846125ea565b600082821115611b965760405162461bcd60e51b815260040161051e906121ee565b611a9d828461273d565b611bbf8363a9059cbb60e01b8484604051602401611ac7929190611ff4565b505050565b611bd6826001600160a01b0316611a64565b611bf25760405162461bcd60e51b815260040161051e90612534565b600080836001600160a01b031683604051611c0d9190611f86565b6000604051808303816000865af19150503d8060008114611c4a576040519150601f19603f3d011682016040523d82523d6000602084013e611c4f565b606091505b509150915081611c715760405162461bcd60e51b815260040161051e906121b9565b805115611afe5780806020019051810190611c8c9190611e7d565b611afe5760405162461bcd60e51b815260040161051e906124a6565b828054611cb490612780565b90600052602060002090601f016020900481019282611cd65760008555611d1c565b82601f10611cef57805160ff1916838001178555611d1c565b82800160010185558215611d1c579182015b82811115611d1c578251825591602001919060010190611d01565b50611d28929150611d2c565b5090565b5b80821115611d285760008155600101611d2d565b80356001600160a01b038116811461045257600080fd5b600060208284031215611d69578081fd5b611a9d82611d41565b600080600060608486031215611d86578182fd5b611d8f84611d41565b95602085013595506040909401359392505050565b60008060008060008060c08789031215611dbc578182fd5b611dc587611d41565b9550602080880135955060408801359450606088013593506080880135925060a088013567ffffffffffffffff80821115611dfe578384fd5b818a0191508a601f830112611e11578384fd5b813581811115611e2357611e236127ec565b604051601f8201601f1916810185018381118282101715611e4657611e466127ec565b60405281815283820185018d1015611e5c578586fd5b81858501868301378585838301015280955050505050509295509295509295565b600060208284031215611e8e578081fd5b81518015158114611a9d578182fd5b600060208284031215611eae578081fd5b5035919050565b600060208284031215611ec6578081fd5b5051919050565b60008060008060008060c08789031215611ee5578182fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b600080600080600080600060e0888a031215611f29578081fd5b505085359760208701359750604087013596606081013596506080810135955060a0810135945060c0013592509050565b60008151808452611f72816020860160208601612754565b601f01601f19169290920160200192915050565b60008251611f98818460208701612754565b9190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b0392831681529116602082015260400190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b03929092168252602082015260400190565b6020808252825182820181905260009190848201906040850190845b8181101561204e5783516001600160a01b031683529284019291840191600101612029565b50909695505050505050565b6020808252825182820181905260009190848201906040850190845b8181101561204e57835183529284019291840191600101612076565b8a15158152602081018a90526001600160a01b0389166040820152610140606082018190526000906120c68382018b611f5a565b6080840199909952505060a081019590955260c085019390935260e084019190915261010083015261012090910152949350505050565b60208082526017908201527f43616c6c6572206973206e6f7420746865206f776e6572000000000000000000604082015260600190565b6020808252602e908201527f506c6561736520636c61696d20796f7572207265776172642066726f6d20707260408201526d6576696f7573204661726d696e6760901b606082015260800190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b6020808252818101527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564604082015260600190565b6020808252601e908201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604082015260600190565b60208082526045908201527f496e73756666696369656e7420746f6b656e20617070726f76616c2062616c6160408201527f6e63652c20796f75206d75737420696e63726561736520796f757220616c6c6f60608201526477616e636560d81b608082015260a00190565b60208082526036908201527f506c65617365207761697420756e74696c2072657761726420706f6f6c206669604082015275363632b216103a393c9030b3b0b4b7103630ba32b91760511b606082015260800190565b6020808252601a908201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604082015260600190565b60208082526013908201527211985c9b481b9bdd081858dd1a5d99481e595d606a1b604082015260600190565b6020808252601e908201527f4d696e696d756d204661726d696e672076616c75652072657175697265640000604082015260600190565b6020808252601f908201527f546869732061646472657373206973206e6f7420455243323020546f6b656e00604082015260600190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b6020808252601d908201527f4e6577206f776e657220697320746865207a65726f2061646472657373000000604082015260600190565b60208082526021908201527f546869732061646472657373206973206e6f7420536d617274636f6e747261636040820152601d60fa1b606082015260800190565b6020808252818101527f4d6178696d756d204661726d696e672076616c75652069732072656163686564604082015260600190565b6020808252602a908201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6040820152691bdd081cdd58d8d9595960b21b606082015260800190565b60208082526024908201527f506c65617365207761697420756e74696c20776169742074696d6520726561636040820152633432b21760e11b606082015260800190565b6020808252601f908201527f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e747261637400604082015260600190565b90815260200190565b600086825260a0602083015261258d60a0830187611f5a565b604083019590955250606081019290925260809091015292915050565b958652602086019490945260408501929092526060840152608083015260a082015260c00190565b600082198211156125e5576125e56127d6565b500190565b60008261260557634e487b7160e01b81526012600452602481fd5b500490565b80825b600180861161261c5750612647565b81870482111561262e5761262e6127d6565b8086161561263b57918102915b9490941c93800261260d565b94509492505050565b6000611a9d600019848460008261266957506001611779565b8161267657506000611779565b816001811461268c5760028114612696576126c3565b6001915050611779565b60ff8411156126a7576126a76127d6565b6001841b9150848211156126bd576126bd6127d6565b50611779565b5060208310610133831016604e8410600b84101617156126f6575081810a838111156126f1576126f16127d6565b611779565b612703848484600161260a565b808604821115612715576127156127d6565b02949350505050565b6000816000190483118215151615612738576127386127d6565b500290565b60008282101561274f5761274f6127d6565b500390565b60005b8381101561276f578181015183820152602001612757565b83811115611afe5750506000910152565b60028104600182168061279457607f821691505b602082108114156127b557634e487b7160e01b600052602260045260246000fd5b50919050565b60006000198214156127cf576127cf6127d6565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fdfea2646970667358221220c582c031845b8ecf41c54b6d5346aab421f413b1101201f0e832c5fb1e40030864736f6c63430008000033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000002e6539edc3b76f1e21b71d214527faba875f70f3
-----Decoded View---------------
Arg [0] : YFDOTAddress (address): 0x2e6539edc3b76f1E21B71d214527FAbA875F70F3
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000002e6539edc3b76f1e21b71d214527faba875f70f3
Deployed Bytecode Sourcemap
9528:17153:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20088:111;;;;;;;;;;-1:-1:-1;20088:111:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16357:2191;;;;;;:::i;:::-;;:::i;:::-;;21056:101;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;24789:1090::-;;;;;;;;;;-1:-1:-1;24789:1090:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;:::i;20584:98::-;;;;;;;;;;;;;:::i;21686:821::-;;;;;;;;;;-1:-1:-1;21686:821:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;:::i;21277:397::-;;;;;;;;;;-1:-1:-1;21277:397:0;;;;;:::i;:::-;;:::i;12225:148::-;;;;;;;;;;;;;:::i;12632:727::-;;;;;;;;;;-1:-1:-1;12632:727:0;;;;;:::i;:::-;;:::i;20694:350::-;;;;;;;;;;;;;:::i;22519:1153::-;;;;;;;;;;-1:-1:-1;22519:1153:0;;;;;:::i;:::-;;:::i;18560:1516::-;;;;;;;;;;;;;:::i;12020:79::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;14059:694::-;;;;;;;;;;-1:-1:-1;14059:694:0;;;;;:::i;:::-;;:::i;23684:1093::-;;;;;;;;;;-1:-1:-1;23684:1093:0;;;;;:::i;:::-;;:::i;14765:485::-;;;;;;;;;;-1:-1:-1;14765:485:0;;;;;:::i;:::-;;:::i;15581:764::-;;;;;;;;;;;;;:::i;20211:361::-;;;;;;;;;;-1:-1:-1;20211:361:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;:::i;21169:96::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;25891:787::-;;;;;;;;;;-1:-1:-1;25891:787:0;;;;;:::i;:::-;;:::i;12385:235::-;;;;;;;;;;-1:-1:-1;12385:235:0;;;;;:::i;:::-;;:::i;13371:676::-;;;;;;;;;;-1:-1:-1;13371:676:0;;;;;:::i;:::-;;:::i;15262:307::-;;;;;;;;;;-1:-1:-1;15262:307:0;;;;;:::i;:::-;;:::i;20088:111::-;-1:-1:-1;;;;;20173:18:0;;20147:7;20173:18;;;:10;:18;;;;;;20088:111;;;;:::o;16357:2191::-;16473:17;16493:12;:10;:12::i;:::-;16473:32;-1:-1:-1;16516:20:0;-1:-1:-1;;;;;16550:29:0;;;16547:134;;16610:59;;-1:-1:-1;;;16610:59:0;;-1:-1:-1;;;;;16610:33:0;;;;;:59;;16644:9;;16663:4;;16610:59;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16595:74;;16547:134;16736:1;16704:29;16723:9;16704:18;:29::i;:::-;:33;16701:120;;;16753:56;;-1:-1:-1;;;16753:56:0;;;;;;;:::i;:::-;;;;;;;;16701:120;-1:-1:-1;;;;;16909:21:0;;;16841:13;16909:21;;;:10;:21;;;;;;;;16966:18;;;;;;;;;17022:30;;;;;;:13;:30;;;;;16857:15;;16966:18;17073:547;;17142:3;:15;;;17129:9;:28;;17121:71;;;;-1:-1:-1;;;17121:71:0;;;;;;;:::i;:::-;17228:3;:15;;;17215:9;:28;;17207:73;;;;-1:-1:-1;;;17207:73:0;;;;;;;:::i;:::-;17073:547;;;17337:3;:15;;;17319:14;:33;;17311:76;;;;-1:-1:-1;;;17311:76:0;;;;;;;:::i;:::-;17428:3;:15;;;17410:14;:33;;17402:78;;;;-1:-1:-1;;;17402:78:0;;;;;;;:::i;:::-;17519:14;17503:12;:30;;17495:113;;;;-1:-1:-1;;;17495:113:0;;;;;;;:::i;:::-;17640:21;;17657:4;-1:-1:-1;;17640:21:0;;;;;;;17672:17;;:30;;;17713:17;;;:35;;-1:-1:-1;;;;;;17713:35:0;-1:-1:-1;;;;;17713:35:0;;;;;17759:15;;;:32;;;17802:13;;;:21;;;17850:17;17802:21;17860:6;17850:9;:17::i;:::-;17834:13;;;:33;17907:16;;;;17897:27;;:5;;:9;:27::i;:::-;17878:16;;;:46;17959:14;;17949:25;;:5;;:9;:25::i;:::-;17935:11;;;:39;17999:1;17985:11;;;:15;;;17999:1;18055:153;18075:11;:18;18071:22;;18055:153;;;18135:9;-1:-1:-1;;;;;18117:27:0;:11;18129:1;18117:14;;;;;;-1:-1:-1;;;18117:14:0;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;18117:14:0;:27;18114:83;;;18177:4;18164:17;;18114:83;18095:3;;;;:::i;:::-;;;;18055:153;;;-1:-1:-1;18231:19:0;18228:77;;18266:11;:27;;;;;;;-1:-1:-1;18266:27:0;;;;;;;;-1:-1:-1;;;;;;18266:27:0;-1:-1:-1;;;;;18266:27:0;;;;;18228:77;-1:-1:-1;;;;;18328:29:0;;;18325:142;;18373:82;-1:-1:-1;;;;;18373:40:0;;18414:9;18433:4;18440:14;18373:40;:82::i;:::-;18525:14;18508:15;-1:-1:-1;;;;;18492:48:0;18497:9;-1:-1:-1;;;;;18492:48:0;;;;;;;;;;;16357:2191;;;;;;;;;;:::o;21056:101::-;21100:16;21135:14;21128:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;21128:21:0;;;;;;;;;;;;;;;;;;;;;;;21056:101;:::o;24789:1090::-;-1:-1:-1;;;;;24944:24:0;;;24859:7;24944:24;;;:10;:24;;;;;;;;25011:17;;;;;25004:25;;;;;;;;25081:17;;;;;;;25067:32;;;;;;;;25156:14;;24859:7;;;;;;;;;;;;24944:24;;25067:32;;24859:7;;25156:14;;:22;;;25153:709;;;-1:-1:-1;25211:15:0;;;;25277:17;;;;25241:14;;25258:37;;25211:15;;25258:18;:37::i;:::-;25334:15;;;;25241:54;;-1:-1:-1;25373:25:0;25241:54;25334:15;25373:10;:25::i;:::-;25364:34;;25422:29;25433:3;:17;;;25422:6;:10;;:29;;;;:::i;:::-;25413:38;-1:-1:-1;25475:15:0;25413:38;25486:3;25475:10;:15::i;:::-;25466:24;;25514:32;25529:3;:16;;;25525:2;:20;;;;:::i;:::-;25514:6;;:10;:32::i;:::-;25505:41;-1:-1:-1;25505:41:0;25625:14;25505:41;25636:2;25625:10;:14::i;:::-;25658:16;:6;25669:4;25658:10;:16::i;:::-;25693:17;:6;25704:5;25693:10;:17::i;:::-;25729:18;:6;25740;25729:10;:18::i;:::-;25766:19;:6;25777:7;25766:10;:19::i;:::-;25575:225;;;;;;;;;;;;;;;;;;;;25153:709;25838:1;25840;25842;25844;25846;25848;25831:19;;;;;;;;;;;;;;;;24789:1090;;;;;;;;:::o;20584:98::-;20656:11;:18;20584:98;:::o;21686:821::-;-1:-1:-1;;;;;21875:24:0;;;21749:4;21875:24;;;:10;:24;;;;;;;;21951:17;;;;;;;21937:32;;:13;:32;;;;;22028:14;;21749:4;;;;;;21770:13;;21749:4;;;;;;;;;;;;21875:24;21749:4;;22028:14;;22025:139;;-1:-1:-1;22086:1:0;22025:139;;;-1:-1:-1;22137:15:0;;;;22025:139;22195:14;;;22224:17;;;22256;;;;22349:13;;;;22377;;;;22195:14;;;;;-1:-1:-1;;;;;22256:17:0;;;;22288:3;;22318:16;;22377:28;;22395:9;22377:17;:28::i;:::-;22420:3;:11;;;22446:3;:16;;;22477:3;:11;;;22174:325;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21686:821;;;;;;;;;;;:::o;21277:397::-;21339:7;21428:18;;;;;;;;;;21478:14;;21507:16;;;;21538:17;;;;21570;;;;21602:19;;;;21636;;;;;21478:14;;21507:16;;21538:17;;21570;;21277:397::o;12225:148::-;12157:12;:10;:12::i;:::-;12147:6;;-1:-1:-1;;;;;12147:6:0;;;:22;;;12139:58;;;;-1:-1:-1;;;12139:58:0;;;;;;;:::i;:::-;12316:6:::1;::::0;12295:40:::1;::::0;12332:1:::1;::::0;-1:-1:-1;;;;;12316:6:0::1;::::0;12295:40:::1;::::0;12332:1;;12295:40:::1;12346:6;:19:::0;;-1:-1:-1;;;;;;12346:19:0::1;::::0;;12225:148::o;12632:727::-;12157:12;:10;:12::i;:::-;12147:6;;-1:-1:-1;;;;;12147:6:0;;;:22;;;12139:58;;;;-1:-1:-1;;;12139:58:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12812:24:0;::::1;::::0;12809:227:::1;;12860:23;:10;-1:-1:-1::0;;;;;12860:21:0::1;;:23::i;:::-;:31;;12887:4;12860:31;12852:76;;;;-1:-1:-1::0;;;12852:76:0::1;;;;;;;:::i;:::-;12958:10;-1:-1:-1::0;;;;;12951:30:0::1;;:32;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12943:81;;;;-1:-1:-1::0;;;12943:81:0::1;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13083:25:0;::::1;13056:24;13083:25:::0;;;:13:::1;:25;::::0;;;;;;;13119:15;;::::1;:29:::0;;;13159:30;;13083:25;;13159:30:::1;::::0;13083:25;;13159:30;::::1;::::0;::::1;:::i;:::-;-1:-1:-1::0;13200:15:0::1;::::0;::::1;:25:::0;;;;-1:-1:-1;13236:15:0::1;::::0;::::1;:25:::0;;;;13272:16:::1;::::0;;::::1;:27:::0;-1:-1:-1;13320:14:0::1;:31:::0;;::::1;::::0;::::1;::::0;;-1:-1:-1;13320:31:0;;;;;::::1;::::0;;-1:-1:-1;;;;;;13320:31:0::1;-1:-1:-1::0;;;;;13320:31:0;;;::::1;::::0;;;::::1;::::0;;12632:727::o;20694:350::-;20741:7;20760:18;20793:6;20789:220;20809:11;:18;20805:22;;20789:220;;;20848:20;20871:10;:26;20882:11;20894:1;20882:14;;;;;;-1:-1:-1;;;20882:14:0;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;20882:14:0;;;20871:26;;;;;;;;;;;;;;;;20848:49;;;;;;;;;;;;;;;;20882:14;20848:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20882:14;20848:49;;;;;-1:-1:-1;20915:20:0;20912:86;;;20968:14;:10;20981:1;20968:14;:::i;:::-;20955:27;;20912:86;-1:-1:-1;20829:3:0;;;;:::i;:::-;;;;20789:220;;;-1:-1:-1;21026:10:0;-1:-1:-1;20694:350:0;:::o;22519:1153::-;-1:-1:-1;;;;;22634:24:0;;;22589:7;22634:24;;;:10;:24;;;;;;;;22701:17;;;;;22694:25;;;;;;;;22771:17;;;;;;;22757:32;;;;;;;;22849:15;;;;22589:7;;22634:24;22589:7;;22849:20;:55;;;;-1:-1:-1;22873:17:0;;;;-1:-1:-1;;;;;22873:17:0;:31;22849:55;22846:794;;;-1:-1:-1;22930:1:0;22846:794;;;23050:11;;;;22978:15;;22962:13;;23042:19;;23039:173;;;23108:13;;;;23092:11;;;;:30;;:15;:30::i;:::-;23081:41;;23039:173;;;23182:13;;;;23172:24;;:5;;:9;:24::i;:::-;23161:35;;23039:173;23236:15;;;;:29;;23256:8;23236:19;:29::i;:::-;23304:15;;;;23226:39;;-1:-1:-1;23344:26:0;23226:39;23304:15;23344:11;:26::i;:::-;23334:36;;23395:30;23407:3;:17;;;23395:7;:11;;:30;;;;:::i;:::-;23385:40;;23450:33;23466:3;:16;;;23462:2;:20;;;;:::i;:::-;23450:7;;:11;:33::i;:::-;23440:43;;23508:30;23520:3;:17;;;23508:7;:11;;:30;;;;:::i;:::-;23498:40;-1:-1:-1;23563:16:0;23498:40;23575:3;23563:11;:16::i;:::-;23553:26;;23604:24;23616:3;:11;;;23604:7;:11;;:24;;;;:::i;:::-;23594:34;;22846:794;;;;23657:7;22519:1153;-1:-1:-1;;;;;22519:1153:0:o;18560:1516::-;18606:17;18626:12;:10;:12::i;:::-;-1:-1:-1;;;;;18675:21:0;;18649:23;18675:21;;;:10;:21;;;;;;;;18739:17;;;;;18732:25;;;;;;;;18786:14;;18606:32;;-1:-1:-1;18675:21:0;;18786:14;;:22;;;18778:55;;;;-1:-1:-1;;;18778:55:0;;;;;;;:::i;:::-;18854:19;18905:3;:16;;;18887:15;:34;18884:420;;;18937:14;18954:40;18974:3;:19;;;18954:3;:15;;;:19;;:40;;;;:::i;:::-;18937:57;;19018:31;19029:3;:19;;;19018:6;:10;;:31;;;;:::i;:::-;19009:40;-1:-1:-1;19073:15:0;19009:40;19084:3;19073:10;:15::i;:::-;19117;;;;19064:24;;-1:-1:-1;19117:27:0;;19064:24;19117:19;:27::i;:::-;19202:17;;;;-1:-1:-1;;;;;19202:17:0;19191:29;;;;:10;:29;;;;;;19103:41;;-1:-1:-1;19191:41:0;;19225:6;19191:33;:41::i;:::-;19170:17;;;;-1:-1:-1;;;;;19170:17:0;19159:29;;;;:10;:29;;;;;:73;-1:-1:-1;18884:420:0;;;-1:-1:-1;19277:15:0;;;;18884:420;19324:22;;-1:-1:-1;;19324:22:0;;;19378:11;;;;19360:15;:29;19357:89;;;19419:15;19405:11;;;:29;19357:89;19469:17;;;;-1:-1:-1;;;;;19469:17:0;19466:195;;19516:40;;-1:-1:-1;;;;;19516:27:0;;;:40;;;;;19544:11;;19516:40;;;;19544:11;19516:27;:40;;;;;;;;;;;;;;;;;;;;;19466:195;;;19594:17;;;;19587:62;;-1:-1:-1;;;;;19594:17:0;19626:9;19637:11;19587:38;:62::i;:::-;19681:23;19707:29;19726:9;19707:18;:29::i;:::-;19681:55;-1:-1:-1;19760:19:0;;19757:171;;19802:11;;19795:60;;-1:-1:-1;;;;;19802:11:0;19828:9;19839:15;19795:32;:60::i;:::-;19884:11;;;;:32;;19900:15;19884;:32::i;:::-;19870:11;;;:46;19757:171;19990:15;;;;19971:17;;;;19953:53;;-1:-1:-1;;;;;19971:17:0;;;;19953:53;;;;;19971:17;;19953:53;20039:11;;20022:46;;20052:15;;-1:-1:-1;;;;;20039:11:0;;;;20022:46;;;;;;20039:11;;20022:46;18560:1516;;;;;:::o;12020:79::-;12085:6;;-1:-1:-1;;;;;12085:6:0;12020:79;:::o;14059:694::-;12157:12;:10;:12::i;:::-;12147:6;;-1:-1:-1;;;;;12147:6:0;;;:22;;;12139:58;;;;-1:-1:-1;;;12139:58:0;;;;;;;:::i;:::-;14248:11:::1;:18:::0;14280:14;14277:114:::1;;-1:-1:-1::0;14322:1:0::1;14277:114;;;14366:13;:9:::0;14378:1:::1;14366:13;:::i;:::-;14354:25;;14277:114;14411:22;14436:17:::0;;;::::1;::::0;;;;;;14464:31;;;14506:16:::1;::::0;;::::1;:37:::0;;;;14554:17:::1;::::0;::::1;:28:::0;;;;14593:17:::1;::::0;::::1;:28:::0;;;;14632:19:::1;::::0;::::1;:27:::0;;;;14670:19:::1;::::0;;::::1;:27:::0;;;;14718:11:::1;:27:::0;;;;::::1;::::0;;;;;::::1;::::0;14059:694::o;23684:1093::-;-1:-1:-1;;;;;23798:24:0;;;23753:7;23798:24;;;:10;:24;;;;;;;;23865:17;;;;;23858:25;;;;;;;;23935:17;;;;;;;23921:32;;;;;;;;24003:15;;;;23753:7;;23798:24;23753:7;;24003:20;:55;;;;-1:-1:-1;24027:17:0;;;;-1:-1:-1;;;;;24027:17:0;:31;24003:55;24000:745;;;-1:-1:-1;24084:1:0;24000:745;;;24204:11;;;;24132:15;;24116:13;;24196:19;;24193:173;;;24262:13;;;;24246:11;;;;:30;;:15;:30::i;:::-;24235:41;;24193:173;;;24336:13;;;;24326:24;;:5;;:9;:24::i;:::-;24315:35;;24193:173;24390:15;;;;:29;;24410:8;24390:19;:29::i;:::-;24458:15;;;;24380:39;;-1:-1:-1;24498:26:0;24380:39;24458:15;24498:11;:26::i;:::-;24488:36;;24549:30;24561:3;:17;;;24549:7;:11;;:30;;;;:::i;:::-;24539:40;;24604:33;24620:3;:16;;;24616:2;:20;;;;:::i;24604:33::-;24594:43;;24662:30;24674:3;:17;;;24662:7;:11;;:30;;;;:::i;:::-;24652:40;-1:-1:-1;24717:16:0;24652:40;24729:3;24717:11;:16::i;14765:485::-;12157:12;:10;:12::i;:::-;12147:6;;-1:-1:-1;;;;;12147:6:0;;;:22;;;12139:58;;;;-1:-1:-1;;;12139:58:0;;;;;;;:::i;:::-;14955:22:::1;14980:18:::0;;;::::1;::::0;;;;;;;15009:31;;;15051:16:::1;::::0;::::1;:37:::0;;;;15099:17:::1;::::0;::::1;:28:::0;;;;15138:17:::1;::::0;::::1;:28:::0;15177:19:::1;::::0;::::1;:27:::0;15215:19:::1;;:27:::0;14765:485::o;15581:764::-;15629:17;15649:12;:10;:12::i;:::-;-1:-1:-1;;;;;15698:21:0;;;15672:23;15698:21;;;:10;:21;;;;;;15764:11;;15757:44;;-1:-1:-1;;;15757:44:0;;15629:32;;-1:-1:-1;15698:21:0;15672:23;;15764:11;;15757:29;;:44;;15795:4;;15757:44;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15730:71;;15812:17;15832:29;15851:9;15832:18;:29::i;:::-;15812:49;-1:-1:-1;15888:15:0;15932:29;;;;15924:96;;;;-1:-1:-1;;;15924:96:0;;;;;;;:::i;:::-;16055:15;16039:3;:13;;;:31;16031:80;;;;-1:-1:-1;;;16031:80:0;;;;;;;:::i;:::-;16146:11;;;;:26;;16162:9;16146:15;:26::i;:::-;16132:11;;;:40;16199:17;:5;16209:6;16199:9;:17::i;:::-;16183:13;;;;:33;;;;16234:11;16227:54;;-1:-1:-1;;;;;16234:11:0;16260:9;16271;16227:32;:54::i;:::-;16314:11;;16297:40;;16327:9;;-1:-1:-1;;;;;16314:11:0;;;;16297:40;;;;;;16314:11;;16297:40;15581:764;;;;;:::o;20211:361::-;20275:7;20284:13;20299:7;20308;20317:4;20333:24;20360:13;:25;20374:10;-1:-1:-1;;;;;20360:25:0;-1:-1:-1;;;;;20360:25:0;;;;;;;;;;;;20333:52;;20417:3;:15;;;20447:3;:15;;20477:3;:15;;;20507:3;:15;;;20537:3;:16;;;20396:168;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20211:361;;;;;;;:::o;21169:96::-;21214:13;21246:11;21239:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21169:96;:::o;25891:787::-;26004:7;26048:18;;;;;;;;;;;-1:-1:-1;;;;;26104:28:0;;;;:13;:28;;;;;26231:14;;26173:15;;26004:7;;26217:29;;26173:15;;26217:13;:29::i;:::-;26199:47;-1:-1:-1;26257:16:0;26276:22;26199:47;26288:9;26276:11;:22::i;:::-;26257:41;-1:-1:-1;26309:15:0;26327:28;:14;26257:41;26327:18;:28::i;:::-;26390:15;;;;26309:46;;-1:-1:-1;26426:26:0;26309:46;26390:15;26426:11;:26::i;:::-;26416:36;;26473:30;26485:3;:17;;;26473:7;:11;;:30;;;;:::i;:::-;26463:40;;26524:33;26540:3;:16;;;26536:2;:20;;;;:::i;26524:33::-;26514:43;;26578:30;26590:3;:17;;;26578:7;:11;;:30;;;;:::i;:::-;26568:40;-1:-1:-1;26629:16:0;26568:40;26641:3;26629:11;:16::i;:::-;26619:26;-1:-1:-1;;;;;;;;25891:787:0;;;;;;:::o;12385:235::-;12157:12;:10;:12::i;:::-;12147:6;;-1:-1:-1;;;;;12147:6:0;;;:22;;;12139:58;;;;-1:-1:-1;;;12139:58:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12474:22:0;::::1;12466:64;;;;-1:-1:-1::0;;;12466:64:0::1;;;;;;;:::i;:::-;12567:6;::::0;12546:38:::1;::::0;-1:-1:-1;;;;;12546:38:0;;::::1;::::0;12567:6:::1;::::0;12546:38:::1;::::0;12567:6:::1;::::0;12546:38:::1;12595:6;:17:::0;;-1:-1:-1;;;;;;12595:17:0::1;-1:-1:-1::0;;;;;12595:17:0;;;::::1;::::0;;;::::1;::::0;;12385:235::o;13371:676::-;12157:12;:10;:12::i;:::-;12147:6;;-1:-1:-1;;;;;12147:6:0;;;:22;;;12139:58;;;;-1:-1:-1;;;12139:58:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13552:24:0;::::1;::::0;13549:227:::1;;13600:23;:10;-1:-1:-1::0;;;;;13600:21:0::1;;:23::i;:::-;:31;;13627:4;13600:31;13592:76;;;;-1:-1:-1::0;;;13592:76:0::1;;;;;;;:::i;:::-;13698:10;-1:-1:-1::0;;;;;13691:30:0::1;;:32;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13683:81;;;;-1:-1:-1::0;;;13683:81:0::1;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13823:25:0;::::1;13796:24;13823:25:::0;;;:13:::1;:25;::::0;;;;;;;13859:15;;::::1;:29:::0;;;13899:30;;13823:25;;13899:30:::1;::::0;13823:25;;13899:30;::::1;::::0;::::1;:::i;:::-;-1:-1:-1::0;13940:15:0::1;::::0;::::1;:25:::0;;;;-1:-1:-1;13976:15:0::1;::::0;::::1;:25:::0;;;;14012:16:::1;::::0;;::::1;:27:::0;-1:-1:-1;;13371:676:0:o;15262:307::-;12157:12;:10;:12::i;:::-;12147:6;;-1:-1:-1;;;;;12147:6:0;;;:22;;;12139:58;;;;-1:-1:-1;;;12139:58:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;15341:20:0;::::1;15338:181;;15385:6;::::0;-1:-1:-1;;;;;15402:18:0;;::::1;15385:6;15402:18:::0;;;:10:::1;:18;::::0;;;;;;15377:44;;15385:6;;;::::1;::::0;15377:44;::::1;;;::::0;15402:18;;15377:44;15385:6;15377:44;15402:18;15385:6;15377:44;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;15338:181;;;15480:6;::::0;-1:-1:-1;;;;;15488:18:0;;::::1;15480:6;15488:18:::0;;;:10:::1;:18;::::0;;;;;15452:55:::1;::::0;15488:18;;15480:6;;::::1;::::0;15452:27:::1;:55::i;:::-;-1:-1:-1::0;;;;;15539:18:0::1;15560:1;15539:18:::0;;;:10:::1;:18;::::0;;;;:22;15262:307::o;473:422::-;840:20;879:8;;;473:422::o;104:98::-;184:10;104:98;:::o;5473:179::-;5531:7;;5563:5;5567:1;5563;:5;:::i;:::-;5551:17;;5592:1;5587;:6;;5579:46;;;;-1:-1:-1;;;5579:46:0;;;;;;;:::i;:::-;5643:1;-1:-1:-1;5473:179:0;;;;;:::o;7872:204::-;7973:95;7992:5;8022:27;;;8051:4;8057:2;8061:5;7999:68;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;7999:68:0;;;;;;;;;;;;;;-1:-1:-1;;;;;7999:68:0;-1:-1:-1;;;;;;7999:68:0;;;;;;;;;;7973:18;:95::i;:::-;7872:204;;;;:::o;5834:220::-;5892:7;5916:6;5912:20;;-1:-1:-1;5931:1:0;5924:8;;5912:20;5943:9;5955:5;5959:1;5955;:5;:::i;:::-;5943:17;-1:-1:-1;5988:1:0;5979:5;5983:1;5943:17;5979:5;:::i;:::-;:10;5971:56;;;;-1:-1:-1;;;5971:56:0;;;;;;;:::i;6066:153::-;6124:7;6156:1;6152;:5;6144:44;;;;-1:-1:-1;;;6144:44:0;;;;;;;:::i;:::-;6206:5;6210:1;6206;:5;:::i;5664:158::-;5722:7;5755:1;5750;:6;;5742:49;;;;-1:-1:-1;;;5742:49:0;;;;;;;:::i;:::-;5809:5;5813:1;5809;:5;:::i;7688:176::-;7771:85;7790:5;7820:23;;;7845:2;7849:5;7797:58;;;;;;;;;:::i;7771:85::-;7688:176;;;:::o;9070:451::-;9158:27;9166:5;-1:-1:-1;;;;;9158:25:0;;:27::i;:::-;9150:71;;;;-1:-1:-1;;;9150:71:0;;;;;;;:::i;:::-;9233:12;9247:23;9282:5;-1:-1:-1;;;;;9274:19:0;9294:4;9274:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9232:67;;;;9318:7;9310:52;;;;-1:-1:-1;;;9310:52:0;;;;;;;:::i;:::-;9379:17;;:21;9375:139;;9436:10;9425:30;;;;;;;;;;;;:::i;:::-;9417:85;;;;-1:-1:-1;;;9417:85:0;;;;;;;:::i;-1:-1:-1:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;14:175:1;84:20;;-1:-1:-1;;;;;133:31:1;;123:42;;113:2;;179:1;176;169:12;194:198;;306:2;294:9;285:7;281:23;277:32;274:2;;;327:6;319;312:22;274:2;355:31;376:9;355:31;:::i;397:334::-;;;;543:2;531:9;522:7;518:23;514:32;511:2;;;564:6;556;549:22;511:2;592:31;613:9;592:31;:::i;:::-;582:41;670:2;655:18;;642:32;;-1:-1:-1;721:2:1;706:18;;;693:32;;501:230;-1:-1:-1;;;501:230:1:o;736:1309::-;;;;;;;943:3;931:9;922:7;918:23;914:33;911:2;;;965:6;957;950:22;911:2;993:31;1014:9;993:31;:::i;:::-;983:41;;1043:2;1092;1081:9;1077:18;1064:32;1054:42;;1143:2;1132:9;1128:18;1115:32;1105:42;;1194:2;1183:9;1179:18;1166:32;1156:42;;1245:3;1234:9;1230:19;1217:33;1207:43;;1301:3;1290:9;1286:19;1273:33;1325:18;1366:2;1358:6;1355:14;1352:2;;;1387:6;1379;1372:22;1352:2;1430:6;1419:9;1415:22;1405:32;;1475:7;1468:4;1464:2;1460:13;1456:27;1446:2;;1502:6;1494;1487:22;1446:2;1543;1530:16;1565:2;1561;1558:10;1555:2;;;1571:18;;:::i;:::-;1620:2;1614:9;1689:2;1670:13;;-1:-1:-1;;1666:27:1;1654:40;;1650:49;;1714:18;;;1734:22;;;1711:46;1708:2;;;1760:18;;:::i;:::-;1796:2;1789:22;1820:18;;;1857:11;;;1853:20;;1850:33;-1:-1:-1;1847:2:1;;;1901:6;1893;1886:22;1847:2;1962;1957;1953;1949:11;1944:2;1936:6;1932:15;1919:46;2007:6;2002:2;1997;1989:6;1985:15;1981:24;1974:40;2033:6;2023:16;;;;;;;901:1144;;;;;;;;:::o;2050:297::-;;2170:2;2158:9;2149:7;2145:23;2141:32;2138:2;;;2191:6;2183;2176:22;2138:2;2228:9;2222:16;2281:5;2274:13;2267:21;2260:5;2257:32;2247:2;;2308:6;2300;2293:22;2352:190;;2464:2;2452:9;2443:7;2439:23;2435:32;2432:2;;;2485:6;2477;2470:22;2432:2;-1:-1:-1;2513:23:1;;2422:120;-1:-1:-1;2422:120:1:o;2547:194::-;;2670:2;2658:9;2649:7;2645:23;2641:32;2638:2;;;2691:6;2683;2676:22;2638:2;-1:-1:-1;2719:16:1;;2628:113;-1:-1:-1;2628:113:1:o;2746:533::-;;;;;;;2943:3;2931:9;2922:7;2918:23;2914:33;2911:2;;;2965:6;2957;2950:22;2911:2;-1:-1:-1;;2993:23:1;;;3063:2;3048:18;;3035:32;;-1:-1:-1;3114:2:1;3099:18;;3086:32;;3165:2;3150:18;;3137:32;;-1:-1:-1;3216:3:1;3201:19;;3188:33;;-1:-1:-1;3268:3:1;3253:19;3240:33;;-1:-1:-1;2901:378:1;-1:-1:-1;2901:378:1:o;3284:602::-;;;;;;;;3498:3;3486:9;3477:7;3473:23;3469:33;3466:2;;;3520:6;3512;3505:22;3466:2;-1:-1:-1;;3548:23:1;;;3618:2;3603:18;;3590:32;;-1:-1:-1;3669:2:1;3654:18;;3641:32;;3720:2;3705:18;;3692:32;;-1:-1:-1;3771:3:1;3756:19;;3743:33;;-1:-1:-1;3823:3:1;3808:19;;3795:33;;-1:-1:-1;3875:3:1;3860:19;3847:33;;-1:-1:-1;3456:430:1;-1:-1:-1;3456:430:1:o;3891:260::-;;3973:5;3967:12;4000:6;3995:3;3988:19;4016:63;4072:6;4065:4;4060:3;4056:14;4049:4;4042:5;4038:16;4016:63;:::i;:::-;4133:2;4112:15;-1:-1:-1;;4108:29:1;4099:39;;;;4140:4;4095:50;;3943:208;-1:-1:-1;;3943:208:1:o;4156:274::-;;4323:6;4317:13;4339:53;4385:6;4380:3;4373:4;4365:6;4361:17;4339:53;:::i;:::-;4408:16;;;;;4293:137;-1:-1:-1;;4293:137:1:o;4435:203::-;-1:-1:-1;;;;;4599:32:1;;;;4581:51;;4569:2;4554:18;;4536:102::o;4643:304::-;-1:-1:-1;;;;;4873:15:1;;;4855:34;;4925:15;;4920:2;4905:18;;4898:43;4805:2;4790:18;;4772:175::o;4952:375::-;-1:-1:-1;;;;;5210:15:1;;;5192:34;;5262:15;;;;5257:2;5242:18;;5235:43;5309:2;5294:18;;5287:34;;;;5142:2;5127:18;;5109:218::o;5332:274::-;-1:-1:-1;;;;;5524:32:1;;;;5506:51;;5588:2;5573:18;;5566:34;5494:2;5479:18;;5461:145::o;5611:661::-;5782:2;5834:21;;;5904:13;;5807:18;;;5926:22;;;5611:661;;5782:2;6005:15;;;;5979:2;5964:18;;;5611:661;6051:195;6065:6;6062:1;6059:13;6051:195;;;6130:13;;-1:-1:-1;;;;;6126:39:1;6114:52;;6221:15;;;;6186:12;;;;6162:1;6080:9;6051:195;;;-1:-1:-1;6263:3:1;;5762:510;-1:-1:-1;;;;;;5762:510:1:o;6277:635::-;6448:2;6500:21;;;6570:13;;6473:18;;;6592:22;;;6277:635;;6448:2;6671:15;;;;6645:2;6630:18;;;6277:635;6717:169;6731:6;6728:1;6725:13;6717:169;;;6792:13;;6780:26;;6861:15;;;;6826:12;;;;6753:1;6746:9;6717:169;;6917:925;7341:14;;7334:22;7316:41;;7388:2;7373:18;;7366:34;;;-1:-1:-1;;;;;7436:32:1;;7431:2;7416:18;;7409:60;7304:3;7500:2;7485:18;;7478:30;;;6917:925;;7525:47;7553:18;;;7545:6;7525:47;:::i;:::-;7603:3;7588:19;;7581:35;;;;-1:-1:-1;;7647:3:1;7632:19;;7625:35;;;;7691:3;7676:19;;7669:35;;;;7735:3;7720:19;;7713:35;;;;7779:3;7764:19;;7757:35;7823:3;7808:19;;;7801:35;7517:55;7284:558;-1:-1:-1;;;;7284:558:1:o;7847:347::-;8049:2;8031:21;;;8088:2;8068:18;;;8061:30;8127:25;8122:2;8107:18;;8100:53;8185:2;8170:18;;8021:173::o;8199:410::-;8401:2;8383:21;;;8440:2;8420:18;;;8413:30;8479:34;8474:2;8459:18;;8452:62;-1:-1:-1;;;8545:2:1;8530:18;;8523:44;8599:3;8584:19;;8373:236::o;8614:351::-;8816:2;8798:21;;;8855:2;8835:18;;;8828:30;8894:29;8889:2;8874:18;;8867:57;8956:2;8941:18;;8788:177::o;8970:356::-;9172:2;9154:21;;;9191:18;;;9184:30;9250:34;9245:2;9230:18;;9223:62;9317:2;9302:18;;9144:182::o;9331:354::-;9533:2;9515:21;;;9572:2;9552:18;;;9545:30;9611:32;9606:2;9591:18;;9584:60;9676:2;9661:18;;9505:180::o;9690:473::-;9892:2;9874:21;;;9931:2;9911:18;;;9904:30;9970:34;9965:2;9950:18;;9943:62;10041:34;10036:2;10021:18;;10014:62;-1:-1:-1;;;10107:3:1;10092:19;;10085:36;10153:3;10138:19;;9864:299::o;10168:418::-;10370:2;10352:21;;;10409:2;10389:18;;;10382:30;10448:34;10443:2;10428:18;;10421:62;-1:-1:-1;;;10514:2:1;10499:18;;10492:52;10576:3;10561:19;;10342:244::o;10591:350::-;10793:2;10775:21;;;10832:2;10812:18;;;10805:30;10871:28;10866:2;10851:18;;10844:56;10932:2;10917:18;;10765:176::o;10946:343::-;11148:2;11130:21;;;11187:2;11167:18;;;11160:30;-1:-1:-1;;;11221:2:1;11206:18;;11199:49;11280:2;11265:18;;11120:169::o;11294:354::-;11496:2;11478:21;;;11535:2;11515:18;;;11508:30;11574:32;11569:2;11554:18;;11547:60;11639:2;11624:18;;11468:180::o;11653:355::-;11855:2;11837:21;;;11894:2;11874:18;;;11867:30;11933:33;11928:2;11913:18;;11906:61;11999:2;11984:18;;11827:181::o;12013:397::-;12215:2;12197:21;;;12254:2;12234:18;;;12227:30;12293:34;12288:2;12273:18;;12266:62;-1:-1:-1;;;12359:2:1;12344:18;;12337:31;12400:3;12385:19;;12187:223::o;12415:353::-;12617:2;12599:21;;;12656:2;12636:18;;;12629:30;12695:31;12690:2;12675:18;;12668:59;12759:2;12744:18;;12589:179::o;12773:397::-;12975:2;12957:21;;;13014:2;12994:18;;;12987:30;13053:34;13048:2;13033:18;;13026:62;-1:-1:-1;;;13119:2:1;13104:18;;13097:31;13160:3;13145:19;;12947:223::o;13175:356::-;13377:2;13359:21;;;13396:18;;;13389:30;13455:34;13450:2;13435:18;;13428:62;13522:2;13507:18;;13349:182::o;13536:406::-;13738:2;13720:21;;;13777:2;13757:18;;;13750:30;13816:34;13811:2;13796:18;;13789:62;-1:-1:-1;;;13882:2:1;13867:18;;13860:40;13932:3;13917:19;;13710:232::o;13947:400::-;14149:2;14131:21;;;14188:2;14168:18;;;14161:30;14227:34;14222:2;14207:18;;14200:62;-1:-1:-1;;;14293:2:1;14278:18;;14271:34;14337:3;14322:19;;14121:226::o;14352:355::-;14554:2;14536:21;;;14593:2;14573:18;;;14566:30;14632:33;14627:2;14612:18;;14605:61;14698:2;14683:18;;14526:181::o;14712:177::-;14858:25;;;14846:2;14831:18;;14813:76::o;14894:509::-;;15155:6;15144:9;15137:25;15198:3;15193:2;15182:9;15178:18;15171:31;15219:48;15262:3;15251:9;15247:19;15239:6;15219:48;:::i;:::-;15298:2;15283:18;;15276:34;;;;-1:-1:-1;15341:2:1;15326:18;;15319:34;;;;15384:3;15369:19;;;15362:35;15211:56;15127:276;-1:-1:-1;;15127:276:1:o;15408:535::-;15695:25;;;15751:2;15736:18;;15729:34;;;;15794:2;15779:18;;15772:34;;;;15837:2;15822:18;;15815:34;15880:3;15865:19;;15858:35;15924:3;15909:19;;15902:35;15682:3;15667:19;;15649:294::o;15948:128::-;;16019:1;16015:6;16012:1;16009:13;16006:2;;;16025:18;;:::i;:::-;-1:-1:-1;16061:9:1;;15996:80::o;16081:217::-;;16147:1;16137:2;;-1:-1:-1;;;16172:31:1;;16226:4;16223:1;16216:15;16254:4;16179:1;16244:15;16137:2;-1:-1:-1;16283:9:1;;16127:171::o;16303:453::-;16399:6;16422:5;16436:314;16485:1;16522:2;16512:8;16509:16;16499:2;;16529:5;;;16499:2;16570:4;16565:3;16561:14;16555:4;16552:24;16549:2;;;16579:18;;:::i;:::-;16629:2;16619:8;16615:17;16612:2;;;16644:16;;;;16612:2;16723:17;;;;;16683:15;;16436:314;;;16380:376;;;;;;;:::o;16761:139::-;;16850:44;-1:-1:-1;;16877:8:1;16871:4;16905:922;16989:8;16979:2;;-1:-1:-1;17030:1:1;17044:5;;16979:2;17078:4;17068:2;;-1:-1:-1;17115:1:1;17129:5;;17068:2;17160:4;17178:1;17173:59;;;;17246:1;17241:183;;;;17153:271;;17173:59;17203:1;17194:10;;17217:5;;;17241:183;17278:3;17268:8;17265:17;17262:2;;;17285:18;;:::i;:::-;17341:1;17331:8;17327:16;17318:25;;17369:3;17362:5;17359:14;17356:2;;;17376:18;;:::i;:::-;17409:5;;;17153:271;;17508:2;17498:8;17495:16;17489:3;17483:4;17480:13;17476:36;17470:2;17460:8;17457:16;17452:2;17446:4;17443:12;17439:35;17436:77;17433:2;;;-1:-1:-1;17545:19:1;;;17580:14;;;17577:2;;;17597:18;;:::i;:::-;17630:5;;17433:2;17677:42;17715:3;17705:8;17699:4;17696:1;17677:42;:::i;:::-;17752:6;17747:3;17743:16;17734:7;17731:29;17728:2;;;17763:18;;:::i;:::-;17801:20;;16969:858;-1:-1:-1;;;;16969:858:1:o;17832:168::-;;17938:1;17934;17930:6;17926:14;17923:1;17920:21;17915:1;17908:9;17901:17;17897:45;17894:2;;;17945:18;;:::i;:::-;-1:-1:-1;17985:9:1;;17884:116::o;18005:125::-;;18073:1;18070;18067:8;18064:2;;;18078:18;;:::i;:::-;-1:-1:-1;18115:9:1;;18054:76::o;18135:258::-;18207:1;18217:113;18231:6;18228:1;18225:13;18217:113;;;18307:11;;;18301:18;18288:11;;;18281:39;18253:2;18246:10;18217:113;;;18348:6;18345:1;18342:13;18339:2;;;-1:-1:-1;;18383:1:1;18365:16;;18358:27;18188:205::o;18398:380::-;18483:1;18473:12;;18530:1;18520:12;;;18541:2;;18595:4;18587:6;18583:17;18573:27;;18541:2;18648;18640:6;18637:14;18617:18;18614:38;18611:2;;;18694:10;18689:3;18685:20;18682:1;18675:31;18729:4;18726:1;18719:15;18757:4;18754:1;18747:15;18611:2;;18453:325;;;:::o;18783:135::-;;-1:-1:-1;;18843:17:1;;18840:2;;;18863:18;;:::i;:::-;-1:-1:-1;18910:1:1;18899:13;;18830:88::o;18923:127::-;18984:10;18979:3;18975:20;18972:1;18965:31;19015:4;19012:1;19005:15;19039:4;19036:1;19029:15;19055:127;19116:10;19111:3;19107:20;19104:1;19097:31;19147:4;19144:1;19137:15;19171:4;19168:1;19161:15
Swarm Source
ipfs://c582c031845b8ecf41c54b6d5346aab421f413b1101201f0e832c5fb1e400308
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.