ETH Price: $2,492.43 (-1.06%)
Gas: 4.41 Gwei

Token

Drunken Master (Suiken)
 

Overview

Max Total Supply

1,000,000,000,000 Suiken

Holders

28

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
9,499,999,049.05000026 Suiken

Value
$0.00
0xf304686ebd40001ced79c232a4c35b6885d87e4e
Loading...
Loading
Loading...
Loading
Loading...
Loading

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

Contract Source Code Verified (Exact Match)

Contract Name:
DrunkenMaster

Compiler Version
v0.8.15+commit.e14f2714

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-08-31
*/

// SPDX-License-Identifier: NOLICENSE

/**

Token Name: Drunken Master
Ticker: Suiken

Supply : 1,000,000,000,000
Max buy at launch is 1% = 10000000000

Tax
5 buy
5 sell

Telegram: https://t.me/SuikenERC20



*/


/********************



***********************/

pragma solidity ^0.8.4;

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

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

abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
    function _msgData() internal view virtual returns (bytes calldata) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}

abstract contract Ownable is Context {
    address private _owner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    
    constructor() {
        _setOwner(_msgSender());
    }

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

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

    function renounceOwnership() public virtual onlyOwner {
        _setOwner(address(0));
    }

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _setOwner(newOwner);
    }

    function _setOwner(address newOwner) private {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

interface IUniswapV2Factory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
    function getPair(address tokenA, address tokenB)  external view returns (address pair);
}

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}

contract DrunkenMaster is Context, IERC20, Ownable {

    using SafeMath for uint256;
    mapping (address => uint256) private _tOwned;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private _isExcludedFromMaxWalletSize;

    string private constant _name = "Drunken Master"; //
    string private constant _symbol = "Suiken"; //
    uint8 private constant _decimals = 9;

    uint256 public buyAutoLiquidityFee;
    uint256 public buyAutoBurnFee;
    uint256 public buyMarketingFee;
    uint256 public totalBuyFees = buyAutoLiquidityFee + buyAutoBurnFee + buyMarketingFee;

    uint256 public sellAutoLiquidityFee;
    uint256 public sellAutoBurnFee;
    uint256 public sellMarketingFee;
    uint256 public totalSellFees =  sellAutoLiquidityFee + sellAutoBurnFee + sellMarketingFee;

    uint256 public tokensForAutoLiquidity;
    uint256 public tokensForAutoBurn;  
    uint256 public tokensForMarketing;
    uint16 public masterTaxDivisor = 10000;

    address public constant DEAD = 0x000000000000000000000000000000000000dEaD;
    address public pairAddress;
    
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    uint256 private _tTotal = 1000000000000 * 10 ** _decimals; //
    uint256 private maxWalletAmount;
    uint256 private maxTxAmount; 
    address payable private feeAddrWallet;

    event MaxWalletAmountUpdated(uint maxWalletAmount);

    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
  
    constructor () {
        require(!tradingOpen,"trading is already open");
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        pairAddress = IUniswapV2Factory(_uniswapV2Router.factory()).getPair(address(this), _uniswapV2Router.WETH());
        feeAddrWallet = payable(0xd5D0e23eEF39F1c9FA01fd2093f9616385545dB1); //wallet
        _tOwned[owner()] = _tTotal;
                
        uint256 _buyAutoLiquidityFee = 0; //
        uint256 _buyAutoBurnFee = 0; //
        uint256 _buyMarketingFee = 500; //
        uint256 _sellAutoLiquidityFee = 0; //
        uint256 _sellAutoBurnFee = 0; //
        uint256 _sellMarketingFee = 500; // 
        
        buyAutoLiquidityFee = _buyAutoLiquidityFee;
        buyAutoBurnFee = _buyAutoBurnFee;
        buyMarketingFee = _buyMarketingFee;
        totalBuyFees = buyAutoLiquidityFee + buyAutoBurnFee + buyMarketingFee;
        
        sellAutoLiquidityFee = _sellAutoLiquidityFee;
        sellAutoBurnFee = _sellAutoBurnFee;
        sellMarketingFee = _sellMarketingFee;
        totalSellFees = sellAutoLiquidityFee + sellAutoBurnFee + sellMarketingFee;
        
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[feeAddrWallet] = true;
        _isExcludedFromMaxWalletSize[owner()] = true;
        _isExcludedFromMaxWalletSize[address(this)] = true;
        _isExcludedFromMaxWalletSize[feeAddrWallet] = true;  
        emit Transfer(address(0), owner(), _tTotal);
             
    }

    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        swapEnabled = true;
        maxTxAmount = 10000000001 * 10 ** _decimals;
        maxWalletAmount = 10000000001 * 10 ** _decimals;
        tradingOpen = true;
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
    }

    function name() public pure returns (string memory) { return _name; }
    function getTxAmount() public view returns(uint256) {return maxTxAmount;}
    function getMaxWallet() public view returns(uint256) {return maxWalletAmount;}
    function symbol() public pure returns (string memory) { return _symbol; }
    function decimals() public pure returns (uint8) { return _decimals; }
    function totalSupply() public view override returns (uint256) { return _tTotal; }
    function balanceOf(address account) public view override returns (uint256) { return _tOwned[account]; }
    function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; }
    function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; }
    function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; }

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

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

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

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        require(amount <= balanceOf(from),"You are trying to transfer more than your balance");    
        require(tradingOpen || _isExcludedFromFee[from] || _isExcludedFromFee[to], "Trading not enabled yet");

        if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to]) {
                require(amount <= maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= maxWalletAmount, "Exceeds the maxWalletSize.");
        }
        if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromMaxWalletSize[to]) {             
                require(amount + balanceOf(to) <= maxWalletAmount, "Recipient exceeds max wallet size.");
        }

        uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && from != uniswapV2Pair && swapEnabled && contractTokenBalance>0) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }

        _tokenTransfer(from, to, amount, !(_isExcludedFromFee[from] || _isExcludedFromFee[to]));
    }

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        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 _tokenTransfer(address sender, address recipient, uint256 amount, bool takeFee) private {
        _tOwned[sender] -= amount;
        uint256 amountReceived = (takeFee) ? takeTaxes(sender, recipient, amount) : amount;
        _tOwned[recipient] += amountReceived;
        emit Transfer(sender, recipient, amountReceived);
    }

    function takeTaxes(address from, address to, uint256 amount) internal returns (uint256) {
        if(from == uniswapV2Pair && totalBuyFees > 0 ) { 
            tokensForAutoLiquidity = (amount * buyAutoLiquidityFee) / masterTaxDivisor;
            tokensForAutoBurn = (amount * buyAutoBurnFee) / masterTaxDivisor;         
            tokensForMarketing = (amount * buyMarketingFee) / masterTaxDivisor;    
        } else if (to == uniswapV2Pair  && totalSellFees > 0 ) { 
            tokensForAutoLiquidity = (amount * sellAutoLiquidityFee) / masterTaxDivisor;
            tokensForAutoBurn = (amount * sellAutoBurnFee) / masterTaxDivisor;
            tokensForMarketing = (amount * sellMarketingFee) / masterTaxDivisor;        
        }
        _tOwned[pairAddress] += tokensForAutoLiquidity;
        emit Transfer(from, pairAddress, tokensForAutoLiquidity);
        
        _tOwned[DEAD] += tokensForAutoBurn;
        _tTotal = _tTotal - tokensForAutoBurn;
        _tTotal = totalSupply();
        emit Transfer(from, DEAD, tokensForAutoBurn);
                
        _tOwned[address(this)] += tokensForMarketing;
        emit Transfer(from, address(this), tokensForMarketing);

        uint256 feeAmount = tokensForAutoLiquidity + tokensForAutoBurn + tokensForMarketing;
        return amount - feeAmount;
    }

    function excludeFromFee(address account) public onlyOwner {
        _isExcludedFromFee[account] = true;
    }

    function includeInFee(address account) public onlyOwner {
        _isExcludedFromFee[account] = false;
    }

     function excludeFromMaxWalletLimit(address account) public onlyOwner {
		_isExcludedFromMaxWalletSize[account] = true;
	}

    function includeInMaxWalletLimit(address account) public onlyOwner {
		_isExcludedFromMaxWalletSize[account] = false;
	}

    function SetWalletandTxtAmount(uint256 _maxTxAmount, uint256 _maxWalletSize) external onlyOwner{
        maxTxAmount = _maxTxAmount * 10 **_decimals;
        maxWalletAmount = _maxWalletSize * 10 **_decimals;
    }
    
    function sendETHToFee(uint256 amount) private {
        feeAddrWallet.transfer(amount);
    } 

    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":"maxWalletAmount","type":"uint256"}],"name":"MaxWalletAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":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":"DEAD","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxTxAmount","type":"uint256"},{"internalType":"uint256","name":"_maxWalletSize","type":"uint256"}],"name":"SetWalletandTxtAmount","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":[],"name":"buyAutoBurnFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyAutoLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromMaxWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getMaxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInMaxWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"masterTaxDivisor","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pairAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellAutoBurnFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellAutoLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"tokensForAutoBurn","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForAutoLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForMarketing","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalBuyFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSellFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405260075460065460055462000019919062000a45565b62000025919062000a45565b600855600b54600a546009546200003d919062000a45565b62000049919062000a45565b600c55612710601060006101000a81548161ffff021916908361ffff1602179055506000601260156101000a81548160ff0219169083151502179055506000601260166101000a81548160ff0219169083151502179055506009600a620000b1919062000c03565b64e8d4a51000620000c3919062000c54565b601355348015620000d357600080fd5b50620000f4620000e86200091760201b60201c565b6200091f60201b60201c565b601260149054906101000a900460ff161562000147576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200013e9062000d16565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001ed573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000213919062000da2565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200027b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002a1919062000da2565b6040518363ffffffff1660e01b8152600401620002c092919062000de5565b6020604051808303816000875af1158015620002e0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000306919062000da2565b601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000392573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003b8919062000da2565b73ffffffffffffffffffffffffffffffffffffffff1663e6a43905308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000420573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000446919062000da2565b6040518363ffffffff1660e01b81526004016200046592919062000de5565b602060405180830381865afa15801562000483573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004a9919062000da2565b601060026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073d5d0e23eef39f1c9fa01fd2093f9616385545db1601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506013546001600062000555620009e360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008060006101f4905060008060006101f49050856005819055508460068190555083600781905550600754600654600554620005d1919062000a45565b620005dd919062000a45565b6008819055508260098190555081600a8190555080600b81905550600b54600a546009546200060d919062000a45565b62000619919062000a45565b600c8190555060016003600062000635620009e360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460006200076e620009e360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620008a1620009e360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60135460405162000902919062000e23565b60405180910390a35050505050505062000e40565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000a528262000a0c565b915062000a5f8362000a0c565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000a975762000a9662000a16565b5b828201905092915050565b60008160011c9050919050565b6000808291508390505b600185111562000b015780860481111562000ad95762000ad862000a16565b5b600185161562000ae95780820291505b808102905062000af98562000aa2565b945062000ab9565b94509492505050565b60008262000b1c576001905062000bef565b8162000b2c576000905062000bef565b816001811462000b45576002811462000b505762000b86565b600191505062000bef565b60ff84111562000b655762000b6462000a16565b5b8360020a91508482111562000b7f5762000b7e62000a16565b5b5062000bef565b5060208310610133831016604e8410600b841016171562000bc05782820a90508381111562000bba5762000bb962000a16565b5b62000bef565b62000bcf848484600162000aaf565b9250905081840481111562000be95762000be862000a16565b5b81810290505b9392505050565b600060ff82169050919050565b600062000c108262000a0c565b915062000c1d8362000bf6565b925062000c4c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000b0a565b905092915050565b600062000c618262000a0c565b915062000c6e8362000a0c565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000caa5762000ca962000a16565b5b828202905092915050565b600082825260208201905092915050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b600062000cfe60178362000cb5565b915062000d0b8262000cc6565b602082019050919050565b6000602082019050818103600083015262000d318162000cef565b9050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000d6a8262000d3d565b9050919050565b62000d7c8162000d5d565b811462000d8857600080fd5b50565b60008151905062000d9c8162000d71565b92915050565b60006020828403121562000dbb5762000dba62000d38565b5b600062000dcb8482850162000d8b565b91505092915050565b62000ddf8162000d5d565b82525050565b600060408201905062000dfc600083018562000dd4565b62000e0b602083018462000dd4565b9392505050565b62000e1d8162000a0c565b82525050565b600060208201905062000e3a600083018462000e12565b92915050565b6135e48062000e506000396000f3fe6080604052600436106101fd5760003560e01c80638da5cb5b1161010d578063c9567bf9116100a0578063dd62ed3e1161006f578063dd62ed3e14610702578063ea2f0b371461073f578063ebece9c914610768578063f239eab814610791578063f2fde38b146107bc57610204565b8063c9567bf91461066a578063c99f2fed14610681578063cc70acee146106ac578063d0a39814146106d757610204565b80639f71146d116100dc5780639f71146d146105ae578063a8b08982146105d7578063a9059cbb14610602578063b9e937001461063f57610204565b80638da5cb5b14610502578063921369131461052d57806395d89b41146105585780639740a9461461058357610204565b8063313ce567116101905780636cce46fc1161015f5780636cce46fc1461042d57806370a0823114610458578063715018a6146104955780637bce5a04146104ac57806384d6c8c6146104d757610204565b8063313ce567146103855780633722355c146103b0578063437823ec146103d957806347afcbfe1461040257610204565b806318160ddd116101cc57806318160ddd146102c75780631d6167ac146102f25780631f3fed8f1461031d57806323b872dd1461034857610204565b806303fd2a451461020957806306fdde0314610234578063095ea7b31461025f5780630fa604e41461029c57610204565b3661020457005b600080fd5b34801561021557600080fd5b5061021e6107e5565b60405161022b91906125b4565b60405180910390f35b34801561024057600080fd5b506102496107eb565b6040516102569190612668565b60405180910390f35b34801561026b57600080fd5b50610286600480360381019061028191906126f1565b610828565b604051610293919061274c565b60405180910390f35b3480156102a857600080fd5b506102b1610846565b6040516102be9190612776565b60405180910390f35b3480156102d357600080fd5b506102dc610850565b6040516102e99190612776565b60405180910390f35b3480156102fe57600080fd5b5061030761085a565b60405161031491906127ae565b60405180910390f35b34801561032957600080fd5b5061033261086e565b60405161033f9190612776565b60405180910390f35b34801561035457600080fd5b5061036f600480360381019061036a91906127c9565b610874565b60405161037c919061274c565b60405180910390f35b34801561039157600080fd5b5061039a610975565b6040516103a79190612838565b60405180910390f35b3480156103bc57600080fd5b506103d760048036038101906103d29190612853565b61097e565b005b3480156103e557600080fd5b5061040060048036038101906103fb9190612853565b610a55565b005b34801561040e57600080fd5b50610417610b2c565b6040516104249190612776565b60405180910390f35b34801561043957600080fd5b50610442610b32565b60405161044f9190612776565b60405180910390f35b34801561046457600080fd5b5061047f600480360381019061047a9190612853565b610b38565b60405161048c9190612776565b60405180910390f35b3480156104a157600080fd5b506104aa610b81565b005b3480156104b857600080fd5b506104c1610c09565b6040516104ce9190612776565b60405180910390f35b3480156104e357600080fd5b506104ec610c0f565b6040516104f99190612776565b60405180910390f35b34801561050e57600080fd5b50610517610c19565b60405161052491906125b4565b60405180910390f35b34801561053957600080fd5b50610542610c42565b60405161054f9190612776565b60405180910390f35b34801561056457600080fd5b5061056d610c48565b60405161057a9190612668565b60405180910390f35b34801561058f57600080fd5b50610598610c85565b6040516105a59190612776565b60405180910390f35b3480156105ba57600080fd5b506105d560048036038101906105d09190612853565b610c8b565b005b3480156105e357600080fd5b506105ec610d62565b6040516105f991906125b4565b60405180910390f35b34801561060e57600080fd5b50610629600480360381019061062491906126f1565b610d88565b604051610636919061274c565b60405180910390f35b34801561064b57600080fd5b50610654610da6565b6040516106619190612776565b60405180910390f35b34801561067657600080fd5b5061067f610dac565b005b34801561068d57600080fd5b50610696610fdb565b6040516106a39190612776565b60405180910390f35b3480156106b857600080fd5b506106c1610fe1565b6040516106ce9190612776565b60405180910390f35b3480156106e357600080fd5b506106ec610fe7565b6040516106f99190612776565b60405180910390f35b34801561070e57600080fd5b5061072960048036038101906107249190612880565b610fed565b6040516107369190612776565b60405180910390f35b34801561074b57600080fd5b5061076660048036038101906107619190612853565b611074565b005b34801561077457600080fd5b5061078f600480360381019061078a91906128c0565b61114b565b005b34801561079d57600080fd5b506107a6611209565b6040516107b39190612776565b60405180910390f35b3480156107c857600080fd5b506107e360048036038101906107de9190612853565b61120f565b005b61dead81565b60606040518060400160405280600e81526020017f4472756e6b656e204d6173746572000000000000000000000000000000000000815250905090565b600061083c610835611306565b848461130e565b6001905092915050565b6000601454905090565b6000601354905090565b601060009054906101000a900461ffff1681565b600f5481565b60006108818484846114d7565b6000600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006108cc611306565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101561094c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161094390612972565b60405180910390fd5b61096985610958611306565b858461096491906129c1565b61130e565b60019150509392505050565b60006009905090565b610986611306565b73ffffffffffffffffffffffffffffffffffffffff166109a4610c19565b73ffffffffffffffffffffffffffffffffffffffff16146109fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109f190612a41565b60405180910390fd5b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610a5d611306565b73ffffffffffffffffffffffffffffffffffffffff16610a7b610c19565b73ffffffffffffffffffffffffffffffffffffffff1614610ad1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ac890612a41565b60405180910390fd5b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600a5481565b60095481565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610b89611306565b73ffffffffffffffffffffffffffffffffffffffff16610ba7610c19565b73ffffffffffffffffffffffffffffffffffffffff1614610bfd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf490612a41565b60405180910390fd5b610c076000611bb4565b565b60075481565b6000601554905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600b5481565b60606040518060400160405280600681526020017f5375696b656e0000000000000000000000000000000000000000000000000000815250905090565b600d5481565b610c93611306565b73ffffffffffffffffffffffffffffffffffffffff16610cb1610c19565b73ffffffffffffffffffffffffffffffffffffffff1614610d07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cfe90612a41565b60405180910390fd5b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b601060029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610d9c610d95611306565b84846114d7565b6001905092915050565b60085481565b610db4611306565b73ffffffffffffffffffffffffffffffffffffffff16610dd2610c19565b73ffffffffffffffffffffffffffffffffffffffff1614610e28576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1f90612a41565b60405180910390fd5b601260149054906101000a900460ff1615610e78576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6f90612aad565b60405180910390fd5b6001601260166101000a81548160ff0219169083151502179055506009600a610ea19190612c00565b6402540be401610eb19190612c4b565b6015819055506009600a610ec59190612c00565b6402540be401610ed59190612c4b565b6014819055506001601260146101000a81548160ff021916908315150217905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610f95929190612ca5565b6020604051808303816000875af1158015610fb4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fd89190612cfa565b50565b60065481565b600e5481565b600c5481565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61107c611306565b73ffffffffffffffffffffffffffffffffffffffff1661109a610c19565b73ffffffffffffffffffffffffffffffffffffffff16146110f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110e790612a41565b60405180910390fd5b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b611153611306565b73ffffffffffffffffffffffffffffffffffffffff16611171610c19565b73ffffffffffffffffffffffffffffffffffffffff16146111c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111be90612a41565b60405180910390fd5b6009600a6111d59190612c00565b826111e09190612c4b565b6015819055506009600a6111f49190612c00565b816111ff9190612c4b565b6014819055505050565b60055481565b611217611306565b73ffffffffffffffffffffffffffffffffffffffff16611235610c19565b73ffffffffffffffffffffffffffffffffffffffff161461128b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128290612a41565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036112fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112f190612d99565b60405180910390fd5b61130381611bb4565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361137d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137490612e2b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036113ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113e390612ebd565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516114ca9190612776565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611546576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153d90612f4f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036115b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ac90612fe1565b60405180910390fd5b600081116115f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ef90613073565b60405180910390fd5b61160183610b38565b811115611643576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163a90613105565b60405180910390fd5b601260149054906101000a900460ff16806116a75750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806116fb5750600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61173a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173190613171565b60405180910390fd5b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156117e55750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561183b5750600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156118de57601554811115611885576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161187c906131dd565b60405180910390fd5b6014548161189284610b38565b61189c91906131fd565b11156118dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118d49061329f565b60405180910390fd5b5b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156119895750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156119df5750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611a3d576014546119f083610b38565b826119fb91906131fd565b1115611a3c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a3390613331565b60405180910390fd5b5b6000611a4830610b38565b9050601260159054906101000a900460ff16158015611ab55750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611acd5750601260169054906101000a900460ff165b8015611ad95750600081115b15611b0157611ae781611c78565b60004790506000811115611aff57611afe47611ef1565b5b505b611bae848484600360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611ba85750600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611f5d565b50505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6001601260156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611cb057611caf613351565b5b604051908082528060200260200182016040528015611cde5781602001602082028036833780820191505090505b5090503081600081518110611cf657611cf5613380565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d9d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dc191906133c4565b81600181518110611dd557611dd4613380565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611e3c30601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461130e565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611ea09594939291906134f4565b600060405180830381600087803b158015611eba57600080fd5b505af1158015611ece573d6000803e3d6000fd5b50505050506000601260156101000a81548160ff02191690831515021790555050565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611f59573d6000803e3d6000fd5b5050565b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611fac91906129c1565b92505081905550600081611fc05782611fcc565b611fcb858585612090565b5b905080600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461201d91906131fd565b925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516120819190612776565b60405180910390a35050505050565b6000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156120f157506000600854115b1561219457601060009054906101000a900461ffff1661ffff16600554836121199190612c4b565b612123919061357d565b600d81905550601060009054906101000a900461ffff1661ffff166006548361214c9190612c4b565b612156919061357d565b600e81905550601060009054906101000a900461ffff1661ffff166007548361217f9190612c4b565b612189919061357d565b600f81905550612293565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156121f357506000600c54115b1561229257601060009054906101000a900461ffff1661ffff166009548361221b9190612c4b565b612225919061357d565b600d81905550601060009054906101000a900461ffff1661ffff16600a548361224e9190612c4b565b612258919061357d565b600e81905550601060009054906101000a900461ffff1661ffff16600b54836122819190612c4b565b61228b919061357d565b600f819055505b5b600d5460016000601060029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461230691906131fd565b92505081905550601060029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600d5460405161238e9190612776565b60405180910390a3600e546001600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546123e991906131fd565b92505081905550600e5460135461240091906129c1565b60138190555061240e610850565b60138190555061dead73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600e546040516124759190612776565b60405180910390a3600f54600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546124ce91906131fd565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600f546040516125349190612776565b60405180910390a36000600f54600e54600d5461255191906131fd565b61255b91906131fd565b9050808361256991906129c1565b9150509392505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061259e82612573565b9050919050565b6125ae81612593565b82525050565b60006020820190506125c960008301846125a5565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156126095780820151818401526020810190506125ee565b83811115612618576000848401525b50505050565b6000601f19601f8301169050919050565b600061263a826125cf565b61264481856125da565b93506126548185602086016125eb565b61265d8161261e565b840191505092915050565b60006020820190508181036000830152612682818461262f565b905092915050565b600080fd5b61269881612593565b81146126a357600080fd5b50565b6000813590506126b58161268f565b92915050565b6000819050919050565b6126ce816126bb565b81146126d957600080fd5b50565b6000813590506126eb816126c5565b92915050565b600080604083850312156127085761270761268a565b5b6000612716858286016126a6565b9250506020612727858286016126dc565b9150509250929050565b60008115159050919050565b61274681612731565b82525050565b6000602082019050612761600083018461273d565b92915050565b612770816126bb565b82525050565b600060208201905061278b6000830184612767565b92915050565b600061ffff82169050919050565b6127a881612791565b82525050565b60006020820190506127c3600083018461279f565b92915050565b6000806000606084860312156127e2576127e161268a565b5b60006127f0868287016126a6565b9350506020612801868287016126a6565b9250506040612812868287016126dc565b9150509250925092565b600060ff82169050919050565b6128328161281c565b82525050565b600060208201905061284d6000830184612829565b92915050565b6000602082840312156128695761286861268a565b5b6000612877848285016126a6565b91505092915050565b600080604083850312156128975761289661268a565b5b60006128a5858286016126a6565b92505060206128b6858286016126a6565b9150509250929050565b600080604083850312156128d7576128d661268a565b5b60006128e5858286016126dc565b92505060206128f6858286016126dc565b9150509250929050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b600061295c6028836125da565b915061296782612900565b604082019050919050565b6000602082019050818103600083015261298b8161294f565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006129cc826126bb565b91506129d7836126bb565b9250828210156129ea576129e9612992565b5b828203905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612a2b6020836125da565b9150612a36826129f5565b602082019050919050565b60006020820190508181036000830152612a5a81612a1e565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000612a976017836125da565b9150612aa282612a61565b602082019050919050565b60006020820190508181036000830152612ac681612a8a565b9050919050565b60008160011c9050919050565b6000808291508390505b6001851115612b2457808604811115612b0057612aff612992565b5b6001851615612b0f5780820291505b8081029050612b1d85612acd565b9450612ae4565b94509492505050565b600082612b3d5760019050612bf9565b81612b4b5760009050612bf9565b8160018114612b615760028114612b6b57612b9a565b6001915050612bf9565b60ff841115612b7d57612b7c612992565b5b8360020a915084821115612b9457612b93612992565b5b50612bf9565b5060208310610133831016604e8410600b8410161715612bcf5782820a905083811115612bca57612bc9612992565b5b612bf9565b612bdc8484846001612ada565b92509050818404811115612bf357612bf2612992565b5b81810290505b9392505050565b6000612c0b826126bb565b9150612c168361281c565b9250612c437fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612b2d565b905092915050565b6000612c56826126bb565b9150612c61836126bb565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612c9a57612c99612992565b5b828202905092915050565b6000604082019050612cba60008301856125a5565b612cc76020830184612767565b9392505050565b612cd781612731565b8114612ce257600080fd5b50565b600081519050612cf481612cce565b92915050565b600060208284031215612d1057612d0f61268a565b5b6000612d1e84828501612ce5565b91505092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612d836026836125da565b9150612d8e82612d27565b604082019050919050565b60006020820190508181036000830152612db281612d76565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612e156024836125da565b9150612e2082612db9565b604082019050919050565b60006020820190508181036000830152612e4481612e08565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612ea76022836125da565b9150612eb282612e4b565b604082019050919050565b60006020820190508181036000830152612ed681612e9a565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612f396025836125da565b9150612f4482612edd565b604082019050919050565b60006020820190508181036000830152612f6881612f2c565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612fcb6023836125da565b9150612fd682612f6f565b604082019050919050565b60006020820190508181036000830152612ffa81612fbe565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061305d6029836125da565b915061306882613001565b604082019050919050565b6000602082019050818103600083015261308c81613050565b9050919050565b7f596f752061726520747279696e6720746f207472616e73666572206d6f72652060008201527f7468616e20796f75722062616c616e6365000000000000000000000000000000602082015250565b60006130ef6031836125da565b91506130fa82613093565b604082019050919050565b6000602082019050818103600083015261311e816130e2565b9050919050565b7f54726164696e67206e6f7420656e61626c656420796574000000000000000000600082015250565b600061315b6017836125da565b915061316682613125565b602082019050919050565b6000602082019050818103600083015261318a8161314e565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b60006131c76019836125da565b91506131d282613191565b602082019050919050565b600060208201905081810360008301526131f6816131ba565b9050919050565b6000613208826126bb565b9150613213836126bb565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561324857613247612992565b5b828201905092915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b6000613289601a836125da565b915061329482613253565b602082019050919050565b600060208201905081810360008301526132b88161327c565b9050919050565b7f526563697069656e742065786365656473206d61782077616c6c65742073697a60008201527f652e000000000000000000000000000000000000000000000000000000000000602082015250565b600061331b6022836125da565b9150613326826132bf565b604082019050919050565b6000602082019050818103600083015261334a8161330e565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000815190506133be8161268f565b92915050565b6000602082840312156133da576133d961268a565b5b60006133e8848285016133af565b91505092915050565b6000819050919050565b6000819050919050565b600061342061341b613416846133f1565b6133fb565b6126bb565b9050919050565b61343081613405565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61346b81612593565b82525050565b600061347d8383613462565b60208301905092915050565b6000602082019050919050565b60006134a182613436565b6134ab8185613441565b93506134b683613452565b8060005b838110156134e75781516134ce8882613471565b97506134d983613489565b9250506001810190506134ba565b5085935050505092915050565b600060a0820190506135096000830188612767565b6135166020830187613427565b81810360408301526135288186613496565b905061353760608301856125a5565b6135446080830184612767565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613588826126bb565b9150613593836126bb565b9250826135a3576135a261354e565b5b82820490509291505056fea26469706673582212203458c8f66bb6a3c614b9954c675451de01b7e6b2a38ef10173cab8728ae51ec264736f6c634300080f0033

Deployed Bytecode

0x6080604052600436106101fd5760003560e01c80638da5cb5b1161010d578063c9567bf9116100a0578063dd62ed3e1161006f578063dd62ed3e14610702578063ea2f0b371461073f578063ebece9c914610768578063f239eab814610791578063f2fde38b146107bc57610204565b8063c9567bf91461066a578063c99f2fed14610681578063cc70acee146106ac578063d0a39814146106d757610204565b80639f71146d116100dc5780639f71146d146105ae578063a8b08982146105d7578063a9059cbb14610602578063b9e937001461063f57610204565b80638da5cb5b14610502578063921369131461052d57806395d89b41146105585780639740a9461461058357610204565b8063313ce567116101905780636cce46fc1161015f5780636cce46fc1461042d57806370a0823114610458578063715018a6146104955780637bce5a04146104ac57806384d6c8c6146104d757610204565b8063313ce567146103855780633722355c146103b0578063437823ec146103d957806347afcbfe1461040257610204565b806318160ddd116101cc57806318160ddd146102c75780631d6167ac146102f25780631f3fed8f1461031d57806323b872dd1461034857610204565b806303fd2a451461020957806306fdde0314610234578063095ea7b31461025f5780630fa604e41461029c57610204565b3661020457005b600080fd5b34801561021557600080fd5b5061021e6107e5565b60405161022b91906125b4565b60405180910390f35b34801561024057600080fd5b506102496107eb565b6040516102569190612668565b60405180910390f35b34801561026b57600080fd5b50610286600480360381019061028191906126f1565b610828565b604051610293919061274c565b60405180910390f35b3480156102a857600080fd5b506102b1610846565b6040516102be9190612776565b60405180910390f35b3480156102d357600080fd5b506102dc610850565b6040516102e99190612776565b60405180910390f35b3480156102fe57600080fd5b5061030761085a565b60405161031491906127ae565b60405180910390f35b34801561032957600080fd5b5061033261086e565b60405161033f9190612776565b60405180910390f35b34801561035457600080fd5b5061036f600480360381019061036a91906127c9565b610874565b60405161037c919061274c565b60405180910390f35b34801561039157600080fd5b5061039a610975565b6040516103a79190612838565b60405180910390f35b3480156103bc57600080fd5b506103d760048036038101906103d29190612853565b61097e565b005b3480156103e557600080fd5b5061040060048036038101906103fb9190612853565b610a55565b005b34801561040e57600080fd5b50610417610b2c565b6040516104249190612776565b60405180910390f35b34801561043957600080fd5b50610442610b32565b60405161044f9190612776565b60405180910390f35b34801561046457600080fd5b5061047f600480360381019061047a9190612853565b610b38565b60405161048c9190612776565b60405180910390f35b3480156104a157600080fd5b506104aa610b81565b005b3480156104b857600080fd5b506104c1610c09565b6040516104ce9190612776565b60405180910390f35b3480156104e357600080fd5b506104ec610c0f565b6040516104f99190612776565b60405180910390f35b34801561050e57600080fd5b50610517610c19565b60405161052491906125b4565b60405180910390f35b34801561053957600080fd5b50610542610c42565b60405161054f9190612776565b60405180910390f35b34801561056457600080fd5b5061056d610c48565b60405161057a9190612668565b60405180910390f35b34801561058f57600080fd5b50610598610c85565b6040516105a59190612776565b60405180910390f35b3480156105ba57600080fd5b506105d560048036038101906105d09190612853565b610c8b565b005b3480156105e357600080fd5b506105ec610d62565b6040516105f991906125b4565b60405180910390f35b34801561060e57600080fd5b50610629600480360381019061062491906126f1565b610d88565b604051610636919061274c565b60405180910390f35b34801561064b57600080fd5b50610654610da6565b6040516106619190612776565b60405180910390f35b34801561067657600080fd5b5061067f610dac565b005b34801561068d57600080fd5b50610696610fdb565b6040516106a39190612776565b60405180910390f35b3480156106b857600080fd5b506106c1610fe1565b6040516106ce9190612776565b60405180910390f35b3480156106e357600080fd5b506106ec610fe7565b6040516106f99190612776565b60405180910390f35b34801561070e57600080fd5b5061072960048036038101906107249190612880565b610fed565b6040516107369190612776565b60405180910390f35b34801561074b57600080fd5b5061076660048036038101906107619190612853565b611074565b005b34801561077457600080fd5b5061078f600480360381019061078a91906128c0565b61114b565b005b34801561079d57600080fd5b506107a6611209565b6040516107b39190612776565b60405180910390f35b3480156107c857600080fd5b506107e360048036038101906107de9190612853565b61120f565b005b61dead81565b60606040518060400160405280600e81526020017f4472756e6b656e204d6173746572000000000000000000000000000000000000815250905090565b600061083c610835611306565b848461130e565b6001905092915050565b6000601454905090565b6000601354905090565b601060009054906101000a900461ffff1681565b600f5481565b60006108818484846114d7565b6000600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006108cc611306565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101561094c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161094390612972565b60405180910390fd5b61096985610958611306565b858461096491906129c1565b61130e565b60019150509392505050565b60006009905090565b610986611306565b73ffffffffffffffffffffffffffffffffffffffff166109a4610c19565b73ffffffffffffffffffffffffffffffffffffffff16146109fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109f190612a41565b60405180910390fd5b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610a5d611306565b73ffffffffffffffffffffffffffffffffffffffff16610a7b610c19565b73ffffffffffffffffffffffffffffffffffffffff1614610ad1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ac890612a41565b60405180910390fd5b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600a5481565b60095481565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610b89611306565b73ffffffffffffffffffffffffffffffffffffffff16610ba7610c19565b73ffffffffffffffffffffffffffffffffffffffff1614610bfd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf490612a41565b60405180910390fd5b610c076000611bb4565b565b60075481565b6000601554905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600b5481565b60606040518060400160405280600681526020017f5375696b656e0000000000000000000000000000000000000000000000000000815250905090565b600d5481565b610c93611306565b73ffffffffffffffffffffffffffffffffffffffff16610cb1610c19565b73ffffffffffffffffffffffffffffffffffffffff1614610d07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cfe90612a41565b60405180910390fd5b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b601060029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610d9c610d95611306565b84846114d7565b6001905092915050565b60085481565b610db4611306565b73ffffffffffffffffffffffffffffffffffffffff16610dd2610c19565b73ffffffffffffffffffffffffffffffffffffffff1614610e28576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1f90612a41565b60405180910390fd5b601260149054906101000a900460ff1615610e78576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6f90612aad565b60405180910390fd5b6001601260166101000a81548160ff0219169083151502179055506009600a610ea19190612c00565b6402540be401610eb19190612c4b565b6015819055506009600a610ec59190612c00565b6402540be401610ed59190612c4b565b6014819055506001601260146101000a81548160ff021916908315150217905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610f95929190612ca5565b6020604051808303816000875af1158015610fb4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fd89190612cfa565b50565b60065481565b600e5481565b600c5481565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61107c611306565b73ffffffffffffffffffffffffffffffffffffffff1661109a610c19565b73ffffffffffffffffffffffffffffffffffffffff16146110f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110e790612a41565b60405180910390fd5b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b611153611306565b73ffffffffffffffffffffffffffffffffffffffff16611171610c19565b73ffffffffffffffffffffffffffffffffffffffff16146111c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111be90612a41565b60405180910390fd5b6009600a6111d59190612c00565b826111e09190612c4b565b6015819055506009600a6111f49190612c00565b816111ff9190612c4b565b6014819055505050565b60055481565b611217611306565b73ffffffffffffffffffffffffffffffffffffffff16611235610c19565b73ffffffffffffffffffffffffffffffffffffffff161461128b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128290612a41565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036112fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112f190612d99565b60405180910390fd5b61130381611bb4565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361137d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137490612e2b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036113ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113e390612ebd565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516114ca9190612776565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611546576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153d90612f4f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036115b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ac90612fe1565b60405180910390fd5b600081116115f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ef90613073565b60405180910390fd5b61160183610b38565b811115611643576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163a90613105565b60405180910390fd5b601260149054906101000a900460ff16806116a75750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806116fb5750600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61173a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173190613171565b60405180910390fd5b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156117e55750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561183b5750600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156118de57601554811115611885576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161187c906131dd565b60405180910390fd5b6014548161189284610b38565b61189c91906131fd565b11156118dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118d49061329f565b60405180910390fd5b5b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156119895750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156119df5750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611a3d576014546119f083610b38565b826119fb91906131fd565b1115611a3c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a3390613331565b60405180910390fd5b5b6000611a4830610b38565b9050601260159054906101000a900460ff16158015611ab55750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611acd5750601260169054906101000a900460ff165b8015611ad95750600081115b15611b0157611ae781611c78565b60004790506000811115611aff57611afe47611ef1565b5b505b611bae848484600360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611ba85750600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611f5d565b50505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6001601260156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611cb057611caf613351565b5b604051908082528060200260200182016040528015611cde5781602001602082028036833780820191505090505b5090503081600081518110611cf657611cf5613380565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d9d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dc191906133c4565b81600181518110611dd557611dd4613380565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611e3c30601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461130e565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611ea09594939291906134f4565b600060405180830381600087803b158015611eba57600080fd5b505af1158015611ece573d6000803e3d6000fd5b50505050506000601260156101000a81548160ff02191690831515021790555050565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611f59573d6000803e3d6000fd5b5050565b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611fac91906129c1565b92505081905550600081611fc05782611fcc565b611fcb858585612090565b5b905080600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461201d91906131fd565b925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516120819190612776565b60405180910390a35050505050565b6000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156120f157506000600854115b1561219457601060009054906101000a900461ffff1661ffff16600554836121199190612c4b565b612123919061357d565b600d81905550601060009054906101000a900461ffff1661ffff166006548361214c9190612c4b565b612156919061357d565b600e81905550601060009054906101000a900461ffff1661ffff166007548361217f9190612c4b565b612189919061357d565b600f81905550612293565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156121f357506000600c54115b1561229257601060009054906101000a900461ffff1661ffff166009548361221b9190612c4b565b612225919061357d565b600d81905550601060009054906101000a900461ffff1661ffff16600a548361224e9190612c4b565b612258919061357d565b600e81905550601060009054906101000a900461ffff1661ffff16600b54836122819190612c4b565b61228b919061357d565b600f819055505b5b600d5460016000601060029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461230691906131fd565b92505081905550601060029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600d5460405161238e9190612776565b60405180910390a3600e546001600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546123e991906131fd565b92505081905550600e5460135461240091906129c1565b60138190555061240e610850565b60138190555061dead73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600e546040516124759190612776565b60405180910390a3600f54600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546124ce91906131fd565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600f546040516125349190612776565b60405180910390a36000600f54600e54600d5461255191906131fd565b61255b91906131fd565b9050808361256991906129c1565b9150509392505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061259e82612573565b9050919050565b6125ae81612593565b82525050565b60006020820190506125c960008301846125a5565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156126095780820151818401526020810190506125ee565b83811115612618576000848401525b50505050565b6000601f19601f8301169050919050565b600061263a826125cf565b61264481856125da565b93506126548185602086016125eb565b61265d8161261e565b840191505092915050565b60006020820190508181036000830152612682818461262f565b905092915050565b600080fd5b61269881612593565b81146126a357600080fd5b50565b6000813590506126b58161268f565b92915050565b6000819050919050565b6126ce816126bb565b81146126d957600080fd5b50565b6000813590506126eb816126c5565b92915050565b600080604083850312156127085761270761268a565b5b6000612716858286016126a6565b9250506020612727858286016126dc565b9150509250929050565b60008115159050919050565b61274681612731565b82525050565b6000602082019050612761600083018461273d565b92915050565b612770816126bb565b82525050565b600060208201905061278b6000830184612767565b92915050565b600061ffff82169050919050565b6127a881612791565b82525050565b60006020820190506127c3600083018461279f565b92915050565b6000806000606084860312156127e2576127e161268a565b5b60006127f0868287016126a6565b9350506020612801868287016126a6565b9250506040612812868287016126dc565b9150509250925092565b600060ff82169050919050565b6128328161281c565b82525050565b600060208201905061284d6000830184612829565b92915050565b6000602082840312156128695761286861268a565b5b6000612877848285016126a6565b91505092915050565b600080604083850312156128975761289661268a565b5b60006128a5858286016126a6565b92505060206128b6858286016126a6565b9150509250929050565b600080604083850312156128d7576128d661268a565b5b60006128e5858286016126dc565b92505060206128f6858286016126dc565b9150509250929050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b600061295c6028836125da565b915061296782612900565b604082019050919050565b6000602082019050818103600083015261298b8161294f565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006129cc826126bb565b91506129d7836126bb565b9250828210156129ea576129e9612992565b5b828203905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612a2b6020836125da565b9150612a36826129f5565b602082019050919050565b60006020820190508181036000830152612a5a81612a1e565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000612a976017836125da565b9150612aa282612a61565b602082019050919050565b60006020820190508181036000830152612ac681612a8a565b9050919050565b60008160011c9050919050565b6000808291508390505b6001851115612b2457808604811115612b0057612aff612992565b5b6001851615612b0f5780820291505b8081029050612b1d85612acd565b9450612ae4565b94509492505050565b600082612b3d5760019050612bf9565b81612b4b5760009050612bf9565b8160018114612b615760028114612b6b57612b9a565b6001915050612bf9565b60ff841115612b7d57612b7c612992565b5b8360020a915084821115612b9457612b93612992565b5b50612bf9565b5060208310610133831016604e8410600b8410161715612bcf5782820a905083811115612bca57612bc9612992565b5b612bf9565b612bdc8484846001612ada565b92509050818404811115612bf357612bf2612992565b5b81810290505b9392505050565b6000612c0b826126bb565b9150612c168361281c565b9250612c437fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612b2d565b905092915050565b6000612c56826126bb565b9150612c61836126bb565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612c9a57612c99612992565b5b828202905092915050565b6000604082019050612cba60008301856125a5565b612cc76020830184612767565b9392505050565b612cd781612731565b8114612ce257600080fd5b50565b600081519050612cf481612cce565b92915050565b600060208284031215612d1057612d0f61268a565b5b6000612d1e84828501612ce5565b91505092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612d836026836125da565b9150612d8e82612d27565b604082019050919050565b60006020820190508181036000830152612db281612d76565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612e156024836125da565b9150612e2082612db9565b604082019050919050565b60006020820190508181036000830152612e4481612e08565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612ea76022836125da565b9150612eb282612e4b565b604082019050919050565b60006020820190508181036000830152612ed681612e9a565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612f396025836125da565b9150612f4482612edd565b604082019050919050565b60006020820190508181036000830152612f6881612f2c565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612fcb6023836125da565b9150612fd682612f6f565b604082019050919050565b60006020820190508181036000830152612ffa81612fbe565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061305d6029836125da565b915061306882613001565b604082019050919050565b6000602082019050818103600083015261308c81613050565b9050919050565b7f596f752061726520747279696e6720746f207472616e73666572206d6f72652060008201527f7468616e20796f75722062616c616e6365000000000000000000000000000000602082015250565b60006130ef6031836125da565b91506130fa82613093565b604082019050919050565b6000602082019050818103600083015261311e816130e2565b9050919050565b7f54726164696e67206e6f7420656e61626c656420796574000000000000000000600082015250565b600061315b6017836125da565b915061316682613125565b602082019050919050565b6000602082019050818103600083015261318a8161314e565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b60006131c76019836125da565b91506131d282613191565b602082019050919050565b600060208201905081810360008301526131f6816131ba565b9050919050565b6000613208826126bb565b9150613213836126bb565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561324857613247612992565b5b828201905092915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b6000613289601a836125da565b915061329482613253565b602082019050919050565b600060208201905081810360008301526132b88161327c565b9050919050565b7f526563697069656e742065786365656473206d61782077616c6c65742073697a60008201527f652e000000000000000000000000000000000000000000000000000000000000602082015250565b600061331b6022836125da565b9150613326826132bf565b604082019050919050565b6000602082019050818103600083015261334a8161330e565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000815190506133be8161268f565b92915050565b6000602082840312156133da576133d961268a565b5b60006133e8848285016133af565b91505092915050565b6000819050919050565b6000819050919050565b600061342061341b613416846133f1565b6133fb565b6126bb565b9050919050565b61343081613405565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61346b81612593565b82525050565b600061347d8383613462565b60208301905092915050565b6000602082019050919050565b60006134a182613436565b6134ab8185613441565b93506134b683613452565b8060005b838110156134e75781516134ce8882613471565b97506134d983613489565b9250506001810190506134ba565b5085935050505092915050565b600060a0820190506135096000830188612767565b6135166020830187613427565b81810360408301526135288186613496565b905061353760608301856125a5565b6135446080830184612767565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613588826126bb565b9150613593836126bb565b9250826135a3576135a261354e565b5b82820490509291505056fea26469706673582212203458c8f66bb6a3c614b9954c675451de01b7e6b2a38ef10173cab8728ae51ec264736f6c634300080f0033

Deployed Bytecode Sourcemap

4301:10324:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5400:73;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8194:69;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9067:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8348:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8586:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5353:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5313:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9213:420;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8511:69;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13994:123;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13756:111;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5055:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5013:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8673:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2964:94;;;;;;;;;;;;;:::i;:::-;;4883:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8269:73;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2741:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5092:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8432:73;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5228:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14125:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5480:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8782:144;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4920:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7824:362;;;;;;;;;;;;;:::i;:::-;;4847:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5272:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5130:89;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8932:129;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13875:110;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14255:217;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4806:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3066:192;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5400:73;5431:42;5400:73;:::o;8194:69::-;8231:13;8255:5;;;;;;;;;;;;;;;;;8248:12;;8194:69;:::o;9067:138::-;9142:4;9150:39;9159:12;:10;:12::i;:::-;9173:7;9182:6;9150:8;:39::i;:::-;9198:4;9191:11;;9067:138;;;;:::o;8348:78::-;8392:7;8409:15;;8402:22;;8348:78;:::o;8586:81::-;8639:7;8657;;8650:14;;8586:81;:::o;5353:38::-;;;;;;;;;;;;;:::o;5313:33::-;;;;:::o;9213:420::-;9319:4;9336:36;9346:6;9354:9;9365:6;9336:9;:36::i;:::-;9385:24;9412:11;:19;9424:6;9412:19;;;;;;;;;;;;;;;:33;9432:12;:10;:12::i;:::-;9412:33;;;;;;;;;;;;;;;;9385:60;;9484:6;9464:16;:26;;9456:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;9546:57;9555:6;9563:12;:10;:12::i;:::-;9596:6;9577:16;:25;;;;:::i;:::-;9546:8;:57::i;:::-;9621:4;9614:11;;;9213:420;;;;;:::o;8511:69::-;8552:5;4796:1;8561:16;;8511:69;:::o;13994:123::-;2887:12;:10;:12::i;:::-;2876:23;;:7;:5;:7::i;:::-;:23;;;2868:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14108:4:::1;14068:28;:37;14097:7;14068:37;;;;;;;;;;;;;;;;:44;;;;;;;;;;;;;;;;;;13994:123:::0;:::o;13756:111::-;2887:12;:10;:12::i;:::-;2876:23;;:7;:5;:7::i;:::-;:23;;;2868:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13855:4:::1;13825:18;:27;13844:7;13825:27;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;13756:111:::0;:::o;5055:30::-;;;;:::o;5013:35::-;;;;:::o;8673:103::-;8739:7;8757;:16;8765:7;8757:16;;;;;;;;;;;;;;;;8750:23;;8673:103;;;:::o;2964:94::-;2887:12;:10;:12::i;:::-;2876:23;;:7;:5;:7::i;:::-;:23;;;2868:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;3029:21:::1;3047:1;3029:9;:21::i;:::-;2964:94::o:0;4883:30::-;;;;:::o;8269:73::-;8312:7;8329:11;;8322:18;;8269:73;:::o;2741:87::-;2787:7;2814:6;;;;;;;;;;;2807:13;;2741:87;:::o;5092:31::-;;;;:::o;8432:73::-;8471:13;8495:7;;;;;;;;;;;;;;;;;8488:14;;8432:73;:::o;5228:37::-;;;;:::o;14125:122::-;2887:12;:10;:12::i;:::-;2876:23;;:7;:5;:7::i;:::-;:23;;;2868:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14237:5:::1;14197:28;:37;14226:7;14197:37;;;;;;;;;;;;;;;;:45;;;;;;;;;;;;;;;;;;14125:122:::0;:::o;5480:26::-;;;;;;;;;;;;;:::o;8782:144::-;8860:4;8868:42;8878:12;:10;:12::i;:::-;8892:9;8903:6;8868:9;:42::i;:::-;8919:4;8912:11;;8782:144;;;;:::o;4920:84::-;;;;:::o;7824:362::-;2887:12;:10;:12::i;:::-;2876:23;;:7;:5;:7::i;:::-;:23;;;2868:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7888:11:::1;;;;;;;;;;;7887:12;7879:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;7951:4;7937:11;;:18;;;;;;;;;;;;;;;;;;4796:1;7994:2;:15;;;;:::i;:::-;7980:11;:29;;;;:::i;:::-;7966:11;:43;;;;4796:1;8052:2;:15;;;;:::i;:::-;8038:11;:29;;;;:::i;:::-;8020:15;:47;;;;8092:4;8078:11;;:18;;;;;;;;;;;;;;;;;;8114:13;;;;;;;;;;;8107:29;;;8145:15;;;;;;;;;;;8163:14;8107:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;7824:362::o:0;4847:29::-;;;;:::o;5272:32::-;;;;:::o;5130:89::-;;;;:::o;8932:129::-;9013:7;9031:11;:18;9043:5;9031:18;;;;;;;;;;;;;;;:27;9050:7;9031:27;;;;;;;;;;;;;;;;9024:34;;8932:129;;;;:::o;13875:110::-;2887:12;:10;:12::i;:::-;2876:23;;:7;:5;:7::i;:::-;:23;;;2868:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13972:5:::1;13942:18;:27;13961:7;13942:27;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;13875:110:::0;:::o;14255:217::-;2887:12;:10;:12::i;:::-;2876:23;;:7;:5;:7::i;:::-;:23;;;2868:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;4796:1:::1;14390:2;:14;;;;:::i;:::-;14375:12;:29;;;;:::i;:::-;14361:11;:43;;;;4796:1;14450:2;:14;;;;:::i;:::-;14433;:31;;;;:::i;:::-;14415:15;:49;;;;14255:217:::0;;:::o;4806:34::-;;;;:::o;3066:192::-;2887:12;:10;:12::i;:::-;2876:23;;:7;:5;:7::i;:::-;:23;;;2868:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;3175:1:::1;3155:22;;:8;:22;;::::0;3147:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;3231:19;3241:8;3231:9;:19::i;:::-;3066:192:::0;:::o;2162:98::-;2215:7;2242:10;2235:17;;2162:98;:::o;9641:335::-;9751:1;9734:19;;:5;:19;;;9726:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9832:1;9813:21;;:7;:21;;;9805:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9914:6;9884:11;:18;9896:5;9884:18;;;;;;;;;;;;;;;:27;9903:7;9884:27;;;;;;;;;;;;;;;:36;;;;9952:7;9936:32;;9945:5;9936:32;;;9961:6;9936:32;;;;;;:::i;:::-;;;;;;;;9641:335;;;:::o;9984:1576::-;10088:1;10072:18;;:4;:18;;;10064:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10165:1;10151:16;;:2;:16;;;10143:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;10235:1;10226:6;:10;10218:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;10311:15;10321:4;10311:9;:15::i;:::-;10301:6;:25;;10293:86;;;;;;;;;;;;:::i;:::-;;;;;;;;;10402:11;;;;;;;;;;;:39;;;;10417:18;:24;10436:4;10417:24;;;;;;;;;;;;;;;;;;;;;;;;;10402:39;:65;;;;10445:18;:22;10464:2;10445:22;;;;;;;;;;;;;;;;;;;;;;;;;10402:65;10394:101;;;;;;;;;;;;:::i;:::-;;;;;;;;;10520:13;;;;;;;;;;;10512:21;;:4;:21;;;:55;;;;;10551:15;;;;;;;;;;;10537:30;;:2;:30;;;;10512:55;:83;;;;;10573:18;:22;10592:2;10573:22;;;;;;;;;;;;;;;;;;;;;;;;;10571:24;10512:83;10508:278;;;10634:11;;10624:6;:21;;10616:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;10728:15;;10718:6;10702:13;10712:2;10702:9;:13::i;:::-;:22;;;;:::i;:::-;:41;;10694:80;;;;;;;;;;;;:::i;:::-;;;;;;;;;10508:278;10808:13;;;;;;;;;;;10800:21;;:4;:21;;;:55;;;;;10839:15;;;;;;;;;;;10825:30;;:2;:30;;;;10800:55;:93;;;;;10861:28;:32;10890:2;10861:32;;;;;;;;;;;;;;;;;;;;;;;;;10859:34;10800:93;10796:231;;;10961:15;;10944:13;10954:2;10944:9;:13::i;:::-;10935:6;:22;;;;:::i;:::-;:41;;10927:88;;;;;;;;;;;;:::i;:::-;;;;;;;;;10796:231;11039:28;11070:24;11088:4;11070:9;:24::i;:::-;11039:55;;11114:6;;;;;;;;;;;11113:7;:32;;;;;11132:13;;;;;;;;;;;11124:21;;:4;:21;;;;11113:32;:47;;;;;11149:11;;;;;;;;;;;11113:47;:73;;;;;11185:1;11164:20;:22;11113:73;11109:344;;;11207:38;11224:20;11207:16;:38::i;:::-;11264:26;11293:21;11264:50;;11357:1;11336:18;:22;11333:105;;;11383:35;11396:21;11383:12;:35::i;:::-;11333:105;11188:265;11109:344;11465:87;11480:4;11486:2;11490:6;11500:18;:24;11519:4;11500:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;11528:18;:22;11547:2;11528:22;;;;;;;;;;;;;;;;;;;;;;;;;11500:50;11498:53;11465:14;:87::i;:::-;10053:1507;9984:1576;;;:::o;3266:173::-;3322:16;3341:6;;;;;;;;;;;3322:25;;3367:8;3358:6;;:17;;;;;;;;;;;;;;;;;;3422:8;3391:40;;3412:8;3391:40;;;;;;;;;;;;3311:128;3266:173;:::o;11568:483::-;5994:4;5985:6;;:13;;;;;;;;;;;;;;;;;;11646:21:::1;11684:1;11670:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11646:40;;11715:4;11697;11702:1;11697:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;11741:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11731:4;11736:1;11731:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;11774:62;11791:4;11806:15;;;;;;;;;;;11824:11;11774:8;:62::i;:::-;11847:15;;;;;;;;;;;:66;;;11928:11;11954:1;11970:4;11997;12017:15;11847:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;11635:416;6030:5:::0;6021:6;;:14;;;;;;;;;;;;;;;;;;11568:483;:::o;14484:95::-;14541:13;;;;;;;;;;;:22;;:30;14564:6;14541:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14484:95;:::o;12059:340::-;12186:6;12167:7;:15;12175:6;12167:15;;;;;;;;;;;;;;;;:25;;;;;;;:::i;:::-;;;;;;;;12203:22;12229:7;12228:57;;12279:6;12228:57;;;12240:36;12250:6;12258:9;12269:6;12240:9;:36::i;:::-;12228:57;12203:82;;12318:14;12296:7;:18;12304:9;12296:18;;;;;;;;;;;;;;;;:36;;;;;;;:::i;:::-;;;;;;;;12365:9;12348:43;;12357:6;12348:43;;;12376:14;12348:43;;;;;;:::i;:::-;;;;;;;;12156:243;12059:340;;;;:::o;12407:1341::-;12486:7;12517:13;;;;;;;;;;;12509:21;;:4;:21;;;:41;;;;;12549:1;12534:12;;:16;12509:41;12506:649;;;12627:16;;;;;;;;;;;12594:49;;12604:19;;12595:6;:28;;;;:::i;:::-;12594:49;;;;:::i;:::-;12569:22;:74;;;;12706:16;;;;;;;;;;;12678:44;;12688:14;;12679:6;:23;;;;:::i;:::-;12678:44;;;;:::i;:::-;12658:17;:64;;;;12796:16;;;;;;;;;;;12767:45;;12777:15;;12768:6;:24;;;;:::i;:::-;12767:45;;;;:::i;:::-;12746:18;:66;;;;12506:649;;;12844:13;;;;;;;;;;;12838:19;;:2;:19;;;:41;;;;;12878:1;12862:13;;:17;12838:41;12834:321;;;12957:16;;;;;;;;;;;12923:50;;12933:20;;12924:6;:29;;;;:::i;:::-;12923:50;;;;:::i;:::-;12898:22;:75;;;;13037:16;;;;;;;;;;;13008:45;;13018:15;;13009:6;:24;;;;:::i;:::-;13008:45;;;;:::i;:::-;12988:17;:65;;;;13119:16;;;;;;;;;;;13089:46;;13099:16;;13090:6;:25;;;;:::i;:::-;13089:46;;;;:::i;:::-;13068:18;:67;;;;12834:321;12506:649;13189:22;;13165:7;:20;13173:11;;;;;;;;;;;13165:20;;;;;;;;;;;;;;;;:46;;;;;;;:::i;:::-;;;;;;;;13242:11;;;;;;;;;;;13227:51;;13236:4;13227:51;;;13255:22;;13227:51;;;;;;:::i;:::-;;;;;;;;13316:17;;13299:7;:13;5431:42;13299:13;;;;;;;;;;;;;;;;:34;;;;;;;:::i;:::-;;;;;;;;13364:17;;13354:7;;:27;;;;:::i;:::-;13344:7;:37;;;;13402:13;:11;:13::i;:::-;13392:7;:23;;;;5431:42;13431:39;;13440:4;13431:39;;;13452:17;;13431:39;;;;;;:::i;:::-;;;;;;;;13525:18;;13499:7;:22;13515:4;13499:22;;;;;;;;;;;;;;;;:44;;;;;;;:::i;:::-;;;;;;;;13582:4;13559:49;;13568:4;13559:49;;;13589:18;;13559:49;;;;;;:::i;:::-;;;;;;;;13621:17;13686:18;;13666:17;;13641:22;;:42;;;;:::i;:::-;:63;;;;:::i;:::-;13621:83;;13731:9;13722:6;:18;;;;:::i;:::-;13715:25;;;12407:1341;;;;;:::o;7:126:1:-;44:7;84:42;77:5;73:54;62:65;;7:126;;;:::o;139:96::-;176:7;205:24;223:5;205:24;:::i;:::-;194:35;;139:96;;;:::o;241:118::-;328:24;346:5;328:24;:::i;:::-;323:3;316:37;241:118;;:::o;365:222::-;458:4;496:2;485:9;481:18;473:26;;509:71;577:1;566:9;562:17;553:6;509:71;:::i;:::-;365:222;;;;:::o;593:99::-;645:6;679:5;673:12;663:22;;593:99;;;:::o;698:169::-;782:11;816:6;811:3;804:19;856:4;851:3;847:14;832:29;;698:169;;;;:::o;873:307::-;941:1;951:113;965:6;962:1;959:13;951:113;;;1050:1;1045:3;1041:11;1035:18;1031:1;1026:3;1022:11;1015:39;987:2;984:1;980:10;975:15;;951:113;;;1082:6;1079:1;1076:13;1073:101;;;1162:1;1153:6;1148:3;1144:16;1137:27;1073:101;922:258;873:307;;;:::o;1186:102::-;1227:6;1278:2;1274:7;1269:2;1262:5;1258:14;1254:28;1244:38;;1186:102;;;:::o;1294:364::-;1382:3;1410:39;1443:5;1410:39;:::i;:::-;1465:71;1529:6;1524:3;1465:71;:::i;:::-;1458:78;;1545:52;1590:6;1585:3;1578:4;1571:5;1567:16;1545:52;:::i;:::-;1622:29;1644:6;1622:29;:::i;:::-;1617:3;1613:39;1606:46;;1386:272;1294:364;;;;:::o;1664:313::-;1777:4;1815:2;1804:9;1800:18;1792:26;;1864:9;1858:4;1854:20;1850:1;1839:9;1835:17;1828:47;1892:78;1965:4;1956:6;1892:78;:::i;:::-;1884:86;;1664:313;;;;:::o;2064:117::-;2173:1;2170;2163:12;2310:122;2383:24;2401:5;2383:24;:::i;:::-;2376:5;2373:35;2363:63;;2422:1;2419;2412:12;2363:63;2310:122;:::o;2438:139::-;2484:5;2522:6;2509:20;2500:29;;2538:33;2565:5;2538:33;:::i;:::-;2438:139;;;;:::o;2583:77::-;2620:7;2649:5;2638:16;;2583:77;;;:::o;2666:122::-;2739:24;2757:5;2739:24;:::i;:::-;2732:5;2729:35;2719:63;;2778:1;2775;2768:12;2719:63;2666:122;:::o;2794:139::-;2840:5;2878:6;2865:20;2856:29;;2894:33;2921:5;2894:33;:::i;:::-;2794:139;;;;:::o;2939:474::-;3007:6;3015;3064:2;3052:9;3043:7;3039:23;3035:32;3032:119;;;3070:79;;:::i;:::-;3032:119;3190:1;3215:53;3260:7;3251:6;3240:9;3236:22;3215:53;:::i;:::-;3205:63;;3161:117;3317:2;3343:53;3388:7;3379:6;3368:9;3364:22;3343:53;:::i;:::-;3333:63;;3288:118;2939:474;;;;;:::o;3419:90::-;3453:7;3496:5;3489:13;3482:21;3471:32;;3419:90;;;:::o;3515:109::-;3596:21;3611:5;3596:21;:::i;:::-;3591:3;3584:34;3515:109;;:::o;3630:210::-;3717:4;3755:2;3744:9;3740:18;3732:26;;3768:65;3830:1;3819:9;3815:17;3806:6;3768:65;:::i;:::-;3630:210;;;;:::o;3846:118::-;3933:24;3951:5;3933:24;:::i;:::-;3928:3;3921:37;3846:118;;:::o;3970:222::-;4063:4;4101:2;4090:9;4086:18;4078:26;;4114:71;4182:1;4171:9;4167:17;4158:6;4114:71;:::i;:::-;3970:222;;;;:::o;4198:89::-;4234:7;4274:6;4267:5;4263:18;4252:29;;4198:89;;;:::o;4293:115::-;4378:23;4395:5;4378:23;:::i;:::-;4373:3;4366:36;4293:115;;:::o;4414:218::-;4505:4;4543:2;4532:9;4528:18;4520:26;;4556:69;4622:1;4611:9;4607:17;4598:6;4556:69;:::i;:::-;4414:218;;;;:::o;4638:619::-;4715:6;4723;4731;4780:2;4768:9;4759:7;4755:23;4751:32;4748:119;;;4786:79;;:::i;:::-;4748:119;4906:1;4931:53;4976:7;4967:6;4956:9;4952:22;4931:53;:::i;:::-;4921:63;;4877:117;5033:2;5059:53;5104:7;5095:6;5084:9;5080:22;5059:53;:::i;:::-;5049:63;;5004:118;5161:2;5187:53;5232:7;5223:6;5212:9;5208:22;5187:53;:::i;:::-;5177:63;;5132:118;4638:619;;;;;:::o;5263:86::-;5298:7;5338:4;5331:5;5327:16;5316:27;;5263:86;;;:::o;5355:112::-;5438:22;5454:5;5438:22;:::i;:::-;5433:3;5426:35;5355:112;;:::o;5473:214::-;5562:4;5600:2;5589:9;5585:18;5577:26;;5613:67;5677:1;5666:9;5662:17;5653:6;5613:67;:::i;:::-;5473:214;;;;:::o;5693:329::-;5752:6;5801:2;5789:9;5780:7;5776:23;5772:32;5769:119;;;5807:79;;:::i;:::-;5769:119;5927:1;5952:53;5997:7;5988:6;5977:9;5973:22;5952:53;:::i;:::-;5942:63;;5898:117;5693:329;;;;:::o;6028:474::-;6096:6;6104;6153:2;6141:9;6132:7;6128:23;6124:32;6121:119;;;6159:79;;:::i;:::-;6121:119;6279:1;6304:53;6349:7;6340:6;6329:9;6325:22;6304:53;:::i;:::-;6294:63;;6250:117;6406:2;6432:53;6477:7;6468:6;6457:9;6453:22;6432:53;:::i;:::-;6422:63;;6377:118;6028:474;;;;;:::o;6508:::-;6576:6;6584;6633:2;6621:9;6612:7;6608:23;6604:32;6601:119;;;6639:79;;:::i;:::-;6601:119;6759:1;6784:53;6829:7;6820:6;6809:9;6805:22;6784:53;:::i;:::-;6774:63;;6730:117;6886:2;6912:53;6957:7;6948:6;6937:9;6933:22;6912:53;:::i;:::-;6902:63;;6857:118;6508:474;;;;;:::o;6988:227::-;7128:34;7124:1;7116:6;7112:14;7105:58;7197:10;7192:2;7184:6;7180:15;7173:35;6988:227;:::o;7221:366::-;7363:3;7384:67;7448:2;7443:3;7384:67;:::i;:::-;7377:74;;7460:93;7549:3;7460:93;:::i;:::-;7578:2;7573:3;7569:12;7562:19;;7221:366;;;:::o;7593:419::-;7759:4;7797:2;7786:9;7782:18;7774:26;;7846:9;7840:4;7836:20;7832:1;7821:9;7817:17;7810:47;7874:131;8000:4;7874:131;:::i;:::-;7866:139;;7593:419;;;:::o;8018:180::-;8066:77;8063:1;8056:88;8163:4;8160:1;8153:15;8187:4;8184:1;8177:15;8204:191;8244:4;8264:20;8282:1;8264:20;:::i;:::-;8259:25;;8298:20;8316:1;8298:20;:::i;:::-;8293:25;;8337:1;8334;8331:8;8328:34;;;8342:18;;:::i;:::-;8328:34;8387:1;8384;8380:9;8372:17;;8204:191;;;;:::o;8401:182::-;8541:34;8537:1;8529:6;8525:14;8518:58;8401:182;:::o;8589:366::-;8731:3;8752:67;8816:2;8811:3;8752:67;:::i;:::-;8745:74;;8828:93;8917:3;8828:93;:::i;:::-;8946:2;8941:3;8937:12;8930:19;;8589:366;;;:::o;8961:419::-;9127:4;9165:2;9154:9;9150:18;9142:26;;9214:9;9208:4;9204:20;9200:1;9189:9;9185:17;9178:47;9242:131;9368:4;9242:131;:::i;:::-;9234:139;;8961:419;;;:::o;9386:173::-;9526:25;9522:1;9514:6;9510:14;9503:49;9386:173;:::o;9565:366::-;9707:3;9728:67;9792:2;9787:3;9728:67;:::i;:::-;9721:74;;9804:93;9893:3;9804:93;:::i;:::-;9922:2;9917:3;9913:12;9906:19;;9565:366;;;:::o;9937:419::-;10103:4;10141:2;10130:9;10126:18;10118:26;;10190:9;10184:4;10180:20;10176:1;10165:9;10161:17;10154:47;10218:131;10344:4;10218:131;:::i;:::-;10210:139;;9937:419;;;:::o;10362:102::-;10404:8;10451:5;10448:1;10444:13;10423:34;;10362:102;;;:::o;10470:848::-;10531:5;10538:4;10562:6;10553:15;;10586:5;10577:14;;10600:712;10621:1;10611:8;10608:15;10600:712;;;10716:4;10711:3;10707:14;10701:4;10698:24;10695:50;;;10725:18;;:::i;:::-;10695:50;10775:1;10765:8;10761:16;10758:451;;;11190:4;11183:5;11179:16;11170:25;;10758:451;11240:4;11234;11230:15;11222:23;;11270:32;11293:8;11270:32;:::i;:::-;11258:44;;10600:712;;;10470:848;;;;;;;:::o;11324:1073::-;11378:5;11569:8;11559:40;;11590:1;11581:10;;11592:5;;11559:40;11618:4;11608:36;;11635:1;11626:10;;11637:5;;11608:36;11704:4;11752:1;11747:27;;;;11788:1;11783:191;;;;11697:277;;11747:27;11765:1;11756:10;;11767:5;;;11783:191;11828:3;11818:8;11815:17;11812:43;;;11835:18;;:::i;:::-;11812:43;11884:8;11881:1;11877:16;11868:25;;11919:3;11912:5;11909:14;11906:40;;;11926:18;;:::i;:::-;11906:40;11959:5;;;11697:277;;12083:2;12073:8;12070:16;12064:3;12058:4;12055:13;12051:36;12033:2;12023:8;12020:16;12015:2;12009:4;12006:12;12002:35;11986:111;11983:246;;;12139:8;12133:4;12129:19;12120:28;;12174:3;12167:5;12164:14;12161:40;;;12181:18;;:::i;:::-;12161:40;12214:5;;11983:246;12254:42;12292:3;12282:8;12276:4;12273:1;12254:42;:::i;:::-;12239:57;;;;12328:4;12323:3;12319:14;12312:5;12309:25;12306:51;;;12337:18;;:::i;:::-;12306:51;12386:4;12379:5;12375:16;12366:25;;11324:1073;;;;;;:::o;12403:281::-;12461:5;12485:23;12503:4;12485:23;:::i;:::-;12477:31;;12529:25;12545:8;12529:25;:::i;:::-;12517:37;;12573:104;12610:66;12600:8;12594:4;12573:104;:::i;:::-;12564:113;;12403:281;;;;:::o;12690:348::-;12730:7;12753:20;12771:1;12753:20;:::i;:::-;12748:25;;12787:20;12805:1;12787:20;:::i;:::-;12782:25;;12975:1;12907:66;12903:74;12900:1;12897:81;12892:1;12885:9;12878:17;12874:105;12871:131;;;12982:18;;:::i;:::-;12871:131;13030:1;13027;13023:9;13012:20;;12690:348;;;;:::o;13044:332::-;13165:4;13203:2;13192:9;13188:18;13180:26;;13216:71;13284:1;13273:9;13269:17;13260:6;13216:71;:::i;:::-;13297:72;13365:2;13354:9;13350:18;13341:6;13297:72;:::i;:::-;13044:332;;;;;:::o;13382:116::-;13452:21;13467:5;13452:21;:::i;:::-;13445:5;13442:32;13432:60;;13488:1;13485;13478:12;13432:60;13382:116;:::o;13504:137::-;13558:5;13589:6;13583:13;13574:22;;13605:30;13629:5;13605:30;:::i;:::-;13504:137;;;;:::o;13647:345::-;13714:6;13763:2;13751:9;13742:7;13738:23;13734:32;13731:119;;;13769:79;;:::i;:::-;13731:119;13889:1;13914:61;13967:7;13958:6;13947:9;13943:22;13914:61;:::i;:::-;13904:71;;13860:125;13647:345;;;;:::o;13998:225::-;14138:34;14134:1;14126:6;14122:14;14115:58;14207:8;14202:2;14194:6;14190:15;14183:33;13998:225;:::o;14229:366::-;14371:3;14392:67;14456:2;14451:3;14392:67;:::i;:::-;14385:74;;14468:93;14557:3;14468:93;:::i;:::-;14586:2;14581:3;14577:12;14570:19;;14229:366;;;:::o;14601:419::-;14767:4;14805:2;14794:9;14790:18;14782:26;;14854:9;14848:4;14844:20;14840:1;14829:9;14825:17;14818:47;14882:131;15008:4;14882:131;:::i;:::-;14874:139;;14601:419;;;:::o;15026:223::-;15166:34;15162:1;15154:6;15150:14;15143:58;15235:6;15230:2;15222:6;15218:15;15211:31;15026:223;:::o;15255:366::-;15397:3;15418:67;15482:2;15477:3;15418:67;:::i;:::-;15411:74;;15494:93;15583:3;15494:93;:::i;:::-;15612:2;15607:3;15603:12;15596:19;;15255:366;;;:::o;15627:419::-;15793:4;15831:2;15820:9;15816:18;15808:26;;15880:9;15874:4;15870:20;15866:1;15855:9;15851:17;15844:47;15908:131;16034:4;15908:131;:::i;:::-;15900:139;;15627:419;;;:::o;16052:221::-;16192:34;16188:1;16180:6;16176:14;16169:58;16261:4;16256:2;16248:6;16244:15;16237:29;16052:221;:::o;16279:366::-;16421:3;16442:67;16506:2;16501:3;16442:67;:::i;:::-;16435:74;;16518:93;16607:3;16518:93;:::i;:::-;16636:2;16631:3;16627:12;16620:19;;16279:366;;;:::o;16651:419::-;16817:4;16855:2;16844:9;16840:18;16832:26;;16904:9;16898:4;16894:20;16890:1;16879:9;16875:17;16868:47;16932:131;17058:4;16932:131;:::i;:::-;16924:139;;16651:419;;;:::o;17076:224::-;17216:34;17212:1;17204:6;17200:14;17193:58;17285:7;17280:2;17272:6;17268:15;17261:32;17076:224;:::o;17306:366::-;17448:3;17469:67;17533:2;17528:3;17469:67;:::i;:::-;17462:74;;17545:93;17634:3;17545:93;:::i;:::-;17663:2;17658:3;17654:12;17647:19;;17306:366;;;:::o;17678:419::-;17844:4;17882:2;17871:9;17867:18;17859:26;;17931:9;17925:4;17921:20;17917:1;17906:9;17902:17;17895:47;17959:131;18085:4;17959:131;:::i;:::-;17951:139;;17678:419;;;:::o;18103:222::-;18243:34;18239:1;18231:6;18227:14;18220:58;18312:5;18307:2;18299:6;18295:15;18288:30;18103:222;:::o;18331:366::-;18473:3;18494:67;18558:2;18553:3;18494:67;:::i;:::-;18487:74;;18570:93;18659:3;18570:93;:::i;:::-;18688:2;18683:3;18679:12;18672:19;;18331:366;;;:::o;18703:419::-;18869:4;18907:2;18896:9;18892:18;18884:26;;18956:9;18950:4;18946:20;18942:1;18931:9;18927:17;18920:47;18984:131;19110:4;18984:131;:::i;:::-;18976:139;;18703:419;;;:::o;19128:228::-;19268:34;19264:1;19256:6;19252:14;19245:58;19337:11;19332:2;19324:6;19320:15;19313:36;19128:228;:::o;19362:366::-;19504:3;19525:67;19589:2;19584:3;19525:67;:::i;:::-;19518:74;;19601:93;19690:3;19601:93;:::i;:::-;19719:2;19714:3;19710:12;19703:19;;19362:366;;;:::o;19734:419::-;19900:4;19938:2;19927:9;19923:18;19915:26;;19987:9;19981:4;19977:20;19973:1;19962:9;19958:17;19951:47;20015:131;20141:4;20015:131;:::i;:::-;20007:139;;19734:419;;;:::o;20159:236::-;20299:34;20295:1;20287:6;20283:14;20276:58;20368:19;20363:2;20355:6;20351:15;20344:44;20159:236;:::o;20401:366::-;20543:3;20564:67;20628:2;20623:3;20564:67;:::i;:::-;20557:74;;20640:93;20729:3;20640:93;:::i;:::-;20758:2;20753:3;20749:12;20742:19;;20401:366;;;:::o;20773:419::-;20939:4;20977:2;20966:9;20962:18;20954:26;;21026:9;21020:4;21016:20;21012:1;21001:9;20997:17;20990:47;21054:131;21180:4;21054:131;:::i;:::-;21046:139;;20773:419;;;:::o;21198:173::-;21338:25;21334:1;21326:6;21322:14;21315:49;21198:173;:::o;21377:366::-;21519:3;21540:67;21604:2;21599:3;21540:67;:::i;:::-;21533:74;;21616:93;21705:3;21616:93;:::i;:::-;21734:2;21729:3;21725:12;21718:19;;21377:366;;;:::o;21749:419::-;21915:4;21953:2;21942:9;21938:18;21930:26;;22002:9;21996:4;21992:20;21988:1;21977:9;21973:17;21966:47;22030:131;22156:4;22030:131;:::i;:::-;22022:139;;21749:419;;;:::o;22174:175::-;22314:27;22310:1;22302:6;22298:14;22291:51;22174:175;:::o;22355:366::-;22497:3;22518:67;22582:2;22577:3;22518:67;:::i;:::-;22511:74;;22594:93;22683:3;22594:93;:::i;:::-;22712:2;22707:3;22703:12;22696:19;;22355:366;;;:::o;22727:419::-;22893:4;22931:2;22920:9;22916:18;22908:26;;22980:9;22974:4;22970:20;22966:1;22955:9;22951:17;22944:47;23008:131;23134:4;23008:131;:::i;:::-;23000:139;;22727:419;;;:::o;23152:305::-;23192:3;23211:20;23229:1;23211:20;:::i;:::-;23206:25;;23245:20;23263:1;23245:20;:::i;:::-;23240:25;;23399:1;23331:66;23327:74;23324:1;23321:81;23318:107;;;23405:18;;:::i;:::-;23318:107;23449:1;23446;23442:9;23435:16;;23152:305;;;;:::o;23463:176::-;23603:28;23599:1;23591:6;23587:14;23580:52;23463:176;:::o;23645:366::-;23787:3;23808:67;23872:2;23867:3;23808:67;:::i;:::-;23801:74;;23884:93;23973:3;23884:93;:::i;:::-;24002:2;23997:3;23993:12;23986:19;;23645:366;;;:::o;24017:419::-;24183:4;24221:2;24210:9;24206:18;24198:26;;24270:9;24264:4;24260:20;24256:1;24245:9;24241:17;24234:47;24298:131;24424:4;24298:131;:::i;:::-;24290:139;;24017:419;;;:::o;24442:221::-;24582:34;24578:1;24570:6;24566:14;24559:58;24651:4;24646:2;24638:6;24634:15;24627:29;24442:221;:::o;24669:366::-;24811:3;24832:67;24896:2;24891:3;24832:67;:::i;:::-;24825:74;;24908:93;24997:3;24908:93;:::i;:::-;25026:2;25021:3;25017:12;25010:19;;24669:366;;;:::o;25041:419::-;25207:4;25245:2;25234:9;25230:18;25222:26;;25294:9;25288:4;25284:20;25280:1;25269:9;25265:17;25258:47;25322:131;25448:4;25322:131;:::i;:::-;25314:139;;25041:419;;;:::o;25466:180::-;25514:77;25511:1;25504:88;25611:4;25608:1;25601:15;25635:4;25632:1;25625:15;25652:180;25700:77;25697:1;25690:88;25797:4;25794:1;25787:15;25821:4;25818:1;25811:15;25838:143;25895:5;25926:6;25920:13;25911:22;;25942:33;25969:5;25942:33;:::i;:::-;25838:143;;;;:::o;25987:351::-;26057:6;26106:2;26094:9;26085:7;26081:23;26077:32;26074:119;;;26112:79;;:::i;:::-;26074:119;26232:1;26257:64;26313:7;26304:6;26293:9;26289:22;26257:64;:::i;:::-;26247:74;;26203:128;25987:351;;;;:::o;26344:85::-;26389:7;26418:5;26407:16;;26344:85;;;:::o;26435:60::-;26463:3;26484:5;26477:12;;26435:60;;;:::o;26501:158::-;26559:9;26592:61;26610:42;26619:32;26645:5;26619:32;:::i;:::-;26610:42;:::i;:::-;26592:61;:::i;:::-;26579:74;;26501:158;;;:::o;26665:147::-;26760:45;26799:5;26760:45;:::i;:::-;26755:3;26748:58;26665:147;;:::o;26818:114::-;26885:6;26919:5;26913:12;26903:22;;26818:114;;;:::o;26938:184::-;27037:11;27071:6;27066:3;27059:19;27111:4;27106:3;27102:14;27087:29;;26938:184;;;;:::o;27128:132::-;27195:4;27218:3;27210:11;;27248:4;27243:3;27239:14;27231:22;;27128:132;;;:::o;27266:108::-;27343:24;27361:5;27343:24;:::i;:::-;27338:3;27331:37;27266:108;;:::o;27380:179::-;27449:10;27470:46;27512:3;27504:6;27470:46;:::i;:::-;27548:4;27543:3;27539:14;27525:28;;27380:179;;;;:::o;27565:113::-;27635:4;27667;27662:3;27658:14;27650:22;;27565:113;;;:::o;27714:732::-;27833:3;27862:54;27910:5;27862:54;:::i;:::-;27932:86;28011:6;28006:3;27932:86;:::i;:::-;27925:93;;28042:56;28092:5;28042:56;:::i;:::-;28121:7;28152:1;28137:284;28162:6;28159:1;28156:13;28137:284;;;28238:6;28232:13;28265:63;28324:3;28309:13;28265:63;:::i;:::-;28258:70;;28351:60;28404:6;28351:60;:::i;:::-;28341:70;;28197:224;28184:1;28181;28177:9;28172:14;;28137:284;;;28141:14;28437:3;28430:10;;27838:608;;;27714:732;;;;:::o;28452:831::-;28715:4;28753:3;28742:9;28738:19;28730:27;;28767:71;28835:1;28824:9;28820:17;28811:6;28767:71;:::i;:::-;28848:80;28924:2;28913:9;28909:18;28900:6;28848:80;:::i;:::-;28975:9;28969:4;28965:20;28960:2;28949:9;28945:18;28938:48;29003:108;29106:4;29097:6;29003:108;:::i;:::-;28995:116;;29121:72;29189:2;29178:9;29174:18;29165:6;29121:72;:::i;:::-;29203:73;29271:3;29260:9;29256:19;29247:6;29203:73;:::i;:::-;28452:831;;;;;;;;:::o;29289:180::-;29337:77;29334:1;29327:88;29434:4;29431:1;29424:15;29458:4;29455:1;29448:15;29475:185;29515:1;29532:20;29550:1;29532:20;:::i;:::-;29527:25;;29566:20;29584:1;29566:20;:::i;:::-;29561:25;;29605:1;29595:35;;29610:18;;:::i;:::-;29595:35;29652:1;29649;29645:9;29640:14;;29475:185;;;;:::o

Swarm Source

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