ETH Price: $2,504.12 (-0.83%)

Token

The DAO 2.0 (T2AO)
 

Overview

Max Total Supply

100,000,000 T2AO

Holders

150

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
349,346.825988469203582611 T2AO

Value
$0.00
0xbb0c99e0e5bcec7287b3cd63c00d44feb939c23f
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:
T2AO

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-04-27
*/

//SPDX-License-Identifier: UNLICENSED

pragma solidity 0.8.7;


library SafeMath {

    function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            uint256 c = a + b;
            if (c < a) return (false, 0);
            return (true, c);
        }
    }

    function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b > a) return (false, 0);
            return (true, a - b);
        }
    }

    function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (a == 0) return (true, 0);
            uint256 c = a * b;
            if (c / a != b) return (false, 0);
            return (true, c);
        }
    }

    function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a / b);
        }
    }

    function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a % b);
        }
    }

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        return a + b;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return a - b;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        return a * b;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return a / b;
    }

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return a % b;
    }

    function sub(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b <= a, errorMessage);
            return a - b;
        }
    }

    function div(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a / b;
        }
    }

    function mod(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a % b;
        }
    }
}

interface ERC20 {
    function totalSupply() external view returns (uint _totalSupply);
    function balanceOf(address _owner) external view returns (uint balance);
    function transfer(address _to, uint _value) external returns (bool success);
    function transferFrom(address _from, address _to, uint _value) external returns (bool success);
    function approve(address _spender, uint _value) external returns (bool success);
    function allowance(address _owner, address _spender) external view returns (uint remaining);
    event Transfer(address indexed _from, address indexed _to, uint _value);
    event Approval(address indexed _owner, address indexed _spender, uint _value);
}

interface IUniswapFactory {
    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 IUniswapRouter01 {
    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 factory() external pure returns (address);
    function WETH() external pure returns (address);
    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 IUniswapRouter02 is IUniswapRouter01 {
    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;
}


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 Mint(address indexed sender, uint amount0, uint amount1);
  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 mint(address to) external returns (uint liquidity);
  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;
}

contract smart {
    using SafeMath for uint;

    address public router_address = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;
    IUniswapRouter02 public router = IUniswapRouter02(router_address);

    function create_weth_pair(address token) private returns (address, IUniswapV2Pair) {
       address pair_address = IUniswapFactory(router.factory()).createPair(token, router.WETH());
       return (pair_address, IUniswapV2Pair(pair_address));
    }

    function get_weth_reserve(address pair_address) private  view returns(uint, uint) {
        IUniswapV2Pair pair = IUniswapV2Pair(pair_address);
        uint112 token_reserve;
        uint112 native_reserve;
        uint32 last_timestamp;
        (token_reserve, native_reserve, last_timestamp) = pair.getReserves();
        return (token_reserve, native_reserve);
    }

    function get_weth_price_impact(address token, uint amount, bool sell) private view returns(uint) {
        address pair_address = IUniswapFactory(router.factory()).getPair(token, router.WETH());
        (uint res_token, uint res_weth) = get_weth_reserve(pair_address);
        uint impact;
        if(sell) {
            impact = (amount.mul(100)).div(res_token);
        } else {
            impact = (amount.mul(100)).div(res_weth);
        }
        return impact;
    }
}



contract protected {

    bool public bot_smasher = true;
    bool public trade_enabled = false;

    mapping (address => bool) public is_auth;

    function authorized(address addy) public view returns(bool) {
        return is_auth[addy];
    }

    function set_authorized(address addy, bool booly) public onlyAuth {
        is_auth[addy] = booly;
    }

    modifier onlyAuth() {
        require( is_auth[msg.sender] || msg.sender==owner, "not owner");
        _;
    }

    address public owner;
    address public developer;

    modifier onlyDev {
        require(msg.sender==developer);
        _;
    }

    modifier onlyOwner() {
        require(msg.sender==owner, "not owner");
        _;
    }

    bool public locked;
    modifier safe() {
        require(!locked, "reentrant");
        locked = true;
        _;
        locked = false;
    }

    receive() external payable {}
    fallback() external payable {}
}

contract T2AO is smart, protected, ERC20 {

    using SafeMath for uint;
    using SafeMath for uint8;

    mapping(address => bool) public tax_free;
    mapping(address => bool) public lock_free;
    mapping(address => bool) public is_black;
    mapping(address => bool) public is_free_from_max_tx;
    mapping(address => bool) public is_free_from_max_wallet;



    string public constant _name = 'The DAO 2.0';
    string public constant _symbol = 'T2AO';
    uint8 public constant _decimals = 18;
    uint256 public constant InitialSupply= 100 * (10**6) * (10**_decimals);
    uint256 public _circulatingSupply= InitialSupply;
    address public constant UniswapRouter= 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;
    address public constant Dead = 0x000000000000000000000000000000000000dEaD;
    address public DAO = payable(0x5b407fb13C790D663ad80995EeFC9b106dFA968A);

    mapping(address => uint) public last_tx;

    bool public pegged = true;
    bool public manual_swap = false;

    uint8 public buy_tax = 12;
    uint8 public sell_tax = 12;
    uint8 public transfer_tax = 12;

    uint16 public max_wallet = 1;
    uint16 public max_perDK = 1;
    uint256 public startTime;

    uint8 devShare = 5;
    uint8 DAOShare = 2;
    uint8 liquidityShare = 3;
    uint8 total_share = devShare + DAOShare + liquidityShare;

    uint public swap_treshold = (_circulatingSupply.div(300));

    mapping (address => uint256) public _balances;
    mapping (address => mapping (address => uint256)) public _allowances;

    address public pair_address;
    IUniswapV2Pair public pair;

    constructor() {
        owner = payable(msg.sender);
        developer = payable(msg.sender);
        is_auth[owner] = true;
        pair_address = IUniswapFactory(router.factory()).createPair(address(this), router.WETH());
        pair = IUniswapV2Pair(pair_address);
        tax_free[msg.sender] = true;
        tax_free[DAO] = true;
        is_free_from_max_wallet[DAO] = true;
        is_free_from_max_wallet[pair_address] = true;
        is_free_from_max_tx[DAO] = true;
        _balances[developer] = _circulatingSupply;
        emit Transfer(Dead, msg.sender, _circulatingSupply);
        _approve(address(this), address(router), _circulatingSupply);
        _approve(address(owner), address(router), _circulatingSupply);
    }

    function _transfer(address sender, address recipient, uint amount) private {

        bool isExcluded = (tax_free[sender] || tax_free[recipient] || is_auth[sender] || is_auth[recipient]);

        bool isContractTransfer=(sender==address(this) || recipient==address(this));

        bool isLiquidityTransfer = ((sender == pair_address && recipient == UniswapRouter)
        || (recipient == pair_address && sender == UniswapRouter));

        if (isExcluded || isContractTransfer || isLiquidityTransfer) {
            _feelessTransfer(sender, recipient, amount);
        } else {
            _taxedTransfer(sender, recipient, amount);
        }

    }

    function max_tx() public view returns (uint) {
        return ((_circulatingSupply * max_perDK).div(10000));
    }

    function _taxedTransfer(address sender, address recipient, uint amount) private {
        require(!is_black[sender] && !is_black[recipient], "Blacklisted");

        if(!bot_smasher) {
            require(trade_enabled, "STOP");
        } else {
            if(!trade_enabled) {
                emit Transfer(sender, recipient, 0);
                return;
            }
        }

        if(!is_free_from_max_tx[sender]) {
            require(amount <= max_tx());
        }

        if(!is_free_from_max_wallet[recipient]) {
            require((_balances[recipient]+amount) < ((_circulatingSupply*max_wallet)/1000), "Max wallet on recipient");
        }

        bool isSell=recipient== pair_address|| recipient == router_address;

        (uint taxedAmount, uint taxes) = calculateFees(amount, isSell);

        if((_balances[address(this)] > swap_treshold) && !manual_swap && !locked) {
            if(isSell && !manual_swap) {
                swap_taxes(amount);
            }
        }

        _balances[sender] = _balances[sender].sub(amount);
        _balances[recipient] = _balances[recipient].add(taxedAmount);
        _balances[address(this)] = _balances[address(this)].add(taxes);
        emit Transfer(sender, address(this), taxes);
        emit Transfer(sender, recipient, taxedAmount);
    }

    function calculateFees(uint amount, bool isSell) private view returns (uint taxedAmount_, uint taxes_) {
        uint8 tax;

        if(isSell) {
            tax = sell_tax;
        } else {
            tax = buy_tax;
        }

        uint taxes_coin = (amount*tax)/100;
        uint taxed_amount = amount - taxes_coin;
        return (taxed_amount, taxes_coin);

    }

    function swap_taxes(uint256 tx_amount) private safe{
        uint256 contractBalance = _balances[address(this)];
        uint16 totalTax = liquidityShare + DAOShare + devShare;
        uint256 amount_to_swap = (swap_treshold.mul(75)).div(100);

        if(amount_to_swap > tx_amount) {
            if(pegged) {
                amount_to_swap = tx_amount;
            }
        }
        if(contractBalance<amount_to_swap){
            return;
        }

        uint256 tokenForLiquidity=(amount_to_swap*liquidityShare)/totalTax;

        uint256 liqToken=tokenForLiquidity/2;
        uint256 liqETHToken=tokenForLiquidity-liqToken;

        uint256 initialETHBalance = address(this).balance;
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();
        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amount_to_swap,
            0,
            path,
            address(this),
            block.timestamp
            );
        uint256 newETH=(address(this).balance - initialETHBalance);
        uint256 liqETH = (newETH*liqETHToken)/amount_to_swap;
        router.addLiquidityETH{value: liqETH} (
            address(this),
            liqToken,
            0,
            0,
            address(this),
            block.timestamp);
        uint256 afterLiqEth = (address(this).balance - initialETHBalance);

        uint256 DAOSplit = afterLiqEth.mul(DAOShare).div(totalTax);
        uint256 devSplit = afterLiqEth - DAOSplit;
        payable(developer).transfer(devSplit);
        payable(DAO).transfer(DAOSplit);

    }


    function _feelessTransfer(address sender, address recipient, uint amount) private {
        _balances[sender] -= amount;
        _balances[recipient] += amount;
        emit Transfer(sender, recipient, amount);
    }

    function ready_GO() public onlyDev {
        require(trade_enabled == false);
        bot_smasher = false;
        trade_enabled = true;
    }

    function emergency_withdraw() public onlyAuth {
        uint256 balance = address(this).balance;
        payable(developer).transfer(balance);
    }

    function set_shares(uint8 dev, uint8 market, uint8 liquidity) public onlyAuth {
        devShare = dev;
        DAOShare = market;
        liquidityShare = liquidity;
    }

    function set_taxes(uint8 buy, uint8 sell) public onlyAuth {
        buy_tax = buy;
        sell_tax = sell;
        require(buy >= 0 && sell >= 0, "At least 0");
        require(buy< 26 && sell < 26, "No honeypot");
    }

    function set_manual_swap(bool booly) public onlyAuth {
        manual_swap = booly;
    }

    function totalSupply() external view override returns (uint256) {
        return _circulatingSupply;
    }

    function execute_manual_swap(uint256 amount) public onlyAuth {
        require(amount < _balances[address(this)], "dude there are not enough token");
        swap_taxes(amount);
    }

    function rescue_tokens(address tknAddress) public onlyAuth {
        ERC20 token = ERC20(tknAddress);
        uint256 ourBalance = token.balanceOf(address(this));
        require(ourBalance>0, "No tokens in our balance");
        token.transfer(msg.sender, ourBalance);
    }

    function set_max_tx(uint16 maxtx) public onlyAuth {
        max_perDK = maxtx;
        require(maxtx >= 10, "At least 5, remember that it's /10000, so 5 = 0.1%");
    }

    function set_max_wallet(uint16 maxwallet) public onlyAuth {
        max_wallet = maxwallet;
        require(maxwallet >= 10, "At least 10, remember that it's /1000, so 1 = 1%");
    }

    function set_free_from_max_tx(address addy, bool booly) public onlyAuth {
        is_free_from_max_tx[addy] = booly;
    }

    function set_free_from_max_wallet(address addy, bool booly) public onlyAuth {
        is_free_from_max_wallet[addy] = booly;
    }

    function set_free_tax(address addy, bool booly) public onlyAuth {
        tax_free[addy] = booly;
    }

    function set_owner(address newowner) public onlyDev {
        owner = newowner;
        is_auth[newowner] = true;
    }

    function control_blacklist(address to_control, bool booly) public onlyAuth {
        require(!(to_control==developer));
        is_black[to_control] = booly;
    }

    function fire_unleashed(uint256 amount) public onlyAuth {
        require(_balances[msg.sender] >= amount);
        _balances[msg.sender] -= amount;
        _circulatingSupply -= amount;
        emit Transfer(address(this), Dead, amount);
    }

    function minZero(uint a, uint b) private pure returns(uint) {
        if (a > b) {
           return a - b;
        } else {
           return 0;
        }
    }

    function set_pegged_swap(bool booly) public onlyAuth {
        pegged = booly;
    }

    function getOwner() external view returns (address) {
        return owner;
    }

    function name() external pure returns (string memory) {
        return _name;
    }

    function symbol() external pure returns (string memory) {
        return _symbol;
    }

    function decimals() external pure returns (uint8) {
        return _decimals;
    }

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

    function transfer(address recipient, uint256 amount) external override returns (bool) {
        _transfer(msg.sender, recipient, amount);
        return true;
    }

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

    function approve(address spender, uint256 amount) external override returns (bool) {
        _approve(msg.sender, spender, amount);
        return true;
    }
    function _approve(address _owner, address spender, uint256 amount) private {
        require(_owner != address(0), "Approve from zero");
        require(spender != address(0), "Approve to zero");

        _allowances[_owner][spender] = amount;
        emit Approval(_owner, spender, amount);
    }

    function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        _transfer(sender, recipient, amount);

        uint256 currentAllowance = _allowances[sender][msg.sender];
        require(currentAllowance >= amount, "Transfer > allowance");

        _approve(sender, msg.sender, currentAllowance - amount);
        return true;
    }


    function increaseAllowance(address spender, uint256 addedValue) external returns (bool) {
        _approve(msg.sender, spender, _allowances[msg.sender][spender] + addedValue);
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) external returns (bool) {
        uint256 currentAllowance = _allowances[msg.sender][spender];
        require(currentAllowance >= subtractedValue, "<0 allowance");

        _approve(msg.sender, spender, currentAllowance - subtractedValue);
        return true;
    }

}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_owner","type":"address"},{"indexed":true,"internalType":"address","name":"_spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"_value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_from","type":"address"},{"indexed":true,"internalType":"address","name":"_to","type":"address"},{"indexed":false,"internalType":"uint256","name":"_value","type":"uint256"}],"name":"Transfer","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"DAO","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"Dead","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"InitialSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"UniswapRouter","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"_allowances","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_balances","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_circulatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addy","type":"address"}],"name":"authorized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"bot_smasher","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buy_tax","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to_control","type":"address"},{"internalType":"bool","name":"booly","type":"bool"}],"name":"control_blacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","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":"developer","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"emergency_withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"execute_manual_swap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"fire_unleashed","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"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":"is_auth","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"is_black","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"is_free_from_max_tx","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"is_free_from_max_wallet","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"last_tx","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"lock_free","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"locked","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manual_swap","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"max_perDK","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"max_tx","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"max_wallet","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"contract IUniswapV2Pair","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair_address","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pegged","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ready_GO","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tknAddress","type":"address"}],"name":"rescue_tokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IUniswapRouter02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"router_address","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sell_tax","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"addy","type":"address"},{"internalType":"bool","name":"booly","type":"bool"}],"name":"set_authorized","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addy","type":"address"},{"internalType":"bool","name":"booly","type":"bool"}],"name":"set_free_from_max_tx","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addy","type":"address"},{"internalType":"bool","name":"booly","type":"bool"}],"name":"set_free_from_max_wallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addy","type":"address"},{"internalType":"bool","name":"booly","type":"bool"}],"name":"set_free_tax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"booly","type":"bool"}],"name":"set_manual_swap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"maxtx","type":"uint16"}],"name":"set_max_tx","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"maxwallet","type":"uint16"}],"name":"set_max_wallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newowner","type":"address"}],"name":"set_owner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"booly","type":"bool"}],"name":"set_pegged_swap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"dev","type":"uint8"},{"internalType":"uint8","name":"market","type":"uint8"},{"internalType":"uint8","name":"liquidity","type":"uint8"}],"name":"set_shares","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"buy","type":"uint8"},{"internalType":"uint8","name":"sell","type":"uint8"}],"name":"set_taxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swap_treshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"tax_free","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"trade_enabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transfer_tax","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600080546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d179055600180546001600160b01b03191674017a250d5630b4cf539739df2c5dacb4c659f2488d1790556200005f6012600a62000614565b6200006f906305f5e100620006d3565b600a55600b8054735b407fb13c790d663ad80995eefc9b106dfa968a6001600160a01b0319909116179055600d80546001600160481b031916670100010c0c0c0001179055600f805462ffffff191662030205179081905560ff620100008204811691620000e69161010090910416600562000580565b620000f2919062000580565b600f60036101000a81548160ff021916908360ff1602179055506200012a61012c600a546200043c60201b620019211790919060201c565b6010553480156200013a57600080fd5b5060038054336001600160a01b031991821681179092556004805490911682178155600091825260026020908152604092839020805460ff1916600190811790915554835163c45a015560e01b815293516001600160a01b039091169363c45a015593818101939291829003018186803b158015620001b857600080fd5b505afa158015620001cd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001f391906200054e565b6001600160a01b031663c9c6539630600160009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200025157600080fd5b505afa15801562000266573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200028c91906200054e565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b158015620002d557600080fd5b505af1158015620002ea573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200031091906200054e565b601380546001600160a01b039283166001600160a01b03199182168117835560148054909216179055336000818152600560209081526040808320805460ff199081166001908117909255600b8054891686528386208054831684179055805489168652600985528386208054831684179055965488168552828520805482168317905595548716845260088352818420805490961617909455600a546004549095168252601181529083902084905591519283529161dead917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3600154600a54620004149130916001600160a01b039091169062000453565b600354600154600a5462000436926001600160a01b0390811692169062000453565b6200070b565b60006200044a8284620005a8565b90505b92915050565b6001600160a01b038316620004a35760405162461bcd60e51b8152602060048201526011602482015270417070726f76652066726f6d207a65726f60781b60448201526064015b60405180910390fd5b6001600160a01b038216620004ed5760405162461bcd60e51b815260206004820152600f60248201526e417070726f766520746f207a65726f60881b60448201526064016200049a565b6001600160a01b0383811660008181526012602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000602082840312156200056157600080fd5b81516001600160a01b03811681146200057957600080fd5b9392505050565b600060ff821660ff84168060ff03821115620005a057620005a0620006f5565b019392505050565b600082620005c657634e487b7160e01b600052601260045260246000fd5b500490565b600181815b808511156200060c578160001904821115620005f057620005f0620006f5565b80851615620005fe57918102915b93841c9390800290620005d0565b509250929050565b60006200044a60ff84168360008262000630575060016200044d565b816200063f575060006200044d565b8160018114620006585760028114620006635762000683565b60019150506200044d565b60ff841115620006775762000677620006f5565b50506001821b6200044d565b5060208310610133831016604e8410600b8410161715620006a8575081810a6200044d565b620006b48383620005cb565b8060001904821115620006cb57620006cb620006f5565b029392505050565b6000816000190483118215151615620006f057620006f0620006f5565b500290565b634e487b7160e01b600052601160045260246000fd5b6129db806200071b6000396000f3fe6080604052600436106103ad5760003560e01c8063893d20e8116101e5578063c01bb48b1161010c578063d28d8852116100a5578063e717fc3011610077578063e717fc3014610c6b578063f4ea55ab14610c8f578063f887ea4014610cbf578063fab2e05414610cdf578063fafab66514610cff57005b8063d28d885214610bae578063d46f2f6614610be5578063dd62ed3e14610c05578063e1d5264b14610c4b57005b8063ca4b208b116100de578063ca4b208b14610b37578063cbc1cfd214610b57578063cbe7003014610b6c578063cf30901214610b8d57005b8063c01bb48b14610aad578063c664c31d14610ace578063c7639d8014610af0578063c78dc6fd14610b1857005b8063a457c2d71161017e578063af1bb5c011610150578063af1bb5c014610a04578063b09f126614610a24578063b0ef593714610a54578063b918161114610a7457005b8063a457c2d714610974578063a8aa1b3114610994578063a9059cbb146109b4578063ad95fc8f146109d457005b806395d89b41116101b757806395d89b41146108f157806398fabd3a1461091e578063a201b2a71461093e578063a253c06e1461095e57005b8063893d20e8146108625780638da5cb5b1461088057806393505052146108a0578063952eb8a7146108c157005b80633a32fea8116102d45780636abbe5851161026d57806370fbc7121161023f57806370fbc712146107d157806378e97925146107e65780637cb97b2b146107fc578063826c89bd1461081c57806382c4767b1461084c57005b80636abbe585146107395780636ebcf6071461074e57806370a082311461077b57806370bfcf40146107b157005b80634edebbba116102a65780634edebbba146106a9578063569ff644146106c957806357d8ae82146106e95780635bd263e71461071957005b80633a32fea81461061c5780633f27cc481461063c5780633fe7e33c1461065c5780634147c6a71461068957005b80631eb25d1311610346578063313ce56711610318578063313ce5671461058d57806332424aa3146105af57806334184e26146105c457806339509351146105fc57005b80631eb25d131461051857806323b872dd1461052d5780632bfe87421461054d5780632f575b4e1461056d57005b806313f273831161037f57806313f273831461048857806317668f1b1461049e57806318160ddd146104ce5780631c099a83146104e357005b8063024c2ddd146103b657806306fdde0314610401578063090786131461043e578063095ea7b31461046857005b366103b457005b005b3480156103c257600080fd5b506103ee6103d13660046124c2565b601260209081526000928352604080842090915290825290205481565b6040519081526020015b60405180910390f35b34801561040d57600080fd5b5060408051808201909152600b81526a05468652044414f20322e360ac1b60208201525b6040516103f891906126ca565b34801561044a57600080fd5b50600d546104589060ff1681565b60405190151581526020016103f8565b34801561047457600080fd5b5061045861048336600461256a565b610d1f565b34801561049457600080fd5b506103ee60105481565b3480156104aa57600080fd5b506104586104b9366004612488565b60056020526000908152604090205460ff1681565b3480156104da57600080fd5b50600a546103ee565b3480156104ef57600080fd5b50600d5461050590600160381b900461ffff1681565b60405161ffff90911681526020016103f8565b34801561052457600080fd5b506103ee610d36565b34801561053957600080fd5b506104586105483660046124fb565b610d53565b34801561055957600080fd5b506103b461056836600461253c565b610def565b34801561057957600080fd5b506103b46105883660046125d0565b610e5e565b34801561059957600080fd5b5060125b60405160ff90911681526020016103f8565b3480156105bb57600080fd5b5061059d601281565b3480156105d057600080fd5b506013546105e4906001600160a01b031681565b6040516001600160a01b0390911681526020016103f8565b34801561060857600080fd5b5061045861061736600461256a565b610f34565b34801561062857600080fd5b506103b461063736600461253c565b610f6b565b34801561064857600080fd5b506103b461065736600461253c565b610fda565b34801561066857600080fd5b506103ee610677366004612488565b600c6020526000908152604090205481565b34801561069557600080fd5b50600d5461059d9062010000900460ff1681565b3480156106b557600080fd5b506103b46106c4366004612596565b611049565b3480156106d557600080fd5b506103b46106e43660046125d0565b6110a0565b3480156106f557600080fd5b50610458610704366004612488565b60096020526000908152604090205460ff1681565b34801561072557600080fd5b506103b461073436600461253c565b611171565b34801561074557600080fd5b506103b46111fb565b34801561075a57600080fd5b506103ee610769366004612488565b60116020526000908152604090205481565b34801561078757600080fd5b506103ee610796366004612488565b6001600160a01b031660009081526011602052604090205490565b3480156107bd57600080fd5b506103b46107cc366004612596565b61123f565b3480156107dd57600080fd5b506103ee61129d565b3480156107f257600080fd5b506103ee600e5481565b34801561080857600080fd5b506103b4610817366004612488565b6112d2565b34801561082857600080fd5b50610458610837366004612488565b60076020526000908152604090205460ff1681565b34801561085857600080fd5b506105e461dead81565b34801561086e57600080fd5b506003546001600160a01b03166105e4565b34801561088c57600080fd5b506003546105e4906001600160a01b031681565b3480156108ac57600080fd5b50600d5461059d906301000000900460ff1681565b3480156108cd57600080fd5b506104586108dc366004612488565b60086020526000908152604090205460ff1681565b3480156108fd57600080fd5b506040805180820190915260048152635432414f60e01b6020820152610431565b34801561092a57600080fd5b50600b546105e4906001600160a01b031681565b34801561094a57600080fd5b506103b46109593660046125f4565b611323565b34801561096a57600080fd5b506103ee600a5481565b34801561098057600080fd5b5061045861098f36600461256a565b6113ea565b3480156109a057600080fd5b506014546105e4906001600160a01b031681565b3480156109c057600080fd5b506104586109cf36600461256a565b611466565b3480156109e057600080fd5b506104586109ef366004612488565b60066020526000908152604090205460ff1681565b348015610a1057600080fd5b506103b4610a1f366004612488565b611473565b348015610a3057600080fd5b50610431604051806040016040528060048152602001635432414f60e01b81525081565b348015610a6057600080fd5b506103b4610a6f366004612654565b61160b565b348015610a8057600080fd5b50610458610a8f366004612488565b6001600160a01b031660009081526002602052604090205460ff1690565b348015610ab957600080fd5b5060015461045890600160a81b900460ff1681565b348015610ada57600080fd5b50600d5461059d90640100000000900460ff1681565b348015610afc57600080fd5b506105e4737a250d5630b4cf539739df2c5dacb4c659f2488d81565b348015610b2457600080fd5b50600d5461045890610100900460ff1681565b348015610b4357600080fd5b506004546105e4906001600160a01b031681565b348015610b6357600080fd5b506103b461170f565b348015610b7857600080fd5b5060015461045890600160a01b900460ff1681565b348015610b9957600080fd5b5060045461045890600160a01b900460ff1681565b348015610bba57600080fd5b506104316040518060400160405280600b81526020016a05468652044414f20322e360ac1b81525081565b348015610bf157600080fd5b506000546105e4906001600160a01b031681565b348015610c1157600080fd5b506103ee610c203660046124c2565b6001600160a01b03918216600090815260126020908152604080832093909416825291909152205490565b348015610c5757600080fd5b506103b4610c66366004612687565b61178d565b348015610c7757600080fd5b50600d546105059065010000000000900461ffff1681565b348015610c9b57600080fd5b50610458610caa366004612488565b60026020526000908152604090205460ff1681565b348015610ccb57600080fd5b506001546105e4906001600160a01b031681565b348015610ceb57600080fd5b506103b4610cfa3660046125f4565b611807565b348015610d0b57600080fd5b506103b4610d1a36600461253c565b6118b2565b6000610d2c338484611934565b5060015b92915050565b610d426012600a612855565b610d50906305f5e100612900565b81565b6000610d60848484611a28565b6001600160a01b038416600090815260126020908152604080832033845290915290205482811015610dd05760405162461bcd60e51b81526020600482015260146024820152735472616e73666572203e20616c6c6f77616e636560601b60448201526064015b60405180910390fd5b610de48533610ddf868561291f565b611934565b506001949350505050565b3360009081526002602052604090205460ff1680610e1757506003546001600160a01b031633145b610e335760405162461bcd60e51b8152600401610dc79061271f565b6001600160a01b03919091166000908152600260205260409020805460ff1916911515919091179055565b3360009081526002602052604090205460ff1680610e8657506003546001600160a01b031633145b610ea25760405162461bcd60e51b8152600401610dc79061271f565b600d805468ffff000000000000001916600160381b61ffff841690810291909117909155600a1115610f315760405162461bcd60e51b815260206004820152603260248201527f4174206c6561737420352c2072656d656d62657220746861742069742773202f60448201527131303030302c20736f2035203d20302e312560701b6064820152608401610dc7565b50565b3360008181526012602090815260408083206001600160a01b03871684529091528120549091610d2c918590610ddf9086906127b3565b3360009081526002602052604090205460ff1680610f9357506003546001600160a01b031633145b610faf5760405162461bcd60e51b8152600401610dc79061271f565b6001600160a01b03919091166000908152600960205260409020805460ff1916911515919091179055565b3360009081526002602052604090205460ff168061100257506003546001600160a01b031633145b61101e5760405162461bcd60e51b8152600401610dc79061271f565b6001600160a01b03919091166000908152600860205260409020805460ff1916911515919091179055565b3360009081526002602052604090205460ff168061107157506003546001600160a01b031633145b61108d5760405162461bcd60e51b8152600401610dc79061271f565b600d805460ff1916911515919091179055565b3360009081526002602052604090205460ff16806110c857506003546001600160a01b031633145b6110e45760405162461bcd60e51b8152600401610dc79061271f565b600d805466ffff000000000019166501000000000061ffff841690810291909117909155600a1115610f315760405162461bcd60e51b815260206004820152603060248201527f4174206c656173742031302c2072656d656d626572207468617420697427732060448201526f2f313030302c20736f2031203d20312560801b6064820152608401610dc7565b3360009081526002602052604090205460ff168061119957506003546001600160a01b031633145b6111b55760405162461bcd60e51b8152600401610dc79061271f565b6004546001600160a01b03838116911614156111d057600080fd5b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b6004546001600160a01b0316331461121257600080fd5b600154600160a81b900460ff161561122957600080fd5b6001805461ffff60a01b1916600160a81b179055565b3360009081526002602052604090205460ff168061126757506003546001600160a01b031633145b6112835760405162461bcd60e51b8152600401610dc79061271f565b600d80549115156101000261ff0019909216919091179055565b60006112cd612710600d60079054906101000a900461ffff1661ffff16600a546112c79190612900565b90611921565b905090565b6004546001600160a01b031633146112e957600080fd5b600380546001600160a01b039092166001600160a01b0319909216821790556000908152600260205260409020805460ff19166001179055565b3360009081526002602052604090205460ff168061134b57506003546001600160a01b031633145b6113675760405162461bcd60e51b8152600401610dc79061271f565b3360009081526011602052604090205481111561138357600080fd5b33600090815260116020526040812080548392906113a290849061291f565b9250508190555080600a60008282546113bb919061291f565b909155505060405181815261dead9030906000805160206129868339815191529060200160405180910390a350565b3360009081526012602090815260408083206001600160a01b03861684529091528120548281101561144d5760405162461bcd60e51b815260206004820152600c60248201526b3c3020616c6c6f77616e636560a01b6044820152606401610dc7565b61145c3385610ddf868561291f565b5060019392505050565b6000610d2c338484611a28565b3360009081526002602052604090205460ff168061149b57506003546001600160a01b031633145b6114b75760405162461bcd60e51b8152600401610dc79061271f565b6040516370a0823160e01b815230600482015281906000906001600160a01b038316906370a082319060240160206040518083038186803b1580156114fb57600080fd5b505afa15801561150f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611533919061260d565b9050600081116115855760405162461bcd60e51b815260206004820152601860248201527f4e6f20746f6b656e7320696e206f75722062616c616e636500000000000000006044820152606401610dc7565b60405163a9059cbb60e01b8152336004820152602481018290526001600160a01b0383169063a9059cbb90604401602060405180830381600087803b1580156115cd57600080fd5b505af11580156115e1573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061160591906125b3565b50505050565b3360009081526002602052604090205460ff168061163357506003546001600160a01b031633145b61164f5760405162461bcd60e51b8152600401610dc79061271f565b600d805460ff83811663010000000263ff0000001991861662010000029190911663ffff0000199092169190911717905560016116bb5760405162461bcd60e51b815260206004820152600a60248201526904174206c6561737420360b41b6044820152606401610dc7565b601a8260ff161080156116d15750601a8160ff16105b61170b5760405162461bcd60e51b815260206004820152600b60248201526a139bc81a1bdb995e5c1bdd60aa1b6044820152606401610dc7565b5050565b3360009081526002602052604090205460ff168061173757506003546001600160a01b031633145b6117535760405162461bcd60e51b8152600401610dc79061271f565b60045460405147916001600160a01b03169082156108fc029083906000818181858888f1935050505015801561170b573d6000803e3d6000fd5b3360009081526002602052604090205460ff16806117b557506003546001600160a01b031633145b6117d15760405162461bcd60e51b8152600401610dc79061271f565b600f805460ff94851661ffff1990911617610100938516939093029290921762ff00001916620100009190931602919091179055565b3360009081526002602052604090205460ff168061182f57506003546001600160a01b031633145b61184b5760405162461bcd60e51b8152600401610dc79061271f565b3060009081526011602052604090205481106118a95760405162461bcd60e51b815260206004820152601f60248201527f6475646520746865726520617265206e6f7420656e6f75676820746f6b656e006044820152606401610dc7565b610f3181611b89565b3360009081526002602052604090205460ff16806118da57506003546001600160a01b031633145b6118f65760405162461bcd60e51b8152600401610dc79061271f565b6001600160a01b03919091166000908152600560205260409020805460ff1916911515919091179055565b600061192d82846127f0565b9392505050565b6001600160a01b03831661197e5760405162461bcd60e51b8152602060048201526011602482015270417070726f76652066726f6d207a65726f60781b6044820152606401610dc7565b6001600160a01b0382166119c65760405162461bcd60e51b815260206004820152600f60248201526e417070726f766520746f207a65726f60881b6044820152606401610dc7565b6001600160a01b0383811660008181526012602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b03831660009081526005602052604081205460ff1680611a6757506001600160a01b03831660009081526005602052604090205460ff165b80611a8a57506001600160a01b03841660009081526002602052604090205460ff165b80611aad57506001600160a01b03831660009081526002602052604090205460ff165b905060006001600160a01b038516301480611ad057506001600160a01b03841630145b6013549091506000906001600160a01b038781169116148015611b0f57506001600160a01b038516737a250d5630b4cf539739df2c5dacb4c659f2488d145b80611b4e57506013546001600160a01b038681169116148015611b4e57506001600160a01b038616737a250d5630b4cf539739df2c5dacb4c659f2488d145b90508280611b595750815b80611b615750805b15611b7657611b71868686611fa4565b611b81565b611b81868686612033565b505050505050565b600454600160a01b900460ff1615611bcf5760405162461bcd60e51b81526020600482015260096024820152681c99595b9d1c985b9d60ba1b6044820152606401610dc7565b6004805460ff60a01b1916600160a01b17905530600090815260116020526040812054600f5490919060ff81811691611c16916101008204811691620100009004166127cb565b611c2091906127cb565b60ff1690506000611c4260646112c7604b6010546123ec90919063ffffffff16565b905083811115611c5a57600d5460ff1615611c5a5750825b80831015611c6a57505050611f94565b600f5460009061ffff841690611c899062010000900460ff1684612900565b611c9391906127f0565b90506000611ca26002836127f0565b90506000611cb0828461291f565b60408051600280825260608201835292935047926000926020830190803683370190505090503081600081518110611cea57611cea61294c565b6001600160a01b03928316602091820292909201810191909152600154604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b158015611d3e57600080fd5b505afa158015611d52573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d7691906124a5565b81600181518110611d8957611d8961294c565b6001600160a01b03928316602091820292909201015260015460405163791ac94760e01b815291169063791ac94790611dcf908990600090869030904290600401612742565b600060405180830381600087803b158015611de957600080fd5b505af1158015611dfd573d6000803e3d6000fd5b5050505060008247611e0f919061291f565b9050600087611e1e8684612900565b611e2891906127f0565b60015460405163f305d71960e01b81523060048201819052602482018a9052600060448301819052606483015260848201524260a48201529192506001600160a01b03169063f305d71990839060c4016060604051808303818588803b158015611e9157600080fd5b505af1158015611ea5573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611eca9190612626565b50505060008447611edb919061291f565b600f54909150600090611f019061ffff8d16906112c7908590610100900460ff166123ec565b90506000611f0f828461291f565b6004546040519192506001600160a01b03169082156108fc029083906000818181858888f19350505050158015611f4a573d6000803e3d6000fd5b50600b546040516001600160a01b039091169083156108fc029084906000818181858888f19350505050158015611f85573d6000803e3d6000fd5b50505050505050505050505050505b506004805460ff60a01b19169055565b6001600160a01b03831660009081526011602052604081208054839290611fcc90849061291f565b90915550506001600160a01b03821660009081526011602052604081208054839290611ff99084906127b3565b92505081905550816001600160a01b0316836001600160a01b031660008051602061298683398151915283604051611a1b91815260200190565b6001600160a01b03831660009081526007602052604090205460ff1615801561207557506001600160a01b03821660009081526007602052604090205460ff16155b6120af5760405162461bcd60e51b815260206004820152600b60248201526a109b1858dadb1a5cdd195960aa1b6044820152606401610dc7565b600154600160a01b900460ff1661210757600154600160a81b900460ff166121025760405162461bcd60e51b8152600401610dc790602080825260049082015263053544f560e41b604082015260600190565b61214c565b600154600160a81b900460ff1661214c57816001600160a01b0316836001600160a01b03166000805160206129868339815191526000604051611a1b91815260200190565b6001600160a01b03831660009081526008602052604090205460ff166121805761217461129d565b81111561218057600080fd5b6001600160a01b03821660009081526009602052604090205460ff1661223d57600d54600a546103e8916121c2916501000000000090910461ffff1690612900565b6121cc91906127f0565b6001600160a01b0383166000908152601160205260409020546121f09083906127b3565b1061223d5760405162461bcd60e51b815260206004820152601760248201527f4d61782077616c6c6574206f6e20726563697069656e740000000000000000006044820152606401610dc7565b6013546000906001600160a01b038481169116148061226957506000546001600160a01b038481169116145b905060008061227884846123f8565b601054306000908152601160205260409020549294509092501080156122a65750600d54610100900460ff16155b80156122bc5750600454600160a01b900460ff16155b156122e4578280156122d65750600d54610100900460ff16155b156122e4576122e484611b89565b6001600160a01b038616600090815260116020526040902054612307908561245a565b6001600160a01b0380881660009081526011602052604080822093909355908716815220546123369083612466565b6001600160a01b0386166000908152601160205260408082209290925530815220546123629082612466565b30600081815260116020526040908190209290925590516001600160a01b03881690600080516020612986833981519152906123a19085815260200190565b60405180910390a3846001600160a01b0316866001600160a01b0316600080516020612986833981519152846040516123dc91815260200190565b60405180910390a3505050505050565b600061192d8284612900565b600080600083156124165750600d546301000000900460ff16612424565b50600d5462010000900460ff165b6000606461243560ff841688612900565b61243f91906127f0565b9050600061244d828861291f565b9791965090945050505050565b600061192d828461291f565b600061192d82846127b3565b803560ff8116811461248357600080fd5b919050565b60006020828403121561249a57600080fd5b813561192d81612962565b6000602082840312156124b757600080fd5b815161192d81612962565b600080604083850312156124d557600080fd5b82356124e081612962565b915060208301356124f081612962565b809150509250929050565b60008060006060848603121561251057600080fd5b833561251b81612962565b9250602084013561252b81612962565b929592945050506040919091013590565b6000806040838503121561254f57600080fd5b823561255a81612962565b915060208301356124f081612977565b6000806040838503121561257d57600080fd5b823561258881612962565b946020939093013593505050565b6000602082840312156125a857600080fd5b813561192d81612977565b6000602082840312156125c557600080fd5b815161192d81612977565b6000602082840312156125e257600080fd5b813561ffff8116811461192d57600080fd5b60006020828403121561260657600080fd5b5035919050565b60006020828403121561261f57600080fd5b5051919050565b60008060006060848603121561263b57600080fd5b8351925060208401519150604084015190509250925092565b6000806040838503121561266757600080fd5b61267083612472565b915061267e60208401612472565b90509250929050565b60008060006060848603121561269c57600080fd5b6126a584612472565b92506126b360208501612472565b91506126c160408501612472565b90509250925092565b600060208083528351808285015260005b818110156126f7578581018301518582016040015282016126db565b81811115612709576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252600990820152683737ba1037bbb732b960b91b604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156127925784516001600160a01b03168352938301939183019160010161276d565b50506001600160a01b03969096166060850152505050608001529392505050565b600082198211156127c6576127c6612936565b500190565b600060ff821660ff84168060ff038211156127e8576127e8612936565b019392505050565b60008261280d57634e487b7160e01b600052601260045260246000fd5b500490565b600181815b8085111561284d57816000190482111561283357612833612936565b8085161561284057918102915b93841c9390800290612817565b509250929050565b600061192d60ff84168360008261286e57506001610d30565b8161287b57506000610d30565b8160018114612891576002811461289b576128b7565b6001915050610d30565b60ff8411156128ac576128ac612936565b50506001821b610d30565b5060208310610133831016604e8410600b84101617156128da575081810a610d30565b6128e48383612812565b80600019048211156128f8576128f8612936565b029392505050565b600081600019048311821515161561291a5761291a612936565b500290565b60008282101561293157612931612936565b500390565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6001600160a01b0381168114610f3157600080fd5b8015158114610f3157600080fdfeddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220d29c95fa6717a0c6262d6424f0b9d18112909de9fc8721418029f3a865753b2964736f6c63430008070033

Deployed Bytecode

0x6080604052600436106103ad5760003560e01c8063893d20e8116101e5578063c01bb48b1161010c578063d28d8852116100a5578063e717fc3011610077578063e717fc3014610c6b578063f4ea55ab14610c8f578063f887ea4014610cbf578063fab2e05414610cdf578063fafab66514610cff57005b8063d28d885214610bae578063d46f2f6614610be5578063dd62ed3e14610c05578063e1d5264b14610c4b57005b8063ca4b208b116100de578063ca4b208b14610b37578063cbc1cfd214610b57578063cbe7003014610b6c578063cf30901214610b8d57005b8063c01bb48b14610aad578063c664c31d14610ace578063c7639d8014610af0578063c78dc6fd14610b1857005b8063a457c2d71161017e578063af1bb5c011610150578063af1bb5c014610a04578063b09f126614610a24578063b0ef593714610a54578063b918161114610a7457005b8063a457c2d714610974578063a8aa1b3114610994578063a9059cbb146109b4578063ad95fc8f146109d457005b806395d89b41116101b757806395d89b41146108f157806398fabd3a1461091e578063a201b2a71461093e578063a253c06e1461095e57005b8063893d20e8146108625780638da5cb5b1461088057806393505052146108a0578063952eb8a7146108c157005b80633a32fea8116102d45780636abbe5851161026d57806370fbc7121161023f57806370fbc712146107d157806378e97925146107e65780637cb97b2b146107fc578063826c89bd1461081c57806382c4767b1461084c57005b80636abbe585146107395780636ebcf6071461074e57806370a082311461077b57806370bfcf40146107b157005b80634edebbba116102a65780634edebbba146106a9578063569ff644146106c957806357d8ae82146106e95780635bd263e71461071957005b80633a32fea81461061c5780633f27cc481461063c5780633fe7e33c1461065c5780634147c6a71461068957005b80631eb25d1311610346578063313ce56711610318578063313ce5671461058d57806332424aa3146105af57806334184e26146105c457806339509351146105fc57005b80631eb25d131461051857806323b872dd1461052d5780632bfe87421461054d5780632f575b4e1461056d57005b806313f273831161037f57806313f273831461048857806317668f1b1461049e57806318160ddd146104ce5780631c099a83146104e357005b8063024c2ddd146103b657806306fdde0314610401578063090786131461043e578063095ea7b31461046857005b366103b457005b005b3480156103c257600080fd5b506103ee6103d13660046124c2565b601260209081526000928352604080842090915290825290205481565b6040519081526020015b60405180910390f35b34801561040d57600080fd5b5060408051808201909152600b81526a05468652044414f20322e360ac1b60208201525b6040516103f891906126ca565b34801561044a57600080fd5b50600d546104589060ff1681565b60405190151581526020016103f8565b34801561047457600080fd5b5061045861048336600461256a565b610d1f565b34801561049457600080fd5b506103ee60105481565b3480156104aa57600080fd5b506104586104b9366004612488565b60056020526000908152604090205460ff1681565b3480156104da57600080fd5b50600a546103ee565b3480156104ef57600080fd5b50600d5461050590600160381b900461ffff1681565b60405161ffff90911681526020016103f8565b34801561052457600080fd5b506103ee610d36565b34801561053957600080fd5b506104586105483660046124fb565b610d53565b34801561055957600080fd5b506103b461056836600461253c565b610def565b34801561057957600080fd5b506103b46105883660046125d0565b610e5e565b34801561059957600080fd5b5060125b60405160ff90911681526020016103f8565b3480156105bb57600080fd5b5061059d601281565b3480156105d057600080fd5b506013546105e4906001600160a01b031681565b6040516001600160a01b0390911681526020016103f8565b34801561060857600080fd5b5061045861061736600461256a565b610f34565b34801561062857600080fd5b506103b461063736600461253c565b610f6b565b34801561064857600080fd5b506103b461065736600461253c565b610fda565b34801561066857600080fd5b506103ee610677366004612488565b600c6020526000908152604090205481565b34801561069557600080fd5b50600d5461059d9062010000900460ff1681565b3480156106b557600080fd5b506103b46106c4366004612596565b611049565b3480156106d557600080fd5b506103b46106e43660046125d0565b6110a0565b3480156106f557600080fd5b50610458610704366004612488565b60096020526000908152604090205460ff1681565b34801561072557600080fd5b506103b461073436600461253c565b611171565b34801561074557600080fd5b506103b46111fb565b34801561075a57600080fd5b506103ee610769366004612488565b60116020526000908152604090205481565b34801561078757600080fd5b506103ee610796366004612488565b6001600160a01b031660009081526011602052604090205490565b3480156107bd57600080fd5b506103b46107cc366004612596565b61123f565b3480156107dd57600080fd5b506103ee61129d565b3480156107f257600080fd5b506103ee600e5481565b34801561080857600080fd5b506103b4610817366004612488565b6112d2565b34801561082857600080fd5b50610458610837366004612488565b60076020526000908152604090205460ff1681565b34801561085857600080fd5b506105e461dead81565b34801561086e57600080fd5b506003546001600160a01b03166105e4565b34801561088c57600080fd5b506003546105e4906001600160a01b031681565b3480156108ac57600080fd5b50600d5461059d906301000000900460ff1681565b3480156108cd57600080fd5b506104586108dc366004612488565b60086020526000908152604090205460ff1681565b3480156108fd57600080fd5b506040805180820190915260048152635432414f60e01b6020820152610431565b34801561092a57600080fd5b50600b546105e4906001600160a01b031681565b34801561094a57600080fd5b506103b46109593660046125f4565b611323565b34801561096a57600080fd5b506103ee600a5481565b34801561098057600080fd5b5061045861098f36600461256a565b6113ea565b3480156109a057600080fd5b506014546105e4906001600160a01b031681565b3480156109c057600080fd5b506104586109cf36600461256a565b611466565b3480156109e057600080fd5b506104586109ef366004612488565b60066020526000908152604090205460ff1681565b348015610a1057600080fd5b506103b4610a1f366004612488565b611473565b348015610a3057600080fd5b50610431604051806040016040528060048152602001635432414f60e01b81525081565b348015610a6057600080fd5b506103b4610a6f366004612654565b61160b565b348015610a8057600080fd5b50610458610a8f366004612488565b6001600160a01b031660009081526002602052604090205460ff1690565b348015610ab957600080fd5b5060015461045890600160a81b900460ff1681565b348015610ada57600080fd5b50600d5461059d90640100000000900460ff1681565b348015610afc57600080fd5b506105e4737a250d5630b4cf539739df2c5dacb4c659f2488d81565b348015610b2457600080fd5b50600d5461045890610100900460ff1681565b348015610b4357600080fd5b506004546105e4906001600160a01b031681565b348015610b6357600080fd5b506103b461170f565b348015610b7857600080fd5b5060015461045890600160a01b900460ff1681565b348015610b9957600080fd5b5060045461045890600160a01b900460ff1681565b348015610bba57600080fd5b506104316040518060400160405280600b81526020016a05468652044414f20322e360ac1b81525081565b348015610bf157600080fd5b506000546105e4906001600160a01b031681565b348015610c1157600080fd5b506103ee610c203660046124c2565b6001600160a01b03918216600090815260126020908152604080832093909416825291909152205490565b348015610c5757600080fd5b506103b4610c66366004612687565b61178d565b348015610c7757600080fd5b50600d546105059065010000000000900461ffff1681565b348015610c9b57600080fd5b50610458610caa366004612488565b60026020526000908152604090205460ff1681565b348015610ccb57600080fd5b506001546105e4906001600160a01b031681565b348015610ceb57600080fd5b506103b4610cfa3660046125f4565b611807565b348015610d0b57600080fd5b506103b4610d1a36600461253c565b6118b2565b6000610d2c338484611934565b5060015b92915050565b610d426012600a612855565b610d50906305f5e100612900565b81565b6000610d60848484611a28565b6001600160a01b038416600090815260126020908152604080832033845290915290205482811015610dd05760405162461bcd60e51b81526020600482015260146024820152735472616e73666572203e20616c6c6f77616e636560601b60448201526064015b60405180910390fd5b610de48533610ddf868561291f565b611934565b506001949350505050565b3360009081526002602052604090205460ff1680610e1757506003546001600160a01b031633145b610e335760405162461bcd60e51b8152600401610dc79061271f565b6001600160a01b03919091166000908152600260205260409020805460ff1916911515919091179055565b3360009081526002602052604090205460ff1680610e8657506003546001600160a01b031633145b610ea25760405162461bcd60e51b8152600401610dc79061271f565b600d805468ffff000000000000001916600160381b61ffff841690810291909117909155600a1115610f315760405162461bcd60e51b815260206004820152603260248201527f4174206c6561737420352c2072656d656d62657220746861742069742773202f60448201527131303030302c20736f2035203d20302e312560701b6064820152608401610dc7565b50565b3360008181526012602090815260408083206001600160a01b03871684529091528120549091610d2c918590610ddf9086906127b3565b3360009081526002602052604090205460ff1680610f9357506003546001600160a01b031633145b610faf5760405162461bcd60e51b8152600401610dc79061271f565b6001600160a01b03919091166000908152600960205260409020805460ff1916911515919091179055565b3360009081526002602052604090205460ff168061100257506003546001600160a01b031633145b61101e5760405162461bcd60e51b8152600401610dc79061271f565b6001600160a01b03919091166000908152600860205260409020805460ff1916911515919091179055565b3360009081526002602052604090205460ff168061107157506003546001600160a01b031633145b61108d5760405162461bcd60e51b8152600401610dc79061271f565b600d805460ff1916911515919091179055565b3360009081526002602052604090205460ff16806110c857506003546001600160a01b031633145b6110e45760405162461bcd60e51b8152600401610dc79061271f565b600d805466ffff000000000019166501000000000061ffff841690810291909117909155600a1115610f315760405162461bcd60e51b815260206004820152603060248201527f4174206c656173742031302c2072656d656d626572207468617420697427732060448201526f2f313030302c20736f2031203d20312560801b6064820152608401610dc7565b3360009081526002602052604090205460ff168061119957506003546001600160a01b031633145b6111b55760405162461bcd60e51b8152600401610dc79061271f565b6004546001600160a01b03838116911614156111d057600080fd5b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b6004546001600160a01b0316331461121257600080fd5b600154600160a81b900460ff161561122957600080fd5b6001805461ffff60a01b1916600160a81b179055565b3360009081526002602052604090205460ff168061126757506003546001600160a01b031633145b6112835760405162461bcd60e51b8152600401610dc79061271f565b600d80549115156101000261ff0019909216919091179055565b60006112cd612710600d60079054906101000a900461ffff1661ffff16600a546112c79190612900565b90611921565b905090565b6004546001600160a01b031633146112e957600080fd5b600380546001600160a01b039092166001600160a01b0319909216821790556000908152600260205260409020805460ff19166001179055565b3360009081526002602052604090205460ff168061134b57506003546001600160a01b031633145b6113675760405162461bcd60e51b8152600401610dc79061271f565b3360009081526011602052604090205481111561138357600080fd5b33600090815260116020526040812080548392906113a290849061291f565b9250508190555080600a60008282546113bb919061291f565b909155505060405181815261dead9030906000805160206129868339815191529060200160405180910390a350565b3360009081526012602090815260408083206001600160a01b03861684529091528120548281101561144d5760405162461bcd60e51b815260206004820152600c60248201526b3c3020616c6c6f77616e636560a01b6044820152606401610dc7565b61145c3385610ddf868561291f565b5060019392505050565b6000610d2c338484611a28565b3360009081526002602052604090205460ff168061149b57506003546001600160a01b031633145b6114b75760405162461bcd60e51b8152600401610dc79061271f565b6040516370a0823160e01b815230600482015281906000906001600160a01b038316906370a082319060240160206040518083038186803b1580156114fb57600080fd5b505afa15801561150f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611533919061260d565b9050600081116115855760405162461bcd60e51b815260206004820152601860248201527f4e6f20746f6b656e7320696e206f75722062616c616e636500000000000000006044820152606401610dc7565b60405163a9059cbb60e01b8152336004820152602481018290526001600160a01b0383169063a9059cbb90604401602060405180830381600087803b1580156115cd57600080fd5b505af11580156115e1573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061160591906125b3565b50505050565b3360009081526002602052604090205460ff168061163357506003546001600160a01b031633145b61164f5760405162461bcd60e51b8152600401610dc79061271f565b600d805460ff83811663010000000263ff0000001991861662010000029190911663ffff0000199092169190911717905560016116bb5760405162461bcd60e51b815260206004820152600a60248201526904174206c6561737420360b41b6044820152606401610dc7565b601a8260ff161080156116d15750601a8160ff16105b61170b5760405162461bcd60e51b815260206004820152600b60248201526a139bc81a1bdb995e5c1bdd60aa1b6044820152606401610dc7565b5050565b3360009081526002602052604090205460ff168061173757506003546001600160a01b031633145b6117535760405162461bcd60e51b8152600401610dc79061271f565b60045460405147916001600160a01b03169082156108fc029083906000818181858888f1935050505015801561170b573d6000803e3d6000fd5b3360009081526002602052604090205460ff16806117b557506003546001600160a01b031633145b6117d15760405162461bcd60e51b8152600401610dc79061271f565b600f805460ff94851661ffff1990911617610100938516939093029290921762ff00001916620100009190931602919091179055565b3360009081526002602052604090205460ff168061182f57506003546001600160a01b031633145b61184b5760405162461bcd60e51b8152600401610dc79061271f565b3060009081526011602052604090205481106118a95760405162461bcd60e51b815260206004820152601f60248201527f6475646520746865726520617265206e6f7420656e6f75676820746f6b656e006044820152606401610dc7565b610f3181611b89565b3360009081526002602052604090205460ff16806118da57506003546001600160a01b031633145b6118f65760405162461bcd60e51b8152600401610dc79061271f565b6001600160a01b03919091166000908152600560205260409020805460ff1916911515919091179055565b600061192d82846127f0565b9392505050565b6001600160a01b03831661197e5760405162461bcd60e51b8152602060048201526011602482015270417070726f76652066726f6d207a65726f60781b6044820152606401610dc7565b6001600160a01b0382166119c65760405162461bcd60e51b815260206004820152600f60248201526e417070726f766520746f207a65726f60881b6044820152606401610dc7565b6001600160a01b0383811660008181526012602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b03831660009081526005602052604081205460ff1680611a6757506001600160a01b03831660009081526005602052604090205460ff165b80611a8a57506001600160a01b03841660009081526002602052604090205460ff165b80611aad57506001600160a01b03831660009081526002602052604090205460ff165b905060006001600160a01b038516301480611ad057506001600160a01b03841630145b6013549091506000906001600160a01b038781169116148015611b0f57506001600160a01b038516737a250d5630b4cf539739df2c5dacb4c659f2488d145b80611b4e57506013546001600160a01b038681169116148015611b4e57506001600160a01b038616737a250d5630b4cf539739df2c5dacb4c659f2488d145b90508280611b595750815b80611b615750805b15611b7657611b71868686611fa4565b611b81565b611b81868686612033565b505050505050565b600454600160a01b900460ff1615611bcf5760405162461bcd60e51b81526020600482015260096024820152681c99595b9d1c985b9d60ba1b6044820152606401610dc7565b6004805460ff60a01b1916600160a01b17905530600090815260116020526040812054600f5490919060ff81811691611c16916101008204811691620100009004166127cb565b611c2091906127cb565b60ff1690506000611c4260646112c7604b6010546123ec90919063ffffffff16565b905083811115611c5a57600d5460ff1615611c5a5750825b80831015611c6a57505050611f94565b600f5460009061ffff841690611c899062010000900460ff1684612900565b611c9391906127f0565b90506000611ca26002836127f0565b90506000611cb0828461291f565b60408051600280825260608201835292935047926000926020830190803683370190505090503081600081518110611cea57611cea61294c565b6001600160a01b03928316602091820292909201810191909152600154604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b158015611d3e57600080fd5b505afa158015611d52573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d7691906124a5565b81600181518110611d8957611d8961294c565b6001600160a01b03928316602091820292909201015260015460405163791ac94760e01b815291169063791ac94790611dcf908990600090869030904290600401612742565b600060405180830381600087803b158015611de957600080fd5b505af1158015611dfd573d6000803e3d6000fd5b5050505060008247611e0f919061291f565b9050600087611e1e8684612900565b611e2891906127f0565b60015460405163f305d71960e01b81523060048201819052602482018a9052600060448301819052606483015260848201524260a48201529192506001600160a01b03169063f305d71990839060c4016060604051808303818588803b158015611e9157600080fd5b505af1158015611ea5573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611eca9190612626565b50505060008447611edb919061291f565b600f54909150600090611f019061ffff8d16906112c7908590610100900460ff166123ec565b90506000611f0f828461291f565b6004546040519192506001600160a01b03169082156108fc029083906000818181858888f19350505050158015611f4a573d6000803e3d6000fd5b50600b546040516001600160a01b039091169083156108fc029084906000818181858888f19350505050158015611f85573d6000803e3d6000fd5b50505050505050505050505050505b506004805460ff60a01b19169055565b6001600160a01b03831660009081526011602052604081208054839290611fcc90849061291f565b90915550506001600160a01b03821660009081526011602052604081208054839290611ff99084906127b3565b92505081905550816001600160a01b0316836001600160a01b031660008051602061298683398151915283604051611a1b91815260200190565b6001600160a01b03831660009081526007602052604090205460ff1615801561207557506001600160a01b03821660009081526007602052604090205460ff16155b6120af5760405162461bcd60e51b815260206004820152600b60248201526a109b1858dadb1a5cdd195960aa1b6044820152606401610dc7565b600154600160a01b900460ff1661210757600154600160a81b900460ff166121025760405162461bcd60e51b8152600401610dc790602080825260049082015263053544f560e41b604082015260600190565b61214c565b600154600160a81b900460ff1661214c57816001600160a01b0316836001600160a01b03166000805160206129868339815191526000604051611a1b91815260200190565b6001600160a01b03831660009081526008602052604090205460ff166121805761217461129d565b81111561218057600080fd5b6001600160a01b03821660009081526009602052604090205460ff1661223d57600d54600a546103e8916121c2916501000000000090910461ffff1690612900565b6121cc91906127f0565b6001600160a01b0383166000908152601160205260409020546121f09083906127b3565b1061223d5760405162461bcd60e51b815260206004820152601760248201527f4d61782077616c6c6574206f6e20726563697069656e740000000000000000006044820152606401610dc7565b6013546000906001600160a01b038481169116148061226957506000546001600160a01b038481169116145b905060008061227884846123f8565b601054306000908152601160205260409020549294509092501080156122a65750600d54610100900460ff16155b80156122bc5750600454600160a01b900460ff16155b156122e4578280156122d65750600d54610100900460ff16155b156122e4576122e484611b89565b6001600160a01b038616600090815260116020526040902054612307908561245a565b6001600160a01b0380881660009081526011602052604080822093909355908716815220546123369083612466565b6001600160a01b0386166000908152601160205260408082209290925530815220546123629082612466565b30600081815260116020526040908190209290925590516001600160a01b03881690600080516020612986833981519152906123a19085815260200190565b60405180910390a3846001600160a01b0316866001600160a01b0316600080516020612986833981519152846040516123dc91815260200190565b60405180910390a3505050505050565b600061192d8284612900565b600080600083156124165750600d546301000000900460ff16612424565b50600d5462010000900460ff165b6000606461243560ff841688612900565b61243f91906127f0565b9050600061244d828861291f565b9791965090945050505050565b600061192d828461291f565b600061192d82846127b3565b803560ff8116811461248357600080fd5b919050565b60006020828403121561249a57600080fd5b813561192d81612962565b6000602082840312156124b757600080fd5b815161192d81612962565b600080604083850312156124d557600080fd5b82356124e081612962565b915060208301356124f081612962565b809150509250929050565b60008060006060848603121561251057600080fd5b833561251b81612962565b9250602084013561252b81612962565b929592945050506040919091013590565b6000806040838503121561254f57600080fd5b823561255a81612962565b915060208301356124f081612977565b6000806040838503121561257d57600080fd5b823561258881612962565b946020939093013593505050565b6000602082840312156125a857600080fd5b813561192d81612977565b6000602082840312156125c557600080fd5b815161192d81612977565b6000602082840312156125e257600080fd5b813561ffff8116811461192d57600080fd5b60006020828403121561260657600080fd5b5035919050565b60006020828403121561261f57600080fd5b5051919050565b60008060006060848603121561263b57600080fd5b8351925060208401519150604084015190509250925092565b6000806040838503121561266757600080fd5b61267083612472565b915061267e60208401612472565b90509250929050565b60008060006060848603121561269c57600080fd5b6126a584612472565b92506126b360208501612472565b91506126c160408501612472565b90509250925092565b600060208083528351808285015260005b818110156126f7578581018301518582016040015282016126db565b81811115612709576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252600990820152683737ba1037bbb732b960b91b604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156127925784516001600160a01b03168352938301939183019160010161276d565b50506001600160a01b03969096166060850152505050608001529392505050565b600082198211156127c6576127c6612936565b500190565b600060ff821660ff84168060ff038211156127e8576127e8612936565b019392505050565b60008261280d57634e487b7160e01b600052601260045260246000fd5b500490565b600181815b8085111561284d57816000190482111561283357612833612936565b8085161561284057918102915b93841c9390800290612817565b509250929050565b600061192d60ff84168360008261286e57506001610d30565b8161287b57506000610d30565b8160018114612891576002811461289b576128b7565b6001915050610d30565b60ff8411156128ac576128ac612936565b50506001821b610d30565b5060208310610133831016604e8410600b84101617156128da575081810a610d30565b6128e48383612812565b80600019048211156128f8576128f8612936565b029392505050565b600081600019048311821515161561291a5761291a612936565b500290565b60008282101561293157612931612936565b500390565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6001600160a01b0381168114610f3157600080fd5b8015158114610f3157600080fdfeddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220d29c95fa6717a0c6262d6424f0b9d18112909de9fc8721418029f3a865753b2964736f6c63430008070033

Deployed Bytecode Sourcemap

13278:12118:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14770:68;;;;;;;;;;-1:-1:-1;14770:68:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;6194:25:1;;;6182:2;6167:18;14770:68:0;;;;;;;;23214:85;;;;;;;;;;-1:-1:-1;23286:5:0;;;;;;;;;;;;-1:-1:-1;;;23286:5:0;;;;23214:85;;;;;;;:::i;14228:25::-;;;;;;;;;;-1:-1:-1;14228:25:0;;;;;;;;;;;5550:14:1;;5543:22;5525:41;;5513:2;5498:18;14228:25:0;5385:187:1;23956:161:0;;;;;;;;;;-1:-1:-1;23956:161:0;;;;;:::i;:::-;;:::i;14652:57::-;;;;;;;;;;;;;;;;13391:40;;;;;;;;;;-1:-1:-1;13391:40:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;20937:108;;;;;;;;;;-1:-1:-1;21019:18:0;;20937:108;;14439:27;;;;;;;;;;-1:-1:-1;14439:27:0;;;;-1:-1:-1;;;14439:27:0;;;;;;;;;12312:6:1;12300:19;;;12282:38;;12270:2;12255:18;14439:27:0;12138:188:1;13799:70:0;;;;;;;;;;;;;:::i;24434:392::-;;;;;;;;;;-1:-1:-1;24434:392:0;;;;;:::i;:::-;;:::i;12567:106::-;;;;;;;;;;-1:-1:-1;12567:106:0;;;;;:::i;:::-;;:::i;21535:171::-;;;;;;;;;;-1:-1:-1;21535:171:0;;;;;:::i;:::-;;:::i;23404:85::-;;;;;;;;;;-1:-1:-1;13790:2:0;23404:85;;;13670:4:1;13658:17;;;13640:36;;13628:2;13613:18;23404:85:0;13498:184:1;13756:36:0;;;;;;;;;;;;13790:2;13756:36;;14847:27;;;;;;;;;;-1:-1:-1;14847:27:0;;;;-1:-1:-1;;;;;14847:27:0;;;;;;-1:-1:-1;;;;;4450:32:1;;;4432:51;;4420:2;4405:18;14847:27:0;4286:203:1;24836:205:0;;;;;;;;;;-1:-1:-1;24836:205:0;;;;;:::i;:::-;;:::i;22040:132::-;;;;;;;;;;-1:-1:-1;22040:132:0;;;;;:::i;:::-;;:::i;21908:124::-;;;;;;;;;;-1:-1:-1;21908:124:0;;;;;:::i;:::-;;:::i;14180:39::-;;;;;;;;;;-1:-1:-1;14180:39:0;;;;;:::i;:::-;;;;;;;;;;;;;;14300:25;;;;;;;;;;-1:-1:-1;14300:25:0;;;;;;;;;;;23029:86;;;;;;;;;;-1:-1:-1;23029:86:0;;;;;:::i;:::-;;:::i;21714:186::-;;;;;;;;;;-1:-1:-1;21714:186:0;;;;;:::i;:::-;;:::i;13591:55::-;;;;;;;;;;-1:-1:-1;13591:55:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;22423:166;;;;;;;;;;-1:-1:-1;22423:166:0;;;;;:::i;:::-;;:::i;20107:146::-;;;;;;;;;;;;;:::i;14718:45::-;;;;;;;;;;-1:-1:-1;14718:45:0;;;;;:::i;:::-;;;;;;;;;;;;;;23497:121;;;;;;;;;;-1:-1:-1;23497:121:0;;;;;:::i;:::-;-1:-1:-1;;;;;23592:18:0;23565:7;23592:18;;;:9;:18;;;;;;;23497:121;20838:91;;;;;;;;;;-1:-1:-1;20838:91:0;;;;;:::i;:::-;;:::i;16347:116::-;;;;;;;;;;;;;:::i;14473:24::-;;;;;;;;;;;;;;;;22293:122;;;;;;;;;;-1:-1:-1;22293:122:0;;;;;:::i;:::-;;:::i;13486:40::-;;;;;;;;;;-1:-1:-1;13486:40:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;14019:73;;;;;;;;;;;;14050:42;14019:73;;23123:83;;;;;;;;;;-1:-1:-1;23193:5:0;;-1:-1:-1;;;;;23193:5:0;23123:83;;12803:20;;;;;;;;;;-1:-1:-1;12803:20:0;;;;-1:-1:-1;;;;;12803:20:0;;;14332:26;;;;;;;;;;-1:-1:-1;14332:26:0;;;;;;;;;;;13533:51;;;;;;;;;;-1:-1:-1;13533:51:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;23307:89;;;;;;;;;;-1:-1:-1;23381:7:0;;;;;;;;;;;;-1:-1:-1;;;23381:7:0;;;;23307:89;;14099:72;;;;;;;;;;-1:-1:-1;14099:72:0;;;;-1:-1:-1;;;;;14099:72:0;;;22597:249;;;;;;;;;;-1:-1:-1;22597:249:0;;;;;:::i;:::-;;:::i;13876:48::-;;;;;;;;;;;;;;;;25049:342;;;;;;;;;;-1:-1:-1;25049:342:0;;;;;:::i;:::-;;:::i;14881:26::-;;;;;;;;;;-1:-1:-1;14881:26:0;;;;-1:-1:-1;;;;;14881:26:0;;;23626:167;;;;;;;;;;-1:-1:-1;23626:167:0;;;;;:::i;:::-;;:::i;13438:41::-;;;;;;;;;;-1:-1:-1;13438:41:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;21247:280;;;;;;;;;;-1:-1:-1;21247:280:0;;;;;:::i;:::-;;:::i;13710:39::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;13710:39:0;;;;;20604:226;;;;;;;;;;-1:-1:-1;20604:226:0;;;;;:::i;:::-;;:::i;12460:99::-;;;;;;;;;;-1:-1:-1;12460:99:0;;;;;:::i;:::-;-1:-1:-1;;;;;12538:13:0;12514:4;12538:13;;;:7;:13;;;;;;;;;12460:99;12369:33;;;;;;;;;;-1:-1:-1;12369:33:0;;;;-1:-1:-1;;;12369:33:0;;;;;;14365:30;;;;;;;;;;-1:-1:-1;14365:30:0;;;;;;;;;;;13931:81;;;;;;;;;;;;13970:42;13931:81;;14260:31;;;;;;;;;;-1:-1:-1;14260:31:0;;;;;;;;;;;12830:24;;;;;;;;;;-1:-1:-1;12830:24:0;;;;-1:-1:-1;;;;;12830:24:0;;;20261:151;;;;;;;;;;;;;:::i;12332:30::-;;;;;;;;;;-1:-1:-1;12332:30:0;;;;-1:-1:-1;;;12332:30:0;;;;;;13048:18;;;;;;;;;;-1:-1:-1;13048:18:0;;;;-1:-1:-1;;;13048:18:0;;;;;;13659:44;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;13659:44:0;;;;;11012:74;;;;;;;;;;-1:-1:-1;11012:74:0;;;;-1:-1:-1;;;;;11012:74:0;;;23801:147;;;;;;;;;;-1:-1:-1;23801:147:0;;;;;:::i;:::-;-1:-1:-1;;;;;23912:19:0;;;23885:7;23912:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;23801:147;20420:176;;;;;;;;;;-1:-1:-1;20420:176:0;;;;;:::i;:::-;;:::i;14404:28::-;;;;;;;;;;-1:-1:-1;14404:28:0;;;;;;;;;;;12411:40;;;;;;;;;;-1:-1:-1;12411:40:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;11093:65;;;;;;;;;;-1:-1:-1;11093:65:0;;;;-1:-1:-1;;;;;11093:65:0;;;21053:186;;;;;;;;;;-1:-1:-1;21053:186:0;;;;;:::i;:::-;;:::i;22180:105::-;;;;;;;;;;-1:-1:-1;22180:105:0;;;;;:::i;:::-;;:::i;23956:161::-;24033:4;24050:37;24059:10;24071:7;24080:6;24050:8;:37::i;:::-;-1:-1:-1;24105:4:0;23956:161;;;;;:::o;13799:70::-;13855:13;13790:2;13855;:13;:::i;:::-;13838:31;;:13;:31;:::i;:::-;13799:70;:::o;24434:392::-;24534:4;24551:36;24561:6;24569:9;24580:6;24551:9;:36::i;:::-;-1:-1:-1;;;;;24627:19:0;;24600:24;24627:19;;;:11;:19;;;;;;;;24647:10;24627:31;;;;;;;;24677:26;;;;24669:59;;;;-1:-1:-1;;;24669:59:0;;8157:2:1;24669:59:0;;;8139:21:1;8196:2;8176:18;;;8169:30;-1:-1:-1;;;8215:18:1;;;8208:50;8275:18;;24669:59:0;;;;;;;;;24741:55;24750:6;24758:10;24770:25;24789:6;24770:16;:25;:::i;:::-;24741:8;:55::i;:::-;-1:-1:-1;24814:4:0;;24434:392;-1:-1:-1;;;;24434:392:0:o;12567:106::-;12729:10;12721:19;;;;:7;:19;;;;;;;;;:40;;-1:-1:-1;12756:5:0;;-1:-1:-1;;;;;12756:5:0;12744:10;:17;12721:40;12712:63;;;;-1:-1:-1;;;12712:63:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12644:13:0;;;::::1;;::::0;;;:7:::1;:13;::::0;;;;:21;;-1:-1:-1;;12644:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;12567:106::o;21535:171::-;12729:10;12721:19;;;;:7;:19;;;;;;;;;:40;;-1:-1:-1;12756:5:0;;-1:-1:-1;;;;;12756:5:0;12744:10;:17;12721:40;12712:63;;;;-1:-1:-1;;;12712:63:0;;;;;;;:::i;:::-;21596:9:::1;:17:::0;;-1:-1:-1;;21596:17:0::1;-1:-1:-1::0;;;21596:17:0::1;::::0;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;21641:2:::1;-1:-1:-1::0;21632:11:0::1;21624:74;;;::::0;-1:-1:-1;;;21624:74:0;;9892:2:1;21624:74:0::1;::::0;::::1;9874:21:1::0;9931:2;9911:18;;;9904:30;9970:34;9950:18;;;9943:62;-1:-1:-1;;;10021:18:1;;;10014:48;10079:19;;21624:74:0::1;9690:414:1::0;21624:74:0::1;21535:171:::0;:::o;24836:205::-;24944:10;24918:4;24965:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;24965:32:0;;;;;;;;;;24918:4;;24935:76;;24956:7;;24965:45;;25000:10;;24965:45;:::i;22040:132::-;12729:10;12721:19;;;;:7;:19;;;;;;;;;:40;;-1:-1:-1;12756:5:0;;-1:-1:-1;;;;;12756:5:0;12744:10;:17;12721:40;12712:63;;;;-1:-1:-1;;;12712:63:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;22127:29:0;;;::::1;;::::0;;;:23:::1;:29;::::0;;;;:37;;-1:-1:-1;;22127:37:0::1;::::0;::::1;;::::0;;;::::1;::::0;;22040:132::o;21908:124::-;12729:10;12721:19;;;;:7;:19;;;;;;;;;:40;;-1:-1:-1;12756:5:0;;-1:-1:-1;;;;;12756:5:0;12744:10;:17;12721:40;12712:63;;;;-1:-1:-1;;;12712:63:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;21991:25:0;;;::::1;;::::0;;;:19:::1;:25;::::0;;;;:33;;-1:-1:-1;;21991:33:0::1;::::0;::::1;;::::0;;;::::1;::::0;;21908:124::o;23029:86::-;12729:10;12721:19;;;;:7;:19;;;;;;;;;:40;;-1:-1:-1;12756:5:0;;-1:-1:-1;;;;;12756:5:0;12744:10;:17;12721:40;12712:63;;;;-1:-1:-1;;;12712:63:0;;;;;;;:::i;:::-;23093:6:::1;:14:::0;;-1:-1:-1;;23093:14:0::1;::::0;::::1;;::::0;;;::::1;::::0;;23029:86::o;21714:186::-;12729:10;12721:19;;;;:7;:19;;;;;;;;;:40;;-1:-1:-1;12756:5:0;;-1:-1:-1;;;;;12756:5:0;12744:10;:17;12721:40;12712:63;;;;-1:-1:-1;;;12712:63:0;;;;;;;:::i;:::-;21783:10:::1;:22:::0;;-1:-1:-1;;21783:22:0::1;::::0;::::1;::::0;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;21837:2:::1;-1:-1:-1::0;21824:15:0::1;21816:76;;;::::0;-1:-1:-1;;;21816:76:0;;7034:2:1;21816:76:0::1;::::0;::::1;7016:21:1::0;7073:2;7053:18;;;7046:30;7112:34;7092:18;;;7085:62;-1:-1:-1;;;7163:18:1;;;7156:46;7219:19;;21816:76:0::1;6832:412:1::0;22423:166:0;12729:10;12721:19;;;;:7;:19;;;;;;;;;:40;;-1:-1:-1;12756:5:0;;-1:-1:-1;;;;;12756:5:0;12744:10;:17;12721:40;12712:63;;;;-1:-1:-1;;;12712:63:0;;;;;;;:::i;:::-;22531:9:::1;::::0;-1:-1:-1;;;;;22519:21:0;;::::1;22531:9:::0;::::1;22519:21;22517:24;22509:33;;;::::0;::::1;;-1:-1:-1::0;;;;;22553:20:0;;;::::1;;::::0;;;:8:::1;:20;::::0;;;;:28;;-1:-1:-1;;22553:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;22423:166::o;20107:146::-;12911:9;;-1:-1:-1;;;;;12911:9:0;12899:10;:21;12891:30;;;;;;20161:13:::1;::::0;-1:-1:-1;;;20161:13:0;::::1;;;:22;20153:31;;;::::0;::::1;;20195:11;:19:::0;;-1:-1:-1;;;;20225:20:0;-1:-1:-1;;;20225:20:0::1;::::0;;20107:146::o;20838:91::-;12729:10;12721:19;;;;:7;:19;;;;;;;;;:40;;-1:-1:-1;12756:5:0;;-1:-1:-1;;;;;12756:5:0;12744:10;:17;12721:40;12712:63;;;;-1:-1:-1;;;12712:63:0;;;;;;;:::i;:::-;20902:11:::1;:19:::0;;;::::1;;;;-1:-1:-1::0;;20902:19:0;;::::1;::::0;;;::::1;::::0;;20838:91::o;16347:116::-;16386:4;16411:43;16448:5;16433:9;;;;;;;;;;;16412:30;;:18;;:30;;;;:::i;:::-;16411:36;;:43::i;:::-;16403:52;;16347:116;:::o;22293:122::-;12911:9;;-1:-1:-1;;;;;12911:9:0;12899:10;:21;12891:30;;;;;;22356:5:::1;:16:::0;;-1:-1:-1;;;;;22356:16:0;;::::1;-1:-1:-1::0;;;;;;22356:16:0;;::::1;::::0;::::1;::::0;;:5:::1;22383:17:::0;;;:7:::1;:17;::::0;;;;:24;;-1:-1:-1;;22383:24:0::1;22356:16:::0;22383:24:::1;::::0;;22293:122::o;22597:249::-;12729:10;12721:19;;;;:7;:19;;;;;;;;;:40;;-1:-1:-1;12756:5:0;;-1:-1:-1;;;;;12756:5:0;12744:10;:17;12721:40;12712:63;;;;-1:-1:-1;;;12712:63:0;;;;;;;:::i;:::-;22682:10:::1;22672:21;::::0;;;:9:::1;:21;::::0;;;;;:31;-1:-1:-1;22672:31:0::1;22664:40;;;::::0;::::1;;22725:10;22715:21;::::0;;;:9:::1;:21;::::0;;;;:31;;22740:6;;22715:21;:31:::1;::::0;22740:6;;22715:31:::1;:::i;:::-;;;;;;;;22779:6;22757:18;;:28;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;22801:37:0::1;::::0;6194:25:1;;;14050:42:0::1;::::0;22818:4:::1;::::0;-1:-1:-1;;;;;;;;;;;22801:37:0;6182:2:1;6167:18;22801:37:0::1;;;;;;;22597:249:::0;:::o;25049:342::-;25192:10;25136:4;25180:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;25180:32:0;;;;;;;;;;25231:35;;;;25223:60;;;;-1:-1:-1;;;25223:60:0;;11659:2:1;25223:60:0;;;11641:21:1;11698:2;11678:18;;;11671:30;-1:-1:-1;;;11717:18:1;;;11710:42;11769:18;;25223:60:0;11457:336:1;25223:60:0;25296:65;25305:10;25317:7;25326:34;25345:15;25326:16;:34;:::i;25296:65::-;-1:-1:-1;25379:4:0;;25049:342;-1:-1:-1;;;25049:342:0:o;23626:167::-;23706:4;23723:40;23733:10;23745:9;23756:6;23723:9;:40::i;21247:280::-;12729:10;12721:19;;;;:7;:19;;;;;;;;;:40;;-1:-1:-1;12756:5:0;;-1:-1:-1;;;;;12756:5:0;12744:10;:17;12721:40;12712:63;;;;-1:-1:-1;;;12712:63:0;;;;;;;:::i;:::-;21380:30:::1;::::0;-1:-1:-1;;;21380:30:0;;21404:4:::1;21380:30;::::0;::::1;4432:51:1::0;21337:10:0;;21317:11:::1;::::0;-1:-1:-1;;;;;21380:15:0;::::1;::::0;::::1;::::0;4405:18:1;;21380:30:0::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21359:51;;21440:1;21429:10;:12;21421:49;;;::::0;-1:-1:-1;;;21421:49:0;;9187:2:1;21421:49:0::1;::::0;::::1;9169:21:1::0;9226:2;9206:18;;;9199:30;9265:26;9245:18;;;9238:54;9309:18;;21421:49:0::1;8985:348:1::0;21421:49:0::1;21481:38;::::0;-1:-1:-1;;;21481:38:0;;21496:10:::1;21481:38;::::0;::::1;4668:51:1::0;4735:18;;;4728:34;;;-1:-1:-1;;;;;21481:14:0;::::1;::::0;::::1;::::0;4641:18:1;;21481:38:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;21306:221;;21247:280:::0;:::o;20604:226::-;12729:10;12721:19;;;;:7;:19;;;;;;;;;:40;;-1:-1:-1;12756:5:0;;-1:-1:-1;;;;;12756:5:0;12744:10;:17;12721:40;12712:63;;;;-1:-1:-1;;;12712:63:0;;;;;;;:::i;:::-;20673:7:::1;:13:::0;;::::1;20697:15:::0;;::::1;::::0;::::1;-1:-1:-1::0;;20673:13:0;;::::1;::::0;::::1;20697:15:::0;;;;-1:-1:-1;;20697:15:0;;;;;;;::::1;::::0;;20743:9;20723:44:::1;;;::::0;-1:-1:-1;;;20723:44:0;;10983:2:1;20723:44:0::1;::::0;::::1;10965:21:1::0;11022:2;11002:18;;;10995:30;-1:-1:-1;;;11041:18:1;;;11034:40;11091:18;;20723:44:0::1;10781:334:1::0;20723:44:0::1;20791:2;20786:3;:7;;;:20;;;;;20804:2;20797:4;:9;;;20786:20;20778:44;;;::::0;-1:-1:-1;;;20778:44:0;;10311:2:1;20778:44:0::1;::::0;::::1;10293:21:1::0;10350:2;10330:18;;;10323:30;-1:-1:-1;;;10369:18:1;;;10362:41;10420:18;;20778:44:0::1;10109:335:1::0;20778:44:0::1;20604:226:::0;;:::o;20261:151::-;12729:10;12721:19;;;;:7;:19;;;;;;;;;:40;;-1:-1:-1;12756:5:0;;-1:-1:-1;;;;;12756:5:0;12744:10;:17;12721:40;12712:63;;;;-1:-1:-1;;;12712:63:0;;;;;;;:::i;:::-;20376:9:::1;::::0;20368:36:::1;::::0;20336:21:::1;::::0;-1:-1:-1;;;;;20376:9:0::1;::::0;20368:36;::::1;;;::::0;20336:21;;20318:15:::1;20368:36:::0;20318:15;20368:36;20336:21;20376:9;20368:36;::::1;;;;;;;;;;;;;::::0;::::1;;;;20420:176:::0;12729:10;12721:19;;;;:7;:19;;;;;;;;;:40;;-1:-1:-1;12756:5:0;;-1:-1:-1;;;;;12756:5:0;12744:10;:17;12721:40;12712:63;;;;-1:-1:-1;;;12712:63:0;;;;;;;:::i;:::-;20509:8:::1;:14:::0;;::::1;::::0;;::::1;-1:-1:-1::0;;20534:17:0;;;;20509:14:::1;20534:17:::0;;::::1;::::0;;;::::1;::::0;;;::::1;-1:-1:-1::0;;20562:26:0::1;::::0;;;;::::1;;::::0;;;::::1;::::0;;20420:176::o;21053:186::-;12729:10;12721:19;;;;:7;:19;;;;;;;;;:40;;-1:-1:-1;12756:5:0;;-1:-1:-1;;;;;12756:5:0;12744:10;:17;12721:40;12712:63;;;;-1:-1:-1;;;12712:63:0;;;;;;;:::i;:::-;21160:4:::1;21142:24;::::0;;;:9:::1;:24;::::0;;;;;21133:33;::::1;21125:77;;;::::0;-1:-1:-1;;;21125:77:0;;7451:2:1;21125:77:0::1;::::0;::::1;7433:21:1::0;7490:2;7470:18;;;7463:30;7529:33;7509:18;;;7502:61;7580:18;;21125:77:0::1;7249:355:1::0;21125:77:0::1;21213:18;21224:6;21213:10;:18::i;22180:105::-:0;12729:10;12721:19;;;;:7;:19;;;;;;;;;:40;;-1:-1:-1;12756:5:0;;-1:-1:-1;;;;;12756:5:0;12744:10;:17;12721:40;12712:63;;;;-1:-1:-1;;;12712:63:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;22255:14:0;;;::::1;;::::0;;;:8:::1;:14;::::0;;;;:22;;-1:-1:-1;;22255:22:0::1;::::0;::::1;;::::0;;;::::1;::::0;;22180:105::o;1529:98::-;1587:7;1614:5;1618:1;1614;:5;:::i;:::-;1607:12;1529:98;-1:-1:-1;;;1529:98:0:o;24123:303::-;-1:-1:-1;;;;;24217:20:0;;24209:50;;;;-1:-1:-1;;;24209:50:0;;7811:2:1;24209:50:0;;;7793:21:1;7850:2;7830:18;;;7823:30;-1:-1:-1;;;7869:18:1;;;7862:47;7926:18;;24209:50:0;7609:341:1;24209:50:0;-1:-1:-1;;;;;24278:21:0;;24270:49;;;;-1:-1:-1;;;24270:49:0;;8843:2:1;24270:49:0;;;8825:21:1;8882:2;8862:18;;;8855:30;-1:-1:-1;;;8901:18:1;;;8894:45;8956:18;;24270:49:0;8641:339:1;24270:49:0;-1:-1:-1;;;;;24332:19:0;;;;;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;:37;;;24385:33;;6194:25:1;;;24385:33:0;;6167:18:1;24385:33:0;;;;;;;;24123:303;;;:::o;15673:666::-;-1:-1:-1;;;;;15780:16:0;;15761:15;15780:16;;;:8;:16;;;;;;;;;:39;;-1:-1:-1;;;;;;15800:19:0;;;;;;:8;:19;;;;;;;;15780:39;:58;;;-1:-1:-1;;;;;;15823:15:0;;;;;;:7;:15;;;;;;;;15780:58;:80;;;-1:-1:-1;;;;;;15842:18:0;;;;;;:7;:18;;;;;;;;15780:80;15761:100;-1:-1:-1;15874:23:0;-1:-1:-1;;;;;15899:21:0;;15915:4;15899:21;;:49;;-1:-1:-1;;;;;;15924:24:0;;15943:4;15924:24;15899:49;16001:12;;15874:75;;-1:-1:-1;15962:24:0;;-1:-1:-1;;;;;15991:22:0;;;16001:12;;15991:22;:52;;;;-1:-1:-1;;;;;;16017:26:0;;13970:42;16017:26;15991:52;15990:121;;;-1:-1:-1;16071:12:0;;-1:-1:-1;;;;;16058:25:0;;;16071:12;;16058:25;:52;;;;-1:-1:-1;;;;;;16087:23:0;;13970:42;16087:23;16058:52;15962:150;;16129:10;:32;;;;16143:18;16129:32;:55;;;;16165:19;16129:55;16125:205;;;16201:43;16218:6;16226:9;16237:6;16201:16;:43::i;:::-;16125:205;;;16277:41;16292:6;16300:9;16311:6;16277:14;:41::i;:::-;15748:591;;;15673:666;;;:::o;18213:1656::-;13109:6;;-1:-1:-1;;;13109:6:0;;;;13108:7;13100:29;;;;-1:-1:-1;;;13100:29:0;;8506:2:1;13100:29:0;;;8488:21:1;8545:1;8525:18;;;8518:29;-1:-1:-1;;;8563:18:1;;;8556:39;8612:18;;13100:29:0;8304:332:1;13100:29:0;13140:6;:13;;-1:-1:-1;;;;13140:13:0;-1:-1:-1;;;13140:13:0;;;18319:4:::1;13140:13:::0;18301:24;;;:9:::1;:24;::::0;;;;;18382:8:::1;::::0;18301:24;;13140:13;;18382:8;;::::1;::::0;18354:25:::1;::::0;13140:13;18371:8;::::1;::::0;::::1;::::0;18354:14;;::::1;;:25;:::i;:::-;:36;;;;:::i;:::-;18336:54;;;;18401:22;18426:32;18454:3;18427:21;18445:2;18427:13;;:17;;:21;;;;:::i;18426:32::-;18401:57;;18491:9;18474:14;:26;18471:129;;;18520:6;::::0;::::1;;18517:72;;;-1:-1:-1::0;18564:9:0;18517:72:::1;18629:14;18613:15;:30;18610:67;;;18659:7;;;;;18610:67;18731:14;::::0;18689:25:::1;::::0;18715:40:::1;::::0;::::1;::::0;18716:29:::1;::::0;18731:14;;::::1;;;18716::::0;:29:::1;:::i;:::-;18715:40;;;;:::i;:::-;18689:66:::0;-1:-1:-1;18768:16:0::1;18785:19;18803:1;18689:66:::0;18785:19:::1;:::i;:::-;18768:36:::0;-1:-1:-1;18815:19:0::1;18835:26;18768:36:::0;18835:17;:26:::1;:::i;:::-;18958:16;::::0;;18972:1:::1;18958:16:::0;;;;;::::1;::::0;;18815:46;;-1:-1:-1;18902:21:0::1;::::0;18874:25:::1;::::0;18958:16:::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;18958:16:0::1;18934:40;;19003:4;18985;18990:1;18985:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;18985:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;19029:6:::1;::::0;:13:::1;::::0;;-1:-1:-1;;;19029:13:0;;;;:6;;;::::1;::::0;:11:::1;::::0;:13:::1;::::0;;::::1;::::0;18985:7;;19029:13;;;;;:6;:13;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19019:4;19024:1;19019:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;19019:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;19053:6:::1;::::0;:194:::1;::::0;-1:-1:-1;;;19053:194:0;;:6;::::1;::::0;:57:::1;::::0;:194:::1;::::0;19125:14;;19053:6:::1;::::0;19170:4;;19197::::1;::::0;19217:15:::1;::::0;19053:194:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;19258:14;19298:17;19274:21;:41;;;;:::i;:::-;19258:58:::0;-1:-1:-1;19327:14:0::1;19365::::0;19345:18:::1;19352:11:::0;19258:58;19345:18:::1;:::i;:::-;19344:35;;;;:::i;:::-;19390:6;::::0;:180:::1;::::0;-1:-1:-1;;;19390:180:0;;19451:4:::1;19390:180;::::0;::::1;5114:34:1::0;;;5164:18;;;5157:34;;;19390:6:0::1;5207:18:1::0;;;5200:34;;;5250:18;;;5243:34;5293:19;;;5286:44;19554:15:0::1;5346:19:1::0;;;5339:35;19327:52:0;;-1:-1:-1;;;;;;19390:6:0::1;::::0;:22:::1;::::0;19327:52;;5048:19:1;;19390:180:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;19581:19;19628:17;19604:21;:41;;;;:::i;:::-;19694:8;::::0;19581:65;;-1:-1:-1;19659:16:0::1;::::0;19678:39:::1;::::0;::::1;::::0;::::1;::::0;:25:::1;::::0;19581:65;;19694:8:::1;::::0;::::1;;;19678:15;:25::i;:39::-;19659:58:::0;-1:-1:-1;19728:16:0::1;19747:22;19659:58:::0;19747:11;:22:::1;:::i;:::-;19788:9;::::0;19780:37:::1;::::0;19728:41;;-1:-1:-1;;;;;;19788:9:0::1;::::0;19780:37;::::1;;;::::0;19728:41;;19788:9:::1;19780:37:::0;19788:9;19780:37;19728:41;19788:9;19780:37;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;19836:3:0::1;::::0;19828:31:::1;::::0;-1:-1:-1;;;;;19836:3:0;;::::1;::::0;19828:31;::::1;;;::::0;19850:8;;19836:3:::1;19828:31:::0;19836:3;19828:31;19850:8;19836:3;19828:31;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;18264:1605;;;;;;;;;;;;;13164:1;-1:-1:-1::0;13176:6:0;:14;;-1:-1:-1;;;;13176:14:0;;;18213:1656::o;19879:220::-;-1:-1:-1;;;;;19972:17:0;;;;;;:9;:17;;;;;:27;;19993:6;;19972:17;:27;;19993:6;;19972:27;:::i;:::-;;;;-1:-1:-1;;;;;;;20010:20:0;;;;;;:9;:20;;;;;:30;;20034:6;;20010:20;:30;;20034:6;;20010:30;:::i;:::-;;;;;;;;20073:9;-1:-1:-1;;;;;20056:35:0;20065:6;-1:-1:-1;;;;;20056:35:0;-1:-1:-1;;;;;;;;;;;20084:6:0;20056:35;;;;6194:25:1;;6182:2;6167:18;;6040:185;16471:1342:0;-1:-1:-1;;;;;16571:16:0;;;;;;:8;:16;;;;;;;;16570:17;:41;;;;-1:-1:-1;;;;;;16592:19:0;;;;;;:8;:19;;;;;;;;16591:20;16570:41;16562:65;;;;-1:-1:-1;;;16562:65:0;;12000:2:1;16562:65:0;;;11982:21:1;12039:2;12019:18;;;12012:30;-1:-1:-1;;;12058:18:1;;;12051:41;12109:18;;16562:65:0;11798:335:1;16562:65:0;16644:11;;-1:-1:-1;;;16644:11:0;;;;16640:220;;16680:13;;-1:-1:-1;;;16680:13:0;;;;16672:30;;;;-1:-1:-1;;;16672:30:0;;;;;;10651:2:1;10633:21;;;10690:1;10670:18;;;10663:29;-1:-1:-1;;;10723:2:1;10708:18;;10701:34;10767:2;10752:18;;10449:327;16672:30:0;16640:220;;;16739:13;;-1:-1:-1;;;16739:13:0;;;;16735:114;;16795:9;-1:-1:-1;;;;;16778:30:0;16787:6;-1:-1:-1;;;;;16778:30:0;-1:-1:-1;;;;;;;;;;;16806:1:0;16778:30;;;;6194:25:1;;6182:2;6167:18;;6040:185;16735:114:0;-1:-1:-1;;;;;16876:27:0;;;;;;:19;:27;;;;;;;;16872:87;;16938:8;:6;:8::i;:::-;16928:6;:18;;16920:27;;;;;;-1:-1:-1;;;;;16975:34:0;;;;;;:23;:34;;;;;;;;16971:173;;17087:10;;17068:18;;17099:4;;17068:29;;17087:10;;;;;;;17068:29;:::i;:::-;17067:36;;;;:::i;:::-;-1:-1:-1;;;;;17035:20:0;;;;;;:9;:20;;;;;;:27;;17056:6;;17035:27;:::i;:::-;17034:70;17026:106;;;;-1:-1:-1;;;17026:106:0;;9540:2:1;17026:106:0;;;9522:21:1;9579:2;9559:18;;;9552:30;9618:25;9598:18;;;9591:53;9661:18;;17026:106:0;9338:347:1;17026:106:0;17180:12;;17156:11;;-1:-1:-1;;;;;17168:24:0;;;17180:12;;17168:24;;:54;;-1:-1:-1;17208:14:0;;-1:-1:-1;;;;;17195:27:0;;;17208:14;;17195:27;17168:54;17156:66;;17236:16;17254:10;17268:29;17282:6;17290;17268:13;:29::i;:::-;17341:13;;17332:4;17314:24;;;;:9;:24;;;;;;17235:62;;-1:-1:-1;17235:62:0;;-1:-1:-1;;17313:58:0;;;;-1:-1:-1;17360:11:0;;;;;;;17359:12;17313:58;:69;;;;-1:-1:-1;17376:6:0;;-1:-1:-1;;;17376:6:0;;;;17375:7;17313:69;17310:180;;;17402:6;:22;;;;-1:-1:-1;17413:11:0;;;;;;;17412:12;17402:22;17399:80;;;17445:18;17456:6;17445:10;:18::i;:::-;-1:-1:-1;;;;;17522:17:0;;;;;;:9;:17;;;;;;:29;;17544:6;17522:21;:29::i;:::-;-1:-1:-1;;;;;17502:17:0;;;;;;;:9;:17;;;;;;:49;;;;17585:20;;;;;;;:37;;17610:11;17585:24;:37::i;:::-;-1:-1:-1;;;;;17562:20:0;;;;;;:9;:20;;;;;;:60;;;;17678:4;17660:24;;;;:35;;17689:5;17660:28;:35::i;:::-;17651:4;17633:24;;;;:9;:24;;;;;;;:62;;;;17711:38;;-1:-1:-1;;;;;17711:38:0;;;-1:-1:-1;;;;;;;;;;;17711:38:0;;;17743:5;6194:25:1;;6182:2;6167:18;;6040:185;17711:38:0;;;;;;;;17782:9;-1:-1:-1;;;;;17765:40:0;17774:6;-1:-1:-1;;;;;17765:40:0;-1:-1:-1;;;;;;;;;;;17793:11:0;17765:40;;;;6194:25:1;;6182:2;6167:18;;6040:185;17765:40:0;;;;;;;;16551:1262;;;16471:1342;;;:::o;1423:98::-;1481:7;1508:5;1512:1;1508;:5;:::i;17821:384::-;17892:17;17911:11;17935:9;17960:6;17957:98;;;-1:-1:-1;17989:8:0;;;;;;;17957:98;;;-1:-1:-1;18036:7:0;;;;;;;17957:98;18067:15;18098:3;18086:10;;;;:6;:10;:::i;:::-;18085:16;;;;:::i;:::-;18067:34;-1:-1:-1;18112:17:0;18132:19;18067:34;18132:6;:19;:::i;:::-;18112:39;18184:10;;-1:-1:-1;17821:384:0;;-1:-1:-1;;;;;17821:384:0:o;1317:98::-;1375:7;1402:5;1406:1;1402;:5;:::i;1211:98::-;1269:7;1296:5;1300:1;1296;:5;:::i;14:156:1:-;80:20;;140:4;129:16;;119:27;;109:55;;160:1;157;150:12;109:55;14:156;;;:::o;175:247::-;234:6;287:2;275:9;266:7;262:23;258:32;255:52;;;303:1;300;293:12;255:52;342:9;329:23;361:31;386:5;361:31;:::i;427:251::-;497:6;550:2;538:9;529:7;525:23;521:32;518:52;;;566:1;563;556:12;518:52;598:9;592:16;617:31;642:5;617:31;:::i;683:388::-;751:6;759;812:2;800:9;791:7;787:23;783:32;780:52;;;828:1;825;818:12;780:52;867:9;854:23;886:31;911:5;886:31;:::i;:::-;936:5;-1:-1:-1;993:2:1;978:18;;965:32;1006:33;965:32;1006:33;:::i;:::-;1058:7;1048:17;;;683:388;;;;;:::o;1076:456::-;1153:6;1161;1169;1222:2;1210:9;1201:7;1197:23;1193:32;1190:52;;;1238:1;1235;1228:12;1190:52;1277:9;1264:23;1296:31;1321:5;1296:31;:::i;:::-;1346:5;-1:-1:-1;1403:2:1;1388:18;;1375:32;1416:33;1375:32;1416:33;:::i;:::-;1076:456;;1468:7;;-1:-1:-1;;;1522:2:1;1507:18;;;;1494:32;;1076:456::o;1537:382::-;1602:6;1610;1663:2;1651:9;1642:7;1638:23;1634:32;1631:52;;;1679:1;1676;1669:12;1631:52;1718:9;1705:23;1737:31;1762:5;1737:31;:::i;:::-;1787:5;-1:-1:-1;1844:2:1;1829:18;;1816:32;1857:30;1816:32;1857:30;:::i;1924:315::-;1992:6;2000;2053:2;2041:9;2032:7;2028:23;2024:32;2021:52;;;2069:1;2066;2059:12;2021:52;2108:9;2095:23;2127:31;2152:5;2127:31;:::i;:::-;2177:5;2229:2;2214:18;;;;2201:32;;-1:-1:-1;;;1924:315:1:o;2244:241::-;2300:6;2353:2;2341:9;2332:7;2328:23;2324:32;2321:52;;;2369:1;2366;2359:12;2321:52;2408:9;2395:23;2427:28;2449:5;2427:28;:::i;2490:245::-;2557:6;2610:2;2598:9;2589:7;2585:23;2581:32;2578:52;;;2626:1;2623;2616:12;2578:52;2658:9;2652:16;2677:28;2699:5;2677:28;:::i;2740:272::-;2798:6;2851:2;2839:9;2830:7;2826:23;2822:32;2819:52;;;2867:1;2864;2857:12;2819:52;2906:9;2893:23;2956:6;2949:5;2945:18;2938:5;2935:29;2925:57;;2978:1;2975;2968:12;3017:180;3076:6;3129:2;3117:9;3108:7;3104:23;3100:32;3097:52;;;3145:1;3142;3135:12;3097:52;-1:-1:-1;3168:23:1;;3017:180;-1:-1:-1;3017:180:1:o;3202:184::-;3272:6;3325:2;3313:9;3304:7;3300:23;3296:32;3293:52;;;3341:1;3338;3331:12;3293:52;-1:-1:-1;3364:16:1;;3202:184;-1:-1:-1;3202:184:1:o;3391:306::-;3479:6;3487;3495;3548:2;3536:9;3527:7;3523:23;3519:32;3516:52;;;3564:1;3561;3554:12;3516:52;3593:9;3587:16;3577:26;;3643:2;3632:9;3628:18;3622:25;3612:35;;3687:2;3676:9;3672:18;3666:25;3656:35;;3391:306;;;;;:::o;3702:252::-;3766:6;3774;3827:2;3815:9;3806:7;3802:23;3798:32;3795:52;;;3843:1;3840;3833:12;3795:52;3866:27;3883:9;3866:27;:::i;:::-;3856:37;;3912:36;3944:2;3933:9;3929:18;3912:36;:::i;:::-;3902:46;;3702:252;;;;;:::o;3959:322::-;4030:6;4038;4046;4099:2;4087:9;4078:7;4074:23;4070:32;4067:52;;;4115:1;4112;4105:12;4067:52;4138:27;4155:9;4138:27;:::i;:::-;4128:37;;4184:36;4216:2;4205:9;4201:18;4184:36;:::i;:::-;4174:46;;4239:36;4271:2;4260:9;4256:18;4239:36;:::i;:::-;4229:46;;3959:322;;;;;:::o;6230:597::-;6342:4;6371:2;6400;6389:9;6382:21;6432:6;6426:13;6475:6;6470:2;6459:9;6455:18;6448:34;6500:1;6510:140;6524:6;6521:1;6518:13;6510:140;;;6619:14;;;6615:23;;6609:30;6585:17;;;6604:2;6581:26;6574:66;6539:10;;6510:140;;;6668:6;6665:1;6662:13;6659:91;;;6738:1;6733:2;6724:6;6713:9;6709:22;6705:31;6698:42;6659:91;-1:-1:-1;6811:2:1;6790:15;-1:-1:-1;;6786:29:1;6771:45;;;;6818:2;6767:54;;6230:597;-1:-1:-1;;;6230:597:1:o;11120:332::-;11322:2;11304:21;;;11361:1;11341:18;;;11334:29;-1:-1:-1;;;11394:2:1;11379:18;;11372:39;11443:2;11428:18;;11120:332::o;12513:980::-;12775:4;12823:3;12812:9;12808:19;12854:6;12843:9;12836:25;12880:2;12918:6;12913:2;12902:9;12898:18;12891:34;12961:3;12956:2;12945:9;12941:18;12934:31;12985:6;13020;13014:13;13051:6;13043;13036:22;13089:3;13078:9;13074:19;13067:26;;13128:2;13120:6;13116:15;13102:29;;13149:1;13159:195;13173:6;13170:1;13167:13;13159:195;;;13238:13;;-1:-1:-1;;;;;13234:39:1;13222:52;;13329:15;;;;13294:12;;;;13270:1;13188:9;13159:195;;;-1:-1:-1;;;;;;;13410:32:1;;;;13405:2;13390:18;;13383:60;-1:-1:-1;;;13474:3:1;13459:19;13452:35;13371:3;12513:980;-1:-1:-1;;;12513:980:1:o;13687:128::-;13727:3;13758:1;13754:6;13751:1;13748:13;13745:39;;;13764:18;;:::i;:::-;-1:-1:-1;13800:9:1;;13687:128::o;13820:204::-;13858:3;13894:4;13891:1;13887:12;13926:4;13923:1;13919:12;13961:3;13955:4;13951:14;13946:3;13943:23;13940:49;;;13969:18;;:::i;:::-;14005:13;;13820:204;-1:-1:-1;;;13820:204:1:o;14029:217::-;14069:1;14095;14085:132;;14139:10;14134:3;14130:20;14127:1;14120:31;14174:4;14171:1;14164:15;14202:4;14199:1;14192:15;14085:132;-1:-1:-1;14231:9:1;;14029:217::o;14251:422::-;14340:1;14383:5;14340:1;14397:270;14418:7;14408:8;14405:21;14397:270;;;14477:4;14473:1;14469:6;14465:17;14459:4;14456:27;14453:53;;;14486:18;;:::i;:::-;14536:7;14526:8;14522:22;14519:55;;;14556:16;;;;14519:55;14635:22;;;;14595:15;;;;14397:270;;;14401:3;14251:422;;;;;:::o;14678:140::-;14736:5;14765:47;14806:4;14796:8;14792:19;14786:4;14872:5;14902:8;14892:80;;-1:-1:-1;14943:1:1;14957:5;;14892:80;14991:4;14981:76;;-1:-1:-1;15028:1:1;15042:5;;14981:76;15073:4;15091:1;15086:59;;;;15159:1;15154:130;;;;15066:218;;15086:59;15116:1;15107:10;;15130:5;;;15154:130;15191:3;15181:8;15178:17;15175:43;;;15198:18;;:::i;:::-;-1:-1:-1;;15254:1:1;15240:16;;15269:5;;15066:218;;15368:2;15358:8;15355:16;15349:3;15343:4;15340:13;15336:36;15330:2;15320:8;15317:16;15312:2;15306:4;15303:12;15299:35;15296:77;15293:159;;;-1:-1:-1;15405:19:1;;;15437:5;;15293:159;15484:34;15509:8;15503:4;15484:34;:::i;:::-;15554:6;15550:1;15546:6;15542:19;15533:7;15530:32;15527:58;;;15565:18;;:::i;:::-;15603:20;;14823:806;-1:-1:-1;;;14823:806:1:o;15634:168::-;15674:7;15740:1;15736;15732:6;15728:14;15725:1;15722:21;15717:1;15710:9;15703:17;15699:45;15696:71;;;15747:18;;:::i;:::-;-1:-1:-1;15787:9:1;;15634:168::o;15807:125::-;15847:4;15875:1;15872;15869:8;15866:34;;;15880:18;;:::i;:::-;-1:-1:-1;15917:9:1;;15807:125::o;15937:127::-;15998:10;15993:3;15989:20;15986:1;15979:31;16029:4;16026:1;16019:15;16053:4;16050:1;16043:15;16069:127;16130:10;16125:3;16121:20;16118:1;16111:31;16161:4;16158:1;16151:15;16185:4;16182:1;16175:15;16333:131;-1:-1:-1;;;;;16408:31:1;;16398:42;;16388:70;;16454:1;16451;16444:12;16469:118;16555:5;16548:13;16541:21;16534:5;16531:32;16521:60;;16577:1;16574;16567:12

Swarm Source

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