Feature Tip: Add private address tag to any address under My Name Tag !
More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 143 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Approve | 18630676 | 400 days ago | IN | 0 ETH | 0.0007891 | ||||
Approve | 15279273 | 875 days ago | IN | 0 ETH | 0.0003715 | ||||
Approve | 15276303 | 875 days ago | IN | 0 ETH | 0.0004316 | ||||
Transfer | 15271757 | 876 days ago | IN | 0 ETH | 0.00091368 | ||||
Transfer | 15270575 | 876 days ago | IN | 0 ETH | 0.00062917 | ||||
Transfer | 15265953 | 877 days ago | IN | 0 ETH | 0.00044673 | ||||
Transfer | 15265493 | 877 days ago | IN | 0 ETH | 0.00071253 | ||||
Transfer | 15265058 | 877 days ago | IN | 0 ETH | 0.00082075 | ||||
Approve | 15264127 | 877 days ago | IN | 0 ETH | 0.00192036 | ||||
Transfer | 15263293 | 877 days ago | IN | 0 ETH | 0.00090158 | ||||
Transfer | 15261600 | 878 days ago | IN | 0 ETH | 0.00040932 | ||||
Transfer | 15260916 | 878 days ago | IN | 0 ETH | 0.0004874 | ||||
Transfer | 15260912 | 878 days ago | IN | 0 ETH | 0.00052355 | ||||
Transfer | 15260904 | 878 days ago | IN | 0 ETH | 0.000425 | ||||
Transfer | 15260382 | 878 days ago | IN | 0 ETH | 0.00059779 | ||||
Transfer | 15260379 | 878 days ago | IN | 0 ETH | 0.00053138 | ||||
Transfer | 15260046 | 878 days ago | IN | 0 ETH | 0.00051598 | ||||
Transfer | 15260042 | 878 days ago | IN | 0 ETH | 0.00045116 | ||||
Transfer | 15259860 | 878 days ago | IN | 0 ETH | 0.00086037 | ||||
Transfer | 15259781 | 878 days ago | IN | 0 ETH | 0.00102902 | ||||
Transfer | 15259594 | 878 days ago | IN | 0 ETH | 0.00070755 | ||||
Transfer | 15259513 | 878 days ago | IN | 0 ETH | 0.0015175 | ||||
Transfer | 15259507 | 878 days ago | IN | 0 ETH | 0.0012984 | ||||
Transfer | 15259251 | 878 days ago | IN | 0 ETH | 0.00196538 | ||||
Transfer | 15259207 | 878 days ago | IN | 0 ETH | 0.00129216 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block |
From
|
To
|
|||
---|---|---|---|---|---|---|
15230374 | 883 days ago | 0.00338817 ETH | ||||
15230374 | 883 days ago | 0.00338817 ETH | ||||
15226965 | 883 days ago | 0.00357138 ETH | ||||
15226965 | 883 days ago | 0.00357138 ETH | ||||
15226326 | 883 days ago | 0.00000214 ETH | ||||
15226326 | 883 days ago | 0.00621456 ETH | ||||
15226326 | 883 days ago | 0.00621456 ETH | ||||
15223762 | 884 days ago | 0.00218704 ETH | ||||
15223762 | 884 days ago | 0.00218704 ETH | ||||
15222075 | 884 days ago | 0.00382093 ETH | ||||
15222075 | 884 days ago | 0.00382093 ETH | ||||
15221054 | 884 days ago | 0.00339824 ETH | ||||
15221054 | 884 days ago | 0.00339824 ETH | ||||
15220883 | 884 days ago | 0.00450391 ETH | ||||
15220883 | 884 days ago | 0.00450391 ETH | ||||
15220523 | 884 days ago | 0.00514735 ETH | ||||
15220523 | 884 days ago | 0.00514735 ETH | ||||
15220127 | 884 days ago | 0.00652385 ETH | ||||
15220127 | 884 days ago | 0.00652385 ETH | ||||
15220024 | 884 days ago | 0.00817935 ETH | ||||
15220024 | 884 days ago | 0.00817935 ETH | ||||
15218696 | 884 days ago | 0.00001152 ETH | ||||
15218696 | 884 days ago | 0.01409103 ETH | ||||
15218696 | 884 days ago | 0.01409103 ETH | ||||
15217783 | 885 days ago | 0.00000417 ETH |
Loading...
Loading
Contract Name:
GOT
Compiler Version
v0.8.15+commit.e14f2714
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-07-25 */ // SPDX-License-Identifier: Unlicensed pragma solidity ^0.8.15; abstract contract Context { function _msgSender() internal view virtual returns (address payable) { return payable(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; } } 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) { 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; } } library Address { function isContract(address account) internal view returns (bool) { // According to EIP-1052, 0x0 is the value returned for not-yet created accounts // and 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 is returned // for accounts without code, i.e. `keccak256('')` bytes32 codehash; bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470; // solhint-disable-next-line no-inline-assembly assembly { codehash := extcodehash(account) } return (codehash != accountHash && codehash != 0x0); } 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"); return _functionCallWithValue(target, data, value, errorMessage); } function _functionCallWithValue(address target, bytes memory data, uint256 weiValue, string memory errorMessage) private returns (bytes memory) { require(isContract(target), "Address: call to non-contract"); (bool success, bytes memory returndata) = target.call{ value: weiValue }(data); if (success) { return returndata; } else { if (returndata.length > 0) { assembly { let returndata_size := mload(returndata) revert(add(32, returndata), returndata_size) } } else { revert(errorMessage); } } } } contract Ownable is Context { address private _owner; address private _previousOwner; uint256 private _lockTime; 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; } } // pragma solidity >=0.5.0; interface IUniswapV2Factory { event PairCreated(address indexed token0, address indexed token1, address pair, uint); function feeTo() external view returns (address); function feeToSetter() external view returns (address); function getPair(address tokenA, address tokenB) external view returns (address pair); function allPairs(uint) external view returns (address pair); function allPairsLength() external view returns (uint); function createPair(address tokenA, address tokenB) external returns (address pair); function setFeeTo(address) external; function setFeeToSetter(address) external; } // pragma solidity >=0.5.0; interface IUniswapV2Pair { event Approval(address indexed owner, address indexed spender, uint value); event Transfer(address indexed from, address indexed to, uint value); function name() external pure returns (string memory); function symbol() external pure returns (string memory); function decimals() external pure returns (uint8); function totalSupply() external view returns (uint); function balanceOf(address owner) external view returns (uint); function allowance(address owner, address spender) external view returns (uint); function approve(address spender, uint value) external returns (bool); function transfer(address to, uint value) external returns (bool); function transferFrom(address from, address to, uint value) external returns (bool); function DOMAIN_SEPARATOR() external view returns (bytes32); function PERMIT_TYPEHASH() external pure returns (bytes32); function nonces(address owner) external view returns (uint); function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external; event Swap( address indexed sender, uint amount0In, uint amount1In, uint amount0Out, uint amount1Out, address indexed to ); event Sync(uint112 reserve0, uint112 reserve1); function MINIMUM_LIQUIDITY() external pure returns (uint); function factory() external view returns (address); function token0() external view returns (address); function token1() external view returns (address); function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast); function price0CumulativeLast() external view returns (uint); function price1CumulativeLast() external view returns (uint); function kLast() external view returns (uint); function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external; function skim(address to) external; function sync() external; function initialize(address, address) external; } // pragma solidity >=0.6.2; interface IUniswapV2Router01 { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint amountADesired, uint amountBDesired, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB, uint liquidity); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function removeLiquidity( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB); function removeLiquidityETH( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns (uint amountToken, uint amountETH); function removeLiquidityWithPermit( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountA, uint amountB); function removeLiquidityETHWithPermit( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountToken, uint amountETH); function swapExactTokensForTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapTokensForExactTokens( uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline) external payable returns (uint[] memory amounts); function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts); function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts); function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline) external payable returns (uint[] memory amounts); function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB); function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut); function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn); function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts); function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts); } // pragma solidity >=0.6.2; interface IUniswapV2Router02 is IUniswapV2Router01 { function removeLiquidityETHSupportingFeeOnTransferTokens( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns (uint amountETH); function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountETH); function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; } contract GOT is Context, IERC20, Ownable { using SafeMath for uint256; using Address for address; event SetLiquidityFee(uint256 amount); event SetMarketingFee(uint256 amount); string private _name = "G.O.T ETH"; string private _symbol = "GOT"; uint8 private _decimals = 18; uint256 private _totalSupply = 1000 * 10**5 * 10**_decimals; address payable public marketingAddress = payable(0x20a479245dFAa6354fd38bb8b9d84d941Fa98629); address payable public liquidityAddress = payable(0xe0f5Fd4805999164b8bB564C007c6Bb13C871A35); mapping (address => uint256) private _balances; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) private _isExcludedFromFeesGOT; mapping (address => bool) private _isExcludedFromMaxBalanceGOT; uint256 private constant _maxFeesGOT = 12; uint256 private _totalFeesGOT; uint256 private _totalFeesGOTContract; uint256 private _liquidityFeesGOT; uint256 private _marketingFeesGOT; uint256 private _maxBalanceWalletGOT; IUniswapV2Router02 public uniswapV2Router; address public uniswapV2Pair; uint256 private _liquidityThreshhold; bool inSwapAndLiquify; bool _blacklistEnabled; mapping(address => bool) public blacklist; bool _warmUp; mapping(address => bool) public warmuplist; modifier lockTheSwap { inSwapAndLiquify = true; _; inSwapAndLiquify = false; } constructor () { IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); uniswapV2Router = _uniswapV2Router; _isExcludedFromFeesGOT[owner()] = true; _isExcludedFromFeesGOT[address(this)] = true; _isExcludedFromMaxBalanceGOT[owner()] = true; _isExcludedFromMaxBalanceGOT[address(this)] = true; _isExcludedFromMaxBalanceGOT[uniswapV2Pair] = true; _blacklistEnabled = true; _warmUp = true; _liquidityFeesGOT = 3; _marketingFeesGOT = 7; _totalFeesGOT = _liquidityFeesGOT.add(_marketingFeesGOT); _totalFeesGOTContract = _liquidityFeesGOT.add(_marketingFeesGOT); _liquidityThreshhold = 3 * 10**5 * 10**_decimals; _maxBalanceWalletGOT = 20 * 10**5 * 10**_decimals; _balances[_msgSender()] = _totalSupply; emit Transfer(address(0), _msgSender(), _totalSupply); } receive() external payable {} 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 transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom(address sender, address recipient, uint256 amount) public 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 _approve(address owner, address spender, uint256 amount) private { 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 setMarketingAddress(address payable newMarketingAddress) external onlyOwner() { marketingAddress = newMarketingAddress; } function setLiquidityAddress(address payable newLiquidityAddress) external onlyOwner() { liquidityAddress = newLiquidityAddress; } function setLiquidityFeePercent(uint256 newLiquidityFee) external onlyOwner() { require(!inSwapAndLiquify, "inSwapAndLiquify"); require(newLiquidityFee.add(_marketingFeesGOT) <= _maxFeesGOT, "Fees are too high."); _liquidityFeesGOT = newLiquidityFee; _totalFeesGOT = _liquidityFeesGOT.add(_marketingFeesGOT); _totalFeesGOTContract = _liquidityFeesGOT.add(_marketingFeesGOT); emit SetLiquidityFee(_liquidityFeesGOT); } function setMarketingFeePercent(uint256 newMarketingFee) external onlyOwner() { require(!inSwapAndLiquify, "inSwapAndLiquify"); require(_liquidityFeesGOT.add(newMarketingFee) <= _maxFeesGOT, "Fees are too high."); _marketingFeesGOT = newMarketingFee; _totalFeesGOT = _liquidityFeesGOT.add(_marketingFeesGOT); _totalFeesGOTContract = _liquidityFeesGOT.add(_marketingFeesGOT); emit SetMarketingFee(_marketingFeesGOT); } function setLiquifyThreshhold(uint256 newLiquifyThreshhold) external onlyOwner() { _liquidityThreshhold = newLiquifyThreshhold; } function setMaxBalance(uint256 newMaxBalance) external onlyOwner(){ require(newMaxBalance >= _totalSupply.mul(5).div(1000)); _maxBalanceWalletGOT = newMaxBalance; } function isExcludedFromFees(address account) public view returns(bool) { return _isExcludedFromFeesGOT[account]; } function excludeFromFees(address account) public onlyOwner { _isExcludedFromFeesGOT[account] = true; } function includeInFees(address account) public onlyOwner { _isExcludedFromFeesGOT[account] = false; } function isExcludedFromMaxBalance(address account) public view returns(bool) { return _isExcludedFromMaxBalanceGOT[account]; } function excludeFromMaxBalance(address account) public onlyOwner { _isExcludedFromMaxBalanceGOT[account] = true; } function includeInMaxBalance(address account) public onlyOwner { _isExcludedFromMaxBalanceGOT[account] = false; } function totalFees() public view returns (uint256) { return _totalFeesGOT; } function liquidityFee() public view returns (uint256) { return _liquidityFeesGOT; } function marketingFee() public view returns (uint256) { return _marketingFeesGOT; } function maxFees() public pure returns (uint256) { return _maxFeesGOT; } function liquifyThreshhold() public view returns(uint256){ return _liquidityThreshhold; } function maxBalance() public view returns (uint256) { return _maxBalanceWalletGOT; } function _transfer( address from, address to, uint256 amount ) private { require(!blacklist[from] && !blacklist[to], "in_blacklist"); require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "Transfer amount must be greater than zero"); if( _warmUp == true && from != owner() ) { require(warmuplist[to], "not allowed yet"); } if( from != owner() && to != owner() && !_isExcludedFromMaxBalanceGOT[to] ) { require( balanceOf(to).add(amount) <= _maxBalanceWalletGOT, "Max Balance is reached." ); } if( to == uniswapV2Pair && !inSwapAndLiquify && balanceOf(address(this)) >= _liquidityThreshhold && _totalFeesGOTContract > 0 && from != owner() && to != owner() ) { collectFees(); } if( !(_isExcludedFromFeesGOT[from] || _isExcludedFromFeesGOT[to]) && _totalFeesGOT > 0 ) { uint256 feesToContract = amount.mul(_totalFeesGOTContract).div(100); amount = amount.sub(feesToContract); transferToken(from, address(this), feesToContract); } if( from == uniswapV2Pair && to != owner() && _blacklistEnabled == true && _warmUp == false ) { autoBlacklist(to); } transferToken(from, to, amount); } function collectFees() private lockTheSwap { uint256 liquidityTokensToSell = balanceOf(address(this)).mul(_liquidityFeesGOT).div(_totalFeesGOTContract); uint256 marketingTokensToSell = balanceOf(address(this)).mul(_marketingFeesGOT).div(_totalFeesGOTContract); // Get collected Liquidity Fees if (_liquidityFeesGOT > 0) { swapAndLiquify(liquidityTokensToSell); } // Get collected Marketing Fees if (_marketingFeesGOT > 0) { swapAndSendToFee(marketingTokensToSell); } } function swapAndLiquify(uint256 tokens) private { uint256 half = tokens.div(2); uint256 otherHalf = tokens.sub(half); uint256 initialBalance = address(this).balance; swapTokensForEth(half); uint256 newBalance = address(this).balance.sub(initialBalance); addLiquidity(otherHalf, newBalance); } function swapAndSendToFee(uint256 tokens) private { swapTokensForMarketingToken(tokens); } function swapTokensForEth(uint256 tokenAmount) private { address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); } function swapTokensForMarketingToken(uint256 tokenAmount) private { address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(marketingAddress), block.timestamp ); } function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private { _approve(address(this), address(uniswapV2Router), tokenAmount); uniswapV2Router.addLiquidityETH{value: ethAmount}( address(this), tokenAmount, 0, 0, address(liquidityAddress), block.timestamp ); } function transferToken(address sender, address recipient, uint256 amount) private { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); _balances[sender] = _balances[sender].sub(amount, "ERC20: transfer amount exceeds balance"); _balances[recipient] = _balances[recipient].add(amount); emit Transfer(sender, recipient, amount); } function disableWarmUp() external onlyOwner { require(_warmUp == true, "warmUp function already disabled"); _warmUp = false; } function setWarmuplist(address _humanAddress, bool _flag) external onlyOwner { require(_warmUp == true, "warmUp function already disabled"); warmuplist[_humanAddress] = _flag; } function autoBlacklist(address _botAddress) private { blacklist[_botAddress] = true; } function disableAutoBlacklist() external onlyOwner { require(_blacklistEnabled == true, "Blacklist function already disabled"); _blacklistEnabled = false; } function removeFromAutoBlacklist(address _botAddress) external onlyOwner { blacklist[_botAddress] = false; } }
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":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"SetLiquidityFee","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"SetMarketingFee","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":[{"internalType":"address","name":"","type":"address"}],"name":"blacklist","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"disableAutoBlacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"disableWarmUp","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromMaxBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInMaxBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromMaxBalance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquifyThreshhold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_botAddress","type":"address"}],"name":"removeFromAutoBlacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"newLiquidityAddress","type":"address"}],"name":"setLiquidityAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLiquidityFee","type":"uint256"}],"name":"setLiquidityFeePercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLiquifyThreshhold","type":"uint256"}],"name":"setLiquifyThreshhold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"newMarketingAddress","type":"address"}],"name":"setMarketingAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMarketingFee","type":"uint256"}],"name":"setMarketingFeePercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMaxBalance","type":"uint256"}],"name":"setMaxBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_humanAddress","type":"address"},{"internalType":"bool","name":"_flag","type":"bool"}],"name":"setWarmuplist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"warmuplist","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60c0604052600960809081526808e5c9e5ca8408aa8960bb1b60a0526003906200002a90826200058e565b5060408051808201909152600381526211d3d560ea1b60208201526004906200005490826200058e565b506005805460ff191660129081179091556200007290600a6200076d565b62000082906305f5e10062000785565b600655600780546001600160a01b03199081167320a479245dfaa6354fd38bb8b9d84d941fa98629179091556008805490911673e0f5fd4805999164b8bb564c007c6bb13c871a35179055348015620000da57600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506000737a250d5630b4cf539739df2c5dacb4c659f2488d9050806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000174573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200019a9190620007a7565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001e8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200020e9190620007a7565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156200025c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002829190620007a7565b601380546001600160a01b03199081166001600160a01b0393841617909155601280549091169183169190911790556001600b6000620002ca6000546001600160a01b031690565b6001600160a01b0316815260208082019290925260409081016000908120805494151560ff19958616179055308152600b909252812080549092166001908117909255600c90620003236000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff19968716179055308152600c845282812080548616600190811790915560135490921681529190912080548416821790556015805461ff00191661010017905560178054909316179091556003600f81905560076010819055620003b792620011d16200047a821b17901c565b600d81905550620003db601054600f546200047a60201b620011d11790919060201c565b600e55600554620003f19060ff16600a6200076d565b6200040090620493e062000785565b601455600554620004169060ff16600a6200076d565b6200042590621e848062000785565b60115560065433600081815260096020908152604080832085905551938452919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a350620007ed565b600080620004898385620007d2565b905083811015620004e05760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640160405180910390fd5b90505b92915050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200051457607f821691505b6020821081036200053557634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200058957600081815260208120601f850160051c81016020861015620005645750805b601f850160051c820191505b81811015620005855782815560010162000570565b5050505b505050565b81516001600160401b03811115620005aa57620005aa620004e9565b620005c281620005bb8454620004ff565b846200053b565b602080601f831160018114620005fa5760008415620005e15750858301515b600019600386901b1c1916600185901b17855562000585565b600085815260208120601f198616915b828110156200062b578886015182559484019460019091019084016200060a565b50858210156200064a5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620006b15781600019048211156200069557620006956200065a565b80851615620006a357918102915b93841c939080029062000675565b509250929050565b600082620006ca57506001620004e3565b81620006d957506000620004e3565b8160018114620006f25760028114620006fd576200071d565b6001915050620004e3565b60ff8411156200071157620007116200065a565b50506001821b620004e3565b5060208310610133831016604e8410600b841016171562000742575081810a620004e3565b6200074e838362000670565b80600019048211156200076557620007656200065a565b029392505050565b60006200077e60ff841683620006b9565b9392505050565b6000816000190483118215151615620007a257620007a26200065a565b500290565b600060208284031215620007ba57600080fd5b81516001600160a01b0381168114620004e057600080fd5b60008219821115620007e857620007e86200065a565b500190565b61229280620007fd6000396000f3fe6080604052600436106102555760003560e01c80635eb10c941161013957806398118cb4116100b6578063c12637f61161007a578063c12637f61461070a578063dd62ed3e1461072a578063e57f14e114610770578063e83e34b114610790578063f2fde38b146107a4578063f9f92be4146107c457600080fd5b806398118cb4146106755780639d51d9b71461068a578063a457c2d7146106aa578063a5ece941146106ca578063a9059cbb146106ea57600080fd5b80638d876440116100fd5780638d876440146105ed5780638da5cb5b146106025780638ee88c5314610620578063906e9dd01461064057806395d89b411461066057600080fd5b80635eb10c94146105585780636b67c4df1461057857806370a082311461058d578063715018a6146105c357806373ad468a146105d857600080fd5b8063313ce567116101d2578063457c194c11610196578063457c194c1461047a57806345b39f031461049a57806349bd5a5e146104ca5780634fbee193146104ea578063525fa81f146105235780635e8bc4bc1461054357600080fd5b8063313ce567146103e35780633221c93f1461040557806339509351146104255780633bb2c67b1461044557806340f1997e1461046557600080fd5b806318160ddd1161021957806318160ddd14610335578063181cec1c1461034a57806323b872dd146103835780632b151cfe146103a35780632b9a9ca3146103c357600080fd5b806306fdde0314610261578063095ea7b31461028c57806313114a9d146102bc5780631694505e146102db57806316a2f82a1461031357600080fd5b3661025c57005b600080fd5b34801561026d57600080fd5b506102766107f4565b6040516102839190611e21565b60405180910390f35b34801561029857600080fd5b506102ac6102a7366004611e8b565b610886565b6040519015158152602001610283565b3480156102c857600080fd5b50600d545b604051908152602001610283565b3480156102e757600080fd5b506012546102fb906001600160a01b031681565b6040516001600160a01b039091168152602001610283565b34801561031f57600080fd5b5061033361032e366004611eb7565b61089d565b005b34801561034157600080fd5b506006546102cd565b34801561035657600080fd5b506102ac610365366004611eb7565b6001600160a01b03166000908152600c602052604090205460ff1690565b34801561038f57600080fd5b506102ac61039e366004611ed4565b6108f1565b3480156103af57600080fd5b506103336103be366004611eb7565b61095a565b3480156103cf57600080fd5b506103336103de366004611f15565b6109a8565b3480156103ef57600080fd5b5060055460405160ff9091168152602001610283565b34801561041157600080fd5b506008546102fb906001600160a01b031681565b34801561043157600080fd5b506102ac610440366004611e8b565b6109d7565b34801561045157600080fd5b50610333610460366004611f2e565b610a0d565b34801561047157600080fd5b50610333610ab9565b34801561048657600080fd5b50610333610495366004611f15565b610b59565b3480156104a657600080fd5b506102ac6104b5366004611eb7565b60186020526000908152604090205460ff1681565b3480156104d657600080fd5b506013546102fb906001600160a01b031681565b3480156104f657600080fd5b506102ac610505366004611eb7565b6001600160a01b03166000908152600b602052604090205460ff1690565b34801561052f57600080fd5b5061033361053e366004611eb7565b610c7d565b34801561054f57600080fd5b506014546102cd565b34801561056457600080fd5b50610333610573366004611eb7565b610cc9565b34801561058457600080fd5b506010546102cd565b34801561059957600080fd5b506102cd6105a8366004611eb7565b6001600160a01b031660009081526009602052604090205490565b3480156105cf57600080fd5b50610333610d14565b3480156105e457600080fd5b506011546102cd565b3480156105f957600080fd5b50610333610d88565b34801561060e57600080fd5b506000546001600160a01b03166102fb565b34801561062c57600080fd5b5061033361063b366004611f15565b610e15565b34801561064c57600080fd5b5061033361065b366004611eb7565b610f3a565b34801561066c57600080fd5b50610276610f86565b34801561068157600080fd5b50600f546102cd565b34801561069657600080fd5b506103336106a5366004611f15565b610f95565b3480156106b657600080fd5b506102ac6106c5366004611e8b565b610ff2565b3480156106d657600080fd5b506007546102fb906001600160a01b031681565b3480156106f657600080fd5b506102ac610705366004611e8b565b611041565b34801561071657600080fd5b50610333610725366004611eb7565b61104e565b34801561073657600080fd5b506102cd610745366004611f6c565b6001600160a01b039182166000908152600a6020908152604080832093909416825291909152205490565b34801561077c57600080fd5b5061033361078b366004611eb7565b611099565b34801561079c57600080fd5b50600c6102cd565b3480156107b057600080fd5b506103336107bf366004611eb7565b6110e7565b3480156107d057600080fd5b506102ac6107df366004611eb7565b60166020526000908152604090205460ff1681565b60606003805461080390611f9a565b80601f016020809104026020016040519081016040528092919081815260200182805461082f90611f9a565b801561087c5780601f106108515761010080835404028352916020019161087c565b820191906000526020600020905b81548152906001019060200180831161085f57829003601f168201915b5050505050905090565b6000610893338484611237565b5060015b92915050565b6000546001600160a01b031633146108d05760405162461bcd60e51b81526004016108c790611fd4565b60405180910390fd5b6001600160a01b03166000908152600b60205260409020805460ff19169055565b60006108fe84848461135c565b610950843361094b85604051806060016040528060288152602001612210602891396001600160a01b038a166000908152600a602090815260408083203384529091529020549190611781565b611237565b5060019392505050565b6000546001600160a01b031633146109845760405162461bcd60e51b81526004016108c790611fd4565b6001600160a01b03166000908152600c60205260409020805460ff19166001179055565b6000546001600160a01b031633146109d25760405162461bcd60e51b81526004016108c790611fd4565b601455565b336000818152600a602090815260408083206001600160a01b0387168452909152812054909161089391859061094b90866111d1565b6000546001600160a01b03163314610a375760405162461bcd60e51b81526004016108c790611fd4565b60175460ff161515600114610a8e5760405162461bcd60e51b815260206004820181905260248201527f7761726d55702066756e6374696f6e20616c72656164792064697361626c656460448201526064016108c7565b6001600160a01b03919091166000908152601860205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610ae35760405162461bcd60e51b81526004016108c790611fd4565b60155460ff610100909104161515600114610b4c5760405162461bcd60e51b815260206004820152602360248201527f426c61636b6c6973742066756e6374696f6e20616c72656164792064697361626044820152621b195960ea1b60648201526084016108c7565b6015805461ff0019169055565b6000546001600160a01b03163314610b835760405162461bcd60e51b81526004016108c790611fd4565b60155460ff1615610bc95760405162461bcd60e51b815260206004820152601060248201526f696e53776170416e644c69717569667960801b60448201526064016108c7565b600f54600c90610bd990836111d1565b1115610c1c5760405162461bcd60e51b81526020600482015260126024820152712332b2b99030b932903a37b7903434b3b41760711b60448201526064016108c7565b6010819055600f54610c2e90826111d1565b600d55601054600f54610c40916111d1565b600e556010546040519081527f11792e2e76dd20b61339ffd931c063e7b4f828123d6d257c8d0668279e69c766906020015b60405180910390a150565b6000546001600160a01b03163314610ca75760405162461bcd60e51b81526004016108c790611fd4565b600880546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610cf35760405162461bcd60e51b81526004016108c790611fd4565b6001600160a01b03166000908152600c60205260409020805460ff19169055565b6000546001600160a01b03163314610d3e5760405162461bcd60e51b81526004016108c790611fd4565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610db25760405162461bcd60e51b81526004016108c790611fd4565b60175460ff161515600114610e095760405162461bcd60e51b815260206004820181905260248201527f7761726d55702066756e6374696f6e20616c72656164792064697361626c656460448201526064016108c7565b6017805460ff19169055565b6000546001600160a01b03163314610e3f5760405162461bcd60e51b81526004016108c790611fd4565b60155460ff1615610e855760405162461bcd60e51b815260206004820152601060248201526f696e53776170416e644c69717569667960801b60448201526064016108c7565b600c610e9c601054836111d190919063ffffffff16565b1115610edf5760405162461bcd60e51b81526020600482015260126024820152712332b2b99030b932903a37b7903434b3b41760711b60448201526064016108c7565b600f819055601054610ef29082906111d1565b600d55601054600f54610f04916111d1565b600e55600f546040519081527f9715f273db467af4f604be854ced5f63c93d0132583300aef64376e17685b52d90602001610c72565b6000546001600160a01b03163314610f645760405162461bcd60e51b81526004016108c790611fd4565b600780546001600160a01b0319166001600160a01b0392909216919091179055565b60606004805461080390611f9a565b6000546001600160a01b03163314610fbf5760405162461bcd60e51b81526004016108c790611fd4565b610fe16103e8610fdb60056006546117bb90919063ffffffff16565b9061183d565b811015610fed57600080fd5b601155565b6000610893338461094b8560405180606001604052806025815260200161223860259139336000908152600a602090815260408083206001600160a01b038d1684529091529020549190611781565b600061089333848461135c565b6000546001600160a01b031633146110785760405162461bcd60e51b81526004016108c790611fd4565b6001600160a01b03166000908152601660205260409020805460ff19169055565b6000546001600160a01b031633146110c35760405162461bcd60e51b81526004016108c790611fd4565b6001600160a01b03166000908152600b60205260409020805460ff19166001179055565b6000546001600160a01b031633146111115760405162461bcd60e51b81526004016108c790611fd4565b6001600160a01b0381166111765760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016108c7565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000806111de838561201f565b9050838110156112305760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016108c7565b9392505050565b6001600160a01b0383166112995760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016108c7565b6001600160a01b0382166112fa5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016108c7565b6001600160a01b038381166000818152600a602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b03831660009081526016602052604090205460ff1615801561139e57506001600160a01b03821660009081526016602052604090205460ff16155b6113d95760405162461bcd60e51b815260206004820152600c60248201526b1a5b97d89b1858dadb1a5cdd60a21b60448201526064016108c7565b6001600160a01b0383166113ff5760405162461bcd60e51b81526004016108c790612037565b6001600160a01b0382166114255760405162461bcd60e51b81526004016108c79061207c565b600081116114875760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016108c7565b60175460ff16151560011480156114ac57506000546001600160a01b03848116911614155b1561150b576001600160a01b03821660009081526018602052604090205460ff1661150b5760405162461bcd60e51b815260206004820152600f60248201526e1b9bdd08185b1b1bddd959081e595d608a1b60448201526064016108c7565b6000546001600160a01b0384811691161480159061153757506000546001600160a01b03838116911614155b801561155c57506001600160a01b0382166000908152600c602052604090205460ff16155b156115db5760115461158d82611587856001600160a01b031660009081526009602052604090205490565b906111d1565b11156115db5760405162461bcd60e51b815260206004820152601760248201527f4d61782042616c616e636520697320726561636865642e00000000000000000060448201526064016108c7565b6013546001600160a01b0383811691161480156115fb575060155460ff16155b801561161857506014543060009081526009602052604090205410155b801561162657506000600e54115b801561164057506000546001600160a01b03848116911614155b801561165a57506000546001600160a01b03838116911614155b156116675761166761187f565b6001600160a01b0383166000908152600b602052604090205460ff16806116a657506001600160a01b0382166000908152600b602052604090205460ff165b1580156116b557506000600d54115b156116f15760006116d66064610fdb600e54856117bb90919063ffffffff16565b90506116e28282611924565b91506116ef843083611966565b505b6013546001600160a01b03848116911614801561171c57506000546001600160a01b03838116911614155b8015611735575060155460ff6101009091041615156001145b8015611744575060175460ff16155b1561177157611771826001600160a01b03166000908152601660205260409020805460ff19166001179055565b61177c838383611966565b505050565b600081848411156117a55760405162461bcd60e51b81526004016108c79190611e21565b5060006117b284866120bf565b95945050505050565b6000826000036117cd57506000610897565b60006117d983856120d6565b9050826117e685836120f5565b146112305760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016108c7565b600061123083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611a72565b6015805460ff19166001179055600e54600f546000916118c291610fdb906118bc306001600160a01b031660009081526009602052604090205490565b906117bb565b905060006118f1600e54610fdb6010546118bc306001600160a01b031660009081526009602052604090205490565b600f54909150156119055761190582611aa0565b601054156119165761191681611ae6565b50506015805460ff19169055565b600061123083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611781565b6001600160a01b03831661198c5760405162461bcd60e51b81526004016108c790612037565b6001600160a01b0382166119b25760405162461bcd60e51b81526004016108c79061207c565b6119ef816040518060600160405280602681526020016121ea602691396001600160a01b0386166000908152600960205260409020549190611781565b6001600160a01b038085166000908152600960205260408082209390935590841681522054611a1e90826111d1565b6001600160a01b0380841660008181526009602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061134f9085815260200190565b60008183611a935760405162461bcd60e51b81526004016108c79190611e21565b5060006117b284866120f5565b6000611aad82600261183d565b90506000611abb8383611924565b905047611ac783611af2565b6000611ad34783611924565b9050611adf8382611c4c565b5050505050565b611aef81611cf9565b50565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611b2757611b27612117565b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611b80573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ba4919061212d565b81600181518110611bb757611bb7612117565b6001600160a01b039283166020918202929092010152601254611bdd9130911684611237565b60125460405163791ac94760e01b81526001600160a01b039091169063791ac94790611c1690859060009086903090429060040161214a565b600060405180830381600087803b158015611c3057600080fd5b505af1158015611c44573d6000803e3d6000fd5b505050505050565b601254611c649030906001600160a01b031684611237565b60125460085460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af1158015611cd4573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611adf91906121bb565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611d2e57611d2e612117565b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611d87573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dab919061212d565b81600181518110611dbe57611dbe612117565b6001600160a01b039283166020918202929092010152601254611de49130911684611237565b60125460075460405163791ac94760e01b81526001600160a01b039283169263791ac94792611c169287926000928892911690429060040161214a565b600060208083528351808285015260005b81811015611e4e57858101830151858201604001528201611e32565b81811115611e60576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b0381168114611aef57600080fd5b60008060408385031215611e9e57600080fd5b8235611ea981611e76565b946020939093013593505050565b600060208284031215611ec957600080fd5b813561123081611e76565b600080600060608486031215611ee957600080fd5b8335611ef481611e76565b92506020840135611f0481611e76565b929592945050506040919091013590565b600060208284031215611f2757600080fd5b5035919050565b60008060408385031215611f4157600080fd5b8235611f4c81611e76565b915060208301358015158114611f6157600080fd5b809150509250929050565b60008060408385031215611f7f57600080fd5b8235611f8a81611e76565b91506020830135611f6181611e76565b600181811c90821680611fae57607f821691505b602082108103611fce57634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b6000821982111561203257612032612009565b500190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b6000828210156120d1576120d1612009565b500390565b60008160001904831182151516156120f0576120f0612009565b500290565b60008261211257634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561213f57600080fd5b815161123081611e76565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561219a5784516001600160a01b031683529383019391830191600101612175565b50506001600160a01b03969096166060850152505050608001529392505050565b6000806000606084860312156121d057600080fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220f53442a5326b1f1ae9981a993e0a8bf34fa9fa061cc3190a63458caa12c8c3b664736f6c634300080f0033
Deployed Bytecode
0x6080604052600436106102555760003560e01c80635eb10c941161013957806398118cb4116100b6578063c12637f61161007a578063c12637f61461070a578063dd62ed3e1461072a578063e57f14e114610770578063e83e34b114610790578063f2fde38b146107a4578063f9f92be4146107c457600080fd5b806398118cb4146106755780639d51d9b71461068a578063a457c2d7146106aa578063a5ece941146106ca578063a9059cbb146106ea57600080fd5b80638d876440116100fd5780638d876440146105ed5780638da5cb5b146106025780638ee88c5314610620578063906e9dd01461064057806395d89b411461066057600080fd5b80635eb10c94146105585780636b67c4df1461057857806370a082311461058d578063715018a6146105c357806373ad468a146105d857600080fd5b8063313ce567116101d2578063457c194c11610196578063457c194c1461047a57806345b39f031461049a57806349bd5a5e146104ca5780634fbee193146104ea578063525fa81f146105235780635e8bc4bc1461054357600080fd5b8063313ce567146103e35780633221c93f1461040557806339509351146104255780633bb2c67b1461044557806340f1997e1461046557600080fd5b806318160ddd1161021957806318160ddd14610335578063181cec1c1461034a57806323b872dd146103835780632b151cfe146103a35780632b9a9ca3146103c357600080fd5b806306fdde0314610261578063095ea7b31461028c57806313114a9d146102bc5780631694505e146102db57806316a2f82a1461031357600080fd5b3661025c57005b600080fd5b34801561026d57600080fd5b506102766107f4565b6040516102839190611e21565b60405180910390f35b34801561029857600080fd5b506102ac6102a7366004611e8b565b610886565b6040519015158152602001610283565b3480156102c857600080fd5b50600d545b604051908152602001610283565b3480156102e757600080fd5b506012546102fb906001600160a01b031681565b6040516001600160a01b039091168152602001610283565b34801561031f57600080fd5b5061033361032e366004611eb7565b61089d565b005b34801561034157600080fd5b506006546102cd565b34801561035657600080fd5b506102ac610365366004611eb7565b6001600160a01b03166000908152600c602052604090205460ff1690565b34801561038f57600080fd5b506102ac61039e366004611ed4565b6108f1565b3480156103af57600080fd5b506103336103be366004611eb7565b61095a565b3480156103cf57600080fd5b506103336103de366004611f15565b6109a8565b3480156103ef57600080fd5b5060055460405160ff9091168152602001610283565b34801561041157600080fd5b506008546102fb906001600160a01b031681565b34801561043157600080fd5b506102ac610440366004611e8b565b6109d7565b34801561045157600080fd5b50610333610460366004611f2e565b610a0d565b34801561047157600080fd5b50610333610ab9565b34801561048657600080fd5b50610333610495366004611f15565b610b59565b3480156104a657600080fd5b506102ac6104b5366004611eb7565b60186020526000908152604090205460ff1681565b3480156104d657600080fd5b506013546102fb906001600160a01b031681565b3480156104f657600080fd5b506102ac610505366004611eb7565b6001600160a01b03166000908152600b602052604090205460ff1690565b34801561052f57600080fd5b5061033361053e366004611eb7565b610c7d565b34801561054f57600080fd5b506014546102cd565b34801561056457600080fd5b50610333610573366004611eb7565b610cc9565b34801561058457600080fd5b506010546102cd565b34801561059957600080fd5b506102cd6105a8366004611eb7565b6001600160a01b031660009081526009602052604090205490565b3480156105cf57600080fd5b50610333610d14565b3480156105e457600080fd5b506011546102cd565b3480156105f957600080fd5b50610333610d88565b34801561060e57600080fd5b506000546001600160a01b03166102fb565b34801561062c57600080fd5b5061033361063b366004611f15565b610e15565b34801561064c57600080fd5b5061033361065b366004611eb7565b610f3a565b34801561066c57600080fd5b50610276610f86565b34801561068157600080fd5b50600f546102cd565b34801561069657600080fd5b506103336106a5366004611f15565b610f95565b3480156106b657600080fd5b506102ac6106c5366004611e8b565b610ff2565b3480156106d657600080fd5b506007546102fb906001600160a01b031681565b3480156106f657600080fd5b506102ac610705366004611e8b565b611041565b34801561071657600080fd5b50610333610725366004611eb7565b61104e565b34801561073657600080fd5b506102cd610745366004611f6c565b6001600160a01b039182166000908152600a6020908152604080832093909416825291909152205490565b34801561077c57600080fd5b5061033361078b366004611eb7565b611099565b34801561079c57600080fd5b50600c6102cd565b3480156107b057600080fd5b506103336107bf366004611eb7565b6110e7565b3480156107d057600080fd5b506102ac6107df366004611eb7565b60166020526000908152604090205460ff1681565b60606003805461080390611f9a565b80601f016020809104026020016040519081016040528092919081815260200182805461082f90611f9a565b801561087c5780601f106108515761010080835404028352916020019161087c565b820191906000526020600020905b81548152906001019060200180831161085f57829003601f168201915b5050505050905090565b6000610893338484611237565b5060015b92915050565b6000546001600160a01b031633146108d05760405162461bcd60e51b81526004016108c790611fd4565b60405180910390fd5b6001600160a01b03166000908152600b60205260409020805460ff19169055565b60006108fe84848461135c565b610950843361094b85604051806060016040528060288152602001612210602891396001600160a01b038a166000908152600a602090815260408083203384529091529020549190611781565b611237565b5060019392505050565b6000546001600160a01b031633146109845760405162461bcd60e51b81526004016108c790611fd4565b6001600160a01b03166000908152600c60205260409020805460ff19166001179055565b6000546001600160a01b031633146109d25760405162461bcd60e51b81526004016108c790611fd4565b601455565b336000818152600a602090815260408083206001600160a01b0387168452909152812054909161089391859061094b90866111d1565b6000546001600160a01b03163314610a375760405162461bcd60e51b81526004016108c790611fd4565b60175460ff161515600114610a8e5760405162461bcd60e51b815260206004820181905260248201527f7761726d55702066756e6374696f6e20616c72656164792064697361626c656460448201526064016108c7565b6001600160a01b03919091166000908152601860205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610ae35760405162461bcd60e51b81526004016108c790611fd4565b60155460ff610100909104161515600114610b4c5760405162461bcd60e51b815260206004820152602360248201527f426c61636b6c6973742066756e6374696f6e20616c72656164792064697361626044820152621b195960ea1b60648201526084016108c7565b6015805461ff0019169055565b6000546001600160a01b03163314610b835760405162461bcd60e51b81526004016108c790611fd4565b60155460ff1615610bc95760405162461bcd60e51b815260206004820152601060248201526f696e53776170416e644c69717569667960801b60448201526064016108c7565b600f54600c90610bd990836111d1565b1115610c1c5760405162461bcd60e51b81526020600482015260126024820152712332b2b99030b932903a37b7903434b3b41760711b60448201526064016108c7565b6010819055600f54610c2e90826111d1565b600d55601054600f54610c40916111d1565b600e556010546040519081527f11792e2e76dd20b61339ffd931c063e7b4f828123d6d257c8d0668279e69c766906020015b60405180910390a150565b6000546001600160a01b03163314610ca75760405162461bcd60e51b81526004016108c790611fd4565b600880546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610cf35760405162461bcd60e51b81526004016108c790611fd4565b6001600160a01b03166000908152600c60205260409020805460ff19169055565b6000546001600160a01b03163314610d3e5760405162461bcd60e51b81526004016108c790611fd4565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610db25760405162461bcd60e51b81526004016108c790611fd4565b60175460ff161515600114610e095760405162461bcd60e51b815260206004820181905260248201527f7761726d55702066756e6374696f6e20616c72656164792064697361626c656460448201526064016108c7565b6017805460ff19169055565b6000546001600160a01b03163314610e3f5760405162461bcd60e51b81526004016108c790611fd4565b60155460ff1615610e855760405162461bcd60e51b815260206004820152601060248201526f696e53776170416e644c69717569667960801b60448201526064016108c7565b600c610e9c601054836111d190919063ffffffff16565b1115610edf5760405162461bcd60e51b81526020600482015260126024820152712332b2b99030b932903a37b7903434b3b41760711b60448201526064016108c7565b600f819055601054610ef29082906111d1565b600d55601054600f54610f04916111d1565b600e55600f546040519081527f9715f273db467af4f604be854ced5f63c93d0132583300aef64376e17685b52d90602001610c72565b6000546001600160a01b03163314610f645760405162461bcd60e51b81526004016108c790611fd4565b600780546001600160a01b0319166001600160a01b0392909216919091179055565b60606004805461080390611f9a565b6000546001600160a01b03163314610fbf5760405162461bcd60e51b81526004016108c790611fd4565b610fe16103e8610fdb60056006546117bb90919063ffffffff16565b9061183d565b811015610fed57600080fd5b601155565b6000610893338461094b8560405180606001604052806025815260200161223860259139336000908152600a602090815260408083206001600160a01b038d1684529091529020549190611781565b600061089333848461135c565b6000546001600160a01b031633146110785760405162461bcd60e51b81526004016108c790611fd4565b6001600160a01b03166000908152601660205260409020805460ff19169055565b6000546001600160a01b031633146110c35760405162461bcd60e51b81526004016108c790611fd4565b6001600160a01b03166000908152600b60205260409020805460ff19166001179055565b6000546001600160a01b031633146111115760405162461bcd60e51b81526004016108c790611fd4565b6001600160a01b0381166111765760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016108c7565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000806111de838561201f565b9050838110156112305760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016108c7565b9392505050565b6001600160a01b0383166112995760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016108c7565b6001600160a01b0382166112fa5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016108c7565b6001600160a01b038381166000818152600a602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b03831660009081526016602052604090205460ff1615801561139e57506001600160a01b03821660009081526016602052604090205460ff16155b6113d95760405162461bcd60e51b815260206004820152600c60248201526b1a5b97d89b1858dadb1a5cdd60a21b60448201526064016108c7565b6001600160a01b0383166113ff5760405162461bcd60e51b81526004016108c790612037565b6001600160a01b0382166114255760405162461bcd60e51b81526004016108c79061207c565b600081116114875760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016108c7565b60175460ff16151560011480156114ac57506000546001600160a01b03848116911614155b1561150b576001600160a01b03821660009081526018602052604090205460ff1661150b5760405162461bcd60e51b815260206004820152600f60248201526e1b9bdd08185b1b1bddd959081e595d608a1b60448201526064016108c7565b6000546001600160a01b0384811691161480159061153757506000546001600160a01b03838116911614155b801561155c57506001600160a01b0382166000908152600c602052604090205460ff16155b156115db5760115461158d82611587856001600160a01b031660009081526009602052604090205490565b906111d1565b11156115db5760405162461bcd60e51b815260206004820152601760248201527f4d61782042616c616e636520697320726561636865642e00000000000000000060448201526064016108c7565b6013546001600160a01b0383811691161480156115fb575060155460ff16155b801561161857506014543060009081526009602052604090205410155b801561162657506000600e54115b801561164057506000546001600160a01b03848116911614155b801561165a57506000546001600160a01b03838116911614155b156116675761166761187f565b6001600160a01b0383166000908152600b602052604090205460ff16806116a657506001600160a01b0382166000908152600b602052604090205460ff165b1580156116b557506000600d54115b156116f15760006116d66064610fdb600e54856117bb90919063ffffffff16565b90506116e28282611924565b91506116ef843083611966565b505b6013546001600160a01b03848116911614801561171c57506000546001600160a01b03838116911614155b8015611735575060155460ff6101009091041615156001145b8015611744575060175460ff16155b1561177157611771826001600160a01b03166000908152601660205260409020805460ff19166001179055565b61177c838383611966565b505050565b600081848411156117a55760405162461bcd60e51b81526004016108c79190611e21565b5060006117b284866120bf565b95945050505050565b6000826000036117cd57506000610897565b60006117d983856120d6565b9050826117e685836120f5565b146112305760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016108c7565b600061123083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611a72565b6015805460ff19166001179055600e54600f546000916118c291610fdb906118bc306001600160a01b031660009081526009602052604090205490565b906117bb565b905060006118f1600e54610fdb6010546118bc306001600160a01b031660009081526009602052604090205490565b600f54909150156119055761190582611aa0565b601054156119165761191681611ae6565b50506015805460ff19169055565b600061123083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611781565b6001600160a01b03831661198c5760405162461bcd60e51b81526004016108c790612037565b6001600160a01b0382166119b25760405162461bcd60e51b81526004016108c79061207c565b6119ef816040518060600160405280602681526020016121ea602691396001600160a01b0386166000908152600960205260409020549190611781565b6001600160a01b038085166000908152600960205260408082209390935590841681522054611a1e90826111d1565b6001600160a01b0380841660008181526009602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061134f9085815260200190565b60008183611a935760405162461bcd60e51b81526004016108c79190611e21565b5060006117b284866120f5565b6000611aad82600261183d565b90506000611abb8383611924565b905047611ac783611af2565b6000611ad34783611924565b9050611adf8382611c4c565b5050505050565b611aef81611cf9565b50565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611b2757611b27612117565b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611b80573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ba4919061212d565b81600181518110611bb757611bb7612117565b6001600160a01b039283166020918202929092010152601254611bdd9130911684611237565b60125460405163791ac94760e01b81526001600160a01b039091169063791ac94790611c1690859060009086903090429060040161214a565b600060405180830381600087803b158015611c3057600080fd5b505af1158015611c44573d6000803e3d6000fd5b505050505050565b601254611c649030906001600160a01b031684611237565b60125460085460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af1158015611cd4573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611adf91906121bb565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611d2e57611d2e612117565b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611d87573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dab919061212d565b81600181518110611dbe57611dbe612117565b6001600160a01b039283166020918202929092010152601254611de49130911684611237565b60125460075460405163791ac94760e01b81526001600160a01b039283169263791ac94792611c169287926000928892911690429060040161214a565b600060208083528351808285015260005b81811015611e4e57858101830151858201604001528201611e32565b81811115611e60576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b0381168114611aef57600080fd5b60008060408385031215611e9e57600080fd5b8235611ea981611e76565b946020939093013593505050565b600060208284031215611ec957600080fd5b813561123081611e76565b600080600060608486031215611ee957600080fd5b8335611ef481611e76565b92506020840135611f0481611e76565b929592945050506040919091013590565b600060208284031215611f2757600080fd5b5035919050565b60008060408385031215611f4157600080fd5b8235611f4c81611e76565b915060208301358015158114611f6157600080fd5b809150509250929050565b60008060408385031215611f7f57600080fd5b8235611f8a81611e76565b91506020830135611f6181611e76565b600181811c90821680611fae57607f821691505b602082108103611fce57634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b6000821982111561203257612032612009565b500190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b6000828210156120d1576120d1612009565b500390565b60008160001904831182151516156120f0576120f0612009565b500290565b60008261211257634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561213f57600080fd5b815161123081611e76565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561219a5784516001600160a01b031683529383019391830191600101612175565b50506001600160a01b03969096166060850152505050608001529392505050565b6000806000606084860312156121d057600080fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220f53442a5326b1f1ae9981a993e0a8bf34fa9fa061cc3190a63458caa12c8c3b664736f6c634300080f0033
Deployed Bytecode Sourcemap
14211:13361:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16894:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17732:161;;;;;;;;;;-1:-1:-1;17732:161:0;;;;;:::i;:::-;;:::i;:::-;;;1237:14:1;;1230:22;1212:41;;1200:2;1185:18;17732:161:0;1072:187:1;21492:90:0;;;;;;;;;;-1:-1:-1;21561:13:0;;21492:90;;;1410:25:1;;;1398:2;1383:18;21492:90:0;1264:177:1;15317:41:0;;;;;;;;;;-1:-1:-1;15317:41:0;;;;-1:-1:-1;;;;;15317:41:0;;;;;;-1:-1:-1;;;;;1637:32:1;;;1619:51;;1607:2;1592:18;15317:41:0;1446:230:1;20950:115:0;;;;;;;;;;-1:-1:-1;20950:115:0;;;;;:::i;:::-;;:::i;:::-;;17171:100;;;;;;;;;;-1:-1:-1;17251:12:0;;17171:100;;21073:140;;;;;;;;;;-1:-1:-1;21073:140:0;;;;;:::i;:::-;-1:-1:-1;;;;;21168:37:0;21144:4;21168:37;;;:28;:37;;;;;;;;;21073:140;17901:313;;;;;;;;;;-1:-1:-1;17901:313:0;;;;;:::i;:::-;;:::i;21221:128::-;;;;;;;;;;-1:-1:-1;21221:128:0;;;;;:::i;:::-;;:::i;20342:143::-;;;;;;;;;;-1:-1:-1;20342:143:0;;;;;:::i;:::-;;:::i;17080:83::-;;;;;;;;;;-1:-1:-1;17146:9:0;;17080:83;;17146:9;;;;2721:36:1;;2709:2;2694:18;17080:83:0;2579:184:1;14697:93:0;;;;;;;;;;-1:-1:-1;14697:93:0;;;;-1:-1:-1;;;;;14697:93:0;;;18222:218;;;;;;;;;;-1:-1:-1;18222:218:0;;;;;:::i;:::-;;:::i;26944:200::-;;;;;;;;;;-1:-1:-1;26944:200:0;;;;;:::i;:::-;;:::i;27260:179::-;;;;;;;;;;;;;:::i;19858:476::-;;;;;;;;;;-1:-1:-1;19858:476:0;;;;;:::i;:::-;;:::i;15573:42::-;;;;;;;;;;-1:-1:-1;15573:42:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;15365:28;;;;;;;;;;-1:-1:-1;15365:28:0;;;;-1:-1:-1;;;;;15365:28:0;;;20690:128;;;;;;;;;;-1:-1:-1;20690:128:0;;;;;:::i;:::-;-1:-1:-1;;;;;20779:31:0;20755:4;20779:31;;;:22;:31;;;;;;;;;20690:128;19222:144;;;;;;;;;;-1:-1:-1;19222:144:0;;;;;:::i;:::-;;:::i;21894:103::-;;;;;;;;;;-1:-1:-1;21969:20:0;;21894:103;;21357:127;;;;;;;;;;-1:-1:-1;21357:127:0;;;;;:::i;:::-;;:::i;21695:97::-;;;;;;;;;;-1:-1:-1;21767:17:0;;21695:97;;17279:119;;;;;;;;;;-1:-1:-1;17279:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;17372:18:0;17345:7;17372:18;;;:9;:18;;;;;;;17279:119;6013:148;;;;;;;;;;;;;:::i;22005:98::-;;;;;;;;;;-1:-1:-1;22075:20:0;;22005:98;;26787:149;;;;;;;;;;;;;:::i;5799:79::-;;;;;;;;;;-1:-1:-1;5837:7:0;5864:6;-1:-1:-1;;;;;5864:6:0;5799:79;;19374:476;;;;;;;;;;-1:-1:-1;19374:476:0;;;;;:::i;:::-;;:::i;19070:144::-;;;;;;;;;;-1:-1:-1;19070:144:0;;;;;:::i;:::-;;:::i;16985:87::-;;;;;;;;;;;;;:::i;21590:97::-;;;;;;;;;;-1:-1:-1;21662:17:0;;21590:97;;20493:189;;;;;;;;;;-1:-1:-1;20493:189:0;;;;;:::i;:::-;;:::i;18448:269::-;;;;;;;;;;-1:-1:-1;18448:269:0;;;;;:::i;:::-;;:::i;14597:93::-;;;;;;;;;;-1:-1:-1;14597:93:0;;;;-1:-1:-1;;;;;14597:93:0;;;17406:167;;;;;;;;;;-1:-1:-1;17406:167:0;;;;;:::i;:::-;;:::i;27447:122::-;;;;;;;;;;-1:-1:-1;27447:122:0;;;;;:::i;:::-;;:::i;17581:143::-;;;;;;;;;;-1:-1:-1;17581:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;17689:18:0;;;17662:7;17689:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;17581:143;20826:116;;;;;;;;;;-1:-1:-1;20826:116:0;;;;;:::i;:::-;;:::i;21800:86::-;;;;;;;;;;-1:-1:-1;15101:2:0;21800:86;;6169:244;;;;;;;;;;-1:-1:-1;6169:244:0;;;;;:::i;:::-;;:::i;15504:41::-;;;;;;;;;;-1:-1:-1;15504:41:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;16894:83;16931:13;16964:5;16957:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16894:83;:::o;17732:161::-;17807:4;17824:39;199:10;17847:7;17856:6;17824:8;:39::i;:::-;-1:-1:-1;17881:4:0;17732:161;;;;;:::o;20950:115::-;5926:6;;-1:-1:-1;;;;;5926:6:0;199:10;5926:22;5918:67;;;;-1:-1:-1;;;5918:67:0;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;21018:31:0::1;21052:5;21018:31:::0;;;:22:::1;:31;::::0;;;;:39;;-1:-1:-1;;21018:39:0::1;::::0;;20950:115::o;17901:313::-;17999:4;18016:36;18026:6;18034:9;18045:6;18016:9;:36::i;:::-;18063:121;18072:6;199:10;18094:89;18132:6;18094:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;18094:19:0;;;;;;:11;:19;;;;;;;;199:10;18094:33;;;;;;;;;;:37;:89::i;:::-;18063:8;:121::i;:::-;-1:-1:-1;18202:4:0;17901:313;;;;;:::o;21221:128::-;5926:6;;-1:-1:-1;;;;;5926:6:0;199:10;5926:22;5918:67;;;;-1:-1:-1;;;5918:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;21297:37:0::1;;::::0;;;:28:::1;:37;::::0;;;;:44;;-1:-1:-1;;21297:44:0::1;21337:4;21297:44;::::0;;21221:128::o;20342:143::-;5926:6;;-1:-1:-1;;;;;5926:6:0;199:10;5926:22;5918:67;;;;-1:-1:-1;;;5918:67:0;;;;;;;:::i;:::-;20434:20:::1;:43:::0;20342:143::o;18222:218::-;199:10;18310:4;18359:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;18359:34:0;;;;;;;;;;18310:4;;18327:83;;18350:7;;18359:50;;18398:10;18359:38;:50::i;26944:200::-;5926:6;;-1:-1:-1;;;;;5926:6:0;199:10;5926:22;5918:67;;;;-1:-1:-1;;;5918:67:0;;;;;;;:::i;:::-;27040:7:::1;::::0;::::1;;:15;;:7:::0;:15:::1;27032:60;;;::::0;-1:-1:-1;;;27032:60:0;;5222:2:1;27032:60:0::1;::::0;::::1;5204:21:1::0;;;5241:18;;;5234:30;5300:34;5280:18;;;5273:62;5352:18;;27032:60:0::1;5020:356:1::0;27032:60:0::1;-1:-1:-1::0;;;;;27103:25:0;;;::::1;;::::0;;;:10:::1;:25;::::0;;;;:33;;-1:-1:-1;;27103:33:0::1;::::0;::::1;;::::0;;;::::1;::::0;;26944:200::o;27260:179::-;5926:6;;-1:-1:-1;;;;;5926:6:0;199:10;5926:22;5918:67;;;;-1:-1:-1;;;5918:67:0;;;;;;;:::i;:::-;27330:17:::1;::::0;::::1;;::::0;;::::1;;:25;;:17;:25;27322:73;;;::::0;-1:-1:-1;;;27322:73:0;;5583:2:1;27322:73:0::1;::::0;::::1;5565:21:1::0;5622:2;5602:18;;;5595:30;5661:34;5641:18;;;5634:62;-1:-1:-1;;;5712:18:1;;;5705:33;5755:19;;27322:73:0::1;5381:399:1::0;27322:73:0::1;27406:17;:25:::0;;-1:-1:-1;;27406:25:0::1;::::0;;27260:179::o;19858:476::-;5926:6;;-1:-1:-1;;;;;5926:6:0;199:10;5926:22;5918:67;;;;-1:-1:-1;;;5918:67:0;;;;;;;:::i;:::-;19956:16:::1;::::0;::::1;;19955:17;19947:46;;;::::0;-1:-1:-1;;;19947:46:0;;5987:2:1;19947:46:0::1;::::0;::::1;5969:21:1::0;6026:2;6006:18;;;5999:30;-1:-1:-1;;;6045:18:1;;;6038:46;6101:18;;19947:46:0::1;5785:340:1::0;19947:46:0::1;20012:17;::::0;15101:2:::1;::::0;20012:38:::1;::::0;20034:15;20012:21:::1;:38::i;:::-;:53;;20004:84;;;::::0;-1:-1:-1;;;20004:84:0;;6332:2:1;20004:84:0::1;::::0;::::1;6314:21:1::0;6371:2;6351:18;;;6344:30;-1:-1:-1;;;6390:18:1;;;6383:48;6448:18;;20004:84:0::1;6130:342:1::0;20004:84:0::1;20099:17;:35:::0;;;20161:17:::1;::::0;:40:::1;::::0;20119:15;20161:21:::1;:40::i;:::-;20145:13;:56:::0;20258:17:::1;::::0;20236::::1;::::0;:40:::1;::::0;:21:::1;:40::i;:::-;20212:21;:64:::0;20308:17:::1;::::0;20292:34:::1;::::0;1410:25:1;;;20292:34:0::1;::::0;1398:2:1;1383:18;20292:34:0::1;;;;;;;;19858:476:::0;:::o;19222:144::-;5926:6;;-1:-1:-1;;;;;5926:6:0;199:10;5926:22;5918:67;;;;-1:-1:-1;;;5918:67:0;;;;;;;:::i;:::-;19320:16:::1;:38:::0;;-1:-1:-1;;;;;;19320:38:0::1;-1:-1:-1::0;;;;;19320:38:0;;;::::1;::::0;;;::::1;::::0;;19222:144::o;21357:127::-;5926:6;;-1:-1:-1;;;;;5926:6:0;199:10;5926:22;5918:67;;;;-1:-1:-1;;;5918:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;21431:37:0::1;21471:5;21431:37:::0;;;:28:::1;:37;::::0;;;;:45;;-1:-1:-1;;21431:45:0::1;::::0;;21357:127::o;6013:148::-;5926:6;;-1:-1:-1;;;;;5926:6:0;199:10;5926:22;5918:67;;;;-1:-1:-1;;;5918:67:0;;;;;;;:::i;:::-;6120:1:::1;6104:6:::0;;6083:40:::1;::::0;-1:-1:-1;;;;;6104:6:0;;::::1;::::0;6083:40:::1;::::0;6120:1;;6083:40:::1;6151:1;6134:19:::0;;-1:-1:-1;;;;;;6134:19:0::1;::::0;;6013:148::o;26787:149::-;5926:6;;-1:-1:-1;;;;;5926:6:0;199:10;5926:22;5918:67;;;;-1:-1:-1;;;5918:67:0;;;;;;;:::i;:::-;26850:7:::1;::::0;::::1;;:15;;:7:::0;:15:::1;26842:60;;;::::0;-1:-1:-1;;;26842:60:0;;5222:2:1;26842:60:0::1;::::0;::::1;5204:21:1::0;;;5241:18;;;5234:30;5300:34;5280:18;;;5273:62;5352:18;;26842:60:0::1;5020:356:1::0;26842:60:0::1;26913:7;:15:::0;;-1:-1:-1;;26913:15:0::1;::::0;;26787:149::o;19374:476::-;5926:6;;-1:-1:-1;;;;;5926:6:0;199:10;5926:22;5918:67;;;;-1:-1:-1;;;5918:67:0;;;;;;;:::i;:::-;19472:16:::1;::::0;::::1;;19471:17;19463:46;;;::::0;-1:-1:-1;;;19463:46:0;;5987:2:1;19463:46:0::1;::::0;::::1;5969:21:1::0;6026:2;6006:18;;;5999:30;-1:-1:-1;;;6045:18:1;;;6038:46;6101:18;;19463:46:0::1;5785:340:1::0;19463:46:0::1;15101:2;19528:38;19548:17;;19528:15;:19;;:38;;;;:::i;:::-;:53;;19520:84;;;::::0;-1:-1:-1;;;19520:84:0;;6332:2:1;19520:84:0::1;::::0;::::1;6314:21:1::0;6371:2;6351:18;;;6344:30;-1:-1:-1;;;6390:18:1;;;6383:48;6448:18;;19520:84:0::1;6130:342:1::0;19520:84:0::1;19615:17;:35:::0;;;19699:17:::1;::::0;19677:40:::1;::::0;19635:15;;19677:21:::1;:40::i;:::-;19661:13;:56:::0;19774:17:::1;::::0;19752::::1;::::0;:40:::1;::::0;:21:::1;:40::i;:::-;19728:21;:64:::0;19824:17:::1;::::0;19808:34:::1;::::0;1410:25:1;;;19808:34:0::1;::::0;1398:2:1;1383:18;19808:34:0::1;1264:177:1::0;19070:144:0;5926:6;;-1:-1:-1;;;;;5926:6:0;199:10;5926:22;5918:67;;;;-1:-1:-1;;;5918:67:0;;;;;;;:::i;:::-;19168:16:::1;:38:::0;;-1:-1:-1;;;;;;19168:38:0::1;-1:-1:-1::0;;;;;19168:38:0;;;::::1;::::0;;;::::1;::::0;;19070:144::o;16985:87::-;17024:13;17057:7;17050:14;;;;;:::i;20493:189::-;5926:6;;-1:-1:-1;;;;;5926:6:0;199:10;5926:22;5918:67;;;;-1:-1:-1;;;5918:67:0;;;;;;;:::i;:::-;20597:29:::1;20621:4;20597:19;20614:1;20597:12;;:16;;:19;;;;:::i;:::-;:23:::0;::::1;:29::i;:::-;20580:13;:46;;20572:55;;;::::0;::::1;;20638:20;:36:::0;20493:189::o;18448:269::-;18541:4;18558:129;199:10;18581:7;18590:96;18629:15;18590:96;;;;;;;;;;;;;;;;;199:10;18590:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;18590:34:0;;;;;;;;;;;;:38;:96::i;17406:167::-;17484:4;17501:42;199:10;17525:9;17536:6;17501:9;:42::i;27447:122::-;5926:6;;-1:-1:-1;;;;;5926:6:0;199:10;5926:22;5918:67;;;;-1:-1:-1;;;5918:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;27531:22:0::1;27556:5;27531:22:::0;;;:9:::1;:22;::::0;;;;:30;;-1:-1:-1;;27531:30:0::1;::::0;;27447:122::o;20826:116::-;5926:6;;-1:-1:-1;;;;;5926:6:0;199:10;5926:22;5918:67;;;;-1:-1:-1;;;5918:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;20896:31:0::1;;::::0;;;:22:::1;:31;::::0;;;;:38;;-1:-1:-1;;20896:38:0::1;20930:4;20896:38;::::0;;20826:116::o;6169:244::-;5926:6;;-1:-1:-1;;;;;5926:6:0;199:10;5926:22;5918:67;;;;-1:-1:-1;;;5918:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;6258:22:0;::::1;6250:73;;;::::0;-1:-1:-1;;;6250:73:0;;6679:2:1;6250:73:0::1;::::0;::::1;6661:21:1::0;6718:2;6698:18;;;6691:30;6757:34;6737:18;;;6730:62;-1:-1:-1;;;6808:18:1;;;6801:36;6854:19;;6250:73:0::1;6477:402:1::0;6250:73:0::1;6360:6;::::0;;6339:38:::1;::::0;-1:-1:-1;;;;;6339:38:0;;::::1;::::0;6360:6;::::1;::::0;6339:38:::1;::::0;::::1;6388:6;:17:::0;;-1:-1:-1;;;;;;6388:17:0::1;-1:-1:-1::0;;;;;6388:17:0;;;::::1;::::0;;;::::1;::::0;;6169:244::o;1177:181::-;1235:7;;1267:5;1271:1;1267;:5;:::i;:::-;1255:17;;1296:1;1291;:6;;1283:46;;;;-1:-1:-1;;;1283:46:0;;7351:2:1;1283:46:0;;;7333:21:1;7390:2;7370:18;;;7363:30;7429:29;7409:18;;;7402:57;7476:18;;1283:46:0;7149:351:1;1283:46:0;1349:1;1177:181;-1:-1:-1;;;1177:181:0:o;18725:337::-;-1:-1:-1;;;;;18818:19:0;;18810:68;;;;-1:-1:-1;;;18810:68:0;;7707:2:1;18810:68:0;;;7689:21:1;7746:2;7726:18;;;7719:30;7785:34;7765:18;;;7758:62;-1:-1:-1;;;7836:18:1;;;7829:34;7880:19;;18810:68:0;7505:400:1;18810:68:0;-1:-1:-1;;;;;18897:21:0;;18889:68;;;;-1:-1:-1;;;18889:68:0;;8112:2:1;18889:68:0;;;8094:21:1;8151:2;8131:18;;;8124:30;8190:34;8170:18;;;8163:62;-1:-1:-1;;;8241:18:1;;;8234:32;8283:19;;18889:68:0;7910:398:1;18889:68:0;-1:-1:-1;;;;;18970:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;19022:32;;1410:25:1;;;19022:32:0;;1383:18:1;19022:32:0;;;;;;;;18725:337;;;:::o;22113:1734::-;-1:-1:-1;;;;;22236:15:0;;;;;;:9;:15;;;;;;;;22235:16;:34;;;;-1:-1:-1;;;;;;22256:13:0;;;;;;:9;:13;;;;;;;;22255:14;22235:34;22227:59;;;;-1:-1:-1;;;22227:59:0;;8515:2:1;22227:59:0;;;8497:21:1;8554:2;8534:18;;;8527:30;-1:-1:-1;;;8573:18:1;;;8566:42;8625:18;;22227:59:0;8313:336:1;22227:59:0;-1:-1:-1;;;;;22305:18:0;;22297:68;;;;-1:-1:-1;;;22297:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;22384:16:0;;22376:64;;;;-1:-1:-1;;;22376:64:0;;;;;;;:::i;:::-;22468:1;22459:6;:10;22451:64;;;;-1:-1:-1;;;22451:64:0;;9666:2:1;22451:64:0;;;9648:21:1;9705:2;9685:18;;;9678:30;9744:34;9724:18;;;9717:62;-1:-1:-1;;;9795:18:1;;;9788:39;9844:19;;22451:64:0;9464:405:1;22451:64:0;22547:7;;;;:15;;:7;:15;:34;;;;-1:-1:-1;5837:7:0;5864:6;-1:-1:-1;;;;;22566:15:0;;;5864:6;;22566:15;;22547:34;22530:132;;;-1:-1:-1;;;;;22616:14:0;;;;;;:10;:14;;;;;;;;22608:42;;;;-1:-1:-1;;;22608:42:0;;10076:2:1;22608:42:0;;;10058:21:1;10115:2;10095:18;;;10088:30;-1:-1:-1;;;10134:18:1;;;10127:45;10189:18;;22608:42:0;9874:339:1;22608:42:0;5837:7;5864:6;-1:-1:-1;;;;;22691:15:0;;;5864:6;;22691:15;;;;:45;;-1:-1:-1;5837:7:0;5864:6;-1:-1:-1;;;;;22723:13:0;;;5864:6;;22723:13;;22691:45;:95;;;;-1:-1:-1;;;;;;22754:32:0;;;;;;:28;:32;;;;;;;;22753:33;22691:95;22674:285;;;22868:20;;22839:25;22857:6;22839:13;22849:2;-1:-1:-1;;;;;17372:18:0;17345:7;17372:18;;;:9;:18;;;;;;;17279:119;22839:13;:17;;:25::i;:::-;:49;;22813:134;;;;-1:-1:-1;;;22813:134:0;;10420:2:1;22813:134:0;;;10402:21:1;10459:2;10439:18;;;10432:30;10498:25;10478:18;;;10471:53;10541:18;;22813:134:0;10218:347:1;22813:134:0;22994:13;;-1:-1:-1;;;;;22988:19:0;;;22994:13;;22988:19;:53;;;;-1:-1:-1;23025:16:0;;;;23024:17;22988:53;:118;;;;-1:-1:-1;23086:20:0;;23076:4;17345:7;17372:18;;;:9;:18;;;;;;23058:48;;22988:118;:160;;;;;23147:1;23123:21;;:25;22988:160;:192;;;;-1:-1:-1;5837:7:0;5864:6;-1:-1:-1;;;;;23165:15:0;;;5864:6;;23165:15;;22988:192;:222;;;;-1:-1:-1;5837:7:0;5864:6;-1:-1:-1;;;;;23197:13:0;;;5864:6;;23197:13;;22988:222;22971:291;;;23237:13;:11;:13::i;:::-;-1:-1:-1;;;;;23293:28:0;;;;;;:22;:28;;;;;;;;;:58;;-1:-1:-1;;;;;;23325:26:0;;;;;;:22;:26;;;;;;;;23293:58;23291:61;:95;;;;;23385:1;23369:13;;:17;23291:95;23274:337;;;23414:22;23439:42;23477:3;23439:33;23450:21;;23439:6;:10;;:33;;;;:::i;:42::-;23414:67;-1:-1:-1;23506:26:0;:6;23414:67;23506:10;:26::i;:::-;23497:35;;23549:50;23563:4;23577;23584:14;23549:13;:50::i;:::-;23398:213;23274:337;23648:13;;-1:-1:-1;;;;;23640:21:0;;;23648:13;;23640:21;:38;;;;-1:-1:-1;5837:7:0;5864:6;-1:-1:-1;;;;;23665:13:0;;;5864:6;;23665:13;;23640:38;:80;;;;-1:-1:-1;23695:17:0;;;;;;;;:25;;:17;:25;23640:80;:100;;;;-1:-1:-1;23724:7:0;;;;:16;23640:100;23623:173;;;23767:17;23781:2;-1:-1:-1;;;;;27215:22:0;;;;;:9;:22;;;;;:29;;-1:-1:-1;;27215:29:0;27240:4;27215:29;;;27152:100;23767:17;23808:31;23822:4;23828:2;23832:6;23808:13;:31::i;:::-;22113:1734;;;:::o;1510:192::-;1596:7;1632:12;1624:6;;;;1616:29;;;;-1:-1:-1;;;1616:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1656:9:0;1668:5;1672:1;1668;:5;:::i;:::-;1656:17;1510:192;-1:-1:-1;;;;;1510:192:0:o;1710:250::-;1768:7;1792:1;1797;1792:6;1788:47;;-1:-1:-1;1822:1:0;1815:8;;1788:47;1847:9;1859:5;1863:1;1859;:5;:::i;:::-;1847:17;-1:-1:-1;1892:1:0;1883:5;1887:1;1847:17;1883:5;:::i;:::-;:10;1875:56;;;;-1:-1:-1;;;1875:56:0;;11297:2:1;1875:56:0;;;11279:21:1;11336:2;11316:18;;;11309:30;11375:34;11355:18;;;11348:62;-1:-1:-1;;;11426:18:1;;;11419:31;11467:19;;1875:56:0;11095:397:1;1970:132:0;2028:7;2055:39;2059:1;2062;2055:39;;;;;;;;;;;;;;;;;:3;:39::i;23855:573::-;15656:16;:23;;-1:-1:-1;;15656:23:0;15675:4;15656:23;;;23995:21:::1;::::0;23972:17:::1;::::0;15656:16;;23943:74:::1;::::0;:47:::1;::::0;:24:::1;23961:4;-1:-1:-1::0;;;;;17372:18:0;17345:7;17372:18;;;:9;:18;;;;;;;17279:119;23943:24:::1;:28:::0;::::1;:47::i;:74::-;23911:106;;24028:29;24060:74;24112:21;;24060:47;24089:17;;24060:24;24078:4;-1:-1:-1::0;;;;;17372:18:0;17345:7;17372:18;;;:9;:18;;;;;;;17279:119;24060:74:::1;24192:17;::::0;24028:106;;-1:-1:-1;24192:21:0;24188:89:::1;;24228:37;24243:21;24228:14;:37::i;:::-;24334:17;::::0;:21;24330:91:::1;;24370:39;24387:21;24370:16;:39::i;:::-;-1:-1:-1::0;;15702:16:0;:24;;-1:-1:-1;;15702:24:0;;;23855:573::o;1366:136::-;1424:7;1451:43;1455:1;1458;1451:43;;;;;;;;;;;;;;;;;:3;:43::i;26305:474::-;-1:-1:-1;;;;;26406:20:0;;26398:70;;;;-1:-1:-1;;;26398:70:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;26487:23:0;;26479:71;;;;-1:-1:-1;;;26479:71:0;;;;;;;:::i;:::-;26583;26605:6;26583:71;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;26583:17:0;;;;;;:9;:17;;;;;;;:71;:21;:71::i;:::-;-1:-1:-1;;;;;26563:17:0;;;;;;;:9;:17;;;;;;:91;;;;26688:20;;;;;;;:32;;26713:6;26688:24;:32::i;:::-;-1:-1:-1;;;;;26665:20:0;;;;;;;:9;:20;;;;;;;:55;;;;26736:35;;;;;;;;;;26764:6;1410:25:1;;1398:2;1383:18;;1264:177;2110:278:0;2196:7;2231:12;2224:5;2216:28;;;;-1:-1:-1;;;2216:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2255:9:0;2267:5;2271:1;2267;:5;:::i;24436:361::-;24497:12;24512:13;:6;24523:1;24512:10;:13::i;:::-;24497:28;-1:-1:-1;24536:17:0;24556:16;:6;24497:28;24556:10;:16::i;:::-;24536:36;-1:-1:-1;24610:21:0;24644:22;24661:4;24644:16;:22::i;:::-;24679:18;24700:41;:21;24726:14;24700:25;:41::i;:::-;24679:62;;24754:35;24767:9;24778:10;24754:12;:35::i;:::-;24484:313;;;;24436:361;:::o;24805:109::-;24869:35;24897:6;24869:27;:35::i;:::-;24805:109;:::o;24922:477::-;25014:16;;;25028:1;25014:16;;;;;;;;24990:21;;25014:16;;;;;;;;;;-1:-1:-1;25014:16:0;24990:40;;25059:4;25041;25046:1;25041:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;25041:23:0;;;:7;;;;;;;;;;:23;;;;25085:15;;:22;;;-1:-1:-1;;;25085:22:0;;;;:15;;;;;:20;;:22;;;;;25041:7;;25085:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;25075:4;25080:1;25075:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;25075:32:0;;;:7;;;;;;;;;:32;25152:15;;25120:62;;25137:4;;25152:15;25170:11;25120:8;:62::i;:::-;25195:15;;:196;;-1:-1:-1;;;25195:196:0;;-1:-1:-1;;;;;25195:15:0;;;;:66;;:196;;25276:11;;25195:15;;25318:4;;25345;;25365:15;;25195:196;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24977:422;24922:477;:::o;25915:382::-;26030:15;;25998:62;;26015:4;;-1:-1:-1;;;;;26030:15:0;26048:11;25998:8;:62::i;:::-;26073:15;;26231:16;;26073:216;;-1:-1:-1;;;26073:216:0;;26145:4;26073:216;;;13343:34:1;13393:18;;;13386:34;;;26073:15:0;13436:18:1;;;13429:34;;;13479:18;;;13472:34;-1:-1:-1;;;;;26231:16:0;;;13522:19:1;;;13515:44;26263:15:0;13575:19:1;;;13568:35;26073:15:0;;;:31;;26112:9;;13277:19:1;;26073:216:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;25407:500::-;25510:16;;;25524:1;25510:16;;;;;;;;25486:21;;25510:16;;;;;;;;;;-1:-1:-1;25510:16:0;25486:40;;25555:4;25537;25542:1;25537:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;25537:23:0;;;:7;;;;;;;;;;:23;;;;25581:15;;:22;;;-1:-1:-1;;;25581:22:0;;;;:15;;;;;:20;;:22;;;;;25537:7;;25581:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;25571:4;25576:1;25571:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;25571:32:0;;;:7;;;;;;;;;:32;25648:15;;25616:62;;25633:4;;25648:15;25666:11;25616:8;:62::i;:::-;25691:15;;25841:16;;25691:208;;-1:-1:-1;;;25691:208:0;;-1:-1:-1;;;;;25691:15:0;;;;:66;;:208;;25772:11;;25691:15;;25814:4;;25841:16;;;25873:15;;25691:208;;;:::i;14:597:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;452:6;449:1;446:13;443:91;;;522:1;517:2;508:6;497:9;493:22;489:31;482:42;443:91;-1:-1:-1;595:2:1;574:15;-1:-1:-1;;570:29:1;555:45;;;;602:2;551:54;;14:597;-1:-1:-1;;;14:597:1:o;616:131::-;-1:-1:-1;;;;;691:31:1;;681:42;;671:70;;737:1;734;727:12;752:315;820:6;828;881:2;869:9;860:7;856:23;852:32;849:52;;;897:1;894;887:12;849:52;936:9;923:23;955:31;980:5;955:31;:::i;:::-;1005:5;1057:2;1042:18;;;;1029:32;;-1:-1:-1;;;752:315:1:o;1681:247::-;1740:6;1793:2;1781:9;1772:7;1768:23;1764:32;1761:52;;;1809:1;1806;1799:12;1761:52;1848:9;1835:23;1867:31;1892:5;1867:31;:::i;1933:456::-;2010:6;2018;2026;2079:2;2067:9;2058:7;2054:23;2050:32;2047:52;;;2095:1;2092;2085:12;2047:52;2134:9;2121:23;2153:31;2178:5;2153:31;:::i;:::-;2203:5;-1:-1:-1;2260:2:1;2245:18;;2232:32;2273:33;2232:32;2273:33;:::i;:::-;1933:456;;2325:7;;-1:-1:-1;;;2379:2:1;2364:18;;;;2351:32;;1933:456::o;2394:180::-;2453:6;2506:2;2494:9;2485:7;2481:23;2477:32;2474:52;;;2522:1;2519;2512:12;2474:52;-1:-1:-1;2545:23:1;;2394:180;-1:-1:-1;2394:180:1:o;2992:416::-;3057:6;3065;3118:2;3106:9;3097:7;3093:23;3089:32;3086:52;;;3134:1;3131;3124:12;3086:52;3173:9;3160:23;3192:31;3217:5;3192:31;:::i;:::-;3242:5;-1:-1:-1;3299:2:1;3284:18;;3271:32;3341:15;;3334:23;3322:36;;3312:64;;3372:1;3369;3362:12;3312:64;3395:7;3385:17;;;2992:416;;;;;:::o;3881:388::-;3949:6;3957;4010:2;3998:9;3989:7;3985:23;3981:32;3978:52;;;4026:1;4023;4016:12;3978:52;4065:9;4052:23;4084:31;4109:5;4084:31;:::i;:::-;4134:5;-1:-1:-1;4191:2:1;4176:18;;4163:32;4204:33;4163:32;4204:33;:::i;4274:380::-;4353:1;4349:12;;;;4396;;;4417:61;;4471:4;4463:6;4459:17;4449:27;;4417:61;4524:2;4516:6;4513:14;4493:18;4490:38;4487:161;;4570:10;4565:3;4561:20;4558:1;4551:31;4605:4;4602:1;4595:15;4633:4;4630:1;4623:15;4487:161;;4274:380;;;:::o;4659:356::-;4861:2;4843:21;;;4880:18;;;4873:30;4939:34;4934:2;4919:18;;4912:62;5006:2;4991:18;;4659:356::o;6884:127::-;6945:10;6940:3;6936:20;6933:1;6926:31;6976:4;6973:1;6966:15;7000:4;6997:1;6990:15;7016:128;7056:3;7087:1;7083:6;7080:1;7077:13;7074:39;;;7093:18;;:::i;:::-;-1:-1:-1;7129:9:1;;7016:128::o;8654:401::-;8856:2;8838:21;;;8895:2;8875:18;;;8868:30;8934:34;8929:2;8914:18;;8907:62;-1:-1:-1;;;9000:2:1;8985:18;;8978:35;9045:3;9030:19;;8654:401::o;9060:399::-;9262:2;9244:21;;;9301:2;9281:18;;;9274:30;9340:34;9335:2;9320:18;;9313:62;-1:-1:-1;;;9406:2:1;9391:18;;9384:33;9449:3;9434:19;;9060:399::o;10570:125::-;10610:4;10638:1;10635;10632:8;10629:34;;;10643:18;;:::i;:::-;-1:-1:-1;10680:9:1;;10570:125::o;10700:168::-;10740:7;10806:1;10802;10798:6;10794:14;10791:1;10788:21;10783:1;10776:9;10769:17;10765:45;10762:71;;;10813:18;;:::i;:::-;-1:-1:-1;10853:9:1;;10700:168::o;10873:217::-;10913:1;10939;10929:132;;10983:10;10978:3;10974:20;10971:1;10964:31;11018:4;11015:1;11008:15;11046:4;11043:1;11036:15;10929:132;-1:-1:-1;11075:9:1;;10873:217::o;11629:127::-;11690:10;11685:3;11681:20;11678:1;11671:31;11721:4;11718:1;11711:15;11745:4;11742:1;11735:15;11761:251;11831:6;11884:2;11872:9;11863:7;11859:23;11855:32;11852:52;;;11900:1;11897;11890:12;11852:52;11932:9;11926:16;11951:31;11976:5;11951:31;:::i;12017:980::-;12279:4;12327:3;12316:9;12312:19;12358:6;12347:9;12340:25;12384:2;12422:6;12417:2;12406:9;12402:18;12395:34;12465:3;12460:2;12449:9;12445:18;12438:31;12489:6;12524;12518:13;12555:6;12547;12540:22;12593:3;12582:9;12578:19;12571:26;;12632:2;12624:6;12620:15;12606:29;;12653:1;12663:195;12677:6;12674:1;12671:13;12663:195;;;12742:13;;-1:-1:-1;;;;;12738:39:1;12726:52;;12833:15;;;;12798:12;;;;12774:1;12692:9;12663:195;;;-1:-1:-1;;;;;;;12914:32:1;;;;12909:2;12894:18;;12887:60;-1:-1:-1;;;12978:3:1;12963:19;12956:35;12875:3;12017:980;-1:-1:-1;;;12017:980:1:o;13614:306::-;13702:6;13710;13718;13771:2;13759:9;13750:7;13746:23;13742:32;13739:52;;;13787:1;13784;13777:12;13739:52;13816:9;13810:16;13800:26;;13866:2;13855:9;13851:18;13845:25;13835:35;;13910:2;13899:9;13895:18;13889:25;13879:35;;13614:306;;;;;:::o
Swarm Source
ipfs://f53442a5326b1f1ae9981a993e0a8bf34fa9fa061cc3190a63458caa12c8c3b6
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ 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.