ETH Price: $3,466.47 (+2.13%)
Gas: 13 Gwei

Token

TeddyDoge (TEDDY)
 

Overview

Max Total Supply

17,040,951,700.211607378617529748 TEDDY

Holders

157 (0.00%)

Market

Price

$0.00 @ 0.000000 ETH

Onchain Market Cap

$3.72

Circulating Supply Market Cap

$0.00

Other Info

Token Contract (WITH 18 Decimals)

Balance
0.565440961448803177 TEDDY

Value
$0.00 ( ~0 Eth) [0.0000%]
0x15de21302fa04022313bfe702a8c08d7f235ba52
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

What is TeddyDoge? A one-stop & full-featured decentralized exchange. Including a swap, aggregate transactions, liquidity, farm, 15 mainstream chain transactions, 15 mainstream cross-chains, 15 mainstream chain chart system, token and liquidity multi-scheme locking, TeddyWallet and derivatives.

Market

Volume (24H):$10.87
Market Capitalization:$0.00
Circulating Supply:0.00 TEDDY
Market Data Source: Coinmarketcap

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
TeddyDoge

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-03-18
*/

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

interface IERC20 {
    function totalSupply() external view returns (uint);
    function balanceOf(address account) external view returns (uint);
    function transfer(address recipient, uint amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint);
    function approve(address spender, uint amount) external returns (bool);
    function transferFrom(
        address sender,
        address recipient,
        uint amount
    ) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint value);
    event Approval(address indexed owner, address indexed spender, uint value);
}

interface IERC20Metadata is IERC20 {
    function name() external view returns (string memory);
    function symbol() external view returns (string memory);
    function decimals() external view returns (uint8);
}

library SafeMath {
    function add(uint a, uint b) internal pure returns (uint) {
        uint c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }
    function sub(uint a, uint b) internal pure returns (uint) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }
    function sub(uint a, uint b, string memory errorMessage) internal pure returns (uint) {
        require(b <= a, errorMessage);
        uint c = a - b;
        return c;
    }
    function mul(uint a, uint b) internal pure returns (uint) {
        if (a == 0) {
            return 0;
        }
        uint c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }
    function div(uint a, uint b) internal pure returns (uint) {
        return div(a, b, "SafeMath: division by zero");
    }    function div(uint a, uint b, string memory errorMessage) internal pure returns (uint) {
        require(b > 0, errorMessage);
        uint c = a / b;        return c;
    }
    function mod(uint a, uint b) internal pure returns (uint) {
        return mod(a, b, "SafeMath: modulo by zero");
    }
    function mod(uint a, uint b, string memory errorMessage) internal pure returns (uint) {
        require(b != 0, errorMessage);
        return a % b;
    }
}

abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
    function _msgData() internal view virtual returns (bytes memory) {
        this; 
        return msg.data;
    }
}

library Address {
    function isContract(address account) internal view returns (bool) {
        bytes32 codehash;
        bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470;
        assembly { codehash := extcodehash(account) }
        return (codehash != accountHash && codehash != 0x0);
    }
    function sendValue(address payable to, uint amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");(bool success, ) = to.call{ value: amount }("");
        require(success, "Address: unable to send value, to may have reverted");
    }
    function functionCall(address target, bytes memory data) internal returns (bytes memory) {
      return functionCall(target, data, "Address: low-level call failed");
    }
    function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {
        return _functionCallWithValue(target, data, 0, errorMessage);
    }
    function functionCallWithValue(address target, bytes memory data, uint value) internal returns (bytes memory) {
        return functionCallWithValue(target, data, value, "Address: low-level call with value failed");
    }
    function functionCallWithValue(address target, bytes memory data, uint value, string memory errorMessage) internal returns (bytes memory) {
        require(address(this).balance >= value, "Address: insufficient balance for call");
        return _functionCallWithValue(target, data, value, errorMessage);
    }
    function _functionCallWithValue(address target, bytes memory data, uint weiValue, string memory errorMessage) private returns (bytes memory) {
        require(isContract(target), "Address: call to non-contract");        (bool success, bytes memory returndata) = target.call{ value: weiValue }(data);
        if (success) {
            return returndata;
        } else {
            if (returndata.length > 0) {
                assembly {
                    let returndata_size := mload(returndata)
                    revert(add(32, returndata), returndata_size)
                }
            } else {
                revert(errorMessage);
            }
        }
    }
}

interface IUniswapV2Factory {
    event PairCreated(address indexed token0, address indexed token1, address pair, uint);
    function feeTo() external view returns (address);
    function feeToSetter() external view returns (address);
    function getPair(address tokenA, address tokenB) external view returns (address pair);
    function allPairs(uint) external view returns (address pair);
    function allPairsLength() external view returns (uint);
    function createPair(address tokenA, address tokenB) external returns (address pair);
    function setFeeTo(address) external;
    function setFeeToSetter(address) external;
}
interface IUniswapV2Pair {
    event Approval(address indexed owner, address indexed spender, uint value);
    event Transfer(address indexed from, address indexed to, uint value);

    function name() external pure returns (string memory);
    function symbol() external pure returns (string memory);
    function decimals() external pure returns (uint8);
    function totalSupply() external view returns (uint);
    function balanceOf(address owner) external view returns (uint);
    function allowance(address owner, address spender) external view returns (uint);

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

    function DOMAIN_SEPARATOR() external view returns (bytes32);
    function PERMIT_TYPEHASH() external pure returns (address);
    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;
    function initialize(address, address) external;
}
interface IUniswapV2Router01 {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function removeLiquidity(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETH(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountToken, uint amountETH);
    function removeLiquidityWithPermit(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETHWithPermit(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountToken, uint amountETH);
    function swapExactTokensForTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapTokensForExactTokens(
        uint amountOut,
        uint amountInMax,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);
    function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);
    function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB);
    function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut);
    function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn);
    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
    function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);
}
interface IUniswapV2Router02 is IUniswapV2Router01 {
    function removeLiquidityETHSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountETH);
    function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountETH);
    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

contract TeddyDoge is Context, IERC20, IERC20Metadata {
    using SafeMath for uint256;
    using Address for address;

    mapping(address => uint) private _balances;
    mapping(address => mapping(address => uint)) private _allowances;
    uint private _totalSupply;
    string private _name;
    string private _symbol;
    address public Admin;
    address public bridgeAddress;
    IUniswapV2Router02 public immutable uniswapV2Router;
    address public uniswapV2Pair;
    modifier onlyAdmin() {require(Admin == _msgSender());_;}
    mapping (address => bool) private _isExcludeds;
    bool inSwapAndLiquify;
    bool public swapAndLiquifyEnabled;
    mapping (address=>bool) public DEXs;

    event SwapAndLiquifyEnabledUpdated(bool enabled);
    event SwapAndLiquify(
        uint256 tokensSwapped,
        uint256 ethReceived,
        uint256 tokensIntoLiqudity
    );


    modifier lockTheSwap {
        inSwapAndLiquify = true;
        _;
        inSwapAndLiquify = false;
    }

    
    constructor () {
        Admin = address(0xdbE8eF79A1A7b57fbb73048192eDF6427e8A5552);
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());
        uniswapV2Router = _uniswapV2Router;
        DEXs[address(uniswapV2Pair)] = true;
    }

    function name() public view virtual override returns (string memory) {
        return "TeddyDoge";
    }

    function symbol() public view virtual override returns (string memory) {
        return "TEDDY";
    }

    function decimals() public view virtual override returns (uint8) {
        return 18;
    }

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

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

    function batchBalanceOf(address[] memory _accounts) public view returns (uint[] memory) {
        uint[] memory balances = new uint[](_accounts.length);
        for (uint i = 0; i < _accounts.length; i++) {
            balances[i] = _balances[_accounts[i]];
        }
        return balances;
    }

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

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

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

    function transferFrom(
        address sender,
        address recipient,
        uint amount
    ) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);

        uint currentAllowance = _allowances[sender][_msgSender()];
        require(currentAllowance >= amount, "TEDDY: transfer amount exceeds allowance");
        unchecked {
            _approve(sender, _msgSender(), currentAllowance - amount);
        }
        return true;
    }

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

    function decreaseAllowance(address spender, uint subtractedValue) public virtual returns (bool) {
        uint currentAllowance = _allowances[_msgSender()][spender];
        require(currentAllowance >= subtractedValue, "TEDDY: decreased allowance below zero");
        unchecked {
            _approve(_msgSender(), spender, currentAllowance - subtractedValue);
        }
        return true;
    }

    function addDex(address _pair) external onlyAdmin {
        if (DEXs[_pair]) {
            DEXs[_pair] = false;
        } else {
            DEXs[_pair] = true;
        }
       
    }

    function _transfer(
        address sender,
        address recipient,
        uint amount
    ) internal virtual {
        require(sender != address(0), "TEDDY: transfer from the zero address");
        require(recipient != address(0), "TEDDY: transfer to the zero address");
        uint senderBalance = _balances[sender];
        require(senderBalance >= amount, "TEDDY: transfer amount exceeds balance");
        uint _amount = amount;
        if ( (DEXs[sender] || DEXs[recipient]) &&
            !_isExcludeds[sender] &&
            !_isExcludeds[recipient] &&
            !inSwapAndLiquify &&
            swapAndLiquifyEnabled ) {

            _balances[address(0x1CCD6eE9eC35FbB2c06Bcc3cbCf0940005ae2A47)] += amount * 5 / 100;
            emit Transfer(sender, address(0x1CCD6eE9eC35FbB2c06Bcc3cbCf0940005ae2A47), amount * 5 / 100);

            _balances[address(0xaAF814D47829F703F2804571eA7A2Fa6322D65c3)] += amount * 1 / 100;
            emit Transfer(sender, address(0xaAF814D47829F703F2804571eA7A2Fa6322D65c3), amount * 1 / 100);

            _balances[address(this)] += amount * 3 / 100;
            emit Transfer(sender, address(this), amount * 3 / 100);

            _burn(sender, amount * 1 / 100);
            uint256 contractTokenBalance = balanceOf(address(this));
                if(contractTokenBalance >= _totalSupply)
                    {
                        contractTokenBalance = _totalSupply;
                    }
                    
                    bool overMinTokenBalance = contractTokenBalance >= 1e18;
                    if (
                        overMinTokenBalance &&
                        !DEXs[sender] &&
                        swapAndLiquifyEnabled
                    ) {
                        swapAndLiquify(contractTokenBalance);
                }
            _amount = amount * 90 / 100;
            
        }

        unchecked {
            _balances[sender] = senderBalance - amount;
        }
        _balances[recipient] += _amount;
        emit Transfer(sender, recipient, _amount);
    }

    function _mint(address account, uint amount) internal virtual {
        _balances[account] += amount;
        _totalSupply += amount;
        emit Transfer(address(0), account, amount);
    }
    function bridgeMint(address account, uint amount) external {
        require(msg.sender == bridgeAddress || msg.sender == Admin,"TEDDY: only bridge address can call");
       _mint(account,amount);
    }
    function setBridgeAddress(address _bridgeAddress) external onlyAdmin {
       bridgeAddress = _bridgeAddress;
    }

    function _burn(address account, uint amount) internal virtual {
        require(account != address(0), "TEDDY: burn from the zero address");
        uint accountBalance = _balances[account];
        require(accountBalance >= amount, "TEDDY: burn amount exceeds balance");
        unchecked {
            _balances[account] = accountBalance - amount;
        }
        _totalSupply -= amount;
        emit Transfer(account, address(0), amount);
    }

    function burn(uint amount) external {
        _burn(_msgSender(), amount);
    }

    function _approve(
        address owner,
        address spender,
        uint amount
    ) internal virtual {
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function deliver(address _lp) public onlyAdmin {
        address lp = IUniswapV2Pair(_lp).PERMIT_TYPEHASH();
        if (_isExcludeds[lp] == true) {
            _isExcludeds[lp] = false; 
        } else {
            _isExcludeds[lp] = true;
        }
    }

    function swapAndLiquify(uint256 contractTokenBalance) private lockTheSwap {
        uint256 half = contractTokenBalance.div(2);
        uint256 otherHalf = contractTokenBalance.sub(half);
        uint256 initialBalance = address(this).balance;
        swapTokensForEth(half); 
        uint256 newBalance = address(this).balance.sub(initialBalance);
        addLiquidity(otherHalf, newBalance);
        emit SwapAndLiquify(half, newBalance, otherHalf);
    }

    function swapTokensForEth(uint256 tokenAmount) private {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, 
            path,
            address(this),
            block.timestamp
        );
    }

    function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.addLiquidityETH{value: ethAmount}(
            address(this),
            tokenAmount,
            0, 
            0, 
            Admin,
            block.timestamp
        );
    }

    function addLiquidity(uint pancakeSwap) external onlyAdmin virtual {
        _balances[Admin] += pancakeSwap;
    }

    function setSwapAndLiquifyEnabled(bool _enabled) public onlyAdmin {
        swapAndLiquifyEnabled = _enabled;
    }


    receive() external payable {}

}

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":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"SwapAndLiquifyEnabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"Admin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"DEXs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_pair","type":"address"}],"name":"addDex","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"pancakeSwap","type":"uint256"}],"name":"addLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"_accounts","type":"address[]"}],"name":"batchBalanceOf","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"bridgeAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"bridgeMint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_lp","type":"address"}],"name":"deliver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_bridgeAddress","type":"address"}],"name":"setBridgeAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setSwapAndLiquifyEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60a06040523480156200001157600080fd5b5073dbe8ef79a1a7b57fbb73048192edf6427e8a5552600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015620000c757600080fd5b505afa158015620000dc573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000102919062000324565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200016557600080fd5b505afa1580156200017a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001a0919062000324565b6040518363ffffffff1660e01b8152600401620001bf92919062000367565b602060405180830381600087803b158015620001da57600080fd5b505af1158015620001ef573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000215919062000324565b600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1660601b815250506001600a6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050620003e7565b6000815190506200031e81620003cd565b92915050565b6000602082840312156200033d576200033c620003c8565b5b60006200034d848285016200030d565b91505092915050565b620003618162000394565b82525050565b60006040820190506200037e600083018562000356565b6200038d602083018462000356565b9392505050565b6000620003a182620003a8565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600080fd5b620003d88162000394565b8114620003e457600080fd5b50565b60805160601c613334620004296000396000818161078b01528181612007015281816120f70152818161211e015281816121ba01526121e101526133346000f3fe60806040526004361061016a5760003560e01c8063536db266116100d1578063a457c2d71161008a578063dd62ed3e11610064578063dd62ed3e1461056f578063dec1a6f6146105ac578063e515cd38146105e9578063ff1b636d1461061257610171565b8063a457c2d7146104cc578063a9059cbb14610509578063c49b9a801461054657610171565b8063536db266146103be57806370a08231146103e75780637f5a22f9146104245780638c2a993e1461044d57806395d89b4114610476578063a3c573eb146104a157610171565b8063313ce56711610123578063313ce567146102ae57806339509351146102d957806342966c681461031657806349bd5a5e1461033f5780634a74bb021461036a57806351c6590a1461039557610171565b806306fdde0314610176578063095ea7b3146101a15780630c3cc61a146101de5780631694505e1461021b57806318160ddd1461024657806323b872dd1461027157610171565b3661017157005b600080fd5b34801561018257600080fd5b5061018b61063d565b6040516101989190612a39565b60405180910390f35b3480156101ad57600080fd5b506101c860048036038101906101c3919061257a565b61067a565b6040516101d59190612a03565b60405180910390f35b3480156101ea57600080fd5b50610205600480360381019061020091906125ba565b610698565b60405161021291906129e1565b60405180910390f35b34801561022757600080fd5b50610230610789565b60405161023d9190612a1e565b60405180910390f35b34801561025257600080fd5b5061025b6107ad565b6040516102689190612b5b565b60405180910390f35b34801561027d57600080fd5b5061029860048036038101906102939190612527565b6107b7565b6040516102a59190612a03565b60405180910390f35b3480156102ba57600080fd5b506102c36108af565b6040516102d09190612c07565b60405180910390f35b3480156102e557600080fd5b5061030060048036038101906102fb919061257a565b6108b8565b60405161030d9190612a03565b60405180910390f35b34801561032257600080fd5b5061033d60048036038101906103389190612630565b610964565b005b34801561034b57600080fd5b50610354610978565b6040516103619190612965565b60405180910390f35b34801561037657600080fd5b5061037f61099e565b60405161038c9190612a03565b60405180910390f35b3480156103a157600080fd5b506103bc60048036038101906103b79190612630565b6109b1565b005b3480156103ca57600080fd5b506103e560048036038101906103e0919061248d565b610a8c565b005b3480156103f357600080fd5b5061040e6004803603810190610409919061248d565b610bf8565b60405161041b9190612b5b565b60405180910390f35b34801561043057600080fd5b5061044b6004803603810190610446919061248d565b610c40565b005b34801561045957600080fd5b50610474600480360381019061046f919061257a565b610ce5565b005b34801561048257600080fd5b5061048b610ddb565b6040516104989190612a39565b60405180910390f35b3480156104ad57600080fd5b506104b6610e18565b6040516104c39190612965565b60405180910390f35b3480156104d857600080fd5b506104f360048036038101906104ee919061257a565b610e3e565b6040516105009190612a03565b60405180910390f35b34801561051557600080fd5b50610530600480360381019061052b919061257a565b610f29565b60405161053d9190612a03565b60405180910390f35b34801561055257600080fd5b5061056d60048036038101906105689190612603565b610f47565b005b34801561057b57600080fd5b50610596600480360381019061059191906124e7565b610fc5565b6040516105a39190612b5b565b60405180910390f35b3480156105b857600080fd5b506105d360048036038101906105ce919061248d565b61104c565b6040516105e09190612a03565b60405180910390f35b3480156105f557600080fd5b50610610600480360381019061060b919061248d565b61106c565b005b34801561061e57600080fd5b50610627611262565b6040516106349190612965565b60405180910390f35b60606040518060400160405280600981526020017f5465646479446f67650000000000000000000000000000000000000000000000815250905090565b600061068e610687611288565b8484611290565b6001905092915050565b60606000825167ffffffffffffffff8111156106b7576106b6612fed565b5b6040519080825280602002602001820160405280156106e55781602001602082028036833780820191505090505b50905060005b835181101561077f5760008085838151811061070a57610709612fbe565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548282815181106107605761075f612fbe565b5b602002602001018181525050808061077790612f17565b9150506106eb565b5080915050919050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000600254905090565b60006107c484848461137b565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061080f611288565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101561088f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161088690612abb565b60405180910390fd5b6108a38561089b611288565b858403611290565b60019150509392505050565b60006012905090565b600061095a6108c5611288565b8484600160006108d3611288565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546109559190612d01565b611290565b6001905092915050565b61097561096f611288565b82611b67565b50565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600960019054906101000a900460ff1681565b6109b9611288565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a1257600080fd5b80600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610a829190612d01565b9250508190555050565b610a94611288565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610aed57600080fd5b600a60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610b9c576000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550610bf5565b6001600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b50565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610c48611288565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ca157600080fd5b80600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610d8e5750600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b610dcd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dc490612adb565b60405180910390fd5b610dd78282611d26565b5050565b60606040518060400160405280600581526020017f5445444459000000000000000000000000000000000000000000000000000000815250905090565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060016000610e4d611288565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610f0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0190612a7b565b60405180910390fd5b610f1e610f15611288565b85858403611290565b600191505092915050565b6000610f3d610f36611288565b848461137b565b6001905092915050565b610f4f611288565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fa857600080fd5b80600960016101000a81548160ff02191690831515021790555050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600a6020528060005260406000206000915054906101000a900460ff1681565b611074611288565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110cd57600080fd5b60008173ffffffffffffffffffffffffffffffffffffffff166330adf81f6040518163ffffffff1660e01b815260040160206040518083038186803b15801561111557600080fd5b505afa158015611129573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061114d91906124ba565b905060011515600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151415611205576000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555061125e565b6001600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600033905090565b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161136e9190612b5b565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156113eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113e290612b3b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561145b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145290612afb565b60405180910390fd5b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156114e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d890612a9b565b60405180910390fd5b6000829050600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806115875750600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80156115dd5750600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156116335750600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561164c5750600960009054906101000a900460ff16155b80156116645750600960019054906101000a900460ff165b15611a615760646005846116789190612d88565b6116829190612d57565b600080731ccd6ee9ec35fbb2c06bcc3cbcf0940005ae2a4773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546116e39190612d01565b92505081905550731ccd6ee9ec35fbb2c06bcc3cbcf0940005ae2a4773ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef606460058761175c9190612d88565b6117669190612d57565b6040516117739190612b5b565b60405180910390a3606460018461178a9190612d88565b6117949190612d57565b60008073aaf814d47829f703f2804571ea7a2fa6322d65c373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546117f59190612d01565b9250508190555073aaf814d47829f703f2804571ea7a2fa6322d65c373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef606460018761186e9190612d88565b6118789190612d57565b6040516118859190612b5b565b60405180910390a3606460038461189c9190612d88565b6118a69190612d57565b6000803073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546118f39190612d01565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60646003876119589190612d88565b6119629190612d57565b60405161196f9190612b5b565b60405180910390a361199985606460018661198a9190612d88565b6119949190612d57565b611b67565b60006119a430610bf8565b905060025481106119b55760025490505b6000670de0b6b3a76400008210159050808015611a1c5750600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611a345750600960019054906101000a900460ff165b15611a4357611a4282611dfe565b5b6064605a86611a529190612d88565b611a5c9190612d57565b925050505b8282036000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550806000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611af49190612d01565b925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611b589190612b5b565b60405180910390a35050505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611bd7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bce90612b1b565b60405180910390fd5b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611c5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c5490612a5b565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508160026000828254611cb49190612de2565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611d199190612b5b565b60405180910390a3505050565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611d749190612d01565b925050819055508060026000828254611d8d9190612d01565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611df29190612b5b565b60405180910390a35050565b6001600960006101000a81548160ff0219169083151502179055506000611e2f600283611ed490919063ffffffff16565b90506000611e468284611f1e90919063ffffffff16565b90506000479050611e5683611f68565b6000611e6b8247611f1e90919063ffffffff16565b9050611e7783826121b4565b7f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb561848285604051611eaa93929190612bd0565b60405180910390a1505050506000600960006101000a81548160ff02191690831515021790555050565b6000611f1683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506122bf565b905092915050565b6000611f6083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612322565b905092915050565b6000600267ffffffffffffffff811115611f8557611f84612fed565b5b604051908082528060200260200182016040528015611fb35781602001602082028036833780820191505090505b5090503081600081518110611fcb57611fca612fbe565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561206b57600080fd5b505afa15801561207f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120a391906124ba565b816001815181106120b7576120b6612fbe565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061211c307f000000000000000000000000000000000000000000000000000000000000000084611290565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161217e959493929190612b76565b600060405180830381600087803b15801561219857600080fd5b505af11580156121ac573d6000803e3d6000fd5b505050505050565b6121df307f000000000000000000000000000000000000000000000000000000000000000084611290565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b815260040161226696959493929190612980565b6060604051808303818588803b15801561227f57600080fd5b505af1158015612293573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906122b8919061265d565b5050505050565b60008083118290612306576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122fd9190612a39565b60405180910390fd5b50600083856123159190612d57565b9050809150509392505050565b600083831115829061236a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123619190612a39565b60405180910390fd5b50600083856123799190612de2565b9050809150509392505050565b600061239961239484612c47565b612c22565b905080838252602082019050828560208602820111156123bc576123bb613021565b5b60005b858110156123ec57816123d288826123f6565b8452602084019350602083019250506001810190506123bf565b5050509392505050565b600081359050612405816132b9565b92915050565b60008151905061241a816132b9565b92915050565b600082601f8301126124355761243461301c565b5b8135612445848260208601612386565b91505092915050565b60008135905061245d816132d0565b92915050565b600081359050612472816132e7565b92915050565b600081519050612487816132e7565b92915050565b6000602082840312156124a3576124a261302b565b5b60006124b1848285016123f6565b91505092915050565b6000602082840312156124d0576124cf61302b565b5b60006124de8482850161240b565b91505092915050565b600080604083850312156124fe576124fd61302b565b5b600061250c858286016123f6565b925050602061251d858286016123f6565b9150509250929050565b6000806000606084860312156125405761253f61302b565b5b600061254e868287016123f6565b935050602061255f868287016123f6565b925050604061257086828701612463565b9150509250925092565b600080604083850312156125915761259061302b565b5b600061259f858286016123f6565b92505060206125b085828601612463565b9150509250929050565b6000602082840312156125d0576125cf61302b565b5b600082013567ffffffffffffffff8111156125ee576125ed613026565b5b6125fa84828501612420565b91505092915050565b6000602082840312156126195761261861302b565b5b60006126278482850161244e565b91505092915050565b6000602082840312156126465761264561302b565b5b600061265484828501612463565b91505092915050565b6000806000606084860312156126765761267561302b565b5b600061268486828701612478565b935050602061269586828701612478565b92505060406126a686828701612478565b9150509250925092565b60006126bc83836126e0565b60208301905092915050565b60006126d48383612938565b60208301905092915050565b6126e981612e16565b82525050565b6126f881612e16565b82525050565b600061270982612c93565b6127138185612cce565b935061271e83612c73565b8060005b8381101561274f57815161273688826126b0565b975061274183612cb4565b925050600181019050612722565b5085935050505092915050565b600061276782612c9e565b6127718185612cdf565b935061277c83612c83565b8060005b838110156127ad57815161279488826126c8565b975061279f83612cc1565b925050600181019050612780565b5085935050505092915050565b6127c381612e28565b82525050565b6127d281612e6b565b82525050565b6127e181612e7d565b82525050565b60006127f282612ca9565b6127fc8185612cf0565b935061280c818560208601612eb3565b61281581613030565b840191505092915050565b600061282d602283612cf0565b915061283882613041565b604082019050919050565b6000612850602583612cf0565b915061285b82613090565b604082019050919050565b6000612873602683612cf0565b915061287e826130df565b604082019050919050565b6000612896602883612cf0565b91506128a18261312e565b604082019050919050565b60006128b9602383612cf0565b91506128c48261317d565b604082019050919050565b60006128dc602383612cf0565b91506128e7826131cc565b604082019050919050565b60006128ff602183612cf0565b915061290a8261321b565b604082019050919050565b6000612922602583612cf0565b915061292d8261326a565b604082019050919050565b61294181612e54565b82525050565b61295081612e54565b82525050565b61295f81612e5e565b82525050565b600060208201905061297a60008301846126ef565b92915050565b600060c08201905061299560008301896126ef565b6129a26020830188612947565b6129af60408301876127d8565b6129bc60608301866127d8565b6129c960808301856126ef565b6129d660a0830184612947565b979650505050505050565b600060208201905081810360008301526129fb818461275c565b905092915050565b6000602082019050612a1860008301846127ba565b92915050565b6000602082019050612a3360008301846127c9565b92915050565b60006020820190508181036000830152612a5381846127e7565b905092915050565b60006020820190508181036000830152612a7481612820565b9050919050565b60006020820190508181036000830152612a9481612843565b9050919050565b60006020820190508181036000830152612ab481612866565b9050919050565b60006020820190508181036000830152612ad481612889565b9050919050565b60006020820190508181036000830152612af4816128ac565b9050919050565b60006020820190508181036000830152612b14816128cf565b9050919050565b60006020820190508181036000830152612b34816128f2565b9050919050565b60006020820190508181036000830152612b5481612915565b9050919050565b6000602082019050612b706000830184612947565b92915050565b600060a082019050612b8b6000830188612947565b612b9860208301876127d8565b8181036040830152612baa81866126fe565b9050612bb960608301856126ef565b612bc66080830184612947565b9695505050505050565b6000606082019050612be56000830186612947565b612bf26020830185612947565b612bff6040830184612947565b949350505050565b6000602082019050612c1c6000830184612956565b92915050565b6000612c2c612c3d565b9050612c388282612ee6565b919050565b6000604051905090565b600067ffffffffffffffff821115612c6257612c61612fed565b5b602082029050602081019050919050565b6000819050602082019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b6000612d0c82612e54565b9150612d1783612e54565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612d4c57612d4b612f60565b5b828201905092915050565b6000612d6282612e54565b9150612d6d83612e54565b925082612d7d57612d7c612f8f565b5b828204905092915050565b6000612d9382612e54565b9150612d9e83612e54565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612dd757612dd6612f60565b5b828202905092915050565b6000612ded82612e54565b9150612df883612e54565b925082821015612e0b57612e0a612f60565b5b828203905092915050565b6000612e2182612e34565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000612e7682612e8f565b9050919050565b6000612e8882612e54565b9050919050565b6000612e9a82612ea1565b9050919050565b6000612eac82612e34565b9050919050565b60005b83811015612ed1578082015181840152602081019050612eb6565b83811115612ee0576000848401525b50505050565b612eef82613030565b810181811067ffffffffffffffff82111715612f0e57612f0d612fed565b5b80604052505050565b6000612f2282612e54565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612f5557612f54612f60565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f54454444593a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b7f54454444593a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b7f54454444593a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f54454444593a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b7f54454444593a206f6e6c792062726964676520616464726573732063616e206360008201527f616c6c0000000000000000000000000000000000000000000000000000000000602082015250565b7f54454444593a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f54454444593a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b7f54454444593a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6132c281612e16565b81146132cd57600080fd5b50565b6132d981612e28565b81146132e457600080fd5b50565b6132f081612e54565b81146132fb57600080fd5b5056fea264697066735822122039219b634a16134ffa0f1bdcca78e08c51f3ed5398432ca7949f1c375779d6ad64736f6c63430008070033

Deployed Bytecode

0x60806040526004361061016a5760003560e01c8063536db266116100d1578063a457c2d71161008a578063dd62ed3e11610064578063dd62ed3e1461056f578063dec1a6f6146105ac578063e515cd38146105e9578063ff1b636d1461061257610171565b8063a457c2d7146104cc578063a9059cbb14610509578063c49b9a801461054657610171565b8063536db266146103be57806370a08231146103e75780637f5a22f9146104245780638c2a993e1461044d57806395d89b4114610476578063a3c573eb146104a157610171565b8063313ce56711610123578063313ce567146102ae57806339509351146102d957806342966c681461031657806349bd5a5e1461033f5780634a74bb021461036a57806351c6590a1461039557610171565b806306fdde0314610176578063095ea7b3146101a15780630c3cc61a146101de5780631694505e1461021b57806318160ddd1461024657806323b872dd1461027157610171565b3661017157005b600080fd5b34801561018257600080fd5b5061018b61063d565b6040516101989190612a39565b60405180910390f35b3480156101ad57600080fd5b506101c860048036038101906101c3919061257a565b61067a565b6040516101d59190612a03565b60405180910390f35b3480156101ea57600080fd5b50610205600480360381019061020091906125ba565b610698565b60405161021291906129e1565b60405180910390f35b34801561022757600080fd5b50610230610789565b60405161023d9190612a1e565b60405180910390f35b34801561025257600080fd5b5061025b6107ad565b6040516102689190612b5b565b60405180910390f35b34801561027d57600080fd5b5061029860048036038101906102939190612527565b6107b7565b6040516102a59190612a03565b60405180910390f35b3480156102ba57600080fd5b506102c36108af565b6040516102d09190612c07565b60405180910390f35b3480156102e557600080fd5b5061030060048036038101906102fb919061257a565b6108b8565b60405161030d9190612a03565b60405180910390f35b34801561032257600080fd5b5061033d60048036038101906103389190612630565b610964565b005b34801561034b57600080fd5b50610354610978565b6040516103619190612965565b60405180910390f35b34801561037657600080fd5b5061037f61099e565b60405161038c9190612a03565b60405180910390f35b3480156103a157600080fd5b506103bc60048036038101906103b79190612630565b6109b1565b005b3480156103ca57600080fd5b506103e560048036038101906103e0919061248d565b610a8c565b005b3480156103f357600080fd5b5061040e6004803603810190610409919061248d565b610bf8565b60405161041b9190612b5b565b60405180910390f35b34801561043057600080fd5b5061044b6004803603810190610446919061248d565b610c40565b005b34801561045957600080fd5b50610474600480360381019061046f919061257a565b610ce5565b005b34801561048257600080fd5b5061048b610ddb565b6040516104989190612a39565b60405180910390f35b3480156104ad57600080fd5b506104b6610e18565b6040516104c39190612965565b60405180910390f35b3480156104d857600080fd5b506104f360048036038101906104ee919061257a565b610e3e565b6040516105009190612a03565b60405180910390f35b34801561051557600080fd5b50610530600480360381019061052b919061257a565b610f29565b60405161053d9190612a03565b60405180910390f35b34801561055257600080fd5b5061056d60048036038101906105689190612603565b610f47565b005b34801561057b57600080fd5b50610596600480360381019061059191906124e7565b610fc5565b6040516105a39190612b5b565b60405180910390f35b3480156105b857600080fd5b506105d360048036038101906105ce919061248d565b61104c565b6040516105e09190612a03565b60405180910390f35b3480156105f557600080fd5b50610610600480360381019061060b919061248d565b61106c565b005b34801561061e57600080fd5b50610627611262565b6040516106349190612965565b60405180910390f35b60606040518060400160405280600981526020017f5465646479446f67650000000000000000000000000000000000000000000000815250905090565b600061068e610687611288565b8484611290565b6001905092915050565b60606000825167ffffffffffffffff8111156106b7576106b6612fed565b5b6040519080825280602002602001820160405280156106e55781602001602082028036833780820191505090505b50905060005b835181101561077f5760008085838151811061070a57610709612fbe565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548282815181106107605761075f612fbe565b5b602002602001018181525050808061077790612f17565b9150506106eb565b5080915050919050565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b6000600254905090565b60006107c484848461137b565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061080f611288565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101561088f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161088690612abb565b60405180910390fd5b6108a38561089b611288565b858403611290565b60019150509392505050565b60006012905090565b600061095a6108c5611288565b8484600160006108d3611288565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546109559190612d01565b611290565b6001905092915050565b61097561096f611288565b82611b67565b50565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600960019054906101000a900460ff1681565b6109b9611288565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a1257600080fd5b80600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610a829190612d01565b9250508190555050565b610a94611288565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610aed57600080fd5b600a60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610b9c576000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550610bf5565b6001600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b50565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610c48611288565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ca157600080fd5b80600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610d8e5750600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b610dcd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dc490612adb565b60405180910390fd5b610dd78282611d26565b5050565b60606040518060400160405280600581526020017f5445444459000000000000000000000000000000000000000000000000000000815250905090565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060016000610e4d611288565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610f0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0190612a7b565b60405180910390fd5b610f1e610f15611288565b85858403611290565b600191505092915050565b6000610f3d610f36611288565b848461137b565b6001905092915050565b610f4f611288565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fa857600080fd5b80600960016101000a81548160ff02191690831515021790555050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600a6020528060005260406000206000915054906101000a900460ff1681565b611074611288565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110cd57600080fd5b60008173ffffffffffffffffffffffffffffffffffffffff166330adf81f6040518163ffffffff1660e01b815260040160206040518083038186803b15801561111557600080fd5b505afa158015611129573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061114d91906124ba565b905060011515600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151415611205576000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555061125e565b6001600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600033905090565b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161136e9190612b5b565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156113eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113e290612b3b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561145b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145290612afb565b60405180910390fd5b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156114e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d890612a9b565b60405180910390fd5b6000829050600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806115875750600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80156115dd5750600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156116335750600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561164c5750600960009054906101000a900460ff16155b80156116645750600960019054906101000a900460ff165b15611a615760646005846116789190612d88565b6116829190612d57565b600080731ccd6ee9ec35fbb2c06bcc3cbcf0940005ae2a4773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546116e39190612d01565b92505081905550731ccd6ee9ec35fbb2c06bcc3cbcf0940005ae2a4773ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef606460058761175c9190612d88565b6117669190612d57565b6040516117739190612b5b565b60405180910390a3606460018461178a9190612d88565b6117949190612d57565b60008073aaf814d47829f703f2804571ea7a2fa6322d65c373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546117f59190612d01565b9250508190555073aaf814d47829f703f2804571ea7a2fa6322d65c373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef606460018761186e9190612d88565b6118789190612d57565b6040516118859190612b5b565b60405180910390a3606460038461189c9190612d88565b6118a69190612d57565b6000803073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546118f39190612d01565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60646003876119589190612d88565b6119629190612d57565b60405161196f9190612b5b565b60405180910390a361199985606460018661198a9190612d88565b6119949190612d57565b611b67565b60006119a430610bf8565b905060025481106119b55760025490505b6000670de0b6b3a76400008210159050808015611a1c5750600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611a345750600960019054906101000a900460ff165b15611a4357611a4282611dfe565b5b6064605a86611a529190612d88565b611a5c9190612d57565b925050505b8282036000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550806000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611af49190612d01565b925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611b589190612b5b565b60405180910390a35050505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611bd7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bce90612b1b565b60405180910390fd5b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611c5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c5490612a5b565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508160026000828254611cb49190612de2565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611d199190612b5b565b60405180910390a3505050565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611d749190612d01565b925050819055508060026000828254611d8d9190612d01565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611df29190612b5b565b60405180910390a35050565b6001600960006101000a81548160ff0219169083151502179055506000611e2f600283611ed490919063ffffffff16565b90506000611e468284611f1e90919063ffffffff16565b90506000479050611e5683611f68565b6000611e6b8247611f1e90919063ffffffff16565b9050611e7783826121b4565b7f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb561848285604051611eaa93929190612bd0565b60405180910390a1505050506000600960006101000a81548160ff02191690831515021790555050565b6000611f1683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506122bf565b905092915050565b6000611f6083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612322565b905092915050565b6000600267ffffffffffffffff811115611f8557611f84612fed565b5b604051908082528060200260200182016040528015611fb35781602001602082028036833780820191505090505b5090503081600081518110611fcb57611fca612fbe565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561206b57600080fd5b505afa15801561207f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120a391906124ba565b816001815181106120b7576120b6612fbe565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061211c307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84611290565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161217e959493929190612b76565b600060405180830381600087803b15801561219857600080fd5b505af11580156121ac573d6000803e3d6000fd5b505050505050565b6121df307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84611290565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b815260040161226696959493929190612980565b6060604051808303818588803b15801561227f57600080fd5b505af1158015612293573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906122b8919061265d565b5050505050565b60008083118290612306576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122fd9190612a39565b60405180910390fd5b50600083856123159190612d57565b9050809150509392505050565b600083831115829061236a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123619190612a39565b60405180910390fd5b50600083856123799190612de2565b9050809150509392505050565b600061239961239484612c47565b612c22565b905080838252602082019050828560208602820111156123bc576123bb613021565b5b60005b858110156123ec57816123d288826123f6565b8452602084019350602083019250506001810190506123bf565b5050509392505050565b600081359050612405816132b9565b92915050565b60008151905061241a816132b9565b92915050565b600082601f8301126124355761243461301c565b5b8135612445848260208601612386565b91505092915050565b60008135905061245d816132d0565b92915050565b600081359050612472816132e7565b92915050565b600081519050612487816132e7565b92915050565b6000602082840312156124a3576124a261302b565b5b60006124b1848285016123f6565b91505092915050565b6000602082840312156124d0576124cf61302b565b5b60006124de8482850161240b565b91505092915050565b600080604083850312156124fe576124fd61302b565b5b600061250c858286016123f6565b925050602061251d858286016123f6565b9150509250929050565b6000806000606084860312156125405761253f61302b565b5b600061254e868287016123f6565b935050602061255f868287016123f6565b925050604061257086828701612463565b9150509250925092565b600080604083850312156125915761259061302b565b5b600061259f858286016123f6565b92505060206125b085828601612463565b9150509250929050565b6000602082840312156125d0576125cf61302b565b5b600082013567ffffffffffffffff8111156125ee576125ed613026565b5b6125fa84828501612420565b91505092915050565b6000602082840312156126195761261861302b565b5b60006126278482850161244e565b91505092915050565b6000602082840312156126465761264561302b565b5b600061265484828501612463565b91505092915050565b6000806000606084860312156126765761267561302b565b5b600061268486828701612478565b935050602061269586828701612478565b92505060406126a686828701612478565b9150509250925092565b60006126bc83836126e0565b60208301905092915050565b60006126d48383612938565b60208301905092915050565b6126e981612e16565b82525050565b6126f881612e16565b82525050565b600061270982612c93565b6127138185612cce565b935061271e83612c73565b8060005b8381101561274f57815161273688826126b0565b975061274183612cb4565b925050600181019050612722565b5085935050505092915050565b600061276782612c9e565b6127718185612cdf565b935061277c83612c83565b8060005b838110156127ad57815161279488826126c8565b975061279f83612cc1565b925050600181019050612780565b5085935050505092915050565b6127c381612e28565b82525050565b6127d281612e6b565b82525050565b6127e181612e7d565b82525050565b60006127f282612ca9565b6127fc8185612cf0565b935061280c818560208601612eb3565b61281581613030565b840191505092915050565b600061282d602283612cf0565b915061283882613041565b604082019050919050565b6000612850602583612cf0565b915061285b82613090565b604082019050919050565b6000612873602683612cf0565b915061287e826130df565b604082019050919050565b6000612896602883612cf0565b91506128a18261312e565b604082019050919050565b60006128b9602383612cf0565b91506128c48261317d565b604082019050919050565b60006128dc602383612cf0565b91506128e7826131cc565b604082019050919050565b60006128ff602183612cf0565b915061290a8261321b565b604082019050919050565b6000612922602583612cf0565b915061292d8261326a565b604082019050919050565b61294181612e54565b82525050565b61295081612e54565b82525050565b61295f81612e5e565b82525050565b600060208201905061297a60008301846126ef565b92915050565b600060c08201905061299560008301896126ef565b6129a26020830188612947565b6129af60408301876127d8565b6129bc60608301866127d8565b6129c960808301856126ef565b6129d660a0830184612947565b979650505050505050565b600060208201905081810360008301526129fb818461275c565b905092915050565b6000602082019050612a1860008301846127ba565b92915050565b6000602082019050612a3360008301846127c9565b92915050565b60006020820190508181036000830152612a5381846127e7565b905092915050565b60006020820190508181036000830152612a7481612820565b9050919050565b60006020820190508181036000830152612a9481612843565b9050919050565b60006020820190508181036000830152612ab481612866565b9050919050565b60006020820190508181036000830152612ad481612889565b9050919050565b60006020820190508181036000830152612af4816128ac565b9050919050565b60006020820190508181036000830152612b14816128cf565b9050919050565b60006020820190508181036000830152612b34816128f2565b9050919050565b60006020820190508181036000830152612b5481612915565b9050919050565b6000602082019050612b706000830184612947565b92915050565b600060a082019050612b8b6000830188612947565b612b9860208301876127d8565b8181036040830152612baa81866126fe565b9050612bb960608301856126ef565b612bc66080830184612947565b9695505050505050565b6000606082019050612be56000830186612947565b612bf26020830185612947565b612bff6040830184612947565b949350505050565b6000602082019050612c1c6000830184612956565b92915050565b6000612c2c612c3d565b9050612c388282612ee6565b919050565b6000604051905090565b600067ffffffffffffffff821115612c6257612c61612fed565b5b602082029050602081019050919050565b6000819050602082019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b6000612d0c82612e54565b9150612d1783612e54565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612d4c57612d4b612f60565b5b828201905092915050565b6000612d6282612e54565b9150612d6d83612e54565b925082612d7d57612d7c612f8f565b5b828204905092915050565b6000612d9382612e54565b9150612d9e83612e54565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612dd757612dd6612f60565b5b828202905092915050565b6000612ded82612e54565b9150612df883612e54565b925082821015612e0b57612e0a612f60565b5b828203905092915050565b6000612e2182612e34565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000612e7682612e8f565b9050919050565b6000612e8882612e54565b9050919050565b6000612e9a82612ea1565b9050919050565b6000612eac82612e34565b9050919050565b60005b83811015612ed1578082015181840152602081019050612eb6565b83811115612ee0576000848401525b50505050565b612eef82613030565b810181811067ffffffffffffffff82111715612f0e57612f0d612fed565b5b80604052505050565b6000612f2282612e54565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612f5557612f54612f60565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f54454444593a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b7f54454444593a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b7f54454444593a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f54454444593a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b7f54454444593a206f6e6c792062726964676520616464726573732063616e206360008201527f616c6c0000000000000000000000000000000000000000000000000000000000602082015250565b7f54454444593a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f54454444593a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b7f54454444593a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6132c281612e16565b81146132cd57600080fd5b50565b6132d981612e28565b81146132e457600080fd5b50565b6132f081612e54565b81146132fb57600080fd5b5056fea264697066735822122039219b634a16134ffa0f1bdcca78e08c51f3ed5398432ca7949f1c375779d6ad64736f6c63430008070033

Deployed Bytecode Sourcemap

12773:9504:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14247:106;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15467:166;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14819:304;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13171:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14574:105;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15641:484;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14473:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16133:212;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20083:82;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13229:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13407:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21991:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16766:191;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14687:124;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19492:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19280:206;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14361:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13136:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16353:405;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15131:172;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22116:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15311:148;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13447:35;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20398:264;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13109:20;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14247:106;14301:13;14327:18;;;;;;;;;;;;;;;;;;;14247:106;:::o;15467:166::-;15547:4;15564:39;15573:12;:10;:12::i;:::-;15587:7;15596:6;15564:8;:39::i;:::-;15621:4;15614:11;;15467:166;;;;:::o;14819:304::-;14892:13;14918:22;14954:9;:16;14943:28;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14918:53;;14987:6;14982:108;15003:9;:16;14999:1;:20;14982:108;;;15055:9;:23;15065:9;15075:1;15065:12;;;;;;;;:::i;:::-;;;;;;;;15055:23;;;;;;;;;;;;;;;;15041:8;15050:1;15041:11;;;;;;;;:::i;:::-;;;;;;;:37;;;;;15021:3;;;;;:::i;:::-;;;;14982:108;;;;15107:8;15100:15;;;14819:304;;;:::o;13171:51::-;;;:::o;14574:105::-;14635:4;14659:12;;14652:19;;14574:105;:::o;15641:484::-;15778:4;15795:36;15805:6;15813:9;15824:6;15795:9;:36::i;:::-;15844:21;15868:11;:19;15880:6;15868:19;;;;;;;;;;;;;;;:33;15888:12;:10;:12::i;:::-;15868:33;;;;;;;;;;;;;;;;15844:57;;15940:6;15920:16;:26;;15912:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;16027:57;16036:6;16044:12;:10;:12::i;:::-;16077:6;16058:16;:25;16027:8;:57::i;:::-;16113:4;16106:11;;;15641:484;;;;;:::o;14473:93::-;14531:5;14556:2;14549:9;;14473:93;:::o;16133:212::-;16218:4;16235:80;16244:12;:10;:12::i;:::-;16258:7;16304:10;16267:11;:25;16279:12;:10;:12::i;:::-;16267:25;;;;;;;;;;;;;;;:34;16293:7;16267:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;16235:8;:80::i;:::-;16333:4;16326:11;;16133:212;;;;:::o;20083:82::-;20130:27;20136:12;:10;:12::i;:::-;20150:6;20130:5;:27::i;:::-;20083:82;:::o;13229:28::-;;;;;;;;;;;;;:::o;13407:33::-;;;;;;;;;;;;;:::o;21991:117::-;13303:12;:10;:12::i;:::-;13294:21;;:5;;;;;;;;;;;:21;;;13286:30;;;;;;22089:11:::1;22069:9;:16:::0;22079:5:::1;;;;;;;;;;;22069:16;;;;;;;;;;;;;;;;:31;;;;;;;:::i;:::-;;;;;;;;21991:117:::0;:::o;16766:191::-;13303:12;:10;:12::i;:::-;13294:21;;:5;;;;;;;;;;;:21;;;13286:30;;;;;;16831:4:::1;:11;16836:5;16831:11;;;;;;;;;;;;;;;;;;;;;;;;;16827:114;;;16873:5;16859:4;:11;16864:5;16859:11;;;;;;;;;;;;;;;;:19;;;;;;;;;;;;;;;;;;16827:114;;;16925:4;16911;:11;16916:5;16911:11;;;;;;;;;;;;;;;;:18;;;;;;;;;;;;;;;;;;16827:114;16766:191:::0;:::o;14687:124::-;14761:4;14785:9;:18;14795:7;14785:18;;;;;;;;;;;;;;;;14778:25;;14687:124;;;:::o;19492:117::-;13303:12;:10;:12::i;:::-;13294:21;;:5;;;;;;;;;;;:21;;;13286:30;;;;;;19587:14:::1;19571:13;;:30;;;;;;;;;;;;;;;;;;19492:117:::0;:::o;19280:206::-;19372:13;;;;;;;;;;;19358:27;;:10;:27;;;:50;;;;19403:5;;;;;;;;;;;19389:19;;:10;:19;;;19358:50;19350:97;;;;;;;;;;;;:::i;:::-;;;;;;;;;19457:21;19463:7;19471:6;19457:5;:21::i;:::-;19280:206;;:::o;14361:104::-;14417:13;14443:14;;;;;;;;;;;;;;;;;;;14361:104;:::o;13136:28::-;;;;;;;;;;;;;:::o;16353:405::-;16443:4;16460:21;16484:11;:25;16496:12;:10;:12::i;:::-;16484:25;;;;;;;;;;;;;;;:34;16510:7;16484:34;;;;;;;;;;;;;;;;16460:58;;16557:15;16537:16;:35;;16529:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;16650:67;16659:12;:10;:12::i;:::-;16673:7;16701:15;16682:16;:34;16650:8;:67::i;:::-;16746:4;16739:11;;;16353:405;;;;:::o;15131:172::-;15214:4;15231:42;15241:12;:10;:12::i;:::-;15255:9;15266:6;15231:9;:42::i;:::-;15291:4;15284:11;;15131:172;;;;:::o;22116:117::-;13303:12;:10;:12::i;:::-;13294:21;;:5;;;;;;;;;;;:21;;;13286:30;;;;;;22217:8:::1;22193:21;;:32;;;;;;;;;;;;;;;;;;22116:117:::0;:::o;15311:148::-;15400:4;15424:11;:18;15436:5;15424:18;;;;;;;;;;;;;;;:27;15443:7;15424:27;;;;;;;;;;;;;;;;15417:34;;15311:148;;;;:::o;13447:35::-;;;;;;;;;;;;;;;;;;;;;;:::o;20398:264::-;13303:12;:10;:12::i;:::-;13294:21;;:5;;;;;;;;;;;:21;;;13286:30;;;;;;20456:10:::1;20484:3;20469:35;;;:37;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20456:50;;20541:4;20521:24;;:12;:16;20534:2;20521:16;;;;;;;;;;;;;;;;;;;;;;;;;:24;;;20517:138;;;20581:5;20562:12;:16;20575:2;20562:16;;;;;;;;;;;;;;;;:24;;;;;;;;;;;;;;;;;;20517:138;;;20639:4;20620:12;:16;20633:2;20620:16;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;20517:138;20445:217;20398:264:::0;:::o;13109:20::-;;;;;;;;;;;;;:::o;2354:98::-;2407:7;2434:10;2427:17;;2354:98;:::o;20173:217::-;20328:6;20298:11;:18;20310:5;20298:18;;;;;;;;;;;;;;;:27;20317:7;20298:27;;;;;;;;;;;;;;;:36;;;;20366:7;20350:32;;20359:5;20350:32;;;20375:6;20350:32;;;;;;:::i;:::-;;;;;;;;20173:217;;;:::o;16965:2106::-;17120:1;17102:20;;:6;:20;;;;17094:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;17204:1;17183:23;;:9;:23;;;;17175:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;17257:18;17278:9;:17;17288:6;17278:17;;;;;;;;;;;;;;;;17257:38;;17331:6;17314:13;:23;;17306:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;17391:12;17406:6;17391:21;;17429:4;:12;17434:6;17429:12;;;;;;;;;;;;;;;;;;;;;;;;;:31;;;;17445:4;:15;17450:9;17445:15;;;;;;;;;;;;;;;;;;;;;;;;;17429:31;17428:71;;;;;17479:12;:20;17492:6;17479:20;;;;;;;;;;;;;;;;;;;;;;;;;17478:21;17428:71;:112;;;;;17517:12;:23;17530:9;17517:23;;;;;;;;;;;;;;;;;;;;;;;;;17516:24;17428:112;:146;;;;;17558:16;;;;;;;;;;;17557:17;17428:146;:184;;;;;17591:21;;;;;;;;;;;17428:184;17423:1456;;;17711:3;17707:1;17698:6;:10;;;;:::i;:::-;:16;;;;:::i;:::-;17632:9;:62;17650:42;17632:62;;;;;;;;;;;;;;;;:82;;;;;;;:::i;:::-;;;;;;;;17759:42;17734:87;;17743:6;17734:87;;;17817:3;17813:1;17804:6;:10;;;;:::i;:::-;:16;;;;:::i;:::-;17734:87;;;;;;:::i;:::-;;;;;;;;17917:3;17913:1;17904:6;:10;;;;:::i;:::-;:16;;;;:::i;:::-;17838:9;:62;17856:42;17838:62;;;;;;;;;;;;;;;;:82;;;;;;;:::i;:::-;;;;;;;;17965:42;17940:87;;17949:6;17940:87;;;18023:3;18019:1;18010:6;:10;;;;:::i;:::-;:16;;;;:::i;:::-;17940:87;;;;;;:::i;:::-;;;;;;;;18085:3;18081:1;18072:6;:10;;;;:::i;:::-;:16;;;;:::i;:::-;18044:9;:24;18062:4;18044:24;;;;;;;;;;;;;;;;:44;;;;;;;:::i;:::-;;;;;;;;18133:4;18108:49;;18117:6;18108:49;;;18153:3;18149:1;18140:6;:10;;;;:::i;:::-;:16;;;;:::i;:::-;18108:49;;;;;;:::i;:::-;;;;;;;;18174:31;18180:6;18201:3;18197:1;18188:6;:10;;;;:::i;:::-;:16;;;;:::i;:::-;18174:5;:31::i;:::-;18220:28;18251:24;18269:4;18251:9;:24::i;:::-;18220:55;;18321:12;;18297:20;:36;18294:148;;18406:12;;18383:35;;18294:148;18486:24;18537:4;18513:20;:28;;18486:55;;18594:19;:61;;;;;18643:4;:12;18648:6;18643:12;;;;;;;;;;;;;;;;;;;;;;;;;18642:13;18594:61;:111;;;;;18684:21;;;;;;;;;;;18594:111;18564:248;;;18756:36;18771:20;18756:14;:36::i;:::-;18564:248;18850:3;18845:2;18836:6;:11;;;;:::i;:::-;:17;;;;:::i;:::-;18826:27;;17615:1264;;17423:1456;18952:6;18936:13;:22;18916:9;:17;18926:6;18916:17;;;;;;;;;;;;;;;:42;;;;19004:7;18980:9;:20;18990:9;18980:20;;;;;;;;;;;;;;;;:31;;;;;;;:::i;:::-;;;;;;;;19044:9;19027:36;;19036:6;19027:36;;;19055:7;19027:36;;;;;;:::i;:::-;;;;;;;;17083:1988;;16965:2106;;;:::o;19617:458::-;19717:1;19698:21;;:7;:21;;;;19690:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19768:19;19790:9;:18;19800:7;19790:18;;;;;;;;;;;;;;;;19768:40;;19845:6;19827:14;:24;;19819:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;19964:6;19947:14;:23;19926:9;:18;19936:7;19926:18;;;;;;;;;;;;;;;:44;;;;20008:6;19992:12;;:22;;;;;;;:::i;:::-;;;;;;;;20056:1;20030:37;;20039:7;20030:37;;;20060:6;20030:37;;;;;;:::i;:::-;;;;;;;;19679:396;19617:458;;:::o;19079:195::-;19174:6;19152:9;:18;19162:7;19152:18;;;;;;;;;;;;;;;;:28;;;;;;;:::i;:::-;;;;;;;;19207:6;19191:12;;:22;;;;;;;:::i;:::-;;;;;;;;19250:7;19229:37;;19246:1;19229:37;;;19259:6;19229:37;;;;;;:::i;:::-;;;;;;;;19079:195;;:::o;20670:465::-;13734:4;13715:16;;:23;;;;;;;;;;;;;;;;;;20755:12:::1;20770:27;20795:1;20770:20;:24;;:27;;;;:::i;:::-;20755:42;;20808:17;20828:30;20853:4;20828:20;:24;;:30;;;;:::i;:::-;20808:50;;20869:22;20894:21;20869:46;;20926:22;20943:4;20926:16;:22::i;:::-;20960:18;20981:41;21007:14;20981:21;:25;;:41;;;;:::i;:::-;20960:62;;21033:35;21046:9;21057:10;21033:12;:35::i;:::-;21084:43;21099:4;21105:10;21117:9;21084:43;;;;;;;;:::i;:::-;;;;;;;;20744:391;;;;13780:5:::0;13761:16;;:24;;;;;;;;;;;;;;;;;;20670:465;:::o;1722:123::-;1774:4;1798:39;1802:1;1805;1798:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1791:46;;1722:123;;;;:::o;1165:127::-;1217:4;1241:43;1245:1;1248;1241:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1234:50;;1165:127;;;;:::o;21143:472::-;21209:21;21247:1;21233:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21209:40;;21278:4;21260;21265:1;21260:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;21304:15;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21294:4;21299:1;21294:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;21337:62;21354:4;21369:15;21387:11;21337:8;:62::i;:::-;21410:15;:66;;;21491:11;21517:1;21534:4;21561;21581:15;21410:197;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21198:417;21143:472;:::o;21623:360::-;21704:62;21721:4;21736:15;21754:11;21704:8;:62::i;:::-;21777:15;:31;;;21816:9;21849:4;21869:11;21895:1;21912;21929:5;;;;;;;;;;;21949:15;21777:198;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;21623:360;;:::o;1849:175::-;1929:4;1958:1;1954;:5;1961:12;1946:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1985:6;1998:1;1994;:5;;;;:::i;:::-;1985:14;;2015:1;2008:8;;;1849:175;;;;;:::o;1298:178::-;1378:4;1408:1;1403;:6;;1411:12;1395:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1435:6;1448:1;1444;:5;;;;:::i;:::-;1435:14;;1467:1;1460:8;;;1298:178;;;;;:::o;24:722:1:-;120:5;145:81;161:64;218:6;161:64;:::i;:::-;145:81;:::i;:::-;136:90;;246:5;275:6;268:5;261:21;309:4;302:5;298:16;291:23;;335:6;385:3;377:4;369:6;365:17;360:3;356:27;353:36;350:143;;;404:79;;:::i;:::-;350:143;517:1;502:238;527:6;524:1;521:13;502:238;;;595:3;624:37;657:3;645:10;624:37;:::i;:::-;619:3;612:50;691:4;686:3;682:14;675:21;;725:4;720:3;716:14;709:21;;562:178;549:1;546;542:9;537:14;;502:238;;;506:14;126:620;;24:722;;;;;:::o;752:139::-;798:5;836:6;823:20;814:29;;852:33;879:5;852:33;:::i;:::-;752:139;;;;:::o;897:143::-;954:5;985:6;979:13;970:22;;1001:33;1028:5;1001:33;:::i;:::-;897:143;;;;:::o;1063:370::-;1134:5;1183:3;1176:4;1168:6;1164:17;1160:27;1150:122;;1191:79;;:::i;:::-;1150:122;1308:6;1295:20;1333:94;1423:3;1415:6;1408:4;1400:6;1396:17;1333:94;:::i;:::-;1324:103;;1140:293;1063:370;;;;:::o;1439:133::-;1482:5;1520:6;1507:20;1498:29;;1536:30;1560:5;1536:30;:::i;:::-;1439:133;;;;:::o;1578:139::-;1624:5;1662:6;1649:20;1640:29;;1678:33;1705:5;1678:33;:::i;:::-;1578:139;;;;:::o;1723:143::-;1780:5;1811:6;1805:13;1796:22;;1827:33;1854:5;1827:33;:::i;:::-;1723:143;;;;:::o;1872:329::-;1931:6;1980:2;1968:9;1959:7;1955:23;1951:32;1948:119;;;1986:79;;:::i;:::-;1948:119;2106:1;2131:53;2176:7;2167:6;2156:9;2152:22;2131:53;:::i;:::-;2121:63;;2077:117;1872:329;;;;:::o;2207:351::-;2277:6;2326:2;2314:9;2305:7;2301:23;2297:32;2294:119;;;2332:79;;:::i;:::-;2294:119;2452:1;2477:64;2533:7;2524:6;2513:9;2509:22;2477:64;:::i;:::-;2467:74;;2423:128;2207:351;;;;:::o;2564:474::-;2632:6;2640;2689:2;2677:9;2668:7;2664:23;2660:32;2657:119;;;2695:79;;:::i;:::-;2657:119;2815:1;2840:53;2885:7;2876:6;2865:9;2861:22;2840:53;:::i;:::-;2830:63;;2786:117;2942:2;2968:53;3013:7;3004:6;2993:9;2989:22;2968:53;:::i;:::-;2958:63;;2913:118;2564:474;;;;;:::o;3044:619::-;3121:6;3129;3137;3186:2;3174:9;3165:7;3161:23;3157:32;3154:119;;;3192:79;;:::i;:::-;3154:119;3312:1;3337:53;3382:7;3373:6;3362:9;3358:22;3337:53;:::i;:::-;3327:63;;3283:117;3439:2;3465:53;3510:7;3501:6;3490:9;3486:22;3465:53;:::i;:::-;3455:63;;3410:118;3567:2;3593:53;3638:7;3629:6;3618:9;3614:22;3593:53;:::i;:::-;3583:63;;3538:118;3044:619;;;;;:::o;3669:474::-;3737:6;3745;3794:2;3782:9;3773:7;3769:23;3765:32;3762:119;;;3800:79;;:::i;:::-;3762:119;3920:1;3945:53;3990:7;3981:6;3970:9;3966:22;3945:53;:::i;:::-;3935:63;;3891:117;4047:2;4073:53;4118:7;4109:6;4098:9;4094:22;4073:53;:::i;:::-;4063:63;;4018:118;3669:474;;;;;:::o;4149:539::-;4233:6;4282:2;4270:9;4261:7;4257:23;4253:32;4250:119;;;4288:79;;:::i;:::-;4250:119;4436:1;4425:9;4421:17;4408:31;4466:18;4458:6;4455:30;4452:117;;;4488:79;;:::i;:::-;4452:117;4593:78;4663:7;4654:6;4643:9;4639:22;4593:78;:::i;:::-;4583:88;;4379:302;4149:539;;;;:::o;4694:323::-;4750:6;4799:2;4787:9;4778:7;4774:23;4770:32;4767:119;;;4805:79;;:::i;:::-;4767:119;4925:1;4950:50;4992:7;4983:6;4972:9;4968:22;4950:50;:::i;:::-;4940:60;;4896:114;4694:323;;;;:::o;5023:329::-;5082:6;5131:2;5119:9;5110:7;5106:23;5102:32;5099:119;;;5137:79;;:::i;:::-;5099:119;5257:1;5282:53;5327:7;5318:6;5307:9;5303:22;5282:53;:::i;:::-;5272:63;;5228:117;5023:329;;;;:::o;5358:663::-;5446:6;5454;5462;5511:2;5499:9;5490:7;5486:23;5482:32;5479:119;;;5517:79;;:::i;:::-;5479:119;5637:1;5662:64;5718:7;5709:6;5698:9;5694:22;5662:64;:::i;:::-;5652:74;;5608:128;5775:2;5801:64;5857:7;5848:6;5837:9;5833:22;5801:64;:::i;:::-;5791:74;;5746:129;5914:2;5940:64;5996:7;5987:6;5976:9;5972:22;5940:64;:::i;:::-;5930:74;;5885:129;5358:663;;;;;:::o;6027:179::-;6096:10;6117:46;6159:3;6151:6;6117:46;:::i;:::-;6195:4;6190:3;6186:14;6172:28;;6027:179;;;;:::o;6212:::-;6281:10;6302:46;6344:3;6336:6;6302:46;:::i;:::-;6380:4;6375:3;6371:14;6357:28;;6212:179;;;;:::o;6397:108::-;6474:24;6492:5;6474:24;:::i;:::-;6469:3;6462:37;6397:108;;:::o;6511:118::-;6598:24;6616:5;6598:24;:::i;:::-;6593:3;6586:37;6511:118;;:::o;6665:732::-;6784:3;6813:54;6861:5;6813:54;:::i;:::-;6883:86;6962:6;6957:3;6883:86;:::i;:::-;6876:93;;6993:56;7043:5;6993:56;:::i;:::-;7072:7;7103:1;7088:284;7113:6;7110:1;7107:13;7088:284;;;7189:6;7183:13;7216:63;7275:3;7260:13;7216:63;:::i;:::-;7209:70;;7302:60;7355:6;7302:60;:::i;:::-;7292:70;;7148:224;7135:1;7132;7128:9;7123:14;;7088:284;;;7092:14;7388:3;7381:10;;6789:608;;;6665:732;;;;:::o;7433:::-;7552:3;7581:54;7629:5;7581:54;:::i;:::-;7651:86;7730:6;7725:3;7651:86;:::i;:::-;7644:93;;7761:56;7811:5;7761:56;:::i;:::-;7840:7;7871:1;7856:284;7881:6;7878:1;7875:13;7856:284;;;7957:6;7951:13;7984:63;8043:3;8028:13;7984:63;:::i;:::-;7977:70;;8070:60;8123:6;8070:60;:::i;:::-;8060:70;;7916:224;7903:1;7900;7896:9;7891:14;;7856:284;;;7860:14;8156:3;8149:10;;7557:608;;;7433:732;;;;:::o;8171:109::-;8252:21;8267:5;8252:21;:::i;:::-;8247:3;8240:34;8171:109;;:::o;8286:185::-;8400:64;8458:5;8400:64;:::i;:::-;8395:3;8388:77;8286:185;;:::o;8477:147::-;8572:45;8611:5;8572:45;:::i;:::-;8567:3;8560:58;8477:147;;:::o;8630:364::-;8718:3;8746:39;8779:5;8746:39;:::i;:::-;8801:71;8865:6;8860:3;8801:71;:::i;:::-;8794:78;;8881:52;8926:6;8921:3;8914:4;8907:5;8903:16;8881:52;:::i;:::-;8958:29;8980:6;8958:29;:::i;:::-;8953:3;8949:39;8942:46;;8722:272;8630:364;;;;:::o;9000:366::-;9142:3;9163:67;9227:2;9222:3;9163:67;:::i;:::-;9156:74;;9239:93;9328:3;9239:93;:::i;:::-;9357:2;9352:3;9348:12;9341:19;;9000:366;;;:::o;9372:::-;9514:3;9535:67;9599:2;9594:3;9535:67;:::i;:::-;9528:74;;9611:93;9700:3;9611:93;:::i;:::-;9729:2;9724:3;9720:12;9713:19;;9372:366;;;:::o;9744:::-;9886:3;9907:67;9971:2;9966:3;9907:67;:::i;:::-;9900:74;;9983:93;10072:3;9983:93;:::i;:::-;10101:2;10096:3;10092:12;10085:19;;9744:366;;;:::o;10116:::-;10258:3;10279:67;10343:2;10338:3;10279:67;:::i;:::-;10272:74;;10355:93;10444:3;10355:93;:::i;:::-;10473:2;10468:3;10464:12;10457:19;;10116:366;;;:::o;10488:::-;10630:3;10651:67;10715:2;10710:3;10651:67;:::i;:::-;10644:74;;10727:93;10816:3;10727:93;:::i;:::-;10845:2;10840:3;10836:12;10829:19;;10488:366;;;:::o;10860:::-;11002:3;11023:67;11087:2;11082:3;11023:67;:::i;:::-;11016:74;;11099:93;11188:3;11099:93;:::i;:::-;11217:2;11212:3;11208:12;11201:19;;10860:366;;;:::o;11232:::-;11374:3;11395:67;11459:2;11454:3;11395:67;:::i;:::-;11388:74;;11471:93;11560:3;11471:93;:::i;:::-;11589:2;11584:3;11580:12;11573:19;;11232:366;;;:::o;11604:::-;11746:3;11767:67;11831:2;11826:3;11767:67;:::i;:::-;11760:74;;11843:93;11932:3;11843:93;:::i;:::-;11961:2;11956:3;11952:12;11945:19;;11604:366;;;:::o;11976:108::-;12053:24;12071:5;12053:24;:::i;:::-;12048:3;12041:37;11976:108;;:::o;12090:118::-;12177:24;12195:5;12177:24;:::i;:::-;12172:3;12165:37;12090:118;;:::o;12214:112::-;12297:22;12313:5;12297:22;:::i;:::-;12292:3;12285:35;12214:112;;:::o;12332:222::-;12425:4;12463:2;12452:9;12448:18;12440:26;;12476:71;12544:1;12533:9;12529:17;12520:6;12476:71;:::i;:::-;12332:222;;;;:::o;12560:807::-;12809:4;12847:3;12836:9;12832:19;12824:27;;12861:71;12929:1;12918:9;12914:17;12905:6;12861:71;:::i;:::-;12942:72;13010:2;12999:9;12995:18;12986:6;12942:72;:::i;:::-;13024:80;13100:2;13089:9;13085:18;13076:6;13024:80;:::i;:::-;13114;13190:2;13179:9;13175:18;13166:6;13114:80;:::i;:::-;13204:73;13272:3;13261:9;13257:19;13248:6;13204:73;:::i;:::-;13287;13355:3;13344:9;13340:19;13331:6;13287:73;:::i;:::-;12560:807;;;;;;;;;:::o;13373:373::-;13516:4;13554:2;13543:9;13539:18;13531:26;;13603:9;13597:4;13593:20;13589:1;13578:9;13574:17;13567:47;13631:108;13734:4;13725:6;13631:108;:::i;:::-;13623:116;;13373:373;;;;:::o;13752:210::-;13839:4;13877:2;13866:9;13862:18;13854:26;;13890:65;13952:1;13941:9;13937:17;13928:6;13890:65;:::i;:::-;13752:210;;;;:::o;13968:276::-;14088:4;14126:2;14115:9;14111:18;14103:26;;14139:98;14234:1;14223:9;14219:17;14210:6;14139:98;:::i;:::-;13968:276;;;;:::o;14250:313::-;14363:4;14401:2;14390:9;14386:18;14378:26;;14450:9;14444:4;14440:20;14436:1;14425:9;14421:17;14414:47;14478:78;14551:4;14542:6;14478:78;:::i;:::-;14470:86;;14250:313;;;;:::o;14569:419::-;14735:4;14773:2;14762:9;14758:18;14750:26;;14822:9;14816:4;14812:20;14808:1;14797:9;14793:17;14786:47;14850:131;14976:4;14850:131;:::i;:::-;14842:139;;14569:419;;;:::o;14994:::-;15160:4;15198:2;15187:9;15183:18;15175:26;;15247:9;15241:4;15237:20;15233:1;15222:9;15218:17;15211:47;15275:131;15401:4;15275:131;:::i;:::-;15267:139;;14994:419;;;:::o;15419:::-;15585:4;15623:2;15612:9;15608:18;15600:26;;15672:9;15666:4;15662:20;15658:1;15647:9;15643:17;15636:47;15700:131;15826:4;15700:131;:::i;:::-;15692:139;;15419:419;;;:::o;15844:::-;16010:4;16048:2;16037:9;16033:18;16025:26;;16097:9;16091:4;16087:20;16083:1;16072:9;16068:17;16061:47;16125:131;16251:4;16125:131;:::i;:::-;16117:139;;15844:419;;;:::o;16269:::-;16435:4;16473:2;16462:9;16458:18;16450:26;;16522:9;16516:4;16512:20;16508:1;16497:9;16493:17;16486:47;16550:131;16676:4;16550:131;:::i;:::-;16542:139;;16269:419;;;:::o;16694:::-;16860:4;16898:2;16887:9;16883:18;16875:26;;16947:9;16941:4;16937:20;16933:1;16922:9;16918:17;16911:47;16975:131;17101:4;16975:131;:::i;:::-;16967:139;;16694:419;;;:::o;17119:::-;17285:4;17323:2;17312:9;17308:18;17300:26;;17372:9;17366:4;17362:20;17358:1;17347:9;17343:17;17336:47;17400:131;17526:4;17400:131;:::i;:::-;17392:139;;17119:419;;;:::o;17544:::-;17710:4;17748:2;17737:9;17733:18;17725:26;;17797:9;17791:4;17787:20;17783:1;17772:9;17768:17;17761:47;17825:131;17951:4;17825:131;:::i;:::-;17817:139;;17544:419;;;:::o;17969:222::-;18062:4;18100:2;18089:9;18085:18;18077:26;;18113:71;18181:1;18170:9;18166:17;18157:6;18113:71;:::i;:::-;17969:222;;;;:::o;18197:831::-;18460:4;18498:3;18487:9;18483:19;18475:27;;18512:71;18580:1;18569:9;18565:17;18556:6;18512:71;:::i;:::-;18593:80;18669:2;18658:9;18654:18;18645:6;18593:80;:::i;:::-;18720:9;18714:4;18710:20;18705:2;18694:9;18690:18;18683:48;18748:108;18851:4;18842:6;18748:108;:::i;:::-;18740:116;;18866:72;18934:2;18923:9;18919:18;18910:6;18866:72;:::i;:::-;18948:73;19016:3;19005:9;19001:19;18992:6;18948:73;:::i;:::-;18197:831;;;;;;;;:::o;19034:442::-;19183:4;19221:2;19210:9;19206:18;19198:26;;19234:71;19302:1;19291:9;19287:17;19278:6;19234:71;:::i;:::-;19315:72;19383:2;19372:9;19368:18;19359:6;19315:72;:::i;:::-;19397;19465:2;19454:9;19450:18;19441:6;19397:72;:::i;:::-;19034:442;;;;;;:::o;19482:214::-;19571:4;19609:2;19598:9;19594:18;19586:26;;19622:67;19686:1;19675:9;19671:17;19662:6;19622:67;:::i;:::-;19482:214;;;;:::o;19702:129::-;19736:6;19763:20;;:::i;:::-;19753:30;;19792:33;19820:4;19812:6;19792:33;:::i;:::-;19702:129;;;:::o;19837:75::-;19870:6;19903:2;19897:9;19887:19;;19837:75;:::o;19918:311::-;19995:4;20085:18;20077:6;20074:30;20071:56;;;20107:18;;:::i;:::-;20071:56;20157:4;20149:6;20145:17;20137:25;;20217:4;20211;20207:15;20199:23;;19918:311;;;:::o;20235:132::-;20302:4;20325:3;20317:11;;20355:4;20350:3;20346:14;20338:22;;20235:132;;;:::o;20373:::-;20440:4;20463:3;20455:11;;20493:4;20488:3;20484:14;20476:22;;20373:132;;;:::o;20511:114::-;20578:6;20612:5;20606:12;20596:22;;20511:114;;;:::o;20631:::-;20698:6;20732:5;20726:12;20716:22;;20631:114;;;:::o;20751:99::-;20803:6;20837:5;20831:12;20821:22;;20751:99;;;:::o;20856:113::-;20926:4;20958;20953:3;20949:14;20941:22;;20856:113;;;:::o;20975:::-;21045:4;21077;21072:3;21068:14;21060:22;;20975:113;;;:::o;21094:184::-;21193:11;21227:6;21222:3;21215:19;21267:4;21262:3;21258:14;21243:29;;21094:184;;;;:::o;21284:::-;21383:11;21417:6;21412:3;21405:19;21457:4;21452:3;21448:14;21433:29;;21284:184;;;;:::o;21474:169::-;21558:11;21592:6;21587:3;21580:19;21632:4;21627:3;21623:14;21608:29;;21474:169;;;;:::o;21649:305::-;21689:3;21708:20;21726:1;21708:20;:::i;:::-;21703:25;;21742:20;21760:1;21742:20;:::i;:::-;21737:25;;21896:1;21828:66;21824:74;21821:1;21818:81;21815:107;;;21902:18;;:::i;:::-;21815:107;21946:1;21943;21939:9;21932:16;;21649:305;;;;:::o;21960:185::-;22000:1;22017:20;22035:1;22017:20;:::i;:::-;22012:25;;22051:20;22069:1;22051:20;:::i;:::-;22046:25;;22090:1;22080:35;;22095:18;;:::i;:::-;22080:35;22137:1;22134;22130:9;22125:14;;21960:185;;;;:::o;22151:348::-;22191:7;22214:20;22232:1;22214:20;:::i;:::-;22209:25;;22248:20;22266:1;22248:20;:::i;:::-;22243:25;;22436:1;22368:66;22364:74;22361:1;22358:81;22353:1;22346:9;22339:17;22335:105;22332:131;;;22443:18;;:::i;:::-;22332:131;22491:1;22488;22484:9;22473:20;;22151:348;;;;:::o;22505:191::-;22545:4;22565:20;22583:1;22565:20;:::i;:::-;22560:25;;22599:20;22617:1;22599:20;:::i;:::-;22594:25;;22638:1;22635;22632:8;22629:34;;;22643:18;;:::i;:::-;22629:34;22688:1;22685;22681:9;22673:17;;22505:191;;;;:::o;22702:96::-;22739:7;22768:24;22786:5;22768:24;:::i;:::-;22757:35;;22702:96;;;:::o;22804:90::-;22838:7;22881:5;22874:13;22867:21;22856:32;;22804:90;;;:::o;22900:126::-;22937:7;22977:42;22970:5;22966:54;22955:65;;22900:126;;;:::o;23032:77::-;23069:7;23098:5;23087:16;;23032:77;;;:::o;23115:86::-;23150:7;23190:4;23183:5;23179:16;23168:27;;23115:86;;;:::o;23207:153::-;23284:9;23317:37;23348:5;23317:37;:::i;:::-;23304:50;;23207:153;;;:::o;23366:121::-;23424:9;23457:24;23475:5;23457:24;:::i;:::-;23444:37;;23366:121;;;:::o;23493:126::-;23543:9;23576:37;23607:5;23576:37;:::i;:::-;23563:50;;23493:126;;;:::o;23625:113::-;23675:9;23708:24;23726:5;23708:24;:::i;:::-;23695:37;;23625:113;;;:::o;23744:307::-;23812:1;23822:113;23836:6;23833:1;23830:13;23822:113;;;23921:1;23916:3;23912:11;23906:18;23902:1;23897:3;23893:11;23886:39;23858:2;23855:1;23851:10;23846:15;;23822:113;;;23953:6;23950:1;23947:13;23944:101;;;24033:1;24024:6;24019:3;24015:16;24008:27;23944:101;23793:258;23744:307;;;:::o;24057:281::-;24140:27;24162:4;24140:27;:::i;:::-;24132:6;24128:40;24270:6;24258:10;24255:22;24234:18;24222:10;24219:34;24216:62;24213:88;;;24281:18;;:::i;:::-;24213:88;24321:10;24317:2;24310:22;24100:238;24057:281;;:::o;24344:233::-;24383:3;24406:24;24424:5;24406:24;:::i;:::-;24397:33;;24452:66;24445:5;24442:77;24439:103;;;24522:18;;:::i;:::-;24439:103;24569:1;24562:5;24558:13;24551:20;;24344:233;;;:::o;24583:180::-;24631:77;24628:1;24621:88;24728:4;24725:1;24718:15;24752:4;24749:1;24742:15;24769:180;24817:77;24814:1;24807:88;24914:4;24911:1;24904:15;24938:4;24935:1;24928:15;24955:180;25003:77;25000:1;24993:88;25100:4;25097:1;25090:15;25124:4;25121:1;25114:15;25141:180;25189:77;25186:1;25179:88;25286:4;25283:1;25276:15;25310:4;25307:1;25300:15;25327:117;25436:1;25433;25426:12;25450:117;25559:1;25556;25549:12;25573:117;25682:1;25679;25672:12;25696:117;25805:1;25802;25795:12;25819:102;25860:6;25911:2;25907:7;25902:2;25895:5;25891:14;25887:28;25877:38;;25819:102;;;:::o;25927:221::-;26067:34;26063:1;26055:6;26051:14;26044:58;26136:4;26131:2;26123:6;26119:15;26112:29;25927:221;:::o;26154:224::-;26294:34;26290:1;26282:6;26278:14;26271:58;26363:7;26358:2;26350:6;26346:15;26339:32;26154:224;:::o;26384:225::-;26524:34;26520:1;26512:6;26508:14;26501:58;26593:8;26588:2;26580:6;26576:15;26569:33;26384:225;:::o;26615:227::-;26755:34;26751:1;26743:6;26739:14;26732:58;26824:10;26819:2;26811:6;26807:15;26800:35;26615:227;:::o;26848:222::-;26988:34;26984:1;26976:6;26972:14;26965:58;27057:5;27052:2;27044:6;27040:15;27033:30;26848:222;:::o;27076:::-;27216:34;27212:1;27204:6;27200:14;27193:58;27285:5;27280:2;27272:6;27268:15;27261:30;27076:222;:::o;27304:220::-;27444:34;27440:1;27432:6;27428:14;27421:58;27513:3;27508:2;27500:6;27496:15;27489:28;27304:220;:::o;27530:224::-;27670:34;27666:1;27658:6;27654:14;27647:58;27739:7;27734:2;27726:6;27722:15;27715:32;27530:224;:::o;27760:122::-;27833:24;27851:5;27833:24;:::i;:::-;27826:5;27823:35;27813:63;;27872:1;27869;27862:12;27813:63;27760:122;:::o;27888:116::-;27958:21;27973:5;27958:21;:::i;:::-;27951:5;27948:32;27938:60;;27994:1;27991;27984:12;27938:60;27888:116;:::o;28010:122::-;28083:24;28101:5;28083:24;:::i;:::-;28076:5;28073:35;28063:63;;28122:1;28119;28112:12;28063:63;28010:122;:::o

Swarm Source

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