Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Website Down
Overview
Max Total Supply
1,000,000 GASG
Holders
771 (0.00%)
Market
Price
$0.00 @ 0.000000 ETH
Onchain Market Cap
$22.19
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
131.4575 GASGValue
$0.00 ( ~0 Eth) [0.0131%]Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
Gasgains
Compiler Version
v0.7.4+commit.3f05b770
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2021-01-22 */ // SPDX-License-Identifier: MIT pragma solidity >=0.6.0 <0.8.0; 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 SafeMath { 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) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } 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) { return div(a, b, "SafeMath: division by zero"); } function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { // Solidity only automatically asserts when dividing by 0 require(b > 0, errorMessage); uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, "SafeMath: modulo by zero"); } function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } } abstract contract Context { function _msgSender() internal view virtual returns (address payable) { 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; } } abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: 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), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } contract Gasgains is Ownable, IERC20 { using SafeMath for uint256; mapping (address => uint256) private _balances; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => Lock[]) _locks; uint256 private _totalSupply = 1000000 ether; string private _name = "Gasgains"; string private _symbol = "GASG"; uint8 private _decimals = 18; uint256 private _percentFees = 5; event Deposit(address indexed depositor, uint256 depositAmount, uint256 timestamp, uint256 unlockTimestamp); struct Lock { uint256 lockAmount; uint256 unlockTime; } constructor() { _balances[owner()] = _totalSupply; } function name() public view returns (string memory) { return _name; } function symbol() public view returns (string memory) { return _symbol; } function decimals() public view returns (uint8) { return _decimals; } function totalSupply() public view override returns (uint256) { return _totalSupply; } function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function getContractBalance() public view returns (uint256) { return _balances[address(this)]; } function getFeeAmount(uint256 amount) public view returns (uint256) { return amount.mul(_percentFees).div(100); } function getUnlockableAmount(address account) public view returns (uint256) { Lock[] memory locks = _locks[account]; uint256 unlockableAmount = 0; for (uint i=0; i<locks.length; i++) { if (block.timestamp >= locks[i].unlockTime) { unlockableAmount = unlockableAmount.add(locks[i].lockAmount); } } return unlockableAmount; } function transfer(address recipient, uint256 amount) public virtual override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view virtual override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public virtual override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom(address sender, address recipient, uint256 amount) public virtual override returns (bool) { _transfer(sender, recipient, amount); _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance")); return true; } function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue)); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero")); return true; } function lock(uint256 amount) public virtual { address user = _msgSender(); uint256 lockAmount = amount; uint256 timestamp = block.timestamp; uint256 unlockTimestamp = timestamp.add(30 days); _depositForLock(user, lockAmount); Lock memory currentLock = Lock( { lockAmount: amount, unlockTime: unlockTimestamp } ); _locks[user].push(currentLock); emit Deposit(user, lockAmount, timestamp, unlockTimestamp); } function unlock() public virtual { uint256 unlockableAmount = getUnlockableAmount(_msgSender()); require(unlockableAmount > 0, "No unlockable Tokens"); Lock[] storage locks = _locks[_msgSender()]; uint256 withdrawAmount = 0; // loop just in case somehow the order gets messed up, would be possible with single assignment from index 0 too for (uint i=0; i<locks.length; i++) { if (block.timestamp >= locks[i].unlockTime) { withdrawAmount = withdrawAmount.add(locks[i].lockAmount); locks = _removeIndex(i, locks); break; } } _locks[_msgSender()] = locks; _withdrawFromLock(_msgSender(), withdrawAmount); } function _removeIndex(uint256 index, Lock[] storage array) internal virtual returns(Lock[] storage) { if (index >= array.length) { return array; } for (uint i=index; i<array.length-1; i++) { array[i] = array[i+1]; } array.pop(); return array; } function _depositForLock(address sender, uint256 amount) internal virtual { _balances[sender] = _balances[sender].sub(amount, "ERC20: lock amount exceeds balance"); _balances[address(this)] = _balances[address(this)].add(amount); } function _withdrawFromLock(address withdrawer, uint256 amount) internal virtual { _balances[address(this)] = _balances[address(this)].sub(amount); _balances[withdrawer] = _balances[withdrawer].add(amount); } function _transfer(address sender, address recipient, uint256 amount) internal virtual { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); _beforeTokenTransfer(sender, recipient, amount); uint256 transferFee = getFeeAmount(amount); uint256 amountAfterFee = amount.sub(transferFee); _balances[sender] = _balances[sender].sub(amount, "ERC20: transfer amount exceeds balance"); _balances[recipient] = _balances[recipient].add(amountAfterFee); _balances[owner()] = _balances[owner()].add(transferFee); emit Transfer(sender, recipient, amount); } function _mint(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: mint to the zero address"); _beforeTokenTransfer(address(0), account, amount); _totalSupply = _totalSupply.add(amount); _balances[account] = _balances[account].add(amount); emit Transfer(address(0), account, amount); } function _burn(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: burn from the zero address"); _beforeTokenTransfer(account, address(0), amount); _balances[account] = _balances[account].sub(amount, "ERC20: burn amount exceeds balance"); _totalSupply = _totalSupply.sub(amount); emit Transfer(account, address(0), amount); } function _approve(address owner, address spender, uint256 amount) internal virtual { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _setupDecimals(uint8 decimals_) internal virtual { _decimals = decimals_; } function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual { } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"depositor","type":"address"},{"indexed":false,"internalType":"uint256","name":"depositAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"unlockTimestamp","type":"uint256"}],"name":"Deposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getContractBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"getFeeAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"getUnlockableAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"lock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unlock","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
608060405269d3c21bcecceda10000006004556040518060400160405280600881526020017f4761736761696e73000000000000000000000000000000000000000000000000815250600590805190602001906200005f92919062000219565b506040518060400160405280600481526020017f474153470000000000000000000000000000000000000000000000000000000081525060069080519060200190620000ad92919062000219565b506012600760006101000a81548160ff021916908360ff1602179055506005600855348015620000dc57600080fd5b506000620000ef620001e860201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35060045460016000620001a4620001f060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620002cf565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b828054600181600116156101000203166002900490600052602060002090601f0160209004810192826200025157600085556200029d565b82601f106200026c57805160ff19168380011785556200029d565b828001600101855582156200029d579182015b828111156200029c5782518255916020019190600101906200027f565b5b509050620002ac9190620002b0565b5090565b5b80821115620002cb576000816000905550600101620002b1565b5090565b61221f80620002df6000396000f3fe608060405234801561001057600080fd5b50600436106101215760003560e01c80638da5cb5b116100ad578063a9059cbb11610071578063a9059cbb1461051b578063dd4670641461057f578063dd62ed3e146105ad578063e680be4d14610625578063f2fde38b1461067d57610121565b80638da5cb5b146103b457806395d89b41146103e85780639704122c1461046b578063a457c2d7146104ad578063a69df4b51461051157610121565b8063313ce567116100f4578063313ce567146102af57806339509351146102d05780636f9fb98a1461033457806370a0823114610352578063715018a6146103aa57610121565b806306fdde0314610126578063095ea7b3146101a957806318160ddd1461020d57806323b872dd1461022b575b600080fd5b61012e6106c1565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561016e578082015181840152602081019050610153565b50505050905090810190601f16801561019b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101f5600480360360408110156101bf57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610763565b60405180821515815260200191505060405180910390f35b610215610781565b6040518082815260200191505060405180910390f35b6102976004803603606081101561024157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061078b565b60405180821515815260200191505060405180910390f35b6102b7610864565b604051808260ff16815260200191505060405180910390f35b61031c600480360360408110156102e657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061087b565b60405180821515815260200191505060405180910390f35b61033c61092e565b6040518082815260200191505060405180910390f35b6103946004803603602081101561036857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610975565b6040518082815260200191505060405180910390f35b6103b26109be565b005b6103bc610b44565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6103f0610b6d565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610430578082015181840152602081019050610415565b50505050905090810190601f16801561045d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6104976004803603602081101561048157600080fd5b8101908080359060200190929190505050610c0f565b6040518082815260200191505060405180910390f35b6104f9600480360360408110156104c357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c40565b60405180821515815260200191505060405180910390f35b610519610d0d565b005b6105676004803603604081101561053157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610ed2565b60405180821515815260200191505060405180910390f35b6105ab6004803603602081101561059557600080fd5b8101908080359060200190929190505050610ef0565b005b61060f600480360360408110156105c357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061102e565b6040518082815260200191505060405180910390f35b6106676004803603602081101561063b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506110b5565b6040518082815260200191505060405180910390f35b6106bf6004803603602081101561069357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506111d4565b005b606060058054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156107595780601f1061072e57610100808354040283529160200191610759565b820191906000526020600020905b81548152906001019060200180831161073c57829003601f168201915b5050505050905090565b60006107776107706113df565b84846113e7565b6001905092915050565b6000600454905090565b60006107988484846115de565b610859846107a46113df565b6108548560405180606001604052806028815260200161215460289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061080a6113df565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461196c9092919063ffffffff16565b6113e7565b600190509392505050565b6000600760009054906101000a900460ff16905090565b60006109246108886113df565b8461091f85600260006108996113df565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a2c90919063ffffffff16565b6113e7565b6001905092915050565b6000600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905090565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6109c66113df565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a86576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060068054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610c055780601f10610bda57610100808354040283529160200191610c05565b820191906000526020600020905b815481529060010190602001808311610be857829003601f168201915b5050505050905090565b6000610c396064610c2b60085485611ab490919063ffffffff16565b611b3a90919063ffffffff16565b9050919050565b6000610d03610c4d6113df565b84610cfe856040518060600160405280602581526020016121c56025913960026000610c776113df565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461196c9092919063ffffffff16565b6113e7565b6001905092915050565b6000610d1f610d1a6113df565b6110b5565b905060008111610d97576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f4e6f20756e6c6f636b61626c6520546f6b656e7300000000000000000000000081525060200191505060405180910390fd5b600060036000610da56113df565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506000805b8280549050811015610e6557828181548110610dfd57fe5b9060005260206000209060020201600101544210610e5857610e45838281548110610e2457fe5b90600052602060002090600202016000015483611a2c90919063ffffffff16565b9150610e518184611b84565b9250610e65565b8080600101915050610de5565b508160036000610e736113df565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020908054610ebb929190611fd2565b50610ecd610ec76113df565b82611c47565b505050565b6000610ee6610edf6113df565b84846115de565b6001905092915050565b6000610efa6113df565b9050600082905060004290506000610f1e62278d0083611a2c90919063ffffffff16565b9050610f2a8484611d75565b610f3261203e565b6040518060400160405280878152602001838152509050600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819080600181540180825580915050600190039060005260206000209060020201600090919091909150600082015181600001556020820151816001015550508473ffffffffffffffffffffffffffffffffffffffff167f36af321ec8d3c75236829c5317affd40ddb308863a1236d2d277a4025cccee1e85858560405180848152602001838152602001828152602001935050505060405180910390a2505050505050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60006060600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805480602002602001604051908101604052809291908181526020016000905b8282101561115e57838290600052602060002090600202016040518060400160405290816000820154815260200160018201548152505081526020019060010190611118565b5050505090506000805b82518110156111c95782818151811061117d57fe5b60200260200101516020015142106111bc576111b983828151811061119e57fe5b60200260200101516000015183611a2c90919063ffffffff16565b91505b8080600101915050611168565b508092505050919050565b6111dc6113df565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461129c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611322576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806120a36026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561146d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806121a16024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156114f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806120c96022913960400191505060405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611664576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602581526020018061217c6025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156116ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806120806023913960400191505060405180910390fd5b6116f5838383611ebd565b600061170082610c0f565b905060006117178284611ec290919063ffffffff16565b90506117858360405180606001604052806026815260200161210d60269139600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461196c9092919063ffffffff16565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061181a81600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a2c90919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506118b6826001600061186d610b44565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a2c90919063ffffffff16565b600160006118c2610b44565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a35050505050565b6000838311158290611a19576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156119de5780820151818401526020810190506119c3565b50505050905090810190601f168015611a0b5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b600080828401905083811015611aaa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600080831415611ac75760009050611b34565b6000828402905082848281611ad857fe5b0414611b2f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806121336021913960400191505060405180910390fd5b809150505b92915050565b6000611b7c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611f0c565b905092915050565b600081805490508310611b9957819050611c41565b60008390505b6001838054905003811015611c0957826001820181548110611bbd57fe5b9060005260206000209060020201838281548110611bd757fe5b906000526020600020906002020160008201548160000155600182015481600101559050508080600101915050611b9f565b5081805480611c1457fe5b60019003818190600052602060002090600202016000808201600090556001820160009055505090558190505b92915050565b611c9981600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ec290919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611d2e81600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a2c90919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b611de1816040518060600160405280602281526020016120eb60229139600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461196c9092919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611e7681600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a2c90919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b505050565b6000611f0483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061196c565b905092915050565b60008083118290611fb8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611f7d578082015181840152602081019050611f62565b50505050905090810190601f168015611faa5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581611fc457fe5b049050809150509392505050565b82805482825590600052602060002090600202810192821561202d5760005260206000209160020282015b8281111561202c5782826000820154816000015560018201548160010155505091600201919060020190611ffd565b5b50905061203a9190612058565b5090565b604051806040016040528060008152602001600081525090565b5b8082111561207b57600080820160009055600182016000905550600201612059565b509056fe45524332303a207472616e7366657220746f20746865207a65726f20616464726573734f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a206c6f636b20616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220fbc401410bb554a8416dcdc0d8ba91f277526fc8f499fafffa1edbc02b7120b164736f6c63430007040033
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101215760003560e01c80638da5cb5b116100ad578063a9059cbb11610071578063a9059cbb1461051b578063dd4670641461057f578063dd62ed3e146105ad578063e680be4d14610625578063f2fde38b1461067d57610121565b80638da5cb5b146103b457806395d89b41146103e85780639704122c1461046b578063a457c2d7146104ad578063a69df4b51461051157610121565b8063313ce567116100f4578063313ce567146102af57806339509351146102d05780636f9fb98a1461033457806370a0823114610352578063715018a6146103aa57610121565b806306fdde0314610126578063095ea7b3146101a957806318160ddd1461020d57806323b872dd1461022b575b600080fd5b61012e6106c1565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561016e578082015181840152602081019050610153565b50505050905090810190601f16801561019b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101f5600480360360408110156101bf57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610763565b60405180821515815260200191505060405180910390f35b610215610781565b6040518082815260200191505060405180910390f35b6102976004803603606081101561024157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061078b565b60405180821515815260200191505060405180910390f35b6102b7610864565b604051808260ff16815260200191505060405180910390f35b61031c600480360360408110156102e657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061087b565b60405180821515815260200191505060405180910390f35b61033c61092e565b6040518082815260200191505060405180910390f35b6103946004803603602081101561036857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610975565b6040518082815260200191505060405180910390f35b6103b26109be565b005b6103bc610b44565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6103f0610b6d565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610430578082015181840152602081019050610415565b50505050905090810190601f16801561045d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6104976004803603602081101561048157600080fd5b8101908080359060200190929190505050610c0f565b6040518082815260200191505060405180910390f35b6104f9600480360360408110156104c357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c40565b60405180821515815260200191505060405180910390f35b610519610d0d565b005b6105676004803603604081101561053157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610ed2565b60405180821515815260200191505060405180910390f35b6105ab6004803603602081101561059557600080fd5b8101908080359060200190929190505050610ef0565b005b61060f600480360360408110156105c357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061102e565b6040518082815260200191505060405180910390f35b6106676004803603602081101561063b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506110b5565b6040518082815260200191505060405180910390f35b6106bf6004803603602081101561069357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506111d4565b005b606060058054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156107595780601f1061072e57610100808354040283529160200191610759565b820191906000526020600020905b81548152906001019060200180831161073c57829003601f168201915b5050505050905090565b60006107776107706113df565b84846113e7565b6001905092915050565b6000600454905090565b60006107988484846115de565b610859846107a46113df565b6108548560405180606001604052806028815260200161215460289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061080a6113df565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461196c9092919063ffffffff16565b6113e7565b600190509392505050565b6000600760009054906101000a900460ff16905090565b60006109246108886113df565b8461091f85600260006108996113df565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a2c90919063ffffffff16565b6113e7565b6001905092915050565b6000600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905090565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6109c66113df565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a86576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060068054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610c055780601f10610bda57610100808354040283529160200191610c05565b820191906000526020600020905b815481529060010190602001808311610be857829003601f168201915b5050505050905090565b6000610c396064610c2b60085485611ab490919063ffffffff16565b611b3a90919063ffffffff16565b9050919050565b6000610d03610c4d6113df565b84610cfe856040518060600160405280602581526020016121c56025913960026000610c776113df565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461196c9092919063ffffffff16565b6113e7565b6001905092915050565b6000610d1f610d1a6113df565b6110b5565b905060008111610d97576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f4e6f20756e6c6f636b61626c6520546f6b656e7300000000000000000000000081525060200191505060405180910390fd5b600060036000610da56113df565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506000805b8280549050811015610e6557828181548110610dfd57fe5b9060005260206000209060020201600101544210610e5857610e45838281548110610e2457fe5b90600052602060002090600202016000015483611a2c90919063ffffffff16565b9150610e518184611b84565b9250610e65565b8080600101915050610de5565b508160036000610e736113df565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020908054610ebb929190611fd2565b50610ecd610ec76113df565b82611c47565b505050565b6000610ee6610edf6113df565b84846115de565b6001905092915050565b6000610efa6113df565b9050600082905060004290506000610f1e62278d0083611a2c90919063ffffffff16565b9050610f2a8484611d75565b610f3261203e565b6040518060400160405280878152602001838152509050600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819080600181540180825580915050600190039060005260206000209060020201600090919091909150600082015181600001556020820151816001015550508473ffffffffffffffffffffffffffffffffffffffff167f36af321ec8d3c75236829c5317affd40ddb308863a1236d2d277a4025cccee1e85858560405180848152602001838152602001828152602001935050505060405180910390a2505050505050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60006060600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805480602002602001604051908101604052809291908181526020016000905b8282101561115e57838290600052602060002090600202016040518060400160405290816000820154815260200160018201548152505081526020019060010190611118565b5050505090506000805b82518110156111c95782818151811061117d57fe5b60200260200101516020015142106111bc576111b983828151811061119e57fe5b60200260200101516000015183611a2c90919063ffffffff16565b91505b8080600101915050611168565b508092505050919050565b6111dc6113df565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461129c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611322576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806120a36026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561146d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806121a16024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156114f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806120c96022913960400191505060405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611664576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602581526020018061217c6025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156116ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806120806023913960400191505060405180910390fd5b6116f5838383611ebd565b600061170082610c0f565b905060006117178284611ec290919063ffffffff16565b90506117858360405180606001604052806026815260200161210d60269139600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461196c9092919063ffffffff16565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061181a81600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a2c90919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506118b6826001600061186d610b44565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a2c90919063ffffffff16565b600160006118c2610b44565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a35050505050565b6000838311158290611a19576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156119de5780820151818401526020810190506119c3565b50505050905090810190601f168015611a0b5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b600080828401905083811015611aaa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600080831415611ac75760009050611b34565b6000828402905082848281611ad857fe5b0414611b2f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806121336021913960400191505060405180910390fd5b809150505b92915050565b6000611b7c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611f0c565b905092915050565b600081805490508310611b9957819050611c41565b60008390505b6001838054905003811015611c0957826001820181548110611bbd57fe5b9060005260206000209060020201838281548110611bd757fe5b906000526020600020906002020160008201548160000155600182015481600101559050508080600101915050611b9f565b5081805480611c1457fe5b60019003818190600052602060002090600202016000808201600090556001820160009055505090558190505b92915050565b611c9981600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ec290919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611d2e81600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a2c90919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b611de1816040518060600160405280602281526020016120eb60229139600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461196c9092919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611e7681600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a2c90919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b505050565b6000611f0483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061196c565b905092915050565b60008083118290611fb8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611f7d578082015181840152602081019050611f62565b50505050905090810190601f168015611faa5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581611fc457fe5b049050809150509392505050565b82805482825590600052602060002090600202810192821561202d5760005260206000209160020282015b8281111561202c5782826000820154816000015560018201548160010155505091600201919060020190611ffd565b5b50905061203a9190612058565b5090565b604051806040016040528060008152602001600081525090565b5b8082111561207b57600080820160009055600182016000905550600201612059565b509056fe45524332303a207472616e7366657220746f20746865207a65726f20616464726573734f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a206c6f636b20616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220fbc401410bb554a8416dcdc0d8ba91f277526fc8f499fafffa1edbc02b7120b164736f6c63430007040033
Deployed Bytecode Sourcemap
3719:7609:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4459:83;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6002:169;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;4736:100;;;:::i;:::-;;;;;;;;;;;;;;;;;;;6179:321;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;4645:83;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;6508:218;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;4971:110;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4844:119;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3312:148;;;:::i;:::-;;3098:79;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;4550:87;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5089:127;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;6734:269;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;7580:790;;;:::i;:::-;;5660:175;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;7011:561;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;5843:151;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5224:428;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3468:244;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;4459:83;4496:13;4529:5;4522:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4459:83;:::o;6002:169::-;6085:4;6102:39;6111:12;:10;:12::i;:::-;6125:7;6134:6;6102:8;:39::i;:::-;6159:4;6152:11;;6002:169;;;;:::o;4736:100::-;4789:7;4816:12;;4809:19;;4736:100;:::o;6179:321::-;6285:4;6302:36;6312:6;6320:9;6331:6;6302:9;:36::i;:::-;6349:121;6358:6;6366:12;:10;:12::i;:::-;6380:89;6418:6;6380:89;;;;;;;;;;;;;;;;;:11;:19;6392:6;6380:19;;;;;;;;;;;;;;;:33;6400:12;:10;:12::i;:::-;6380:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6349:8;:121::i;:::-;6488:4;6481:11;;6179:321;;;;;:::o;4645:83::-;4686:5;4711:9;;;;;;;;;;;4704:16;;4645:83;:::o;6508:218::-;6596:4;6613:83;6622:12;:10;:12::i;:::-;6636:7;6645:50;6684:10;6645:11;:25;6657:12;:10;:12::i;:::-;6645:25;;;;;;;;;;;;;;;:34;6671:7;6645:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;6613:8;:83::i;:::-;6714:4;6707:11;;6508:218;;;;:::o;4971:110::-;5022:7;5049:9;:24;5067:4;5049:24;;;;;;;;;;;;;;;;5042:31;;4971:110;:::o;4844:119::-;4910:7;4937:9;:18;4947:7;4937:18;;;;;;;;;;;;;;;;4930:25;;4844:119;;;:::o;3312:148::-;3235:12;:10;:12::i;:::-;3225:22;;:6;;;;;;;;;;:22;;;3217:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3419:1:::1;3382:40;;3403:6;::::0;::::1;;;;;;;;3382:40;;;;;;;;;;;;3450:1;3433:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;3312:148::o:0;3098:79::-;3136:7;3163:6;;;;;;;;;;;3156:13;;3098:79;:::o;4550:87::-;4589:13;4622:7;4615:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4550:87;:::o;5089:127::-;5148:7;5175:33;5204:3;5175:24;5186:12;;5175:6;:10;;:24;;;;:::i;:::-;:28;;:33;;;;:::i;:::-;5168:40;;5089:127;;;:::o;6734:269::-;6827:4;6844:129;6853:12;:10;:12::i;:::-;6867:7;6876:96;6915:15;6876:96;;;;;;;;;;;;;;;;;:11;:25;6888:12;:10;:12::i;:::-;6876:25;;;;;;;;;;;;;;;:34;6902:7;6876:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;6844:8;:129::i;:::-;6991:4;6984:11;;6734:269;;;;:::o;7580:790::-;7624:24;7651:33;7671:12;:10;:12::i;:::-;7651:19;:33::i;:::-;7624:60;;7722:1;7703:16;:20;7695:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7777:20;7800:6;:20;7807:12;:10;:12::i;:::-;7800:20;;;;;;;;;;;;;;;7777:43;;7831:22;7997:6;7992:270;8009:5;:12;;;;8007:1;:14;7992:270;;;8066:5;8072:1;8066:8;;;;;;;;;;;;;;;;;;:19;;;8047:15;:38;8043:208;;8123:39;8142:5;8148:1;8142:8;;;;;;;;;;;;;;;;;;:19;;;8123:14;:18;;:39;;;;:::i;:::-;8106:56;;8189:22;8202:1;8205:5;8189:12;:22::i;:::-;8181:30;;8230:5;;8043:208;8023:3;;;;;;;7992:270;;;;8297:5;8274:6;:20;8281:12;:10;:12::i;:::-;8274:20;;;;;;;;;;;;;;;:28;;;;;;;;:::i;:::-;;8315:47;8333:12;:10;:12::i;:::-;8347:14;8315:17;:47::i;:::-;7580:790;;;:::o;5660:175::-;5746:4;5763:42;5773:12;:10;:12::i;:::-;5787:9;5798:6;5763:9;:42::i;:::-;5823:4;5816:11;;5660:175;;;;:::o;7011:561::-;7067:12;7082;:10;:12::i;:::-;7067:27;;7105:18;7126:6;7105:27;;7143:17;7163:15;7143:35;;7189:23;7215:22;7229:7;7215:9;:13;;:22;;;;:::i;:::-;7189:48;;7250:33;7266:4;7272:10;7250:15;:33::i;:::-;7296:23;;:::i;:::-;7322:128;;;;;;;;7372:6;7322:128;;;;7409:15;7322:128;;;7296:154;;7463:6;:12;7470:4;7463:12;;;;;;;;;;;;;;;7481:11;7463:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7519:4;7511:53;;;7525:10;7537:9;7548:15;7511:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7011:561;;;;;;:::o;5843:151::-;5932:7;5959:11;:18;5971:5;5959:18;;;;;;;;;;;;;;;:27;5978:7;5959:27;;;;;;;;;;;;;;;;5952:34;;5843:151;;;;:::o;5224:428::-;5291:7;5311:19;5333:6;:15;5340:7;5333:15;;;;;;;;;;;;;;;5311:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5359:24;5405:6;5400:201;5417:5;:12;5415:1;:14;5400:201;;;5474:5;5480:1;5474:8;;;;;;;;;;;;;;:19;;;5455:15;:38;5451:139;;5533:41;5554:5;5560:1;5554:8;;;;;;;;;;;;;;:19;;;5533:16;:20;;:41;;;;:::i;:::-;5514:60;;5451:139;5431:3;;;;;;;5400:201;;;;5628:16;5621:23;;;;5224:428;;;:::o;3468:244::-;3235:12;:10;:12::i;:::-;3225:22;;:6;;;;;;;;;;:22;;;3217:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3577:1:::1;3557:22;;:8;:22;;;;3549:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3667:8;3638:38;;3659:6;::::0;::::1;;;;;;;;3638:38;;;;;;;;;;;;3696:8;3687:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;3468:244:::0;:::o;2415:106::-;2468:15;2503:10;2496:17;;2415:106;:::o;10773:346::-;10892:1;10875:19;;:5;:19;;;;10867:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10973:1;10954:21;;:7;:21;;;;10946:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11057:6;11027:11;:18;11039:5;11027:18;;;;;;;;;;;;;;;:27;11046:7;11027:27;;;;;;;;;;;;;;;:36;;;;11095:7;11079:32;;11088:5;11079:32;;;11104:6;11079:32;;;;;;;;;;;;;;;;;;10773:346;;;:::o;9221:732::-;9345:1;9327:20;;:6;:20;;;;9319:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9429:1;9408:23;;:9;:23;;;;9400:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9484:47;9505:6;9513:9;9524:6;9484:20;:47::i;:::-;9544:19;9566:20;9579:6;9566:12;:20::i;:::-;9544:42;;9597:22;9622:23;9633:11;9622:6;:10;;:23;;;;:::i;:::-;9597:48;;9678:71;9700:6;9678:71;;;;;;;;;;;;;;;;;:9;:17;9688:6;9678:17;;;;;;;;;;;;;;;;:21;;:71;;;;;:::i;:::-;9658:9;:17;9668:6;9658:17;;;;;;;;;;;;;;;:91;;;;9783:40;9808:14;9783:9;:20;9793:9;9783:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;9760:9;:20;9770:9;9760:20;;;;;;;;;;;;;;;:63;;;;9857:35;9880:11;9857:9;:18;9867:7;:5;:7::i;:::-;9857:18;;;;;;;;;;;;;;;;:22;;:35;;;;:::i;:::-;9836:9;:18;9846:7;:5;:7::i;:::-;9836:18;;;;;;;;;;;;;;;:56;;;;9927:9;9910:35;;9919:6;9910:35;;;9938:6;9910:35;;;;;;;;;;;;;;;;;;9221:732;;;;;:::o;1120:192::-;1206:7;1239:1;1234;:6;;1242:12;1226:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1266:9;1282:1;1278;:5;1266:17;;1303:1;1296:8;;;1120:192;;;;;:::o;787:181::-;845:7;865:9;881:1;877;:5;865:17;;906:1;901;:6;;893:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;959:1;952:8;;;787:181;;;;:::o;1320:250::-;1378:7;1407:1;1402;:6;1398:47;;;1432:1;1425:8;;;;1398:47;1457:9;1473:1;1469;:5;1457:17;;1502:1;1497;1493;:5;;;;;;:10;1485:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1561:1;1554:8;;;1320:250;;;;;:::o;1578:132::-;1636:7;1663:39;1667:1;1670;1663:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1656:46;;1578:132;;;;:::o;8378:335::-;8462:14;8502:5;:12;;;;8493:5;:21;8489:66;;8538:5;8531:12;;;;8489:66;8572:6;8579:5;8572:12;;8567:90;8601:1;8588:5;:12;;;;:14;8586:1;:16;8567:90;;;8635:5;8643:1;8641;:3;8635:10;;;;;;;;;;;;;;;;;;8624:5;8630:1;8624:8;;;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;;8604:3;;;;;;;8567:90;;;;8669:5;:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8700:5;8693:12;;8378:335;;;;;:::o;8983:230::-;9101:36;9130:6;9101:9;:24;9119:4;9101:24;;;;;;;;;;;;;;;;:28;;:36;;;;:::i;:::-;9074:9;:24;9092:4;9074:24;;;;;;;;;;;;;;;:63;;;;9172:33;9198:6;9172:9;:21;9182:10;9172:21;;;;;;;;;;;;;;;;:25;;:33;;;;:::i;:::-;9148:9;:21;9158:10;9148:21;;;;;;;;;;;;;;;:57;;;;8983:230;;:::o;8721:254::-;8826:67;8848:6;8826:67;;;;;;;;;;;;;;;;;:9;:17;8836:6;8826:17;;;;;;;;;;;;;;;;:21;;:67;;;;;:::i;:::-;8806:9;:17;8816:6;8806:17;;;;;;;;;;;;;;;:87;;;;8931:36;8960:6;8931:9;:24;8949:4;8931:24;;;;;;;;;;;;;;;;:28;;:36;;;;:::i;:::-;8904:9;:24;8922:4;8904:24;;;;;;;;;;;;;;;:63;;;;8721:254;;:::o;11233:92::-;;;;:::o;976:136::-;1034:7;1061:43;1065:1;1068;1061:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1054:50;;976:136;;;;:::o;1718:345::-;1804:7;1903:1;1899;:5;1906:12;1891:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1930:9;1946:1;1942;:5;;;;;;1930:17;;2054:1;2047:8;;;1718:345;;;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o
Swarm Source
ipfs://fbc401410bb554a8416dcdc0d8ba91f277526fc8f499fafffa1edbc02b7120b1
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.