ERC-20
Overview
Max Total Supply
1,000,000,000,000,000 KITTYCLUB🥪
Holders
85
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
18,076,214,904,550.356795498 KITTYCLUB🥪Value
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
KittyClub
Compiler Version
v0.8.6+commit.11564f7e
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2021-07-14 */ // $KITTYCLUB🥪 | KittyClub // Telegram: https://t.me/KittyClubToken // With thanks and major props to the EverRise team! // Check them out at everrisecoin.com! // Fair Launch, no Dev Tokens. 100% LP. // Snipers will be nuked. // LP Lock immediately on launch. // Ownership will be renounced 30 minutes after launch. // Slippage Recommended: 13%+ // 3% Supply limit per TX for the first 5 minutes. /* ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░▓▒▓▒░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░▒▒▒▒▒▓▒▓█▓▓▓▓▓▓▓▓▒░░░▒▒░▒░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░▒▒▒░▒░░░░░░░░▒▒▒▒▓▓▒▒▓▓▓▓▓▓███▒░▒▒▒▓▒▒▒▒▒▒░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░▓▒▒▒▒▒░░░░░░▒▓▒▓▓▓▓▓▓▓▓▓▓█▓██▓░▒▒▒▓▒▒▒▒▒▒▒▒▒▒░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░▓▒▓▓▓▓░░░░░▒▒▓▓▓▓▓▒▒▓▓▓██▒▒▒▒▒▒▒▓▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒░░░░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░▓▒▒▒▓▓▒░░▒▒▒▒▒▒▒▒▒▒▓▓▓███▒▓▓▒▒▓▓▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▓▒▓▓▒▒░░░░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░▒▒▒▓▓▓▓▓▓▒▒▒▒▒▒▒▒▒▒▓▓███▓▒▒▓▒▓▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▓▒▒▒░░░░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░▓▒▒▓▒▓▒▓▓▒▒▒▒▒▒▒▒▓▓█▓░▒▒▒▓▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▓░░░░░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░▒▓▓▒▓▒▓▓▒▒▒▒▓▓▓▓▓█▓▒▒▒▒▓▓▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒░░░░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░▓▒▓▓▓▒▒▓▓▓▓▓▓▓▓▓▓▓▒░▒▒▒▓▒▒▒▒▒▒▒▓▒▒▒▒▒▒▒▒▒▒▒▒▓▒▒▒▒▒▒▒▒▒░░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░▒▒▓▓▓▓▓▓▓▓▓▓▓████▓░▒▒▒▓▒▒▒▒▒▒▒▓███▒▒▒▒▒▒▒▒▒▒██▓▓▒▒▒▒▒▒▒▒▒░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░▒▓▒▓▒▓▒▓▓█▓▓▓████▓▒▒▒▒▓▒▒▒▒▒▒▒▒░▒▒▓▒▒▒▒▒▓█▒▒▒▒▒▓▓▒▒▒▒▒▒▒▒▒▒▒▒░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░▒▒▓▓▓▒▒▓▓▓▓▓▓███▓▒▒▒▒▓▓▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒░▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒░░░░░░░░░░░░░░░░ ░░░░░░░░░▒▒▒▒▓▓▓▓▓▓▓██▓███▓▒▒▒▒▓▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒░░░░░░░░░░░░░░ ░░░░░░░░░▒▒▒▓▓▓▓▒▒▒▓▓▓██▓▒▒▒▒▓▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▓▓▓▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒░░░░░░░░░░░░ ░░░░░░░░░░░░░░░▓▓▓▓▒▓█▓▒▒▒▒▓▓▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▓▒░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░░▓▒▒▒▒▓▒▒▒▒▒▒▒▓▒▒▒▒▒▒▒▒▒▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░░░▒▒▒▒▒▒▒▒▒▒▒▒▓▓▒▒▒▒▒▒▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒▒▒▒▒▒▒▒▓▒▒▒▒▒▒▒▒▒░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░▒▒▒▒▒▒▒▒▒░░░░░░░░░░░░░░░░░░░▒▓▒▒▒▒▒▒▒░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░▒▒▒▒░░░░░░░░░░░░░░░░░░░░░░░░▒▒▒▒░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ */ // SPDX-License-Identifier: Unlicensed pragma solidity 0.8.6; 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; } function getUnlockTime() public view returns (uint256) { return _lockTime; } function getTime() public view returns (uint256) { return block.timestamp; } function lock(uint256 time) public virtual onlyOwner { _previousOwner = _owner; _owner = address(0); _lockTime = block.timestamp + time; emit OwnershipTransferred(_owner, address(0)); } function unlock() public virtual { require( _previousOwner == msg.sender, "You don't have permission to unlock" ); require(block.timestamp > _lockTime, "Contract is locked until 7 days"); emit OwnershipTransferred(_owner, _previousOwner); _owner = _previousOwner; } } // pragma solidity >=0.5.0; interface IUniswapV2Factory { event PairCreated( address indexed token0, address indexed token1, address pair, uint256 ); 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(uint256) external view returns (address pair); function allPairsLength() external view returns (uint256); 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, uint256 value ); event Transfer(address indexed from, address indexed to, uint256 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 (uint256); function balanceOf(address owner) external view returns (uint256); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 value) external returns (bool); function transfer(address to, uint256 value) external returns (bool); function transferFrom( address from, address to, uint256 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 (uint256); function permit( address owner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s ) external; event Burn( address indexed sender, uint256 amount0, uint256 amount1, address indexed to ); event Swap( address indexed sender, uint256 amount0In, uint256 amount1In, uint256 amount0Out, uint256 amount1Out, address indexed to ); event Sync(uint112 reserve0, uint112 reserve1); function MINIMUM_LIQUIDITY() external pure returns (uint256); 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 (uint256); function price1CumulativeLast() external view returns (uint256); function kLast() external view returns (uint256); function burn(address to) external returns (uint256 amount0, uint256 amount1); function swap( uint256 amount0Out, uint256 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, uint256 amountADesired, uint256 amountBDesired, uint256 amountAMin, uint256 amountBMin, address to, uint256 deadline ) external returns ( uint256 amountA, uint256 amountB, uint256 liquidity ); function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns ( uint256 amountToken, uint256 amountETH, uint256 liquidity ); function removeLiquidity( address tokenA, address tokenB, uint256 liquidity, uint256 amountAMin, uint256 amountBMin, address to, uint256 deadline ) external returns (uint256 amountA, uint256 amountB); function removeLiquidityETH( address token, uint256 liquidity, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external returns (uint256 amountToken, uint256 amountETH); function removeLiquidityWithPermit( address tokenA, address tokenB, uint256 liquidity, uint256 amountAMin, uint256 amountBMin, address to, uint256 deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint256 amountA, uint256 amountB); function removeLiquidityETHWithPermit( address token, uint256 liquidity, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint256 amountToken, uint256 amountETH); function swapExactTokensForTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external returns (uint256[] memory amounts); function swapTokensForExactTokens( uint256 amountOut, uint256 amountInMax, address[] calldata path, address to, uint256 deadline ) external returns (uint256[] memory amounts); function swapExactETHForTokens( uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external payable returns (uint256[] memory amounts); function swapTokensForExactETH( uint256 amountOut, uint256 amountInMax, address[] calldata path, address to, uint256 deadline ) external returns (uint256[] memory amounts); function swapExactTokensForETH( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external returns (uint256[] memory amounts); function swapETHForExactTokens( uint256 amountOut, address[] calldata path, address to, uint256 deadline ) external payable returns (uint256[] memory amounts); function quote( uint256 amountA, uint256 reserveA, uint256 reserveB ) external pure returns (uint256 amountB); function getAmountOut( uint256 amountIn, uint256 reserveIn, uint256 reserveOut ) external pure returns (uint256 amountOut); function getAmountIn( uint256 amountOut, uint256 reserveIn, uint256 reserveOut ) external pure returns (uint256 amountIn); function getAmountsOut(uint256 amountIn, address[] calldata path) external view returns (uint256[] memory amounts); function getAmountsIn(uint256 amountOut, address[] calldata path) external view returns (uint256[] memory amounts); } // pragma solidity >=0.6.2; interface IUniswapV2Router02 is IUniswapV2Router01 { function removeLiquidityETHSupportingFeeOnTransferTokens( address token, uint256 liquidity, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external returns (uint256 amountETH); function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens( address token, uint256 liquidity, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint256 amountETH); function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; } contract KittyClub is Context, IERC20, Ownable { using SafeMath for uint256; using Address for address; address payable private marketingAddress; address private _tradingAgent; address public immutable deadAddress = 0x000000000000000000000000000000000000dEaD; mapping(address => uint256) private _rOwned; mapping(address => uint256) private _tOwned; mapping(address => mapping(address => uint256)) private _allowances; mapping(address => bool) private _isExcludedFromFee; mapping(address => bool) private _isExcluded; address[] private _excluded; uint256 private constant MAX = ~uint256(0); uint256 private _tTotal = 1000000000 * 10**6 * 10**9; uint256 private _rTotal = (MAX - (MAX % _tTotal)); uint256 private _tFeeTotal; string private _name = "KittyClub"; string private _symbol = unicode"KITTYCLUB🥪"; uint8 private _decimals = 9; uint256 public _taxFee = 6; uint256 private _previousTaxFee = _taxFee; uint256 public _liquidityFee = 9; uint256 private _previousLiquidityFee = _liquidityFee; uint256 public marketingDivisor = 3; bool public tradingOpen = false; uint256 public _maxTxAmount = 300000000 * 10**6 * 10**9; uint256 private minimumTokensBeforeSwap = 200000 * 10**6 * 10**9; uint256 private buyBackUpperLimit = 1 * 10**18; IUniswapV2Router02 public immutable uniswapV2Router; address public immutable uniswapV2Pair; bool inSwapAndLiquify; bool public swapAndLiquifyEnabled = false; bool public buyBackEnabled = true; event RewardLiquidityProviders(uint256 tokenAmount); event BuyBackEnabledUpdated(bool enabled); event SwapAndLiquifyEnabledUpdated(bool enabled); event SwapAndLiquify( uint256 tokensSwapped, uint256 ethReceived, uint256 tokensIntoLiqudity ); event SwapETHForTokens(uint256 amountIn, address[] path); event SwapTokensForETH(uint256 amountIn, address[] path); modifier lockTheSwap { inSwapAndLiquify = true; _; inSwapAndLiquify = false; } constructor(address marketingAddress_, address tradingAgent_) { _rOwned[_msgSender()] = _rTotal; marketingAddress = payable(marketingAddress_); _tradingAgent = tradingAgent_; IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02( 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D ); uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); uniswapV2Router = _uniswapV2Router; _isExcludedFromFee[owner()] = true; _isExcludedFromFee[_tradingAgent] = true; _isExcludedFromFee[address(this)] = true; emit Transfer(address(0), _msgSender(), _tTotal); } function openTrading() external onlyOwnerOrTradingAgent() { require(!tradingOpen, "trading is already open"); uint256 contractBalanceEth = address(this).balance; // Allow the router to spend contract tokens _approve(address(this), address(uniswapV2Router), _tTotal * 2); // Add the ETH liquidity uniswapV2Router.addLiquidityETH{value: contractBalanceEth}( address(this), balanceOf(address(this)), 0, 0, _tradingAgent, block.timestamp ); // Allow the router to transfer LP tokens IERC20(uniswapV2Pair).approve( address(uniswapV2Router), type(uint256).max ); // Open trading with the right parameters tradingOpen = true; setSwapAndLiquifyEnabled(true); } modifier onlyOwnerOrTradingAgent() { bool isOwner = msg.sender == owner(); bool isTradingAgent = msg.sender == _tradingAgent; require(isOwner || isTradingAgent, "Caller is not a maintainer"); _; } 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 _tTotal; } function balanceOf(address account) public view override returns (uint256) { if (_isExcluded[account]) return _tOwned[account]; return tokenFromReflection(_rOwned[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 isExcludedFromReward(address account) public view returns (bool) { return _isExcluded[account]; } function totalFees() public view returns (uint256) { return _tFeeTotal; } function minimumTokensBeforeSwapAmount() public view returns (uint256) { return minimumTokensBeforeSwap; } function buyBackUpperLimitAmount() public view returns (uint256) { return buyBackUpperLimit; } function deliver(uint256 tAmount) public { address sender = _msgSender(); require( !_isExcluded[sender], "Excluded addresses cannot call this function" ); (uint256 rAmount, , , , , ) = _getValues(tAmount); _rOwned[sender] = _rOwned[sender].sub(rAmount); _rTotal = _rTotal.sub(rAmount); _tFeeTotal = _tFeeTotal.add(tAmount); } function reflectionFromToken(uint256 tAmount, bool deductTransferFee) public view returns (uint256) { require(tAmount <= _tTotal, "Amount must be less than supply"); if (!deductTransferFee) { (uint256 rAmount, , , , , ) = _getValues(tAmount); return rAmount; } else { (, uint256 rTransferAmount, , , , ) = _getValues(tAmount); return rTransferAmount; } } function tokenFromReflection(uint256 rAmount) public view returns (uint256) { require( rAmount <= _rTotal, "Amount must be less than total reflections" ); uint256 currentRate = _getRate(); return rAmount.div(currentRate); } function excludeFromReward(address account) public onlyOwner() { require(!_isExcluded[account], "Account is already excluded"); if (_rOwned[account] > 0) { _tOwned[account] = tokenFromReflection(_rOwned[account]); } _isExcluded[account] = true; _excluded.push(account); } function includeInReward(address account) external onlyOwner() { require(_isExcluded[account], "Account is already excluded"); for (uint256 i = 0; i < _excluded.length; i++) { if (_excluded[i] == account) { _excluded[i] = _excluded[_excluded.length - 1]; _tOwned[account] = 0; _isExcluded[account] = false; _excluded.pop(); break; } } } 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 _transfer( address from, address to, uint256 amount ) private { 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 ( from != owner() && to != owner() && from != address(this) && to != address(this) ) { require( amount <= _maxTxAmount, "Transfer amount exceeds the maxTxAmount." ); if (!tradingOpen) { if ( !(from == address(this) || to == address(this) || from == address(owner()) || to == address(owner())) ) { require(tradingOpen, "Trading is not enabled"); } } } uint256 contractTokenBalance = balanceOf(address(this)); bool overMinimumTokenBalance = contractTokenBalance >= minimumTokensBeforeSwap; if (!inSwapAndLiquify && swapAndLiquifyEnabled && to == uniswapV2Pair) { if (overMinimumTokenBalance) { contractTokenBalance = minimumTokensBeforeSwap; swapTokens(contractTokenBalance); } uint256 balance = address(this).balance; if (buyBackEnabled && balance > uint256(1 * 10**18)) { if (balance > buyBackUpperLimit) balance = buyBackUpperLimit; buyBackTokens(balance.div(100)); } } bool takeFee = true; //if any account belongs to _isExcludedFromFee account then remove the fee if (_isExcludedFromFee[from] || _isExcludedFromFee[to]) { takeFee = false; } _tokenTransfer(from, to, amount, takeFee); } function swapTokens(uint256 contractTokenBalance) private lockTheSwap { uint256 initialBalance = address(this).balance; swapTokensForEth(contractTokenBalance); uint256 transferredBalance = address(this).balance.sub(initialBalance); //Send to Marketing address transferToAddressETH( marketingAddress, transferredBalance.div(_liquidityFee).mul(marketingDivisor) ); } function buyBackTokens(uint256 amount) private lockTheSwap { if (amount > 0) { swapETHForTokens(amount); } } function swapTokensForEth(uint256 tokenAmount) private { // generate the uniswap pair path of token -> weth address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); // make the swap uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, // accept any amount of ETH path, address(this), // The contract block.timestamp ); emit SwapTokensForETH(tokenAmount, path); } function swapETHForTokens(uint256 amount) private { // generate the uniswap pair path of token -> weth address[] memory path = new address[](2); path[0] = uniswapV2Router.WETH(); path[1] = address(this); // make the swap uniswapV2Router.swapExactETHForTokensSupportingFeeOnTransferTokens{ value: amount }( 0, // accept any amount of Tokens path, deadAddress, // Burn address block.timestamp.add(300) ); emit SwapETHForTokens(amount, path); } function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private { // approve token transfer to cover all possible scenarios _approve(address(this), address(uniswapV2Router), tokenAmount); // add the liquidity uniswapV2Router.addLiquidityETH{value: ethAmount}( address(this), tokenAmount, 0, // slippage is unavoidable 0, // slippage is unavoidable owner(), block.timestamp ); } function _tokenTransfer( address sender, address recipient, uint256 amount, bool takeFee ) private { if (!takeFee) removeAllFee(); if (_isExcluded[sender] && !_isExcluded[recipient]) { _transferFromExcluded(sender, recipient, amount); } else if (!_isExcluded[sender] && _isExcluded[recipient]) { _transferToExcluded(sender, recipient, amount); } else if (_isExcluded[sender] && _isExcluded[recipient]) { _transferBothExcluded(sender, recipient, amount); } else { _transferStandard(sender, recipient, amount); } if (!takeFee) restoreAllFee(); } function _transferStandard( address sender, address recipient, uint256 tAmount ) private { ( uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tLiquidity ) = _getValues(tAmount); _rOwned[sender] = _rOwned[sender].sub(rAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); _takeLiquidity(tLiquidity); _reflectFee(rFee, tFee); emit Transfer(sender, recipient, tTransferAmount); } function _transferToExcluded( address sender, address recipient, uint256 tAmount ) private { ( uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tLiquidity ) = _getValues(tAmount); _rOwned[sender] = _rOwned[sender].sub(rAmount); _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); _takeLiquidity(tLiquidity); _reflectFee(rFee, tFee); emit Transfer(sender, recipient, tTransferAmount); } function _transferFromExcluded( address sender, address recipient, uint256 tAmount ) private { ( uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tLiquidity ) = _getValues(tAmount); _tOwned[sender] = _tOwned[sender].sub(tAmount); _rOwned[sender] = _rOwned[sender].sub(rAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); _takeLiquidity(tLiquidity); _reflectFee(rFee, tFee); emit Transfer(sender, recipient, tTransferAmount); } function _transferBothExcluded( address sender, address recipient, uint256 tAmount ) private { ( uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tLiquidity ) = _getValues(tAmount); _tOwned[sender] = _tOwned[sender].sub(tAmount); _rOwned[sender] = _rOwned[sender].sub(rAmount); _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); _takeLiquidity(tLiquidity); _reflectFee(rFee, tFee); emit Transfer(sender, recipient, tTransferAmount); } function _reflectFee(uint256 rFee, uint256 tFee) private { _rTotal = _rTotal.sub(rFee); _tFeeTotal = _tFeeTotal.add(tFee); } function _getValues(uint256 tAmount) private view returns ( uint256, uint256, uint256, uint256, uint256, uint256 ) { ( uint256 tTransferAmount, uint256 tFee, uint256 tLiquidity ) = _getTValues(tAmount); (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues( tAmount, tFee, tLiquidity, _getRate() ); return ( rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tLiquidity ); } function _getTValues(uint256 tAmount) private view returns ( uint256, uint256, uint256 ) { uint256 tFee = calculateTaxFee(tAmount); uint256 tLiquidity = calculateLiquidityFee(tAmount); uint256 tTransferAmount = tAmount.sub(tFee).sub(tLiquidity); return (tTransferAmount, tFee, tLiquidity); } function _getRValues( uint256 tAmount, uint256 tFee, uint256 tLiquidity, uint256 currentRate ) private pure returns ( uint256, uint256, uint256 ) { uint256 rAmount = tAmount.mul(currentRate); uint256 rFee = tFee.mul(currentRate); uint256 rLiquidity = tLiquidity.mul(currentRate); uint256 rTransferAmount = rAmount.sub(rFee).sub(rLiquidity); return (rAmount, rTransferAmount, rFee); } function _getRate() private view returns (uint256) { (uint256 rSupply, uint256 tSupply) = _getCurrentSupply(); return rSupply.div(tSupply); } function _getCurrentSupply() private view returns (uint256, uint256) { uint256 rSupply = _rTotal; uint256 tSupply = _tTotal; for (uint256 i = 0; i < _excluded.length; i++) { if ( _rOwned[_excluded[i]] > rSupply || _tOwned[_excluded[i]] > tSupply ) return (_rTotal, _tTotal); rSupply = rSupply.sub(_rOwned[_excluded[i]]); tSupply = tSupply.sub(_tOwned[_excluded[i]]); } if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal); return (rSupply, tSupply); } function _takeLiquidity(uint256 tLiquidity) private { uint256 currentRate = _getRate(); uint256 rLiquidity = tLiquidity.mul(currentRate); _rOwned[address(this)] = _rOwned[address(this)].add(rLiquidity); if (_isExcluded[address(this)]) _tOwned[address(this)] = _tOwned[address(this)].add(tLiquidity); } function calculateTaxFee(uint256 _amount) private view returns (uint256) { return _amount.mul(_taxFee).div(10**2); } function calculateLiquidityFee(uint256 _amount) private view returns (uint256) { return _amount.mul(_liquidityFee).div(10**2); } function removeAllFee() private { if (_taxFee == 0 && _liquidityFee == 0) return; _previousTaxFee = _taxFee; _previousLiquidityFee = _liquidityFee; _taxFee = 0; _liquidityFee = 0; } function restoreAllFee() private { _taxFee = _previousTaxFee; _liquidityFee = _previousLiquidityFee; } function isExcludedFromFee(address account) public view returns (bool) { return _isExcludedFromFee[account]; } function excludeFromFee(address account) public onlyOwner { _isExcludedFromFee[account] = true; } function includeInFee(address account) public onlyOwner { _isExcludedFromFee[account] = false; } function setTaxFeePercent(uint256 taxFee) external onlyOwner() { _taxFee = taxFee; } function setLiquidityFeePercent(uint256 liquidityFee) external onlyOwner() { _liquidityFee = liquidityFee; } function setMaxTxAmount(uint256 maxTxAmount) external onlyOwner() { _maxTxAmount = maxTxAmount; } function setMarketingDivisor(uint256 divisor) external onlyOwner() { marketingDivisor = divisor; } function setNumTokensSellToAddToLiquidity(uint256 _minimumTokensBeforeSwap) external onlyOwner() { minimumTokensBeforeSwap = _minimumTokensBeforeSwap; } function setBuybackUpperLimit(uint256 buyBackLimit) external onlyOwner() { buyBackUpperLimit = buyBackLimit * 10**18; } function setMarketingAddress(address _marketingAddress) external onlyOwner() { marketingAddress = payable(_marketingAddress); } function setSwapAndLiquifyEnabled(bool _enabled) public onlyOwner { swapAndLiquifyEnabled = _enabled; emit SwapAndLiquifyEnabledUpdated(_enabled); } function setBuyBackEnabled(bool _enabled) public onlyOwner { buyBackEnabled = _enabled; emit BuyBackEnabledUpdated(_enabled); } function transferToAddressETH(address payable recipient, uint256 amount) private { recipient.transfer(amount); } //to recieve ETH from uniswapV2Router when swapping receive() external payable {} function withdraw() public onlyOwnerOrTradingAgent { uint256 contractBalance = address(this).balance; address payable ownerWallet = payable(owner()); bool success = ownerWallet.send(contractBalance); require(success, "withdraw failed."); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"marketingAddress_","type":"address"},{"internalType":"address","name":"tradingAgent_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"BuyBackEnabledUpdated","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":"tokenAmount","type":"uint256"}],"name":"RewardLiquidityProviders","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"SwapAndLiquifyEnabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapETHForTokens","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapTokensForETH","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":[],"name":"_liquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyBackEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyBackUpperLimitAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tAmount","type":"uint256"}],"name":"deliver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getUnlockTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInReward","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":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromReward","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"time","type":"uint256"}],"name":"lock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingDivisor","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minimumTokensBeforeSwapAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tAmount","type":"uint256"},{"internalType":"bool","name":"deductTransferFee","type":"bool"}],"name":"reflectionFromToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setBuyBackEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"buyBackLimit","type":"uint256"}],"name":"setBuybackUpperLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"liquidityFee","type":"uint256"}],"name":"setLiquidityFeePercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_marketingAddress","type":"address"}],"name":"setMarketingAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"divisor","type":"uint256"}],"name":"setMarketingDivisor","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"setMaxTxAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_minimumTokensBeforeSwap","type":"uint256"}],"name":"setNumTokensSellToAddToLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setSwapAndLiquifyEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"taxFee","type":"uint256"}],"name":"setTaxFeePercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"rAmount","type":"uint256"}],"name":"tokenFromReflection","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":[],"name":"unlock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60e06040526ddead00000000000000000000000060805269d3c21bcecceda1000000600b8190556200003490600019620005cf565b62000042906000196200056c565b600c556040805180820190915260098082526825b4ba3a3ca1b63ab160b91b60209092019182526200007791600e916200044c565b5060408051808201909152600d8082526c25a4aa2a2ca1a62aa1784fd2d560991b6020909201918252620000ae91600f916200044c565b506010805460ff1990811660099081179092556006601181905560125560138290556014919091556003601555601680549091169055693f870857a3e0e3800000601755680ad78ebc5ac6200000601855670de0b6b3a7640000601955601a805462ffff001916620100001790553480156200012957600080fd5b50604051620037fd380380620037fd8339810160408190526200014c9162000534565b600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600c543360009081526005602090815260409182902092909255600380546001600160a01b038681166001600160a01b0319928316179092556004805492861692909116919091178155815163c45a015560e01b81529151737a250d5630b4cf539739df2c5dacb4c659f2488d93849363c45a0155938181019391829003018186803b1580156200021d57600080fd5b505afa15801562000232573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200025891906200050f565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620002a157600080fd5b505afa158015620002b6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002dc91906200050f565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b1580156200032557600080fd5b505af11580156200033a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200036091906200050f565b6001600160601b0319606091821b811660c0529082901b1660a052600160086000620003946000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff199687161790556004549091168152600890925280822080548416600190811790915530835291208054909216179055620003f33390565b6001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600b546040516200043b91815260200190565b60405180910390a3505050620005f2565b8280546200045a9062000592565b90600052602060002090601f0160209004810192826200047e5760008555620004c9565b82601f106200049957805160ff1916838001178555620004c9565b82800160010185558215620004c9579182015b82811115620004c9578251825591602001919060010190620004ac565b50620004d7929150620004db565b5090565b5b80821115620004d75760008155600101620004dc565b80516001600160a01b03811681146200050a57600080fd5b919050565b6000602082840312156200052257600080fd5b6200052d82620004f2565b9392505050565b600080604083850312156200054857600080fd5b6200055383620004f2565b91506200056360208401620004f2565b90509250929050565b6000828210156200058d57634e487b7160e01b600052601160045260246000fd5b500390565b600181811c90821680620005a757607f821691505b60208210811415620005c957634e487b7160e01b600052602260045260246000fd5b50919050565b600082620005ed57634e487b7160e01b600052601260045260246000fd5b500690565b60805160601c60a05160601c60c05160601c61318562000678600039600081816105840152818161177a0152611e060152600081816103a201528181611627015281816116570152818161174a015281816124e1015281816125a9015281816125e50152818161276a0152612858015260008181610423015261288301526131856000f3fe6080604052600436106102e85760003560e01c80636bc87c3a11610190578063a9059cbb116100dc578063dd46706411610095578063ec28438a1161006f578063ec28438a14610903578063f0f165af14610923578063f2fde38b14610943578063ffb54a991461096357600080fd5b8063dd4670641461087d578063dd62ed3e1461089d578063ea2f0b37146108e357600080fd5b8063a9059cbb146107dd578063b0cb81f1146107fd578063bdc653ef1461081d578063c49b9a8014610832578063c9567bf914610852578063d6b513cf1461086757600080fd5b80638da5cb5b1161014957806395d89b411161012357806395d89b411461077e578063a073d37f14610793578063a457c2d7146107a8578063a69df4b5146107c857600080fd5b80638da5cb5b146107205780638ee88c531461073e578063906e9dd01461075e57600080fd5b80636bc87c3a1461066657806370a082311461067c578063715018a61461069c5780637d1db4a5146106b157806382d2a4bb146106c757806388f82020146106e757600080fd5b8063395093511161024f57806349bd5a5e116102085780635342acb4116101e25780635342acb4146105e5578063557ed1ba1461061e578063602bc62b146106315780636053a0e31461064657600080fd5b806349bd5a5e146105725780634a74bb02146105a657806352390c02146105c557600080fd5b806339509351146104c75780633b124fe7146104e75780633bd5d173146104fd5780633ccfd60b1461051d578063437823ec146105325780634549b0391461055257600080fd5b806323b872dd116102a157806323b872dd146103f157806327c8f8351461041157806329370cc6146104455780632d83811914610465578063313ce567146104855780633685d419146104a757600080fd5b8063061c82d0146102f457806306fdde0314610316578063095ea7b31461034157806313114a9d146103715780631694505e1461039057806318160ddd146103dc57600080fd5b366102ef57005b600080fd5b34801561030057600080fd5b5061031461030f366004612de8565b61097d565b005b34801561032257600080fd5b5061032b6109b5565b6040516103389190612ecd565b60405180910390f35b34801561034d57600080fd5b5061036161035c366004612d82565b610a47565b6040519015158152602001610338565b34801561037d57600080fd5b50600d545b604051908152602001610338565b34801561039c57600080fd5b506103c47f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610338565b3480156103e857600080fd5b50600b54610382565b3480156103fd57600080fd5b5061036161040c366004612d41565b610a5e565b34801561041d57600080fd5b506103c47f000000000000000000000000000000000000000000000000000000000000000081565b34801561045157600080fd5b50610314610460366004612dae565b610ac7565b34801561047157600080fd5b50610382610480366004612de8565b610b47565b34801561049157600080fd5b5060105460405160ff9091168152602001610338565b3480156104b357600080fd5b506103146104c2366004612cce565b610bcb565b3480156104d357600080fd5b506103616104e2366004612d82565b610d82565b3480156104f357600080fd5b5061038260115481565b34801561050957600080fd5b50610314610518366004612de8565b610db8565b34801561052957600080fd5b50610314610ea2565b34801561053e57600080fd5b5061031461054d366004612cce565b610f9b565b34801561055e57600080fd5b5061038261056d366004612e01565b610fe9565b34801561057e57600080fd5b506103c47f000000000000000000000000000000000000000000000000000000000000000081565b3480156105b257600080fd5b50601a5461036190610100900460ff1681565b3480156105d157600080fd5b506103146105e0366004612cce565b611076565b3480156105f157600080fd5b50610361610600366004612cce565b6001600160a01b031660009081526008602052604090205460ff1690565b34801561062a57600080fd5b5042610382565b34801561063d57600080fd5b50600254610382565b34801561065257600080fd5b50601a546103619062010000900460ff1681565b34801561067257600080fd5b5061038260135481565b34801561068857600080fd5b50610382610697366004612cce565b6111c9565b3480156106a857600080fd5b50610314611228565b3480156106bd57600080fd5b5061038260175481565b3480156106d357600080fd5b506103146106e2366004612de8565b61128a565b3480156106f357600080fd5b50610361610702366004612cce565b6001600160a01b031660009081526009602052604090205460ff1690565b34801561072c57600080fd5b506000546001600160a01b03166103c4565b34801561074a57600080fd5b50610314610759366004612de8565b6112cc565b34801561076a57600080fd5b50610314610779366004612cce565b6112fb565b34801561078a57600080fd5b5061032b611347565b34801561079f57600080fd5b50601854610382565b3480156107b457600080fd5b506103616107c3366004612d82565b611356565b3480156107d457600080fd5b506103146113a5565b3480156107e957600080fd5b506103616107f8366004612d82565b6114ab565b34801561080957600080fd5b50610314610818366004612de8565b6114b8565b34801561082957600080fd5b50601954610382565b34801561083e57600080fd5b5061031461084d366004612dae565b6114e7565b34801561085e57600080fd5b5061031461155a565b34801561087357600080fd5b5061038260155481565b34801561088957600080fd5b50610314610898366004612de8565b611816565b3480156108a957600080fd5b506103826108b8366004612d08565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205490565b3480156108ef57600080fd5b506103146108fe366004612cce565b61189b565b34801561090f57600080fd5b5061031461091e366004612de8565b6118e6565b34801561092f57600080fd5b5061031461093e366004612de8565b611915565b34801561094f57600080fd5b5061031461095e366004612cce565b611944565b34801561096f57600080fd5b506016546103619060ff1681565b6000546001600160a01b031633146109b05760405162461bcd60e51b81526004016109a790612f22565b60405180910390fd5b601155565b6060600e80546109c490613024565b80601f01602080910402602001604051908101604052809291908181526020018280546109f090613024565b8015610a3d5780601f10610a1257610100808354040283529160200191610a3d565b820191906000526020600020905b815481529060010190602001808311610a2057829003601f168201915b5050505050905090565b6000610a54338484611a1c565b5060015b92915050565b6000610a6b848484611b40565b610abd8433610ab8856040518060600160405280602881526020016130e3602891396001600160a01b038a1660009081526007602090815260408083203384529091529020549190611efc565b611a1c565b5060019392505050565b6000546001600160a01b03163314610af15760405162461bcd60e51b81526004016109a790612f22565b601a8054821515620100000262ff0000199091161790556040517f3794234fa370c9f3b948dda3e3040530785b2ef1eb27dda3ffde478f4e2643c090610b3c90831515815260200190565b60405180910390a150565b6000600c54821115610bae5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016109a7565b6000610bb8611f36565b9050610bc48382611f59565b9392505050565b6000546001600160a01b03163314610bf55760405162461bcd60e51b81526004016109a790612f22565b6001600160a01b03811660009081526009602052604090205460ff16610c5d5760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c75646564000000000060448201526064016109a7565b60005b600a54811015610d7e57816001600160a01b0316600a8281548110610c8757610c876130a6565b6000918252602090912001546001600160a01b03161415610d6c57600a8054610cb29060019061300d565b81548110610cc257610cc26130a6565b600091825260209091200154600a80546001600160a01b039092169183908110610cee57610cee6130a6565b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600682526040808220829055600990925220805460ff19169055600a805480610d4657610d46613090565b600082815260209020810160001990810180546001600160a01b03191690550190555050565b80610d768161305f565b915050610c60565b5050565b3360008181526007602090815260408083206001600160a01b03871684529091528120549091610a54918590610ab89086611f9b565b3360008181526009602052604090205460ff1615610e2d5760405162461bcd60e51b815260206004820152602c60248201527f4578636c75646564206164647265737365732063616e6e6f742063616c6c207460448201526b3434b990333ab731ba34b7b760a11b60648201526084016109a7565b6000610e3883611ffa565b505050506001600160a01b038416600090815260056020526040902054919250610e6491905082612049565b6001600160a01b038316600090815260056020526040902055600c54610e8a9082612049565b600c55600d54610e9a9084611f9b565b600d55505050565b600054600454336001600160a01b0392831681149291909116148180610ec55750805b610f115760405162461bcd60e51b815260206004820152601a60248201527f43616c6c6572206973206e6f742061206d61696e7461696e657200000000000060448201526064016109a7565b476000610f266000546001600160a01b031690565b90506000816001600160a01b03166108fc849081150290604051600060405180830381858888f19350505050905080610f945760405162461bcd60e51b815260206004820152601060248201526f3bb4ba34323930bb903330b4b632b21760811b60448201526064016109a7565b5050505050565b6000546001600160a01b03163314610fc55760405162461bcd60e51b81526004016109a790612f22565b6001600160a01b03166000908152600860205260409020805460ff19166001179055565b6000600b5483111561103d5760405162461bcd60e51b815260206004820152601f60248201527f416d6f756e74206d757374206265206c657373207468616e20737570706c790060448201526064016109a7565b8161105c57600061104d84611ffa565b50939550610a58945050505050565b600061106784611ffa565b50929550610a58945050505050565b6000546001600160a01b031633146110a05760405162461bcd60e51b81526004016109a790612f22565b6001600160a01b03811660009081526009602052604090205460ff16156111095760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c75646564000000000060448201526064016109a7565b6001600160a01b03811660009081526005602052604090205415611163576001600160a01b03811660009081526005602052604090205461114990610b47565b6001600160a01b0382166000908152600660205260409020555b6001600160a01b03166000818152600960205260408120805460ff19166001908117909155600a805491820181559091527fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a80180546001600160a01b0319169091179055565b6001600160a01b03811660009081526009602052604081205460ff161561120657506001600160a01b031660009081526006602052604090205490565b6001600160a01b038216600090815260056020526040902054610a5890610b47565b6000546001600160a01b031633146112525760405162461bcd60e51b81526004016109a790612f22565b600080546040516001600160a01b039091169060008051602061310b833981519152908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146112b45760405162461bcd60e51b81526004016109a790612f22565b6112c681670de0b6b3a7640000612fee565b60195550565b6000546001600160a01b031633146112f65760405162461bcd60e51b81526004016109a790612f22565b601355565b6000546001600160a01b031633146113255760405162461bcd60e51b81526004016109a790612f22565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b6060600f80546109c490613024565b6000610a543384610ab88560405180606001604052806025815260200161312b602591393360009081526007602090815260408083206001600160a01b038d1684529091529020549190611efc565b6001546001600160a01b0316331461140b5760405162461bcd60e51b815260206004820152602360248201527f596f7520646f6e27742068617665207065726d697373696f6e20746f20756e6c6044820152626f636b60e81b60648201526084016109a7565b600254421161145c5760405162461bcd60e51b815260206004820152601f60248201527f436f6e7472616374206973206c6f636b656420756e74696c203720646179730060448201526064016109a7565b600154600080546040516001600160a01b03938416939091169160008051602061310b83398151915291a3600154600080546001600160a01b0319166001600160a01b03909216919091179055565b6000610a54338484611b40565b6000546001600160a01b031633146114e25760405162461bcd60e51b81526004016109a790612f22565b601555565b6000546001600160a01b031633146115115760405162461bcd60e51b81526004016109a790612f22565b601a80548215156101000261ff00199091161790556040517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc15990610b3c90831515815260200190565b600054600454336001600160a01b039283168114929190911614818061157d5750805b6115c95760405162461bcd60e51b815260206004820152601a60248201527f43616c6c6572206973206e6f742061206d61696e7461696e657200000000000060448201526064016109a7565b60165460ff161561161c5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016109a7565b6000479050611655307f0000000000000000000000000000000000000000000000000000000000000000600b546002610ab89190612fee565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f305d719823061168f306111c9565b6004805460405160e087901b6001600160e01b03191681526001600160a01b039485169281019290925260248201929092526000604482018190526064820152911660848201524260a482015260c4016060604051808303818588803b1580156116f857600080fd5b505af115801561170c573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906117319190612e26565b505060405163095ea7b360e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116600483015260001960248301527f000000000000000000000000000000000000000000000000000000000000000016915063095ea7b390604401602060405180830381600087803b1580156117bf57600080fd5b505af11580156117d3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117f79190612dcb565b506016805460ff19166001908117909155611811906114e7565b505050565b6000546001600160a01b031633146118405760405162461bcd60e51b81526004016109a790612f22565b60008054600180546001600160a01b03199081166001600160a01b0384161790915516905561186f8142612fb4565b600255600080546040516001600160a01b039091169060008051602061310b833981519152908390a350565b6000546001600160a01b031633146118c55760405162461bcd60e51b81526004016109a790612f22565b6001600160a01b03166000908152600860205260409020805460ff19169055565b6000546001600160a01b031633146119105760405162461bcd60e51b81526004016109a790612f22565b601755565b6000546001600160a01b0316331461193f5760405162461bcd60e51b81526004016109a790612f22565b601855565b6000546001600160a01b0316331461196e5760405162461bcd60e51b81526004016109a790612f22565b6001600160a01b0381166119d35760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016109a7565b600080546040516001600160a01b038085169392169160008051602061310b83398151915291a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316611a7e5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016109a7565b6001600160a01b038216611adf5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016109a7565b6001600160a01b0383811660008181526007602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316611ba45760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016109a7565b6001600160a01b038216611c065760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016109a7565b60008111611c685760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016109a7565b6000546001600160a01b03848116911614801590611c9457506000546001600160a01b03838116911614155b8015611ca957506001600160a01b0383163014155b8015611cbe57506001600160a01b0382163014155b15611dce57601754811115611d265760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b60648201526084016109a7565b60165460ff16611dce576001600160a01b038316301480611d4f57506001600160a01b03821630145b80611d6757506000546001600160a01b038481169116145b80611d7f57506000546001600160a01b038381169116145b611dce5760165460ff16611dce5760405162461bcd60e51b8152602060048201526016602482015275151c98591a5b99c81a5cc81b9bdd08195b98589b195960521b60448201526064016109a7565b6000611dd9306111c9565b601854601a549192508210159060ff16158015611dfd5750601a54610100900460ff165b8015611e3a57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316846001600160a01b0316145b15611e9d578015611e53576018549150611e538261208b565b601a54479062010000900460ff168015611e745750670de0b6b3a764000081115b15611e9b57601954811115611e8857506019545b611e9b611e96826064611f59565b6120f4565b505b6001600160a01b03851660009081526008602052604090205460019060ff1680611edf57506001600160a01b03851660009081526008602052604090205460ff165b15611ee8575060005b611ef48686868461211d565b505050505050565b60008184841115611f205760405162461bcd60e51b81526004016109a79190612ecd565b506000611f2d848661300d565b95945050505050565b6000806000611f43612248565b9092509050611f528282611f59565b9250505090565b6000610bc483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506123ca565b600080611fa88385612fb4565b905083811015610bc45760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016109a7565b60008060008060008060008060006120118a6123f8565b925092509250600080600061202f8d868661202a611f36565b61243a565b919f909e50909c50959a5093985091965092945050505050565b6000610bc483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611efc565b601a805460ff19166001179055476120a28261248a565b60006120ae4783612049565b6003546015546013549293506120e5926001600160a01b03909216916120e091906120da908690611f59565b90612692565b612711565b5050601a805460ff1916905550565b601a805460ff1916600117905580156121105761211081612747565b50601a805460ff19169055565b8061212a5761212a612930565b6001600160a01b03841660009081526009602052604090205460ff16801561216b57506001600160a01b03831660009081526009602052604090205460ff16155b156121805761217b84848461295e565b61222c565b6001600160a01b03841660009081526009602052604090205460ff161580156121c157506001600160a01b03831660009081526009602052604090205460ff165b156121d15761217b848484612a84565b6001600160a01b03841660009081526009602052604090205460ff16801561221157506001600160a01b03831660009081526009602052604090205460ff165b156122215761217b848484612b2d565b61222c848484612ba0565b8061224257612242601254601155601454601355565b50505050565b600c54600b546000918291825b600a5481101561239a578260056000600a8481548110612277576122776130a6565b60009182526020808320909101546001600160a01b0316835282019290925260400190205411806122e257508160066000600a84815481106122bb576122bb6130a6565b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b156122f857600c54600b54945094505050509091565b61233e60056000600a8481548110612312576123126130a6565b60009182526020808320909101546001600160a01b031683528201929092526040019020548490612049565b925061238660066000600a848154811061235a5761235a6130a6565b60009182526020808320909101546001600160a01b031683528201929092526040019020548390612049565b9150806123928161305f565b915050612255565b50600b54600c546123aa91611f59565b8210156123c157600c54600b549350935050509091565b90939092509050565b600081836123eb5760405162461bcd60e51b81526004016109a79190612ecd565b506000611f2d8486612fcc565b60008060008061240785612be4565b9050600061241486612c06565b9050600061242c826124268986612049565b90612049565b979296509094509092505050565b60008080806124498886612692565b905060006124578887612692565b905060006124658888612692565b90506000612477826124268686612049565b939b939a50919850919650505050505050565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106124bf576124bf6130a6565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561253857600080fd5b505afa15801561254c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125709190612ceb565b81600181518110612583576125836130a6565b60200260200101906001600160a01b031690816001600160a01b0316815250506125ce307f000000000000000000000000000000000000000000000000000000000000000084611a1c565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063791ac94790612623908590600090869030904290600401612f78565b600060405180830381600087803b15801561263d57600080fd5b505af1158015612651573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051612686929190612f57565b60405180910390a15050565b6000826126a157506000610a58565b60006126ad8385612fee565b9050826126ba8583612fcc565b14610bc45760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016109a7565b6040516001600160a01b0383169082156108fc029083906000818181858888f19350505050158015611811573d6000803e3d6000fd5b6040805160028082526060820183526000926020830190803683370190505090507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156127c157600080fd5b505afa1580156127d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127f99190612ceb565b8160008151811061280c5761280c6130a6565b60200260200101906001600160a01b031690816001600160a01b0316815250503081600181518110612840576128406130a6565b6001600160a01b0392831660209182029290920101527f00000000000000000000000000000000000000000000000000000000000000001663b6f9de95836000847f00000000000000000000000000000000000000000000000000000000000000006128ae4261012c611f9b565b6040518663ffffffff1660e01b81526004016128cd9493929190612e98565b6000604051808303818588803b1580156128e657600080fd5b505af11580156128fa573d6000803e3d6000fd5b50505050507f6fd378a9d8b7345c2e5b18229aaf1e39d32b177b501d0a0d26a0a858a23a96248282604051612686929190612f57565b6011541580156129405750601354155b1561294757565b601180546012556013805460145560009182905555565b60008060008060008061297087611ffa565b6001600160a01b038f16600090815260066020526040902054959b509399509197509550935091506129a29088612049565b6001600160a01b038a166000908152600660209081526040808320939093556005905220546129d19087612049565b6001600160a01b03808b1660009081526005602052604080822093909355908a1681522054612a009086611f9b565b6001600160a01b038916600090815260056020526040902055612a2281612c22565b612a2c8483612caa565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051612a7191815260200190565b60405180910390a3505050505050505050565b600080600080600080612a9687611ffa565b6001600160a01b038f16600090815260056020526040902054959b50939950919750955093509150612ac89087612049565b6001600160a01b03808b16600090815260056020908152604080832094909455918b16815260069091522054612afe9084611f9b565b6001600160a01b038916600090815260066020908152604080832093909355600590522054612a009086611f9b565b600080600080600080612b3f87611ffa565b6001600160a01b038f16600090815260066020526040902054959b50939950919750955093509150612b719088612049565b6001600160a01b038a16600090815260066020908152604080832093909355600590522054612ac89087612049565b600080600080600080612bb287611ffa565b6001600160a01b038f16600090815260056020526040902054959b509399509197509550935091506129d19087612049565b6000610a586064612c006011548561269290919063ffffffff16565b90611f59565b6000610a586064612c006013548561269290919063ffffffff16565b6000612c2c611f36565b90506000612c3a8383612692565b30600090815260056020526040902054909150612c579082611f9b565b3060009081526005602090815260408083209390935560099052205460ff16156118115730600090815260066020526040902054612c959084611f9b565b30600090815260066020526040902055505050565b600c54612cb79083612049565b600c55600d54612cc79082611f9b565b600d555050565b600060208284031215612ce057600080fd5b8135610bc4816130bc565b600060208284031215612cfd57600080fd5b8151610bc4816130bc565b60008060408385031215612d1b57600080fd5b8235612d26816130bc565b91506020830135612d36816130bc565b809150509250929050565b600080600060608486031215612d5657600080fd5b8335612d61816130bc565b92506020840135612d71816130bc565b929592945050506040919091013590565b60008060408385031215612d9557600080fd5b8235612da0816130bc565b946020939093013593505050565b600060208284031215612dc057600080fd5b8135610bc4816130d4565b600060208284031215612ddd57600080fd5b8151610bc4816130d4565b600060208284031215612dfa57600080fd5b5035919050565b60008060408385031215612e1457600080fd5b823591506020830135612d36816130d4565b600080600060608486031215612e3b57600080fd5b8351925060208401519150604084015190509250925092565b600081518084526020808501945080840160005b83811015612e8d5781516001600160a01b031687529582019590820190600101612e68565b509495945050505050565b848152608060208201526000612eb16080830186612e54565b6001600160a01b03949094166040830152506060015292915050565b600060208083528351808285015260005b81811015612efa57858101830151858201604001528201612ede565b81811115612f0c576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b828152604060208201526000612f706040830184612e54565b949350505050565b85815284602082015260a060408201526000612f9760a0830186612e54565b6001600160a01b0394909416606083015250608001529392505050565b60008219821115612fc757612fc761307a565b500190565b600082612fe957634e487b7160e01b600052601260045260246000fd5b500490565b60008160001904831182151516156130085761300861307a565b500290565b60008282101561301f5761301f61307a565b500390565b600181811c9082168061303857607f821691505b6020821081141561305957634e487b7160e01b600052602260045260246000fd5b50919050565b60006000198214156130735761307361307a565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6001600160a01b03811681146130d157600080fd5b50565b80151581146130d157600080fdfe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63658be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e045524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122097b5fda52c45d70963f308b3480b6323faa12260acab57fba4f70c19c61b1baa64736f6c6343000806003300000000000000000000000067a143fc9cfc8795e6fa0b6f415897e0e8529c3d0000000000000000000000003612650f4f12f49a666ed9ecb7e985073ea33f0d
Deployed Bytecode
0x6080604052600436106102e85760003560e01c80636bc87c3a11610190578063a9059cbb116100dc578063dd46706411610095578063ec28438a1161006f578063ec28438a14610903578063f0f165af14610923578063f2fde38b14610943578063ffb54a991461096357600080fd5b8063dd4670641461087d578063dd62ed3e1461089d578063ea2f0b37146108e357600080fd5b8063a9059cbb146107dd578063b0cb81f1146107fd578063bdc653ef1461081d578063c49b9a8014610832578063c9567bf914610852578063d6b513cf1461086757600080fd5b80638da5cb5b1161014957806395d89b411161012357806395d89b411461077e578063a073d37f14610793578063a457c2d7146107a8578063a69df4b5146107c857600080fd5b80638da5cb5b146107205780638ee88c531461073e578063906e9dd01461075e57600080fd5b80636bc87c3a1461066657806370a082311461067c578063715018a61461069c5780637d1db4a5146106b157806382d2a4bb146106c757806388f82020146106e757600080fd5b8063395093511161024f57806349bd5a5e116102085780635342acb4116101e25780635342acb4146105e5578063557ed1ba1461061e578063602bc62b146106315780636053a0e31461064657600080fd5b806349bd5a5e146105725780634a74bb02146105a657806352390c02146105c557600080fd5b806339509351146104c75780633b124fe7146104e75780633bd5d173146104fd5780633ccfd60b1461051d578063437823ec146105325780634549b0391461055257600080fd5b806323b872dd116102a157806323b872dd146103f157806327c8f8351461041157806329370cc6146104455780632d83811914610465578063313ce567146104855780633685d419146104a757600080fd5b8063061c82d0146102f457806306fdde0314610316578063095ea7b31461034157806313114a9d146103715780631694505e1461039057806318160ddd146103dc57600080fd5b366102ef57005b600080fd5b34801561030057600080fd5b5061031461030f366004612de8565b61097d565b005b34801561032257600080fd5b5061032b6109b5565b6040516103389190612ecd565b60405180910390f35b34801561034d57600080fd5b5061036161035c366004612d82565b610a47565b6040519015158152602001610338565b34801561037d57600080fd5b50600d545b604051908152602001610338565b34801561039c57600080fd5b506103c47f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b6040516001600160a01b039091168152602001610338565b3480156103e857600080fd5b50600b54610382565b3480156103fd57600080fd5b5061036161040c366004612d41565b610a5e565b34801561041d57600080fd5b506103c47f000000000000000000000000000000000000000000000000000000000000dead81565b34801561045157600080fd5b50610314610460366004612dae565b610ac7565b34801561047157600080fd5b50610382610480366004612de8565b610b47565b34801561049157600080fd5b5060105460405160ff9091168152602001610338565b3480156104b357600080fd5b506103146104c2366004612cce565b610bcb565b3480156104d357600080fd5b506103616104e2366004612d82565b610d82565b3480156104f357600080fd5b5061038260115481565b34801561050957600080fd5b50610314610518366004612de8565b610db8565b34801561052957600080fd5b50610314610ea2565b34801561053e57600080fd5b5061031461054d366004612cce565b610f9b565b34801561055e57600080fd5b5061038261056d366004612e01565b610fe9565b34801561057e57600080fd5b506103c47f00000000000000000000000073a625dae492f530624cdb05897d38d39cdd182381565b3480156105b257600080fd5b50601a5461036190610100900460ff1681565b3480156105d157600080fd5b506103146105e0366004612cce565b611076565b3480156105f157600080fd5b50610361610600366004612cce565b6001600160a01b031660009081526008602052604090205460ff1690565b34801561062a57600080fd5b5042610382565b34801561063d57600080fd5b50600254610382565b34801561065257600080fd5b50601a546103619062010000900460ff1681565b34801561067257600080fd5b5061038260135481565b34801561068857600080fd5b50610382610697366004612cce565b6111c9565b3480156106a857600080fd5b50610314611228565b3480156106bd57600080fd5b5061038260175481565b3480156106d357600080fd5b506103146106e2366004612de8565b61128a565b3480156106f357600080fd5b50610361610702366004612cce565b6001600160a01b031660009081526009602052604090205460ff1690565b34801561072c57600080fd5b506000546001600160a01b03166103c4565b34801561074a57600080fd5b50610314610759366004612de8565b6112cc565b34801561076a57600080fd5b50610314610779366004612cce565b6112fb565b34801561078a57600080fd5b5061032b611347565b34801561079f57600080fd5b50601854610382565b3480156107b457600080fd5b506103616107c3366004612d82565b611356565b3480156107d457600080fd5b506103146113a5565b3480156107e957600080fd5b506103616107f8366004612d82565b6114ab565b34801561080957600080fd5b50610314610818366004612de8565b6114b8565b34801561082957600080fd5b50601954610382565b34801561083e57600080fd5b5061031461084d366004612dae565b6114e7565b34801561085e57600080fd5b5061031461155a565b34801561087357600080fd5b5061038260155481565b34801561088957600080fd5b50610314610898366004612de8565b611816565b3480156108a957600080fd5b506103826108b8366004612d08565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205490565b3480156108ef57600080fd5b506103146108fe366004612cce565b61189b565b34801561090f57600080fd5b5061031461091e366004612de8565b6118e6565b34801561092f57600080fd5b5061031461093e366004612de8565b611915565b34801561094f57600080fd5b5061031461095e366004612cce565b611944565b34801561096f57600080fd5b506016546103619060ff1681565b6000546001600160a01b031633146109b05760405162461bcd60e51b81526004016109a790612f22565b60405180910390fd5b601155565b6060600e80546109c490613024565b80601f01602080910402602001604051908101604052809291908181526020018280546109f090613024565b8015610a3d5780601f10610a1257610100808354040283529160200191610a3d565b820191906000526020600020905b815481529060010190602001808311610a2057829003601f168201915b5050505050905090565b6000610a54338484611a1c565b5060015b92915050565b6000610a6b848484611b40565b610abd8433610ab8856040518060600160405280602881526020016130e3602891396001600160a01b038a1660009081526007602090815260408083203384529091529020549190611efc565b611a1c565b5060019392505050565b6000546001600160a01b03163314610af15760405162461bcd60e51b81526004016109a790612f22565b601a8054821515620100000262ff0000199091161790556040517f3794234fa370c9f3b948dda3e3040530785b2ef1eb27dda3ffde478f4e2643c090610b3c90831515815260200190565b60405180910390a150565b6000600c54821115610bae5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016109a7565b6000610bb8611f36565b9050610bc48382611f59565b9392505050565b6000546001600160a01b03163314610bf55760405162461bcd60e51b81526004016109a790612f22565b6001600160a01b03811660009081526009602052604090205460ff16610c5d5760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c75646564000000000060448201526064016109a7565b60005b600a54811015610d7e57816001600160a01b0316600a8281548110610c8757610c876130a6565b6000918252602090912001546001600160a01b03161415610d6c57600a8054610cb29060019061300d565b81548110610cc257610cc26130a6565b600091825260209091200154600a80546001600160a01b039092169183908110610cee57610cee6130a6565b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600682526040808220829055600990925220805460ff19169055600a805480610d4657610d46613090565b600082815260209020810160001990810180546001600160a01b03191690550190555050565b80610d768161305f565b915050610c60565b5050565b3360008181526007602090815260408083206001600160a01b03871684529091528120549091610a54918590610ab89086611f9b565b3360008181526009602052604090205460ff1615610e2d5760405162461bcd60e51b815260206004820152602c60248201527f4578636c75646564206164647265737365732063616e6e6f742063616c6c207460448201526b3434b990333ab731ba34b7b760a11b60648201526084016109a7565b6000610e3883611ffa565b505050506001600160a01b038416600090815260056020526040902054919250610e6491905082612049565b6001600160a01b038316600090815260056020526040902055600c54610e8a9082612049565b600c55600d54610e9a9084611f9b565b600d55505050565b600054600454336001600160a01b0392831681149291909116148180610ec55750805b610f115760405162461bcd60e51b815260206004820152601a60248201527f43616c6c6572206973206e6f742061206d61696e7461696e657200000000000060448201526064016109a7565b476000610f266000546001600160a01b031690565b90506000816001600160a01b03166108fc849081150290604051600060405180830381858888f19350505050905080610f945760405162461bcd60e51b815260206004820152601060248201526f3bb4ba34323930bb903330b4b632b21760811b60448201526064016109a7565b5050505050565b6000546001600160a01b03163314610fc55760405162461bcd60e51b81526004016109a790612f22565b6001600160a01b03166000908152600860205260409020805460ff19166001179055565b6000600b5483111561103d5760405162461bcd60e51b815260206004820152601f60248201527f416d6f756e74206d757374206265206c657373207468616e20737570706c790060448201526064016109a7565b8161105c57600061104d84611ffa565b50939550610a58945050505050565b600061106784611ffa565b50929550610a58945050505050565b6000546001600160a01b031633146110a05760405162461bcd60e51b81526004016109a790612f22565b6001600160a01b03811660009081526009602052604090205460ff16156111095760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c75646564000000000060448201526064016109a7565b6001600160a01b03811660009081526005602052604090205415611163576001600160a01b03811660009081526005602052604090205461114990610b47565b6001600160a01b0382166000908152600660205260409020555b6001600160a01b03166000818152600960205260408120805460ff19166001908117909155600a805491820181559091527fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a80180546001600160a01b0319169091179055565b6001600160a01b03811660009081526009602052604081205460ff161561120657506001600160a01b031660009081526006602052604090205490565b6001600160a01b038216600090815260056020526040902054610a5890610b47565b6000546001600160a01b031633146112525760405162461bcd60e51b81526004016109a790612f22565b600080546040516001600160a01b039091169060008051602061310b833981519152908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146112b45760405162461bcd60e51b81526004016109a790612f22565b6112c681670de0b6b3a7640000612fee565b60195550565b6000546001600160a01b031633146112f65760405162461bcd60e51b81526004016109a790612f22565b601355565b6000546001600160a01b031633146113255760405162461bcd60e51b81526004016109a790612f22565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b6060600f80546109c490613024565b6000610a543384610ab88560405180606001604052806025815260200161312b602591393360009081526007602090815260408083206001600160a01b038d1684529091529020549190611efc565b6001546001600160a01b0316331461140b5760405162461bcd60e51b815260206004820152602360248201527f596f7520646f6e27742068617665207065726d697373696f6e20746f20756e6c6044820152626f636b60e81b60648201526084016109a7565b600254421161145c5760405162461bcd60e51b815260206004820152601f60248201527f436f6e7472616374206973206c6f636b656420756e74696c203720646179730060448201526064016109a7565b600154600080546040516001600160a01b03938416939091169160008051602061310b83398151915291a3600154600080546001600160a01b0319166001600160a01b03909216919091179055565b6000610a54338484611b40565b6000546001600160a01b031633146114e25760405162461bcd60e51b81526004016109a790612f22565b601555565b6000546001600160a01b031633146115115760405162461bcd60e51b81526004016109a790612f22565b601a80548215156101000261ff00199091161790556040517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc15990610b3c90831515815260200190565b600054600454336001600160a01b039283168114929190911614818061157d5750805b6115c95760405162461bcd60e51b815260206004820152601a60248201527f43616c6c6572206973206e6f742061206d61696e7461696e657200000000000060448201526064016109a7565b60165460ff161561161c5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016109a7565b6000479050611655307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d600b546002610ab89190612fee565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663f305d719823061168f306111c9565b6004805460405160e087901b6001600160e01b03191681526001600160a01b039485169281019290925260248201929092526000604482018190526064820152911660848201524260a482015260c4016060604051808303818588803b1580156116f857600080fd5b505af115801561170c573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906117319190612e26565b505060405163095ea7b360e01b81526001600160a01b037f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d8116600483015260001960248301527f00000000000000000000000073a625dae492f530624cdb05897d38d39cdd182316915063095ea7b390604401602060405180830381600087803b1580156117bf57600080fd5b505af11580156117d3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117f79190612dcb565b506016805460ff19166001908117909155611811906114e7565b505050565b6000546001600160a01b031633146118405760405162461bcd60e51b81526004016109a790612f22565b60008054600180546001600160a01b03199081166001600160a01b0384161790915516905561186f8142612fb4565b600255600080546040516001600160a01b039091169060008051602061310b833981519152908390a350565b6000546001600160a01b031633146118c55760405162461bcd60e51b81526004016109a790612f22565b6001600160a01b03166000908152600860205260409020805460ff19169055565b6000546001600160a01b031633146119105760405162461bcd60e51b81526004016109a790612f22565b601755565b6000546001600160a01b0316331461193f5760405162461bcd60e51b81526004016109a790612f22565b601855565b6000546001600160a01b0316331461196e5760405162461bcd60e51b81526004016109a790612f22565b6001600160a01b0381166119d35760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016109a7565b600080546040516001600160a01b038085169392169160008051602061310b83398151915291a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316611a7e5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016109a7565b6001600160a01b038216611adf5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016109a7565b6001600160a01b0383811660008181526007602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316611ba45760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016109a7565b6001600160a01b038216611c065760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016109a7565b60008111611c685760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016109a7565b6000546001600160a01b03848116911614801590611c9457506000546001600160a01b03838116911614155b8015611ca957506001600160a01b0383163014155b8015611cbe57506001600160a01b0382163014155b15611dce57601754811115611d265760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b60648201526084016109a7565b60165460ff16611dce576001600160a01b038316301480611d4f57506001600160a01b03821630145b80611d6757506000546001600160a01b038481169116145b80611d7f57506000546001600160a01b038381169116145b611dce5760165460ff16611dce5760405162461bcd60e51b8152602060048201526016602482015275151c98591a5b99c81a5cc81b9bdd08195b98589b195960521b60448201526064016109a7565b6000611dd9306111c9565b601854601a549192508210159060ff16158015611dfd5750601a54610100900460ff165b8015611e3a57507f00000000000000000000000073a625dae492f530624cdb05897d38d39cdd18236001600160a01b0316846001600160a01b0316145b15611e9d578015611e53576018549150611e538261208b565b601a54479062010000900460ff168015611e745750670de0b6b3a764000081115b15611e9b57601954811115611e8857506019545b611e9b611e96826064611f59565b6120f4565b505b6001600160a01b03851660009081526008602052604090205460019060ff1680611edf57506001600160a01b03851660009081526008602052604090205460ff165b15611ee8575060005b611ef48686868461211d565b505050505050565b60008184841115611f205760405162461bcd60e51b81526004016109a79190612ecd565b506000611f2d848661300d565b95945050505050565b6000806000611f43612248565b9092509050611f528282611f59565b9250505090565b6000610bc483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506123ca565b600080611fa88385612fb4565b905083811015610bc45760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016109a7565b60008060008060008060008060006120118a6123f8565b925092509250600080600061202f8d868661202a611f36565b61243a565b919f909e50909c50959a5093985091965092945050505050565b6000610bc483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611efc565b601a805460ff19166001179055476120a28261248a565b60006120ae4783612049565b6003546015546013549293506120e5926001600160a01b03909216916120e091906120da908690611f59565b90612692565b612711565b5050601a805460ff1916905550565b601a805460ff1916600117905580156121105761211081612747565b50601a805460ff19169055565b8061212a5761212a612930565b6001600160a01b03841660009081526009602052604090205460ff16801561216b57506001600160a01b03831660009081526009602052604090205460ff16155b156121805761217b84848461295e565b61222c565b6001600160a01b03841660009081526009602052604090205460ff161580156121c157506001600160a01b03831660009081526009602052604090205460ff165b156121d15761217b848484612a84565b6001600160a01b03841660009081526009602052604090205460ff16801561221157506001600160a01b03831660009081526009602052604090205460ff165b156122215761217b848484612b2d565b61222c848484612ba0565b8061224257612242601254601155601454601355565b50505050565b600c54600b546000918291825b600a5481101561239a578260056000600a8481548110612277576122776130a6565b60009182526020808320909101546001600160a01b0316835282019290925260400190205411806122e257508160066000600a84815481106122bb576122bb6130a6565b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b156122f857600c54600b54945094505050509091565b61233e60056000600a8481548110612312576123126130a6565b60009182526020808320909101546001600160a01b031683528201929092526040019020548490612049565b925061238660066000600a848154811061235a5761235a6130a6565b60009182526020808320909101546001600160a01b031683528201929092526040019020548390612049565b9150806123928161305f565b915050612255565b50600b54600c546123aa91611f59565b8210156123c157600c54600b549350935050509091565b90939092509050565b600081836123eb5760405162461bcd60e51b81526004016109a79190612ecd565b506000611f2d8486612fcc565b60008060008061240785612be4565b9050600061241486612c06565b9050600061242c826124268986612049565b90612049565b979296509094509092505050565b60008080806124498886612692565b905060006124578887612692565b905060006124658888612692565b90506000612477826124268686612049565b939b939a50919850919650505050505050565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106124bf576124bf6130a6565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561253857600080fd5b505afa15801561254c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125709190612ceb565b81600181518110612583576125836130a6565b60200260200101906001600160a01b031690816001600160a01b0316815250506125ce307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84611a1c565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d169063791ac94790612623908590600090869030904290600401612f78565b600060405180830381600087803b15801561263d57600080fd5b505af1158015612651573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051612686929190612f57565b60405180910390a15050565b6000826126a157506000610a58565b60006126ad8385612fee565b9050826126ba8583612fcc565b14610bc45760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016109a7565b6040516001600160a01b0383169082156108fc029083906000818181858888f19350505050158015611811573d6000803e3d6000fd5b6040805160028082526060820183526000926020830190803683370190505090507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156127c157600080fd5b505afa1580156127d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127f99190612ceb565b8160008151811061280c5761280c6130a6565b60200260200101906001600160a01b031690816001600160a01b0316815250503081600181518110612840576128406130a6565b6001600160a01b0392831660209182029290920101527f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d1663b6f9de95836000847f000000000000000000000000000000000000000000000000000000000000dead6128ae4261012c611f9b565b6040518663ffffffff1660e01b81526004016128cd9493929190612e98565b6000604051808303818588803b1580156128e657600080fd5b505af11580156128fa573d6000803e3d6000fd5b50505050507f6fd378a9d8b7345c2e5b18229aaf1e39d32b177b501d0a0d26a0a858a23a96248282604051612686929190612f57565b6011541580156129405750601354155b1561294757565b601180546012556013805460145560009182905555565b60008060008060008061297087611ffa565b6001600160a01b038f16600090815260066020526040902054959b509399509197509550935091506129a29088612049565b6001600160a01b038a166000908152600660209081526040808320939093556005905220546129d19087612049565b6001600160a01b03808b1660009081526005602052604080822093909355908a1681522054612a009086611f9b565b6001600160a01b038916600090815260056020526040902055612a2281612c22565b612a2c8483612caa565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051612a7191815260200190565b60405180910390a3505050505050505050565b600080600080600080612a9687611ffa565b6001600160a01b038f16600090815260056020526040902054959b50939950919750955093509150612ac89087612049565b6001600160a01b03808b16600090815260056020908152604080832094909455918b16815260069091522054612afe9084611f9b565b6001600160a01b038916600090815260066020908152604080832093909355600590522054612a009086611f9b565b600080600080600080612b3f87611ffa565b6001600160a01b038f16600090815260066020526040902054959b50939950919750955093509150612b719088612049565b6001600160a01b038a16600090815260066020908152604080832093909355600590522054612ac89087612049565b600080600080600080612bb287611ffa565b6001600160a01b038f16600090815260056020526040902054959b509399509197509550935091506129d19087612049565b6000610a586064612c006011548561269290919063ffffffff16565b90611f59565b6000610a586064612c006013548561269290919063ffffffff16565b6000612c2c611f36565b90506000612c3a8383612692565b30600090815260056020526040902054909150612c579082611f9b565b3060009081526005602090815260408083209390935560099052205460ff16156118115730600090815260066020526040902054612c959084611f9b565b30600090815260066020526040902055505050565b600c54612cb79083612049565b600c55600d54612cc79082611f9b565b600d555050565b600060208284031215612ce057600080fd5b8135610bc4816130bc565b600060208284031215612cfd57600080fd5b8151610bc4816130bc565b60008060408385031215612d1b57600080fd5b8235612d26816130bc565b91506020830135612d36816130bc565b809150509250929050565b600080600060608486031215612d5657600080fd5b8335612d61816130bc565b92506020840135612d71816130bc565b929592945050506040919091013590565b60008060408385031215612d9557600080fd5b8235612da0816130bc565b946020939093013593505050565b600060208284031215612dc057600080fd5b8135610bc4816130d4565b600060208284031215612ddd57600080fd5b8151610bc4816130d4565b600060208284031215612dfa57600080fd5b5035919050565b60008060408385031215612e1457600080fd5b823591506020830135612d36816130d4565b600080600060608486031215612e3b57600080fd5b8351925060208401519150604084015190509250925092565b600081518084526020808501945080840160005b83811015612e8d5781516001600160a01b031687529582019590820190600101612e68565b509495945050505050565b848152608060208201526000612eb16080830186612e54565b6001600160a01b03949094166040830152506060015292915050565b600060208083528351808285015260005b81811015612efa57858101830151858201604001528201612ede565b81811115612f0c576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b828152604060208201526000612f706040830184612e54565b949350505050565b85815284602082015260a060408201526000612f9760a0830186612e54565b6001600160a01b0394909416606083015250608001529392505050565b60008219821115612fc757612fc761307a565b500190565b600082612fe957634e487b7160e01b600052601260045260246000fd5b500490565b60008160001904831182151516156130085761300861307a565b500290565b60008282101561301f5761301f61307a565b500390565b600181811c9082168061303857607f821691505b6020821081141561305957634e487b7160e01b600052602260045260246000fd5b50919050565b60006000198214156130735761307361307a565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6001600160a01b03811681146130d157600080fd5b50565b80151581146130d157600080fdfe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63658be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e045524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122097b5fda52c45d70963f308b3480b6323faa12260acab57fba4f70c19c61b1baa64736f6c63430008060033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000067a143fc9cfc8795e6fa0b6f415897e0e8529c3d0000000000000000000000003612650f4f12f49a666ed9ecb7e985073ea33f0d
-----Decoded View---------------
Arg [0] : marketingAddress_ (address): 0x67A143fc9cfc8795E6fa0b6f415897E0e8529c3d
Arg [1] : tradingAgent_ (address): 0x3612650F4f12f49A666Ed9ECb7E985073ea33F0d
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 00000000000000000000000067a143fc9cfc8795e6fa0b6f415897e0e8529c3d
Arg [1] : 0000000000000000000000003612650f4f12f49a666ed9ecb7e985073ea33f0d
Deployed Bytecode Sourcemap
29933:23208:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;51294:98;;;;;;;;;;-1:-1:-1;51294:98:0;;;;;:::i;:::-;;:::i;:::-;;33980:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;34965:193;;;;;;;;;;-1:-1:-1;34965:193:0;;;;;:::i;:::-;;:::i;:::-;;;4732:14:1;;4725:22;4707:41;;4695:2;4680:18;34965:193:0;4662:92:1;36464:87:0;;;;;;;;;;-1:-1:-1;36533:10:0;;36464:87;;;13927:25:1;;;13915:2;13900:18;36464:87:0;13882:76:1;31339:51:0;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3632:32:1;;;3614:51;;3602:2;3587:18;31339:51:0;3569:102:1;34257:95:0;;;;;;;;;;-1:-1:-1;34337:7:0;;34257:95;;35166:446;;;;;;;;;;-1:-1:-1;35166:446:0;;;;;:::i;:::-;;:::i;30137:90::-;;;;;;;;;;;;;;;52458:150;;;;;;;;;;-1:-1:-1;52458:150:0;;;;;:::i;:::-;;:::i;37717:322::-;;;;;;;;;;-1:-1:-1;37717:322:0;;;;;:::i;:::-;;:::i;34166:83::-;;;;;;;;;;-1:-1:-1;34232:9:0;;34166:83;;34232:9;;;;15029:36:1;;15017:2;15002:18;34166:83:0;14984:87:1;38389:479:0;;;;;;;;;;-1:-1:-1;38389:479:0;;;;;:::i;:::-;;:::i;35620:300::-;;;;;;;;;;-1:-1:-1;35620:300:0;;;;;:::i;:::-;;:::i;30887:26::-;;;;;;;;;;;;;;;;36803:419;;;;;;;;;;-1:-1:-1;36803:419:0;;;;;:::i;:::-;;:::i;52858:280::-;;;;;;;;;;;;;:::i;51057:111::-;;;;;;;;;;-1:-1:-1;51057:111:0;;;;;:::i;:::-;;:::i;37230:479::-;;;;;;;;;;-1:-1:-1;37230:479:0;;;;;:::i;:::-;;:::i;31397:38::-;;;;;;;;;;;;;;;31472:41;;;;;;;;;;-1:-1:-1;31472:41:0;;;;;;;;;;;38047:334;;;;;;;;;;-1:-1:-1;38047:334:0;;;;;:::i;:::-;;:::i;50925:124::-;;;;;;;;;;-1:-1:-1;50925:124:0;;;;;:::i;:::-;-1:-1:-1;;;;;51014:27:0;50990:4;51014:27;;;:18;:27;;;;;;;;;50925:124;19932:90;;;;;;;;;;-1:-1:-1;19999:15:0;19932:90;;19834;;;;;;;;;;-1:-1:-1;19907:9:0;;19834:90;;31520:33;;;;;;;;;;-1:-1:-1;31520:33:0;;;;;;;;;;;30970:32;;;;;;;;;;;;;;;;34360:198;;;;;;;;;;-1:-1:-1;34360:198:0;;;;;:::i;:::-;;:::i;19358:147::-;;;;;;;;;;;;;:::i;31151:55::-;;;;;;;;;;;;;;;;51966:133;;;;;;;;;;-1:-1:-1;51966:133:0;;;;;:::i;:::-;;:::i;36336:120::-;;;;;;;;;;-1:-1:-1;36336:120:0;;;;;:::i;:::-;-1:-1:-1;;;;;36428:20:0;36404:4;36428:20;;;:11;:20;;;;;;;;;36336:120;19144:79;;;;;;;;;;-1:-1:-1;19182:7:0;19209:6;-1:-1:-1;;;;;19209:6:0;19144:79;;51400:122;;;;;;;;;;-1:-1:-1;51400:122:0;;;;;:::i;:::-;;:::i;52107:164::-;;;;;;;;;;-1:-1:-1;52107:164:0;;;;;:::i;:::-;;:::i;34071:87::-;;;;;;;;;;;;;:::i;36559:120::-;;;;;;;;;;-1:-1:-1;36648:23:0;;36559:120;;35928:400;;;;;;;;;;-1:-1:-1;35928:400:0;;;;;:::i;:::-;;:::i;20264:341::-;;;;;;;;;;;;;:::i;34566:199::-;;;;;;;;;;-1:-1:-1;34566:199:0;;;;;:::i;:::-;;:::i;51649:112::-;;;;;;;;;;-1:-1:-1;51649:112:0;;;;;:::i;:::-;;:::i;36687:108::-;;;;;;;;;;-1:-1:-1;36770:17:0;;36687:108;;52279:171;;;;;;;;;;-1:-1:-1;52279:171:0;;;;;:::i;:::-;;:::i;32847:880::-;;;;;;;;;;;;;:::i;31071:35::-;;;;;;;;;;;;;;;;20030:226;;;;;;;;;;-1:-1:-1;20030:226:0;;;;;:::i;:::-;;:::i;34773:184::-;;;;;;;;;;-1:-1:-1;34773:184:0;;;;;:::i;:::-;-1:-1:-1;;;;;34922:18:0;;;34890:7;34922:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;34773:184;51176:110;;;;;;;;;;-1:-1:-1;51176:110:0;;;;;:::i;:::-;;:::i;51530:111::-;;;;;;;;;;-1:-1:-1;51530:111:0;;;;;:::i;:::-;;:::i;51769:189::-;;;;;;;;;;-1:-1:-1;51769:189:0;;;;;:::i;:::-;;:::i;19513:313::-;;;;;;;;;;-1:-1:-1;19513:313:0;;;;;:::i;:::-;;:::i;31113:31::-;;;;;;;;;;-1:-1:-1;31113:31:0;;;;;;;;51294:98;19271:6;;-1:-1:-1;;;;;19271:6:0;12865:10;19271:22;19263:67;;;;-1:-1:-1;;;19263:67:0;;;;;;;:::i;:::-;;;;;;;;;51368:7:::1;:16:::0;51294:98::o;33980:83::-;34017:13;34050:5;34043:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;33980:83;:::o;34965:193::-;35067:4;35089:39;12865:10;35112:7;35121:6;35089:8;:39::i;:::-;-1:-1:-1;35146:4:0;34965:193;;;;;:::o;35166:446::-;35298:4;35315:36;35325:6;35333:9;35344:6;35315:9;:36::i;:::-;35362:220;35385:6;12865:10;35433:138;35489:6;35433:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;35433:19:0;;;;;;:11;:19;;;;;;;;12865:10;35433:33;;;;;;;;;;:37;:138::i;:::-;35362:8;:220::i;:::-;-1:-1:-1;35600:4:0;35166:446;;;;;:::o;52458:150::-;19271:6;;-1:-1:-1;;;;;19271:6:0;12865:10;19271:22;19263:67;;;;-1:-1:-1;;;19263:67:0;;;;;;;:::i;:::-;52528:14:::1;:25:::0;;;::::1;;::::0;::::1;-1:-1:-1::0;;52528:25:0;;::::1;;::::0;;52569:31:::1;::::0;::::1;::::0;::::1;::::0;52545:8;4732:14:1;4725:22;4707:41;;4695:2;4680:18;;4662:92;52569:31:0::1;;;;;;;;52458:150:::0;:::o;37717:322::-;37811:7;37869;;37858;:18;;37836:110;;;;-1:-1:-1;;;37836:110:0;;6717:2:1;37836:110:0;;;6699:21:1;6756:2;6736:18;;;6729:30;6795:34;6775:18;;;6768:62;-1:-1:-1;;;6846:18:1;;;6839:40;6896:19;;37836:110:0;6689:232:1;37836:110:0;37957:19;37979:10;:8;:10::i;:::-;37957:32;-1:-1:-1;38007:24:0;:7;37957:32;38007:11;:24::i;:::-;38000:31;37717:322;-1:-1:-1;;;37717:322:0:o;38389:479::-;19271:6;;-1:-1:-1;;;;;19271:6:0;12865:10;19271:22;19263:67;;;;-1:-1:-1;;;19263:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;38471:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;;::::1;;38463:60;;;::::0;-1:-1:-1;;;38463:60:0;;8990:2:1;38463:60:0::1;::::0;::::1;8972:21:1::0;9029:2;9009:18;;;9002:30;9068:29;9048:18;;;9041:57;9115:18;;38463:60:0::1;8962:177:1::0;38463:60:0::1;38539:9;38534:327;38558:9;:16:::0;38554:20;::::1;38534:327;;;38616:7;-1:-1:-1::0;;;;;38600:23:0::1;:9;38610:1;38600:12;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;-1:-1:-1;;;;;38600:12:0::1;:23;38596:254;;;38659:9;38669:16:::0;;:20:::1;::::0;38688:1:::1;::::0;38669:20:::1;:::i;:::-;38659:31;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;38644:9:::1;:12:::0;;-1:-1:-1;;;;;38659:31:0;;::::1;::::0;38654:1;;38644:12;::::1;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;;;::::1;:46:::0;;-1:-1:-1;;;;;;38644:46:0::1;-1:-1:-1::0;;;;;38644:46:0;;::::1;;::::0;;38709:16;;::::1;::::0;;:7:::1;:16:::0;;;;;;:20;;;38748:11:::1;:20:::0;;;;:28;;-1:-1:-1;;38748:28:0::1;::::0;;38795:9:::1;:15:::0;;;::::1;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;-1:-1:-1;;38795:15:0;;;;;-1:-1:-1;;;;;;38795:15:0::1;::::0;;;;;38534:327:::1;38389:479:::0;:::o;38596:254::-:1;38576:3:::0;::::1;::::0;::::1;:::i;:::-;;;;38534:327;;;;38389:479:::0;:::o;35620:300::-;12865:10;35735:4;35829:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;35829:34:0;;;;;;;;;;35735:4;;35757:133;;35807:7;;35829:50;;35868:10;35829:38;:50::i;36803:419::-;12865:10;36855:14;36918:19;;;:11;:19;;;;;;;;36917:20;36895:114;;;;-1:-1:-1;;;36895:114:0;;13166:2:1;36895:114:0;;;13148:21:1;13205:2;13185:18;;;13178:30;13244:34;13224:18;;;13217:62;-1:-1:-1;;;13295:18:1;;;13288:42;13347:19;;36895:114:0;13138:234:1;36895:114:0;37021:15;37050:19;37061:7;37050:10;:19::i;:::-;-1:-1:-1;;;;;;;;;37098:15:0;;;;;;:7;:15;;;;;;37020:49;;-1:-1:-1;37098:28:0;;:15;-1:-1:-1;37020:49:0;37098:19;:28::i;:::-;-1:-1:-1;;;;;37080:15:0;;;;;;:7;:15;;;;;:46;37147:7;;:20;;37159:7;37147:11;:20::i;:::-;37137:7;:30;37191:10;;:23;;37206:7;37191:14;:23::i;:::-;37178:10;:36;-1:-1:-1;;;36803:419:0:o;52858:280::-;33781:12;19209:6;33864:13;;33796:10;-1:-1:-1;;;;;19209:6:0;;;33796:21;;;33864:13;;;;33850:27;33796:21;;33896:25;;;33907:14;33896:25;33888:64;;;;-1:-1:-1;;;33888:64:0;;12811:2:1;33888:64:0;;;12793:21:1;12850:2;12830:18;;;12823:30;12889:28;12869:18;;;12862:56;12935:18;;33888:64:0;12783:176:1;33888:64:0;52946:21:::1;52920:23;53016:7;19182::::0;19209:6;-1:-1:-1;;;;;19209:6:0;;19144:79;53016:7:::1;52978:46;;53035:12;53050:11;-1:-1:-1::0;;;;;53050:16:0::1;:33;53067:15;53050:33;;;;;;;;;;;;;;;;;;;;;;;53035:48;;53102:7;53094:36;;;::::0;-1:-1:-1;;;53094:36:0;;7938:2:1;53094:36:0::1;::::0;::::1;7920:21:1::0;7977:2;7957:18;;;7950:30;-1:-1:-1;;;7996:18:1;;;7989:46;8052:18;;53094:36:0::1;7910:166:1::0;53094:36:0::1;52909:229;;;33770:202:::0;;52858:280::o;51057:111::-;19271:6;;-1:-1:-1;;;;;19271:6:0;12865:10;19271:22;19263:67;;;;-1:-1:-1;;;19263:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;51126:27:0::1;;::::0;;;:18:::1;:27;::::0;;;;:34;;-1:-1:-1;;51126:34:0::1;51156:4;51126:34;::::0;;51057:111::o;37230:479::-;37348:7;37392;;37381;:18;;37373:62;;;;-1:-1:-1;;;37373:62:0;;9346:2:1;37373:62:0;;;9328:21:1;9385:2;9365:18;;;9358:30;9424:33;9404:18;;;9397:61;9475:18;;37373:62:0;9318:181:1;37373:62:0;37451:17;37446:256;;37486:15;37515:19;37526:7;37515:10;:19::i;:::-;-1:-1:-1;37485:49:0;;-1:-1:-1;37549:14:0;;-1:-1:-1;;;;;37549:14:0;37446:256;37599:23;37634:19;37645:7;37634:10;:19::i;:::-;-1:-1:-1;37596:57:0;;-1:-1:-1;37668:22:0;;-1:-1:-1;;;;;37668:22:0;38047:334;19271:6;;-1:-1:-1;;;;;19271:6:0;12865:10;19271:22;19263:67;;;;-1:-1:-1;;;19263:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;38130:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;;::::1;;38129:21;38121:61;;;::::0;-1:-1:-1;;;38121:61:0;;8990:2:1;38121:61:0::1;::::0;::::1;8972:21:1::0;9029:2;9009:18;;;9002:30;9068:29;9048:18;;;9041:57;9115:18;;38121:61:0::1;8962:177:1::0;38121:61:0::1;-1:-1:-1::0;;;;;38197:16:0;::::1;38216:1;38197:16:::0;;;:7:::1;:16;::::0;;;;;:20;38193:109:::1;;-1:-1:-1::0;;;;;38273:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;;38253:37:::1;::::0;:19:::1;:37::i;:::-;-1:-1:-1::0;;;;;38234:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;:56;38193:109:::1;-1:-1:-1::0;;;;;38312:20:0::1;;::::0;;;:11:::1;:20;::::0;;;;:27;;-1:-1:-1;;38312:27:0::1;38335:4;38312:27:::0;;::::1;::::0;;;38350:9:::1;:23:::0;;;;::::1;::::0;;;;;;::::1;::::0;;-1:-1:-1;;;;;;38350:23:0::1;::::0;;::::1;::::0;;38047:334::o;34360:198::-;-1:-1:-1;;;;;34450:20:0;;34426:7;34450:20;;;:11;:20;;;;;;;;34446:49;;;-1:-1:-1;;;;;;34479:16:0;;;;;:7;:16;;;;;;;34360:198::o;34446:49::-;-1:-1:-1;;;;;34533:16:0;;;;;;:7;:16;;;;;;34513:37;;:19;:37::i;19358:147::-;19271:6;;-1:-1:-1;;;;;19271:6:0;12865:10;19271:22;19263:67;;;;-1:-1:-1;;;19263:67:0;;;;;;;:::i;:::-;19464:1:::1;19448:6:::0;;19427:40:::1;::::0;-1:-1:-1;;;;;19448:6:0;;::::1;::::0;-1:-1:-1;;;;;;;;;;;19427:40:0;19464:1;;19427:40:::1;19495:1;19478:19:::0;;-1:-1:-1;;;;;;19478:19:0::1;::::0;;19358:147::o;51966:133::-;19271:6;;-1:-1:-1;;;;;19271:6:0;12865:10;19271:22;19263:67;;;;-1:-1:-1;;;19263:67:0;;;;;;;:::i;:::-;52070:21:::1;:12:::0;52085:6:::1;52070:21;:::i;:::-;52050:17;:41:::0;-1:-1:-1;51966:133:0:o;51400:122::-;19271:6;;-1:-1:-1;;;;;19271:6:0;12865:10;19271:22;19263:67;;;;-1:-1:-1;;;19263:67:0;;;;;;;:::i;:::-;51486:13:::1;:28:::0;51400:122::o;52107:164::-;19271:6;;-1:-1:-1;;;;;19271:6:0;12865:10;19271:22;19263:67;;;;-1:-1:-1;;;19263:67:0;;;;;;;:::i;:::-;52218:16:::1;:45:::0;;-1:-1:-1;;;;;;52218:45:0::1;-1:-1:-1::0;;;;;52218:45:0;;;::::1;::::0;;;::::1;::::0;;52107:164::o;34071:87::-;34110:13;34143:7;34136:14;;;;;:::i;35928:400::-;36048:4;36070:228;12865:10;36120:7;36142:145;36199:15;36142:145;;;;;;;;;;;;;;;;;12865:10;36142:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;36142:34:0;;;;;;;;;;;;:38;:145::i;20264:341::-;20330:14;;-1:-1:-1;;;;;20330:14:0;20348:10;20330:28;20308:113;;;;-1:-1:-1;;;20308:113:0;;13579:2:1;20308:113:0;;;13561:21:1;13618:2;13598:18;;;13591:30;13657:34;13637:18;;;13630:62;-1:-1:-1;;;13708:18:1;;;13701:33;13751:19;;20308:113:0;13551:225:1;20308:113:0;20458:9;;20440:15;:27;20432:71;;;;-1:-1:-1;;;20432:71:0;;12451:2:1;20432:71:0;;;12433:21:1;12490:2;12470:18;;;12463:30;12529:33;12509:18;;;12502:61;12580:18;;20432:71:0;12423:181:1;20432:71:0;20548:14;;;20540:6;;20519:44;;-1:-1:-1;;;;;20548:14:0;;;;20540:6;;;;-1:-1:-1;;;;;;;;;;;20519:44:0;;20583:14;;;20574:23;;-1:-1:-1;;;;;;20574:23:0;-1:-1:-1;;;;;20583:14:0;;;20574:23;;;;;;20264:341::o;34566:199::-;34671:4;34693:42;12865:10;34717:9;34728:6;34693:9;:42::i;51649:112::-;19271:6;;-1:-1:-1;;;;;19271:6:0;12865:10;19271:22;19263:67;;;;-1:-1:-1;;;19263:67:0;;;;;;;:::i;:::-;51727:16:::1;:26:::0;51649:112::o;52279:171::-;19271:6;;-1:-1:-1;;;;;19271:6:0;12865:10;19271:22;19263:67;;;;-1:-1:-1;;;19263:67:0;;;;;;;:::i;:::-;52356:21:::1;:32:::0;;;::::1;;;;-1:-1:-1::0;;52356:32:0;;::::1;;::::0;;52404:38:::1;::::0;::::1;::::0;::::1;::::0;52380:8;4732:14:1;4725:22;4707:41;;4695:2;4680:18;;4662:92;32847:880:0;33781:12;19209:6;33864:13;;33796:10;-1:-1:-1;;;;;19209:6:0;;;33796:21;;;33864:13;;;;33850:27;33796:21;;33896:25;;;33907:14;33896:25;33888:64;;;;-1:-1:-1;;;33888:64:0;;12811:2:1;33888:64:0;;;12793:21:1;12850:2;12830:18;;;12823:30;12889:28;12869:18;;;12862:56;12935:18;;33888:64:0;12783:176:1;33888:64:0;32925:11:::1;::::0;::::1;;32924:12;32916:48;;;::::0;-1:-1:-1;;;32916:48:0;;12099:2:1;32916:48:0::1;::::0;::::1;12081:21:1::0;12138:2;12118:18;;;12111:30;12177:25;12157:18;;;12150:53;12220:18;;32916:48:0::1;12071:173:1::0;32916:48:0::1;32975:26;33004:21;32975:50;;33090:62;33107:4;33122:15;33140:7;;33150:1;33140:11;;;;:::i;33090:62::-;33197:15;-1:-1:-1::0;;;;;33197:31:0::1;;33236:18;33278:4;33298:24;33316:4;33298:9;:24::i;:::-;33369:13;::::0;;33197:226:::1;::::0;::::1;::::0;;;-1:-1:-1;;;;;;33197:226:0;;;-1:-1:-1;;;;;4314:15:1;;;33197:226:0;;::::1;4296:34:1::0;;;;4346:18;;;4339:34;;;;33337:1:0::1;4389:18:1::0;;;4382:34;;;4432:18;;;4425:34;33369:13:0;::::1;4475:19:1::0;;;4468:44;33397:15:0::1;4528:19:1::0;;;4521:35;4230:19;;33197:226:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;33485:111:0::1;::::0;-1:-1:-1;;;33485:111:0;;-1:-1:-1;;;;;33537:15:0::1;3868:32:1::0;;33485:111:0::1;::::0;::::1;3850:51:1::0;-1:-1:-1;;3917:18:1;;;3910:34;33492:13:0::1;33485:29;::::0;-1:-1:-1;33485:29:0::1;::::0;3823:18:1;;33485:111:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;33660:11:0::1;:18:::0;;-1:-1:-1;;33660:18:0::1;33674:4;33660:18:::0;;::::1;::::0;;;33689:30:::1;::::0;:24:::1;:30::i;:::-;32905:822;33770:202:::0;;32847:880::o;20030:226::-;19271:6;;-1:-1:-1;;;;;19271:6:0;12865:10;19271:22;19263:67;;;;-1:-1:-1;;;19263:67:0;;;;;;;:::i;:::-;20111:6:::1;::::0;;;20094:23;;-1:-1:-1;;;;;;20094:23:0;;::::1;-1:-1:-1::0;;;;;20111:6:0;::::1;20094:23;::::0;;;20128:19:::1;::::0;;20170:22:::1;20188:4:::0;20170:15:::1;:22;:::i;:::-;20158:9;:34:::0;20245:1:::1;20229:6:::0;;20208:40:::1;::::0;-1:-1:-1;;;;;20229:6:0;;::::1;::::0;-1:-1:-1;;;;;;;;;;;20208:40:0;20245:1;;20208:40:::1;20030:226:::0;:::o;51176:110::-;19271:6;;-1:-1:-1;;;;;19271:6:0;12865:10;19271:22;19263:67;;;;-1:-1:-1;;;19263:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;51243:27:0::1;51273:5;51243:27:::0;;;:18:::1;:27;::::0;;;;:35;;-1:-1:-1;;51243:35:0::1;::::0;;51176:110::o;51530:111::-;19271:6;;-1:-1:-1;;;;;19271:6:0;12865:10;19271:22;19263:67;;;;-1:-1:-1;;;19263:67:0;;;;;;;:::i;:::-;51607:12:::1;:26:::0;51530:111::o;51769:189::-;19271:6;;-1:-1:-1;;;;;19271:6:0;12865:10;19271:22;19263:67;;;;-1:-1:-1;;;19263:67:0;;;;;;;:::i;:::-;51900:23:::1;:50:::0;51769:189::o;19513:313::-;19271:6;;-1:-1:-1;;;;;19271:6:0;12865:10;19271:22;19263:67;;;;-1:-1:-1;;;19263:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;19648:22:0;::::1;19626:110;;;::::0;-1:-1:-1;;;19626:110:0;;7128:2:1;19626:110:0::1;::::0;::::1;7110:21:1::0;7167:2;7147:18;;;7140:30;7206:34;7186:18;;;7179:62;-1:-1:-1;;;7257:18:1;;;7250:36;7303:19;;19626:110:0::1;7100:228:1::0;19626:110:0::1;19773:6;::::0;;19752:38:::1;::::0;-1:-1:-1;;;;;19752:38:0;;::::1;::::0;19773:6;::::1;::::0;-1:-1:-1;;;;;;;;;;;19752:38:0;::::1;19801:6;:17:::0;;-1:-1:-1;;;;;;19801:17:0::1;-1:-1:-1::0;;;;;19801:17:0;;;::::1;::::0;;;::::1;::::0;;19513:313::o;38876:371::-;-1:-1:-1;;;;;39003:19:0;;38995:68;;;;-1:-1:-1;;;38995:68:0;;11694:2:1;38995:68:0;;;11676:21:1;11733:2;11713:18;;;11706:30;11772:34;11752:18;;;11745:62;-1:-1:-1;;;11823:18:1;;;11816:34;11867:19;;38995:68:0;11666:226:1;38995:68:0;-1:-1:-1;;;;;39082:21:0;;39074:68;;;;-1:-1:-1;;;39074:68:0;;7535:2:1;39074:68:0;;;7517:21:1;7574:2;7554:18;;;7547:30;7613:34;7593:18;;;7586:62;-1:-1:-1;;;7664:18:1;;;7657:32;7706:19;;39074:68:0;7507:224:1;39074:68:0;-1:-1:-1;;;;;39155:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;39207:32;;13927:25:1;;;39207:32:0;;13900:18:1;39207:32:0;;;;;;;38876:371;;;:::o;39255:2015::-;-1:-1:-1;;;;;39377:18:0;;39369:68;;;;-1:-1:-1;;;39369:68:0;;11288:2:1;39369:68:0;;;11270:21:1;11327:2;11307:18;;;11300:30;11366:34;11346:18;;;11339:62;-1:-1:-1;;;11417:18:1;;;11410:35;11462:19;;39369:68:0;11260:227:1;39369:68:0;-1:-1:-1;;;;;39456:16:0;;39448:64;;;;-1:-1:-1;;;39448:64:0;;6313:2:1;39448:64:0;;;6295:21:1;6352:2;6332:18;;;6325:30;6391:34;6371:18;;;6364:62;-1:-1:-1;;;6442:18:1;;;6435:33;6485:19;;39448:64:0;6285:225:1;39448:64:0;39540:1;39531:6;:10;39523:64;;;;-1:-1:-1;;;39523:64:0;;10878:2:1;39523:64:0;;;10860:21:1;10917:2;10897:18;;;10890:30;10956:34;10936:18;;;10929:62;-1:-1:-1;;;11007:18:1;;;11000:39;11056:19;;39523:64:0;10850:231:1;39523:64:0;19182:7;19209:6;-1:-1:-1;;;;;39616:15:0;;;19209:6;;39616:15;;;;:45;;-1:-1:-1;19182:7:0;19209:6;-1:-1:-1;;;;;39648:13:0;;;19209:6;;39648:13;;39616:45;:83;;;;-1:-1:-1;;;;;;39678:21:0;;39694:4;39678:21;;39616:83;:119;;;;-1:-1:-1;;;;;;39716:19:0;;39730:4;39716:19;;39616:119;39598:677;;;39798:12;;39788:6;:22;;39762:124;;;;-1:-1:-1;;;39762:124:0;;9706:2:1;39762:124:0;;;9688:21:1;9745:2;9725:18;;;9718:30;9784:34;9764:18;;;9757:62;-1:-1:-1;;;9835:18:1;;;9828:38;9883:19;;39762:124:0;9678:230:1;39762:124:0;39906:11;;;;39901:363;;-1:-1:-1;;;;;39966:21:0;;39982:4;39966:21;;:69;;-1:-1:-1;;;;;;40016:19:0;;40030:4;40016:19;39966:69;:122;;;-1:-1:-1;19182:7:0;19209:6;-1:-1:-1;;;;;40064:24:0;;;19209:6;;40064:24;39966:122;:173;;;-1:-1:-1;19182:7:0;19209:6;-1:-1:-1;;;;;40117:22:0;;;19209:6;;40117:22;39966:173;39938:311;;40191:11;;;;40183:46;;;;-1:-1:-1;;;40183:46:0;;8639:2:1;40183:46:0;;;8621:21:1;8678:2;8658:18;;;8651:30;-1:-1:-1;;;8697:18:1;;;8690:52;8759:18;;40183:46:0;8611:172:1;40183:46:0;40287:28;40318:24;40336:4;40318:9;:24::i;:::-;40421:23;;40462:16;;40287:55;;-1:-1:-1;40384:60:0;;;;40462:16;;40461:17;:42;;;;-1:-1:-1;40482:21:0;;;;;;;40461:42;:65;;;;;40513:13;-1:-1:-1;;;;;40507:19:0;:2;-1:-1:-1;;;;;40507:19:0;;40461:65;40457:526;;;40547:23;40543:161;;;40614:23;;40591:46;;40656:32;40667:20;40656:10;:32::i;:::-;40776:14;;40736:21;;40776:14;;;;;:47;;;;;40812:10;40794:7;:29;40776:47;40772:200;;;40858:17;;40848:7;:27;40844:60;;;-1:-1:-1;40887:17:0;;40844:60;40925:31;40939:16;:7;40951:3;40939:11;:16::i;:::-;40925:13;:31::i;:::-;40528:455;40457:526;-1:-1:-1;;;;;41115:24:0;;40995:12;41115:24;;;:18;:24;;;;;;41010:4;;41115:24;;;:50;;-1:-1:-1;;;;;;41143:22:0;;;;;;:18;:22;;;;;;;;41115:50;41111:98;;;-1:-1:-1;41192:5:0;41111:98;41221:41;41236:4;41242:2;41246:6;41254:7;41221:14;:41::i;:::-;39358:1912;;;39255:2015;;;:::o;14291:226::-;14411:7;14447:12;14439:6;;;;14431:29;;;;-1:-1:-1;;;14431:29:0;;;;;;;;:::i;:::-;-1:-1:-1;14471:9:0;14483:5;14487:1;14483;:5;:::i;:::-;14471:17;14291:226;-1:-1:-1;;;;;14291:226:0:o;49081:164::-;49123:7;49144:15;49161;49180:19;:17;:19::i;:::-;49143:56;;-1:-1:-1;49143:56:0;-1:-1:-1;49217:20:0;49143:56;;49217:11;:20::i;:::-;49210:27;;;;49081:164;:::o;14783:132::-;14841:7;14868:39;14872:1;14875;14868:39;;;;;;;;;;;;;;;;;:3;:39::i;13958:181::-;14016:7;;14048:5;14052:1;14048;:5;:::i;:::-;14036:17;;14077:1;14072;:6;;14064:46;;;;-1:-1:-1;;;14064:46:0;;8283:2:1;14064:46:0;;;8265:21:1;8322:2;8302:18;;;8295:30;8361:29;8341:18;;;8334:57;8408:18;;14064:46:0;8255:177:1;47349:742:0;47449:7;47471;47493;47515;47537;47559;47609:23;47647:12;47674:18;47706:20;47718:7;47706:11;:20::i;:::-;47594:132;;;;;;47738:15;47755:23;47780:12;47796:113;47822:7;47844:4;47863:10;47888;:8;:10::i;:::-;47796:11;:113::i;:::-;47737:172;;;;-1:-1:-1;47737:172:0;;-1:-1:-1;48013:15:0;;-1:-1:-1;48043:4:0;;-1:-1:-1;48062:10:0;;-1:-1:-1;47349:742:0;;-1:-1:-1;;;;;47349:742:0:o;14147:136::-;14205:7;14232:43;14236:1;14239;14232:43;;;;;;;;;;;;;;;;;:3;:43::i;41278:451::-;32020:16;:23;;-1:-1:-1;;32020:23:0;32039:4;32020:23;;;41384:21:::1;41416:38;41433:20:::0;41416:16:::1;:38::i;:::-;41465:26;41494:41;:21;41520:14:::0;41494:25:::1;:41::i;:::-;41620:16;::::0;41693::::1;::::0;41674:13:::1;::::0;41465:70;;-1:-1:-1;41585:136:0::1;::::0;-1:-1:-1;;;;;41620:16:0;;::::1;::::0;41651:59:::1;::::0;41693:16;41651:37:::1;::::0;41465:70;;41651:22:::1;:37::i;:::-;:41:::0;::::1;:59::i;:::-;41585:20;:136::i;:::-;-1:-1:-1::0;;32066:16:0;:24;;-1:-1:-1;;32066:24:0;;;-1:-1:-1;41278:451:0:o;41737:144::-;32020:16;:23;;-1:-1:-1;;32020:23:0;32039:4;32020:23;;;41811:10;;41807:67:::1;;41838:24;41855:6;41838:16;:24::i;:::-;-1:-1:-1::0;32066:16:0;:24;;-1:-1:-1;;32066:24:0;;;41737:144::o;43680:708::-;43836:7;43831:28;;43845:14;:12;:14::i;:::-;-1:-1:-1;;;;;43876:19:0;;;;;;:11;:19;;;;;;;;:46;;;;-1:-1:-1;;;;;;43900:22:0;;;;;;:11;:22;;;;;;;;43899:23;43876:46;43872:467;;;43939:48;43961:6;43969:9;43980:6;43939:21;:48::i;:::-;43872:467;;;-1:-1:-1;;;;;44010:19:0;;;;;;:11;:19;;;;;;;;44009:20;:46;;;;-1:-1:-1;;;;;;44033:22:0;;;;;;:11;:22;;;;;;;;44009:46;44005:334;;;44072:46;44092:6;44100:9;44111:6;44072:19;:46::i;44005:334::-;-1:-1:-1;;;;;44140:19:0;;;;;;:11;:19;;;;;;;;:45;;;;-1:-1:-1;;;;;;44163:22:0;;;;;;:11;:22;;;;;;;;44140:45;44136:203;;;44202:48;44224:6;44232:9;44243:6;44202:21;:48::i;44136:203::-;44283:44;44301:6;44309:9;44320:6;44283:17;:44::i;:::-;44356:7;44351:29;;44365:15;50846;;50836:7;:25;50888:21;;50872:13;:37;50792:125;44365:15;43680:708;;;;:::o;49253:605::-;49351:7;;49387;;49304;;;;;49405:338;49429:9;:16;49425:20;;49405:338;;;49513:7;49489;:21;49497:9;49507:1;49497:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;49497:12:0;49489:21;;;;;;;;;;;;;:31;;:83;;;49565:7;49541;:21;49549:9;49559:1;49549:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;49549:12:0;49541:21;;;;;;;;;;;;;:31;49489:83;49467:146;;;49596:7;;49605;;49588:25;;;;;;;49253:605;;:::o;49467:146::-;49638:34;49650:7;:21;49658:9;49668:1;49658:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;49658:12:0;49650:21;;;;;;;;;;;;;49638:7;;:11;:34::i;:::-;49628:44;;49697:34;49709:7;:21;49717:9;49727:1;49717:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;49717:12:0;49709:21;;;;;;;;;;;;;49697:7;;:11;:34::i;:::-;49687:44;-1:-1:-1;49447:3:0;;;;:::i;:::-;;;;49405:338;;;-1:-1:-1;49779:7:0;;49767;;:20;;:11;:20::i;:::-;49757:7;:30;49753:61;;;49797:7;;49806;;49789:25;;;;;;49253:605;;:::o;49753:61::-;49833:7;;49842;;-1:-1:-1;49253:605:0;-1:-1:-1;49253:605:0:o;14923:312::-;15043:7;15078:12;15071:5;15063:28;;;;-1:-1:-1;;;15063:28:0;;;;;;;;:::i;:::-;-1:-1:-1;15102:9:0;15114:5;15118:1;15114;:5;:::i;48099:412::-;48200:7;48222;48244;48279:12;48294:24;48310:7;48294:15;:24::i;:::-;48279:39;;48329:18;48350:30;48372:7;48350:21;:30::i;:::-;48329:51;-1:-1:-1;48391:23:0;48417:33;48329:51;48417:17;:7;48429:4;48417:11;:17::i;:::-;:21;;:33::i;:::-;48391:59;48486:4;;-1:-1:-1;48492:10:0;;-1:-1:-1;48099:412:0;;-1:-1:-1;;;48099:412:0:o;48519:554::-;48718:7;;;;48815:24;:7;48827:11;48815;:24::i;:::-;48797:42;-1:-1:-1;48850:12:0;48865:21;:4;48874:11;48865:8;:21::i;:::-;48850:36;-1:-1:-1;48897:18:0;48918:27;:10;48933:11;48918:14;:27::i;:::-;48897:48;-1:-1:-1;48956:23:0;48982:33;48897:48;48982:17;:7;48994:4;48982:11;:17::i;:33::-;49034:7;;;;-1:-1:-1;49060:4:0;;-1:-1:-1;48519:554:0;;-1:-1:-1;;;;;;;48519:554:0:o;41889:658::-;42039:16;;;42053:1;42039:16;;;;;;;;42015:21;;42039:16;;;;;;;;;;-1:-1:-1;42039:16:0;42015:40;;42084:4;42066;42071:1;42066:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;42066:23:0;;;-1:-1:-1;;;;;42066:23:0;;;;;42110:15;-1:-1:-1;;;;;42110:20:0;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;42100:4;42105:1;42100:7;;;;;;;;:::i;:::-;;;;;;:32;-1:-1:-1;;;;;42100:32:0;;;-1:-1:-1;;;;;42100:32:0;;;;;42145:62;42162:4;42177:15;42195:11;42145:8;:62::i;:::-;42246:240;;-1:-1:-1;;;42246:240:0;;-1:-1:-1;;;;;42246:15:0;:66;;;;:240;;42327:11;;42353:1;;42397:4;;42424;;42460:15;;42246:240;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;42504:35;42521:11;42534:4;42504:35;;;;;;;:::i;:::-;;;;;;;;41944:603;41889:658;:::o;14525:250::-;14583:7;14607:6;14603:47;;-1:-1:-1;14637:1:0;14630:8;;14603:47;14662:9;14674:5;14678:1;14674;:5;:::i;:::-;14662:17;-1:-1:-1;14707:1:0;14698:5;14702:1;14662:17;14698:5;:::i;:::-;:10;14690:56;;;;-1:-1:-1;;;14690:56:0;;10115:2:1;14690:56:0;;;10097:21:1;10154:2;10134:18;;;10127:30;10193:34;10173:18;;;10166:62;-1:-1:-1;;;10244:18:1;;;10237:31;10285:19;;14690:56:0;10087:223:1;52616:140:0;52722:26;;-1:-1:-1;;;;;52722:18:0;;;:26;;;;;52741:6;;52722:26;;;;52741:6;52722:18;:26;;;;;;;;;;;;;;;;;;;42555:596;42700:16;;;42714:1;42700:16;;;;;;;;42676:21;;42700:16;;;;;;;;;;-1:-1:-1;42700:16:0;42676:40;;42737:15;-1:-1:-1;;;;;42737:20:0;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;42727:4;42732:1;42727:7;;;;;;;;:::i;:::-;;;;;;:32;-1:-1:-1;;;;;42727:32:0;;;-1:-1:-1;;;;;42727:32:0;;;;;42788:4;42770;42775:1;42770:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;42770:23:0;;;:7;;;;;;;;;:23;42832:15;:66;;42920:6;42952:1;42999:4;43018:11;43060:24;:15;43080:3;43060:19;:24::i;:::-;42832:263;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;43113:30;43130:6;43138:4;43113:30;;;;;;;:::i;50549:235::-;50596:7;;:12;:34;;;;-1:-1:-1;50612:13:0;;:18;50596:34;50592:47;;;50549:235::o;50592:47::-;50669:7;;;50651:15;:25;50711:13;;;50687:21;:37;-1:-1:-1;50737:11:0;;;;50759:17;50549:235::o;45735:686::-;45886:15;45916:23;45954:12;45981:23;46019:12;46046:18;46078:19;46089:7;46078:10;:19::i;:::-;-1:-1:-1;;;;;46126:15:0;;;;;;:7;:15;;;;;;45871:226;;-1:-1:-1;45871:226:0;;-1:-1:-1;45871:226:0;;-1:-1:-1;45871:226:0;-1:-1:-1;45871:226:0;-1:-1:-1;45871:226:0;-1:-1:-1;46126:28:0;;46146:7;46126:19;:28::i;:::-;-1:-1:-1;;;;;46108:15:0;;;;;;:7;:15;;;;;;;;:46;;;;46183:7;:15;;;;:28;;46203:7;46183:19;:28::i;:::-;-1:-1:-1;;;;;46165:15:0;;;;;;;:7;:15;;;;;;:46;;;;46243:18;;;;;;;:39;;46266:15;46243:22;:39::i;:::-;-1:-1:-1;;;;;46222:18:0;;;;;;:7;:18;;;;;:60;46293:26;46308:10;46293:14;:26::i;:::-;46330:23;46342:4;46348;46330:11;:23::i;:::-;46386:9;-1:-1:-1;;;;;46369:44:0;46378:6;-1:-1:-1;;;;;46369:44:0;;46397:15;46369:44;;;;13927:25:1;;13915:2;13900:18;;13882:76;46369:44:0;;;;;;;;45860:561;;;;;;45735:686;;;:::o;45029:698::-;45178:15;45208:23;45246:12;45273:23;45311:12;45338:18;45370:19;45381:7;45370:10;:19::i;:::-;-1:-1:-1;;;;;45418:15:0;;;;;;:7;:15;;;;;;45163:226;;-1:-1:-1;45163:226:0;;-1:-1:-1;45163:226:0;;-1:-1:-1;45163:226:0;-1:-1:-1;45163:226:0;-1:-1:-1;45163:226:0;-1:-1:-1;45418:28:0;;45163:226;45418:19;:28::i;:::-;-1:-1:-1;;;;;45400:15:0;;;;;;;:7;:15;;;;;;;;:46;;;;45478:18;;;;;:7;:18;;;;;:39;;45501:15;45478:22;:39::i;:::-;-1:-1:-1;;;;;45457:18:0;;;;;;:7;:18;;;;;;;;:60;;;;45549:7;:18;;;;:39;;45572:15;45549:22;:39::i;46429:757::-;46580:15;46610:23;46648:12;46675:23;46713:12;46740:18;46772:19;46783:7;46772:10;:19::i;:::-;-1:-1:-1;;;;;46820:15:0;;;;;;:7;:15;;;;;;46565:226;;-1:-1:-1;46565:226:0;;-1:-1:-1;46565:226:0;;-1:-1:-1;46565:226:0;-1:-1:-1;46565:226:0;-1:-1:-1;46565:226:0;-1:-1:-1;46820:28:0;;46840:7;46820:19;:28::i;:::-;-1:-1:-1;;;;;46802:15:0;;;;;;:7;:15;;;;;;;;:46;;;;46877:7;:15;;;;:28;;46897:7;46877:19;:28::i;44396:625::-;44543:15;44573:23;44611:12;44638:23;44676:12;44703:18;44735:19;44746:7;44735:10;:19::i;:::-;-1:-1:-1;;;;;44783:15:0;;;;;;:7;:15;;;;;;44528:226;;-1:-1:-1;44528:226:0;;-1:-1:-1;44528:226:0;;-1:-1:-1;44528:226:0;-1:-1:-1;44528:226:0;-1:-1:-1;44528:226:0;-1:-1:-1;44783:28:0;;44528:226;44783:19;:28::i;50229:130::-;50293:7;50320:31;50345:5;50320:20;50332:7;;50320;:11;;:20;;;;:::i;:::-;:24;;:31::i;50367:174::-;50464:7;50496:37;50527:5;50496:26;50508:13;;50496:7;:11;;:26;;;;:::i;49866:355::-;49929:19;49951:10;:8;:10::i;:::-;49929:32;-1:-1:-1;49972:18:0;49993:27;:10;49929:32;49993:14;:27::i;:::-;50072:4;50056:22;;;;:7;:22;;;;;;49972:48;;-1:-1:-1;50056:38:0;;49972:48;50056:26;:38::i;:::-;50047:4;50031:22;;;;:7;:22;;;;;;;;:63;;;;50109:11;:26;;;;;;50105:108;;;50191:4;50175:22;;;;:7;:22;;;;;;:38;;50202:10;50175:26;:38::i;:::-;50166:4;50150:22;;;;:7;:22;;;;;:63;49918:303;;49866:355;:::o;47194:147::-;47272:7;;:17;;47284:4;47272:11;:17::i;:::-;47262:7;:27;47313:10;;:20;;47328:4;47313:14;:20::i;:::-;47300:10;:33;-1:-1:-1;;47194:147:0:o;14:247:1:-;73:6;126:2;114:9;105:7;101:23;97:32;94:2;;;142:1;139;132:12;94:2;181:9;168:23;200:31;225:5;200:31;:::i;266:251::-;336:6;389:2;377:9;368:7;364:23;360:32;357:2;;;405:1;402;395:12;357:2;437:9;431:16;456:31;481:5;456:31;:::i;522:388::-;590:6;598;651:2;639:9;630:7;626:23;622:32;619:2;;;667:1;664;657:12;619:2;706:9;693:23;725:31;750:5;725:31;:::i;:::-;775:5;-1:-1:-1;832:2:1;817:18;;804:32;845:33;804:32;845:33;:::i;:::-;897:7;887:17;;;609:301;;;;;:::o;915:456::-;992:6;1000;1008;1061:2;1049:9;1040:7;1036:23;1032:32;1029:2;;;1077:1;1074;1067:12;1029:2;1116:9;1103:23;1135:31;1160:5;1135:31;:::i;:::-;1185:5;-1:-1:-1;1242:2:1;1227:18;;1214:32;1255:33;1214:32;1255:33;:::i;:::-;1019:352;;1307:7;;-1:-1:-1;;;1361:2:1;1346:18;;;;1333:32;;1019:352::o;1376:315::-;1444:6;1452;1505:2;1493:9;1484:7;1480:23;1476:32;1473:2;;;1521:1;1518;1511:12;1473:2;1560:9;1547:23;1579:31;1604:5;1579:31;:::i;:::-;1629:5;1681:2;1666:18;;;;1653:32;;-1:-1:-1;;;1463:228:1:o;1696:241::-;1752:6;1805:2;1793:9;1784:7;1780:23;1776:32;1773:2;;;1821:1;1818;1811:12;1773:2;1860:9;1847:23;1879:28;1901:5;1879:28;:::i;1942:245::-;2009:6;2062:2;2050:9;2041:7;2037:23;2033:32;2030:2;;;2078:1;2075;2068:12;2030:2;2110:9;2104:16;2129:28;2151:5;2129:28;:::i;2192:180::-;2251:6;2304:2;2292:9;2283:7;2279:23;2275:32;2272:2;;;2320:1;2317;2310:12;2272:2;-1:-1:-1;2343:23:1;;2262:110;-1:-1:-1;2262:110:1:o;2377:309::-;2442:6;2450;2503:2;2491:9;2482:7;2478:23;2474:32;2471:2;;;2519:1;2516;2509:12;2471:2;2555:9;2542:23;2532:33;;2615:2;2604:9;2600:18;2587:32;2628:28;2650:5;2628:28;:::i;2691:306::-;2779:6;2787;2795;2848:2;2836:9;2827:7;2823:23;2819:32;2816:2;;;2864:1;2861;2854:12;2816:2;2893:9;2887:16;2877:26;;2943:2;2932:9;2928:18;2922:25;2912:35;;2987:2;2976:9;2972:18;2966:25;2956:35;;2806:191;;;;;:::o;3002:461::-;3055:3;3093:5;3087:12;3120:6;3115:3;3108:19;3146:4;3175:2;3170:3;3166:12;3159:19;;3212:2;3205:5;3201:14;3233:1;3243:195;3257:6;3254:1;3251:13;3243:195;;;3322:13;;-1:-1:-1;;;;;3318:39:1;3306:52;;3378:12;;;;3413:15;;;;3354:1;3272:9;3243:195;;;-1:-1:-1;3454:3:1;;3063:400;-1:-1:-1;;;;;3063:400:1:o;4994:510::-;5265:6;5254:9;5247:25;5308:3;5303:2;5292:9;5288:18;5281:31;5228:4;5329:57;5381:3;5370:9;5366:19;5358:6;5329:57;:::i;:::-;-1:-1:-1;;;;;5422:32:1;;;;5417:2;5402:18;;5395:60;-1:-1:-1;5486:2:1;5471:18;5464:34;5321:65;5237:267;-1:-1:-1;;5237:267:1:o;5509:597::-;5621:4;5650:2;5679;5668:9;5661:21;5711:6;5705:13;5754:6;5749:2;5738:9;5734:18;5727:34;5779:1;5789:140;5803:6;5800:1;5797:13;5789:140;;;5898:14;;;5894:23;;5888:30;5864:17;;;5883:2;5860:26;5853:66;5818:10;;5789:140;;;5947:6;5944:1;5941:13;5938:2;;;6017:1;6012:2;6003:6;5992:9;5988:22;5984:31;5977:42;5938:2;-1:-1:-1;6090:2:1;6069:15;-1:-1:-1;;6065:29:1;6050:45;;;;6097:2;6046:54;;5630:476;-1:-1:-1;;;5630:476:1:o;10315:356::-;10517:2;10499:21;;;10536:18;;;10529:30;10595:34;10590:2;10575:18;;10568:62;10662:2;10647:18;;10489:182::o;13963:332::-;14170:6;14159:9;14152:25;14213:2;14208;14197:9;14193:18;14186:30;14133:4;14233:56;14285:2;14274:9;14270:18;14262:6;14233:56;:::i;:::-;14225:64;14142:153;-1:-1:-1;;;;14142:153:1:o;14300:582::-;14599:6;14588:9;14581:25;14642:6;14637:2;14626:9;14622:18;14615:34;14685:3;14680:2;14669:9;14665:18;14658:31;14562:4;14706:57;14758:3;14747:9;14743:19;14735:6;14706:57;:::i;:::-;-1:-1:-1;;;;;14799:32:1;;;;14794:2;14779:18;;14772:60;-1:-1:-1;14863:3:1;14848:19;14841:35;14698:65;14571:311;-1:-1:-1;;;14571:311:1:o;15076:128::-;15116:3;15147:1;15143:6;15140:1;15137:13;15134:2;;;15153:18;;:::i;:::-;-1:-1:-1;15189:9:1;;15124:80::o;15209:217::-;15249:1;15275;15265:2;;15319:10;15314:3;15310:20;15307:1;15300:31;15354:4;15351:1;15344:15;15382:4;15379:1;15372:15;15265:2;-1:-1:-1;15411:9:1;;15255:171::o;15431:168::-;15471:7;15537:1;15533;15529:6;15525:14;15522:1;15519:21;15514:1;15507:9;15500:17;15496:45;15493:2;;;15544:18;;:::i;:::-;-1:-1:-1;15584:9:1;;15483:116::o;15604:125::-;15644:4;15672:1;15669;15666:8;15663:2;;;15677:18;;:::i;:::-;-1:-1:-1;15714:9:1;;15653:76::o;15734:380::-;15813:1;15809:12;;;;15856;;;15877:2;;15931:4;15923:6;15919:17;15909:27;;15877:2;15984;15976:6;15973:14;15953:18;15950:38;15947:2;;;16030:10;16025:3;16021:20;16018:1;16011:31;16065:4;16062:1;16055:15;16093:4;16090:1;16083:15;15947:2;;15789:325;;;:::o;16119:135::-;16158:3;-1:-1:-1;;16179:17:1;;16176:2;;;16199:18;;:::i;:::-;-1:-1:-1;16246:1:1;16235:13;;16166:88::o;16259:127::-;16320:10;16315:3;16311:20;16308:1;16301:31;16351:4;16348:1;16341:15;16375:4;16372:1;16365:15;16391:127;16452:10;16447:3;16443:20;16440:1;16433:31;16483:4;16480:1;16473:15;16507:4;16504:1;16497:15;16523:127;16584:10;16579:3;16575:20;16572:1;16565:31;16615:4;16612:1;16605:15;16639:4;16636:1;16629:15;16787:131;-1:-1:-1;;;;;16862:31:1;;16852:42;;16842:2;;16908:1;16905;16898:12;16842:2;16832:86;:::o;16923:118::-;17009:5;17002:13;16995:21;16988:5;16985:32;16975:2;;17031:1;17028;17021:12
Swarm Source
ipfs://97b5fda52c45d70963f308b3480b6323faa12260acab57fba4f70c19c61b1baa
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.