ETH Price: $2,628.26 (-1.59%)

Token

Yama Inu (White Wolf)
 

Overview

Max Total Supply

1,000,000,000 White Wolf

Holders

36

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
2.388907189 White Wolf

Value
$0.00
0x8bbf3d8c076df2fe640953f7c497b1942f540630
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:
YamaInu

Compiler Version
v0.8.4+commit.c7e474f2

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-07-28
*/

// SPDX-License-Identifier: NOLICENSE

/**
Project Name: Yama Inu

TG: https://t.me/Yamainu
Twitter: https://twitter.com/Yama_inu1
Website: https://yamainu.us

Token Supply: 1 Billion
Token Distribution: 100% total supply is for Liquidity.
Buy and Sell tax: 7% Buy / 7% Sell tax.
*/
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);
}

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);
}

interface IFactory{
        function createPair(address tokenA, address tokenB) external returns (address pair);
}

interface IRouter {
    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);

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

contract YamaInu 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;

    string private constant _name = "Yama Inu";
    string private constant _symbol = "White Wolf";
    uint8 private constant _decimals = 9;

    uint16 public tokensBuyFee = 15;
    uint16 public tokensSellFee = 15;
    uint16 public masterTaxDivisor = 100;
    
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    uint256 private constant _tTotal = 1_000_000_000 * 10**9;
    uint256 private maxWalletAmount = _tTotal;
    uint256 private maxTxAmount = _tTotal;
    address payable private feeAddrWallet;

    event MaxWalletAmountUpdated(uint maxWalletAmount);

    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
  
    constructor () {
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        feeAddrWallet = payable(0x6B39D60CF00dB6D7d8214B1CCb6907dF18355001); 
        _tOwned[owner()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[feeAddrWallet] = true;
        emit Transfer(address(0), owner(), _tTotal);
    }

    function name() public pure returns (string memory) { return _name; }
    function symbol() public pure returns (string memory) { return _symbol; }
    function decimals() public pure returns (uint8) { return _decimals; }
    function totalSupply() public pure 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.");
        }

        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) {
        uint256 currentFee;
        if(from == uniswapV2Pair) { 
            currentFee = tokensBuyFee;
        } else if (to == uniswapV2Pair) { 
          currentFee = tokensSellFee;
        }
        uint256 feeAmount = amount * currentFee / masterTaxDivisor;
        _tOwned[address(this)] += feeAmount;
        emit Transfer(from, address(this), feeAmount);
        return amount - feeAmount;
    }

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

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

    function updateMaxTxAmt(uint256 amount) external onlyOwner{
        maxTxAmount = amount * 10 **_decimals;
    }

    function updateMaxWalletAmount(uint256 amount) external onlyOwner {
        maxWalletAmount = amount * 10 **_decimals;
    }

    function SetWalletandTxtAmount(uint256 _maxTxAmount, uint256 _maxWalletSize) external onlyOwner{
        require(_maxTxAmount >= 1, 'max txn can not set less than 1%');// so that trading cant be paused for anyone
        maxTxAmount = _maxTxAmount * 10 **_decimals;
        maxWalletAmount = _maxWalletSize * 10 **_decimals;
    }

    function updateBuyFee(uint16 _fee) external onlyOwner {
        require(_fee <= 16, 'fee can not set more than 16%');
        tokensBuyFee = _fee;
    }

    function updateSellFee(uint16 _fee) external onlyOwner {
        require(_fee <= 16, 'fee can not set more than 16%');
        tokensSellFee = _fee;
    }

    function sendETHToFee(uint256 amount) private {
        feeAddrWallet.transfer(amount);
    } 

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

    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":[{"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":"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":"includeInFee","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":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"tokensBuyFee","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensSellFee","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_fee","type":"uint16"}],"name":"updateBuyFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"updateMaxTxAmt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"updateMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_fee","type":"uint16"}],"name":"updateSellFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600f600460006101000a81548161ffff021916908361ffff160217905550600f600460026101000a81548161ffff021916908361ffff16021790555060646004806101000a81548161ffff021916908361ffff1602179055506000600560156101000a81548160ff0219169083151502179055506000600560166101000a81548160ff021916908315150217905550670de0b6b3a7640000600655670de0b6b3a7640000600755348015620000b857600080fd5b50620000d9620000cd6200057760201b60201c565b6200057f60201b60201c565b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600460066101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200017a57600080fd5b505afa1580156200018f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001b5919062000683565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200021857600080fd5b505afa1580156200022d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000253919062000683565b6040518363ffffffff1660e01b815260040162000272929190620006d1565b602060405180830381600087803b1580156200028d57600080fd5b505af1158015620002a2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002c8919062000683565b600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550736b39d60cf00db6d7d8214b1ccb6907df18355001600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550670de0b6b3a7640000600160006200037a6200064360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160036000620003ce6200064360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620005016200064360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef670de0b6b3a7640000604051620005689190620006fe565b60405180910390a35062000773565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000815190506200067d8162000759565b92915050565b6000602082840312156200069657600080fd5b6000620006a6848285016200066c565b91505092915050565b620006ba816200071b565b82525050565b620006cb816200074f565b82525050565b6000604082019050620006e86000830185620006af565b620006f76020830184620006af565b9392505050565b6000602082019050620007156000830184620006c0565b92915050565b600062000728826200072f565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b62000764816200071b565b81146200077057600080fd5b50565b6130bd80620007836000396000f3fe6080604052600436106101445760003560e01c8063715018a6116100b6578063c18bc1951161006f578063c18bc19514610457578063c9567bf914610480578063dd62ed3e14610497578063ea2f0b37146104d4578063ebece9c9146104fd578063f2fde38b146105265761014b565b8063715018a6146103595780637c988e09146103705780638da5cb5b1461039957806393b55dd0146103c457806395d89b41146103ef578063a9059cbb1461041a5761014b565b806323b872dd1161010857806323b872dd146102395780632e092fe814610276578063313ce5671461029f578063437823ec146102ca5780634f9973ce146102f357806370a082311461031c5761014b565b806306fdde0314610150578063095ea7b31461017b57806318160ddd146101b8578063185b38c8146101e35780631d6167ac1461020e5761014b565b3661014b57005b600080fd5b34801561015c57600080fd5b5061016561054f565b60405161017291906125e8565b60405180910390f35b34801561018757600080fd5b506101a2600480360381019061019d9190612171565b61058c565b6040516101af91906125cd565b60405180910390f35b3480156101c457600080fd5b506101cd6105aa565b6040516101da9190612805565b60405180910390f35b3480156101ef57600080fd5b506101f86105ba565b60405161020591906127ea565b60405180910390f35b34801561021a57600080fd5b506102236105ce565b60405161023091906127ea565b60405180910390f35b34801561024557600080fd5b50610260600480360381019061025b9190612122565b6105e0565b60405161026d91906125cd565b60405180910390f35b34801561028257600080fd5b5061029d600480360381019061029891906121ff565b6106e1565b005b3480156102ab57600080fd5b506102b461077f565b6040516102c1919061287a565b60405180910390f35b3480156102d657600080fd5b506102f160048036038101906102ec9190612094565b610788565b005b3480156102ff57600080fd5b5061031a600480360381019061031591906121d6565b61085f565b005b34801561032857600080fd5b50610343600480360381019061033e9190612094565b610943565b6040516103509190612805565b60405180910390f35b34801561036557600080fd5b5061036e61098c565b005b34801561037c57600080fd5b50610397600480360381019061039291906121d6565b610a14565b005b3480156103a557600080fd5b506103ae610af8565b6040516103bb9190612589565b60405180910390f35b3480156103d057600080fd5b506103d9610b21565b6040516103e691906127ea565b60405180910390f35b3480156103fb57600080fd5b50610404610b35565b60405161041191906125e8565b60405180910390f35b34801561042657600080fd5b50610441600480360381019061043c9190612171565b610b72565b60405161044e91906125cd565b60405180910390f35b34801561046357600080fd5b5061047e600480360381019061047991906121ff565b610b90565b005b34801561048c57600080fd5b50610495610c2e565b005b3480156104a357600080fd5b506104be60048036038101906104b991906120e6565b610e40565b6040516104cb9190612805565b60405180910390f35b3480156104e057600080fd5b506104fb60048036038101906104f69190612094565b610ec7565b005b34801561050957600080fd5b50610524600480360381019061051f9190612228565b610f9e565b005b34801561053257600080fd5b5061054d60048036038101906105489190612094565b6110a0565b005b60606040518060400160405280600881526020017f59616d6120496e75000000000000000000000000000000000000000000000000815250905090565b60006105a0610599611198565b84846111a0565b6001905092915050565b6000670de0b6b3a7640000905090565b600460029054906101000a900461ffff1681565b60048054906101000a900461ffff1681565b60006105ed84848461136b565b6000600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610638611198565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156106b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106af906126ca565b60405180910390fd5b6106d5856106c4611198565b85846106d09190612b3c565b6111a0565b60019150509392505050565b6106e9611198565b73ffffffffffffffffffffffffffffffffffffffff16610707610af8565b73ffffffffffffffffffffffffffffffffffffffff161461075d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610754906126ea565b60405180910390fd5b6009600a61076b91906129c4565b816107769190612ae2565b60078190555050565b60006009905090565b610790611198565b73ffffffffffffffffffffffffffffffffffffffff166107ae610af8565b73ffffffffffffffffffffffffffffffffffffffff1614610804576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107fb906126ea565b60405180910390fd5b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610867611198565b73ffffffffffffffffffffffffffffffffffffffff16610885610af8565b73ffffffffffffffffffffffffffffffffffffffff16146108db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108d2906126ea565b60405180910390fd5b60108161ffff161115610923576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161091a9061278a565b60405180910390fd5b80600460026101000a81548161ffff021916908361ffff16021790555050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610994611198565b73ffffffffffffffffffffffffffffffffffffffff166109b2610af8565b73ffffffffffffffffffffffffffffffffffffffff1614610a08576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ff906126ea565b60405180910390fd5b610a1260006118eb565b565b610a1c611198565b73ffffffffffffffffffffffffffffffffffffffff16610a3a610af8565b73ffffffffffffffffffffffffffffffffffffffff1614610a90576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a87906126ea565b60405180910390fd5b60108161ffff161115610ad8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610acf9061278a565b60405180910390fd5b80600460006101000a81548161ffff021916908361ffff16021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600460009054906101000a900461ffff1681565b60606040518060400160405280600a81526020017f576869746520576f6c6600000000000000000000000000000000000000000000815250905090565b6000610b86610b7f611198565b848461136b565b6001905092915050565b610b98611198565b73ffffffffffffffffffffffffffffffffffffffff16610bb6610af8565b73ffffffffffffffffffffffffffffffffffffffff1614610c0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c03906126ea565b60405180910390fd5b6009600a610c1a91906129c4565b81610c259190612ae2565b60068190555050565b610c36611198565b73ffffffffffffffffffffffffffffffffffffffff16610c54610af8565b73ffffffffffffffffffffffffffffffffffffffff1614610caa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ca1906126ea565b60405180910390fd5b600560149054906101000a900460ff1615610cfa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cf1906127aa565b60405180910390fd5b6001600560166101000a81548160ff021916908315150217905550662386f2ab5bca00600781905550662386f2ab5bca006006819055506001600560146101000a81548160ff021916908315150217905550600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600460069054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610deb9291906125a4565b602060405180830381600087803b158015610e0557600080fd5b505af1158015610e19573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e3d91906121ad565b50565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610ecf611198565b73ffffffffffffffffffffffffffffffffffffffff16610eed610af8565b73ffffffffffffffffffffffffffffffffffffffff1614610f43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f3a906126ea565b60405180910390fd5b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610fa6611198565b73ffffffffffffffffffffffffffffffffffffffff16610fc4610af8565b73ffffffffffffffffffffffffffffffffffffffff161461101a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611011906126ea565b60405180910390fd5b600182101561105e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611055906126aa565b60405180910390fd5b6009600a61106c91906129c4565b826110779190612ae2565b6007819055506009600a61108b91906129c4565b816110969190612ae2565b6006819055505050565b6110a8611198565b73ffffffffffffffffffffffffffffffffffffffff166110c6610af8565b73ffffffffffffffffffffffffffffffffffffffff161461111c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611113906126ea565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561118c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111839061266a565b60405180910390fd5b611195816118eb565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611210576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112079061276a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611280576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112779061268a565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161135e9190612805565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156113db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113d29061272a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561144b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114429061260a565b60405180910390fd5b6000811161148e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114859061270a565b60405180910390fd5b61149783610943565b8111156114d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d09061264a565b60405180910390fd5b600560149054906101000a900460ff168061153d5750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806115915750600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6115d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115c7906127ca565b60405180910390fd5b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561167b5750600460069054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156116d15750600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156117745760075481111561171b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117129061262a565b60405180910390fd5b6006548161172884610943565b61173291906128ea565b1115611773576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176a9061274a565b60405180910390fd5b5b600061177f30610943565b9050600560159054906101000a900460ff161580156117ec5750600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156118045750600560169054906101000a900460ff165b80156118105750600081115b156118385761181e816119af565b600047905060008111156118365761183547611ca9565b5b505b6118e5848484600360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806118df5750600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611d15565b50505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6001600560156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611a0d577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051908082528060200260200182016040528015611a3b5781602001602082028036833780820191505090505b5090503081600081518110611a79577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600460069054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611b1b57600080fd5b505afa158015611b2f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b5391906120bd565b81600181518110611b8d577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611bf430600460069054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846111a0565b600460069054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611c58959493929190612820565b600060405180830381600087803b158015611c7257600080fd5b505af1158015611c86573d6000803e3d6000fd5b50505050506000600560156101000a81548160ff02191690831515021790555050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611d11573d6000803e3d6000fd5b5050565b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611d649190612b3c565b92505081905550600081611d785782611d84565b611d83858585611e48565b5b905080600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611dd591906128ea565b925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611e399190612805565b60405180910390a35050505050565b600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161415611ebd57600460009054906101000a900461ffff1661ffff169050611f2c565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415611f2b57600460029054906101000a900461ffff1661ffff1690505b5b600060048054906101000a900461ffff1661ffff168285611f4d9190612ae2565b611f579190612940565b905080600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611fa891906128ea565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161200c9190612805565b60405180910390a380846120209190612b3c565b925050509392505050565b60008135905061203a8161302b565b92915050565b60008151905061204f8161302b565b92915050565b60008151905061206481613042565b92915050565b60008135905061207981613059565b92915050565b60008135905061208e81613070565b92915050565b6000602082840312156120a657600080fd5b60006120b48482850161202b565b91505092915050565b6000602082840312156120cf57600080fd5b60006120dd84828501612040565b91505092915050565b600080604083850312156120f957600080fd5b60006121078582860161202b565b92505060206121188582860161202b565b9150509250929050565b60008060006060848603121561213757600080fd5b60006121458682870161202b565b93505060206121568682870161202b565b92505060406121678682870161207f565b9150509250925092565b6000806040838503121561218457600080fd5b60006121928582860161202b565b92505060206121a38582860161207f565b9150509250929050565b6000602082840312156121bf57600080fd5b60006121cd84828501612055565b91505092915050565b6000602082840312156121e857600080fd5b60006121f68482850161206a565b91505092915050565b60006020828403121561221157600080fd5b600061221f8482850161207f565b91505092915050565b6000806040838503121561223b57600080fd5b60006122498582860161207f565b925050602061225a8582860161207f565b9150509250929050565b6000612270838361227c565b60208301905092915050565b61228581612b70565b82525050565b61229481612b70565b82525050565b60006122a5826128a5565b6122af81856128c8565b93506122ba83612895565b8060005b838110156122eb5781516122d28882612264565b97506122dd836128bb565b9250506001810190506122be565b5085935050505092915050565b61230181612b82565b82525050565b61231081612bd3565b82525050565b6000612321826128b0565b61232b81856128d9565b935061233b818560208601612be5565b61234481612c76565b840191505092915050565b600061235c6023836128d9565b915061236782612c94565b604082019050919050565b600061237f6019836128d9565b915061238a82612ce3565b602082019050919050565b60006123a26031836128d9565b91506123ad82612d0c565b604082019050919050565b60006123c56026836128d9565b91506123d082612d5b565b604082019050919050565b60006123e86022836128d9565b91506123f382612daa565b604082019050919050565b600061240b6020836128d9565b915061241682612df9565b602082019050919050565b600061242e6028836128d9565b915061243982612e22565b604082019050919050565b60006124516020836128d9565b915061245c82612e71565b602082019050919050565b60006124746029836128d9565b915061247f82612e9a565b604082019050919050565b60006124976025836128d9565b91506124a282612ee9565b604082019050919050565b60006124ba601a836128d9565b91506124c582612f38565b602082019050919050565b60006124dd6024836128d9565b91506124e882612f61565b604082019050919050565b6000612500601d836128d9565b915061250b82612fb0565b602082019050919050565b60006125236017836128d9565b915061252e82612fd9565b602082019050919050565b60006125466017836128d9565b915061255182613002565b602082019050919050565b61256581612b8e565b82525050565b61257481612bbc565b82525050565b61258381612bc6565b82525050565b600060208201905061259e600083018461228b565b92915050565b60006040820190506125b9600083018561228b565b6125c6602083018461256b565b9392505050565b60006020820190506125e260008301846122f8565b92915050565b600060208201905081810360008301526126028184612316565b905092915050565b600060208201905081810360008301526126238161234f565b9050919050565b6000602082019050818103600083015261264381612372565b9050919050565b6000602082019050818103600083015261266381612395565b9050919050565b60006020820190508181036000830152612683816123b8565b9050919050565b600060208201905081810360008301526126a3816123db565b9050919050565b600060208201905081810360008301526126c3816123fe565b9050919050565b600060208201905081810360008301526126e381612421565b9050919050565b6000602082019050818103600083015261270381612444565b9050919050565b6000602082019050818103600083015261272381612467565b9050919050565b600060208201905081810360008301526127438161248a565b9050919050565b60006020820190508181036000830152612763816124ad565b9050919050565b60006020820190508181036000830152612783816124d0565b9050919050565b600060208201905081810360008301526127a3816124f3565b9050919050565b600060208201905081810360008301526127c381612516565b9050919050565b600060208201905081810360008301526127e381612539565b9050919050565b60006020820190506127ff600083018461255c565b92915050565b600060208201905061281a600083018461256b565b92915050565b600060a082019050612835600083018861256b565b6128426020830187612307565b8181036040830152612854818661229a565b9050612863606083018561228b565b612870608083018461256b565b9695505050505050565b600060208201905061288f600083018461257a565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006128f582612bbc565b915061290083612bbc565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561293557612934612c18565b5b828201905092915050565b600061294b82612bbc565b915061295683612bbc565b92508261296657612965612c47565b5b828204905092915050565b6000808291508390505b60018511156129bb5780860481111561299757612996612c18565b5b60018516156129a65780820291505b80810290506129b485612c87565b945061297b565b94509492505050565b60006129cf82612bbc565b91506129da83612bc6565b9250612a077fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612a0f565b905092915050565b600082612a1f5760019050612adb565b81612a2d5760009050612adb565b8160018114612a435760028114612a4d57612a7c565b6001915050612adb565b60ff841115612a5f57612a5e612c18565b5b8360020a915084821115612a7657612a75612c18565b5b50612adb565b5060208310610133831016604e8410600b8410161715612ab15782820a905083811115612aac57612aab612c18565b5b612adb565b612abe8484846001612971565b92509050818404811115612ad557612ad4612c18565b5b81810290505b9392505050565b6000612aed82612bbc565b9150612af883612bbc565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612b3157612b30612c18565b5b828202905092915050565b6000612b4782612bbc565b9150612b5283612bbc565b925082821015612b6557612b64612c18565b5b828203905092915050565b6000612b7b82612b9c565b9050919050565b60008115159050919050565b600061ffff82169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000612bde82612bbc565b9050919050565b60005b83811015612c03578082015181840152602081019050612be8565b83811115612c12576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000601f19601f8301169050919050565b60008160011c9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b7f596f752061726520747279696e6720746f207472616e73666572206d6f72652060008201527f7468616e20796f75722062616c616e6365000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f6d61782074786e2063616e206e6f7420736574206c657373207468616e203125600082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f6665652063616e206e6f7420736574206d6f7265207468616e20313625000000600082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b7f54726164696e67206e6f7420656e61626c656420796574000000000000000000600082015250565b61303481612b70565b811461303f57600080fd5b50565b61304b81612b82565b811461305657600080fd5b50565b61306281612b8e565b811461306d57600080fd5b50565b61307981612bbc565b811461308457600080fd5b5056fea264697066735822122063530387cecabf7d5b97faebe0eca887fd8cb7b8ebb38f7fb32de8c09e0c775164736f6c63430008040033

Deployed Bytecode

0x6080604052600436106101445760003560e01c8063715018a6116100b6578063c18bc1951161006f578063c18bc19514610457578063c9567bf914610480578063dd62ed3e14610497578063ea2f0b37146104d4578063ebece9c9146104fd578063f2fde38b146105265761014b565b8063715018a6146103595780637c988e09146103705780638da5cb5b1461039957806393b55dd0146103c457806395d89b41146103ef578063a9059cbb1461041a5761014b565b806323b872dd1161010857806323b872dd146102395780632e092fe814610276578063313ce5671461029f578063437823ec146102ca5780634f9973ce146102f357806370a082311461031c5761014b565b806306fdde0314610150578063095ea7b31461017b57806318160ddd146101b8578063185b38c8146101e35780631d6167ac1461020e5761014b565b3661014b57005b600080fd5b34801561015c57600080fd5b5061016561054f565b60405161017291906125e8565b60405180910390f35b34801561018757600080fd5b506101a2600480360381019061019d9190612171565b61058c565b6040516101af91906125cd565b60405180910390f35b3480156101c457600080fd5b506101cd6105aa565b6040516101da9190612805565b60405180910390f35b3480156101ef57600080fd5b506101f86105ba565b60405161020591906127ea565b60405180910390f35b34801561021a57600080fd5b506102236105ce565b60405161023091906127ea565b60405180910390f35b34801561024557600080fd5b50610260600480360381019061025b9190612122565b6105e0565b60405161026d91906125cd565b60405180910390f35b34801561028257600080fd5b5061029d600480360381019061029891906121ff565b6106e1565b005b3480156102ab57600080fd5b506102b461077f565b6040516102c1919061287a565b60405180910390f35b3480156102d657600080fd5b506102f160048036038101906102ec9190612094565b610788565b005b3480156102ff57600080fd5b5061031a600480360381019061031591906121d6565b61085f565b005b34801561032857600080fd5b50610343600480360381019061033e9190612094565b610943565b6040516103509190612805565b60405180910390f35b34801561036557600080fd5b5061036e61098c565b005b34801561037c57600080fd5b50610397600480360381019061039291906121d6565b610a14565b005b3480156103a557600080fd5b506103ae610af8565b6040516103bb9190612589565b60405180910390f35b3480156103d057600080fd5b506103d9610b21565b6040516103e691906127ea565b60405180910390f35b3480156103fb57600080fd5b50610404610b35565b60405161041191906125e8565b60405180910390f35b34801561042657600080fd5b50610441600480360381019061043c9190612171565b610b72565b60405161044e91906125cd565b60405180910390f35b34801561046357600080fd5b5061047e600480360381019061047991906121ff565b610b90565b005b34801561048c57600080fd5b50610495610c2e565b005b3480156104a357600080fd5b506104be60048036038101906104b991906120e6565b610e40565b6040516104cb9190612805565b60405180910390f35b3480156104e057600080fd5b506104fb60048036038101906104f69190612094565b610ec7565b005b34801561050957600080fd5b50610524600480360381019061051f9190612228565b610f9e565b005b34801561053257600080fd5b5061054d60048036038101906105489190612094565b6110a0565b005b60606040518060400160405280600881526020017f59616d6120496e75000000000000000000000000000000000000000000000000815250905090565b60006105a0610599611198565b84846111a0565b6001905092915050565b6000670de0b6b3a7640000905090565b600460029054906101000a900461ffff1681565b60048054906101000a900461ffff1681565b60006105ed84848461136b565b6000600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610638611198565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156106b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106af906126ca565b60405180910390fd5b6106d5856106c4611198565b85846106d09190612b3c565b6111a0565b60019150509392505050565b6106e9611198565b73ffffffffffffffffffffffffffffffffffffffff16610707610af8565b73ffffffffffffffffffffffffffffffffffffffff161461075d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610754906126ea565b60405180910390fd5b6009600a61076b91906129c4565b816107769190612ae2565b60078190555050565b60006009905090565b610790611198565b73ffffffffffffffffffffffffffffffffffffffff166107ae610af8565b73ffffffffffffffffffffffffffffffffffffffff1614610804576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107fb906126ea565b60405180910390fd5b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610867611198565b73ffffffffffffffffffffffffffffffffffffffff16610885610af8565b73ffffffffffffffffffffffffffffffffffffffff16146108db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108d2906126ea565b60405180910390fd5b60108161ffff161115610923576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161091a9061278a565b60405180910390fd5b80600460026101000a81548161ffff021916908361ffff16021790555050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610994611198565b73ffffffffffffffffffffffffffffffffffffffff166109b2610af8565b73ffffffffffffffffffffffffffffffffffffffff1614610a08576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ff906126ea565b60405180910390fd5b610a1260006118eb565b565b610a1c611198565b73ffffffffffffffffffffffffffffffffffffffff16610a3a610af8565b73ffffffffffffffffffffffffffffffffffffffff1614610a90576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a87906126ea565b60405180910390fd5b60108161ffff161115610ad8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610acf9061278a565b60405180910390fd5b80600460006101000a81548161ffff021916908361ffff16021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600460009054906101000a900461ffff1681565b60606040518060400160405280600a81526020017f576869746520576f6c6600000000000000000000000000000000000000000000815250905090565b6000610b86610b7f611198565b848461136b565b6001905092915050565b610b98611198565b73ffffffffffffffffffffffffffffffffffffffff16610bb6610af8565b73ffffffffffffffffffffffffffffffffffffffff1614610c0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c03906126ea565b60405180910390fd5b6009600a610c1a91906129c4565b81610c259190612ae2565b60068190555050565b610c36611198565b73ffffffffffffffffffffffffffffffffffffffff16610c54610af8565b73ffffffffffffffffffffffffffffffffffffffff1614610caa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ca1906126ea565b60405180910390fd5b600560149054906101000a900460ff1615610cfa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cf1906127aa565b60405180910390fd5b6001600560166101000a81548160ff021916908315150217905550662386f2ab5bca00600781905550662386f2ab5bca006006819055506001600560146101000a81548160ff021916908315150217905550600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600460069054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610deb9291906125a4565b602060405180830381600087803b158015610e0557600080fd5b505af1158015610e19573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e3d91906121ad565b50565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610ecf611198565b73ffffffffffffffffffffffffffffffffffffffff16610eed610af8565b73ffffffffffffffffffffffffffffffffffffffff1614610f43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f3a906126ea565b60405180910390fd5b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610fa6611198565b73ffffffffffffffffffffffffffffffffffffffff16610fc4610af8565b73ffffffffffffffffffffffffffffffffffffffff161461101a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611011906126ea565b60405180910390fd5b600182101561105e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611055906126aa565b60405180910390fd5b6009600a61106c91906129c4565b826110779190612ae2565b6007819055506009600a61108b91906129c4565b816110969190612ae2565b6006819055505050565b6110a8611198565b73ffffffffffffffffffffffffffffffffffffffff166110c6610af8565b73ffffffffffffffffffffffffffffffffffffffff161461111c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611113906126ea565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561118c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111839061266a565b60405180910390fd5b611195816118eb565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611210576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112079061276a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611280576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112779061268a565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161135e9190612805565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156113db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113d29061272a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561144b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114429061260a565b60405180910390fd5b6000811161148e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114859061270a565b60405180910390fd5b61149783610943565b8111156114d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d09061264a565b60405180910390fd5b600560149054906101000a900460ff168061153d5750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806115915750600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6115d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115c7906127ca565b60405180910390fd5b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561167b5750600460069054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156116d15750600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156117745760075481111561171b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117129061262a565b60405180910390fd5b6006548161172884610943565b61173291906128ea565b1115611773576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176a9061274a565b60405180910390fd5b5b600061177f30610943565b9050600560159054906101000a900460ff161580156117ec5750600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156118045750600560169054906101000a900460ff165b80156118105750600081115b156118385761181e816119af565b600047905060008111156118365761183547611ca9565b5b505b6118e5848484600360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806118df5750600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611d15565b50505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6001600560156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611a0d577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051908082528060200260200182016040528015611a3b5781602001602082028036833780820191505090505b5090503081600081518110611a79577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600460069054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611b1b57600080fd5b505afa158015611b2f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b5391906120bd565b81600181518110611b8d577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611bf430600460069054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846111a0565b600460069054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611c58959493929190612820565b600060405180830381600087803b158015611c7257600080fd5b505af1158015611c86573d6000803e3d6000fd5b50505050506000600560156101000a81548160ff02191690831515021790555050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611d11573d6000803e3d6000fd5b5050565b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611d649190612b3c565b92505081905550600081611d785782611d84565b611d83858585611e48565b5b905080600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611dd591906128ea565b925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611e399190612805565b60405180910390a35050505050565b600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161415611ebd57600460009054906101000a900461ffff1661ffff169050611f2c565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415611f2b57600460029054906101000a900461ffff1661ffff1690505b5b600060048054906101000a900461ffff1661ffff168285611f4d9190612ae2565b611f579190612940565b905080600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611fa891906128ea565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161200c9190612805565b60405180910390a380846120209190612b3c565b925050509392505050565b60008135905061203a8161302b565b92915050565b60008151905061204f8161302b565b92915050565b60008151905061206481613042565b92915050565b60008135905061207981613059565b92915050565b60008135905061208e81613070565b92915050565b6000602082840312156120a657600080fd5b60006120b48482850161202b565b91505092915050565b6000602082840312156120cf57600080fd5b60006120dd84828501612040565b91505092915050565b600080604083850312156120f957600080fd5b60006121078582860161202b565b92505060206121188582860161202b565b9150509250929050565b60008060006060848603121561213757600080fd5b60006121458682870161202b565b93505060206121568682870161202b565b92505060406121678682870161207f565b9150509250925092565b6000806040838503121561218457600080fd5b60006121928582860161202b565b92505060206121a38582860161207f565b9150509250929050565b6000602082840312156121bf57600080fd5b60006121cd84828501612055565b91505092915050565b6000602082840312156121e857600080fd5b60006121f68482850161206a565b91505092915050565b60006020828403121561221157600080fd5b600061221f8482850161207f565b91505092915050565b6000806040838503121561223b57600080fd5b60006122498582860161207f565b925050602061225a8582860161207f565b9150509250929050565b6000612270838361227c565b60208301905092915050565b61228581612b70565b82525050565b61229481612b70565b82525050565b60006122a5826128a5565b6122af81856128c8565b93506122ba83612895565b8060005b838110156122eb5781516122d28882612264565b97506122dd836128bb565b9250506001810190506122be565b5085935050505092915050565b61230181612b82565b82525050565b61231081612bd3565b82525050565b6000612321826128b0565b61232b81856128d9565b935061233b818560208601612be5565b61234481612c76565b840191505092915050565b600061235c6023836128d9565b915061236782612c94565b604082019050919050565b600061237f6019836128d9565b915061238a82612ce3565b602082019050919050565b60006123a26031836128d9565b91506123ad82612d0c565b604082019050919050565b60006123c56026836128d9565b91506123d082612d5b565b604082019050919050565b60006123e86022836128d9565b91506123f382612daa565b604082019050919050565b600061240b6020836128d9565b915061241682612df9565b602082019050919050565b600061242e6028836128d9565b915061243982612e22565b604082019050919050565b60006124516020836128d9565b915061245c82612e71565b602082019050919050565b60006124746029836128d9565b915061247f82612e9a565b604082019050919050565b60006124976025836128d9565b91506124a282612ee9565b604082019050919050565b60006124ba601a836128d9565b91506124c582612f38565b602082019050919050565b60006124dd6024836128d9565b91506124e882612f61565b604082019050919050565b6000612500601d836128d9565b915061250b82612fb0565b602082019050919050565b60006125236017836128d9565b915061252e82612fd9565b602082019050919050565b60006125466017836128d9565b915061255182613002565b602082019050919050565b61256581612b8e565b82525050565b61257481612bbc565b82525050565b61258381612bc6565b82525050565b600060208201905061259e600083018461228b565b92915050565b60006040820190506125b9600083018561228b565b6125c6602083018461256b565b9392505050565b60006020820190506125e260008301846122f8565b92915050565b600060208201905081810360008301526126028184612316565b905092915050565b600060208201905081810360008301526126238161234f565b9050919050565b6000602082019050818103600083015261264381612372565b9050919050565b6000602082019050818103600083015261266381612395565b9050919050565b60006020820190508181036000830152612683816123b8565b9050919050565b600060208201905081810360008301526126a3816123db565b9050919050565b600060208201905081810360008301526126c3816123fe565b9050919050565b600060208201905081810360008301526126e381612421565b9050919050565b6000602082019050818103600083015261270381612444565b9050919050565b6000602082019050818103600083015261272381612467565b9050919050565b600060208201905081810360008301526127438161248a565b9050919050565b60006020820190508181036000830152612763816124ad565b9050919050565b60006020820190508181036000830152612783816124d0565b9050919050565b600060208201905081810360008301526127a3816124f3565b9050919050565b600060208201905081810360008301526127c381612516565b9050919050565b600060208201905081810360008301526127e381612539565b9050919050565b60006020820190506127ff600083018461255c565b92915050565b600060208201905061281a600083018461256b565b92915050565b600060a082019050612835600083018861256b565b6128426020830187612307565b8181036040830152612854818661229a565b9050612863606083018561228b565b612870608083018461256b565b9695505050505050565b600060208201905061288f600083018461257a565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006128f582612bbc565b915061290083612bbc565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561293557612934612c18565b5b828201905092915050565b600061294b82612bbc565b915061295683612bbc565b92508261296657612965612c47565b5b828204905092915050565b6000808291508390505b60018511156129bb5780860481111561299757612996612c18565b5b60018516156129a65780820291505b80810290506129b485612c87565b945061297b565b94509492505050565b60006129cf82612bbc565b91506129da83612bc6565b9250612a077fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612a0f565b905092915050565b600082612a1f5760019050612adb565b81612a2d5760009050612adb565b8160018114612a435760028114612a4d57612a7c565b6001915050612adb565b60ff841115612a5f57612a5e612c18565b5b8360020a915084821115612a7657612a75612c18565b5b50612adb565b5060208310610133831016604e8410600b8410161715612ab15782820a905083811115612aac57612aab612c18565b5b612adb565b612abe8484846001612971565b92509050818404811115612ad557612ad4612c18565b5b81810290505b9392505050565b6000612aed82612bbc565b9150612af883612bbc565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612b3157612b30612c18565b5b828202905092915050565b6000612b4782612bbc565b9150612b5283612bbc565b925082821015612b6557612b64612c18565b5b828203905092915050565b6000612b7b82612b9c565b9050919050565b60008115159050919050565b600061ffff82169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000612bde82612bbc565b9050919050565b60005b83811015612c03578082015181840152602081019050612be8565b83811115612c12576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000601f19601f8301169050919050565b60008160011c9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b7f596f752061726520747279696e6720746f207472616e73666572206d6f72652060008201527f7468616e20796f75722062616c616e6365000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f6d61782074786e2063616e206e6f7420736574206c657373207468616e203125600082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f6665652063616e206e6f7420736574206d6f7265207468616e20313625000000600082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b7f54726164696e67206e6f7420656e61626c656420796574000000000000000000600082015250565b61303481612b70565b811461303f57600080fd5b50565b61304b81612b82565b811461305657600080fd5b50565b61306281612b8e565b811461306d57600080fd5b50565b61307981612bbc565b811461308457600080fd5b5056fea264697066735822122063530387cecabf7d5b97faebe0eca887fd8cb7b8ebb38f7fb32de8c09e0c775164736f6c63430008040033

Deployed Bytecode Sourcemap

4965:7697:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6689:69;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7399:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6918:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5425:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5464:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7545:420;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11247:114;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6843:69;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11010:111;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12008:157;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7005:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2980:94;;;;;;;;;;;;;:::i;:::-;;11845:155;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2757:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5387:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6764:73;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7114:144;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11369:126;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12277:340;;;;;;;;;;;;;:::i;:::-;;7264:129;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11129:110;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11503:334;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3082:192;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6689:69;6726:13;6750:5;;;;;;;;;;;;;;;;;6743:12;;6689:69;:::o;7399:138::-;7474:4;7482:39;7491:12;:10;:12::i;:::-;7505:7;7514:6;7482:8;:39::i;:::-;7530:4;7523:11;;7399:138;;;;:::o;6918:81::-;6971:7;5737:21;6982:14;;6918:81;:::o;5425:32::-;;;;;;;;;;;;;:::o;5464:36::-;;;;;;;;;;;;:::o;7545:420::-;7651:4;7668:36;7678:6;7686:9;7697:6;7668:9;:36::i;:::-;7717:24;7744:11;:19;7756:6;7744:19;;;;;;;;;;;;;;;:33;7764:12;:10;:12::i;:::-;7744:33;;;;;;;;;;;;;;;;7717:60;;7816:6;7796:16;:26;;7788:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;7878:57;7887:6;7895:12;:10;:12::i;:::-;7928:6;7909:16;:25;;;;:::i;:::-;7878:8;:57::i;:::-;7953:4;7946:11;;;7545:420;;;;;:::o;11247:114::-;2903:12;:10;:12::i;:::-;2892:23;;:7;:5;:7::i;:::-;:23;;;2884:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;5377:1:::1;11339:2;:14;;;;:::i;:::-;11330:6;:23;;;;:::i;:::-;11316:11;:37;;;;11247:114:::0;:::o;6843:69::-;6884:5;5377:1;6893:16;;6843:69;:::o;11010:111::-;2903:12;:10;:12::i;:::-;2892:23;;:7;:5;:7::i;:::-;:23;;;2884:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11109:4:::1;11079:18;:27;11098:7;11079:27;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;11010:111:::0;:::o;12008:157::-;2903:12;:10;:12::i;:::-;2892:23;;:7;:5;:7::i;:::-;:23;;;2884:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12090:2:::1;12082:4;:10;;;;12074:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;12153:4;12137:13;;:20;;;;;;;;;;;;;;;;;;12008:157:::0;:::o;7005:103::-;7071:7;7089;:16;7097:7;7089:16;;;;;;;;;;;;;;;;7082:23;;7005:103;;;:::o;2980:94::-;2903:12;:10;:12::i;:::-;2892:23;;:7;:5;:7::i;:::-;:23;;;2884:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;3045:21:::1;3063:1;3045:9;:21::i;:::-;2980:94::o:0;11845:155::-;2903:12;:10;:12::i;:::-;2892:23;;:7;:5;:7::i;:::-;:23;;;2884:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11926:2:::1;11918:4;:10;;;;11910:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;11988:4;11973:12;;:19;;;;;;;;;;;;;;;;;;11845:155:::0;:::o;2757:87::-;2803:7;2830:6;;;;;;;;;;;2823:13;;2757:87;:::o;5387:31::-;;;;;;;;;;;;;:::o;6764:73::-;6803:13;6827:7;;;;;;;;;;;;;;;;;6820:14;;6764:73;:::o;7114:144::-;7192:4;7200:42;7210:12;:10;:12::i;:::-;7224:9;7235:6;7200:9;:42::i;:::-;7251:4;7244:11;;7114:144;;;;:::o;11369:126::-;2903:12;:10;:12::i;:::-;2892:23;;:7;:5;:7::i;:::-;:23;;;2884:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;5377:1:::1;11473:2;:14;;;;:::i;:::-;11464:6;:23;;;;:::i;:::-;11446:15;:41;;;;11369:126:::0;:::o;12277:340::-;2903:12;:10;:12::i;:::-;2892:23;;:7;:5;:7::i;:::-;:23;;;2884:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12341:11:::1;;;;;;;;;;;12340:12;12332:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;12404:4;12390:11;;:18;;;;;;;;;;;;;;;;;;12433;12419:11;:32;;;;12480:18;12462:15;:36;;;;12523:4;12509:11;;:18;;;;;;;;;;;;;;;;;;12545:13;;;;;;;;;;;12538:29;;;12576:15;;;;;;;;;;;12594:14;12538:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12277:340::o:0;7264:129::-;7345:7;7363:11;:18;7375:5;7363:18;;;;;;;;;;;;;;;:27;7382:7;7363:27;;;;;;;;;;;;;;;;7356:34;;7264:129;;;;:::o;11129:110::-;2903:12;:10;:12::i;:::-;2892:23;;:7;:5;:7::i;:::-;:23;;;2884:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11226:5:::1;11196:18;:27;11215:7;11196:27;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;11129:110:::0;:::o;11503:334::-;2903:12;:10;:12::i;:::-;2892:23;;:7;:5;:7::i;:::-;:23;;;2884:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11633:1:::1;11617:12;:17;;11609:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;5377:1;11755:2;:14;;;;:::i;:::-;11740:12;:29;;;;:::i;:::-;11726:11;:43;;;;5377:1;11815:2;:14;;;;:::i;:::-;11798;:31;;;;:::i;:::-;11780:15;:49;;;;11503:334:::0;;:::o;3082:192::-;2903:12;:10;:12::i;:::-;2892:23;;:7;:5;:7::i;:::-;:23;;;2884:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;3191:1:::1;3171:22;;:8;:22;;;;3163:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;3247:19;3257:8;3247:9;:19::i;:::-;3082:192:::0;:::o;2178:98::-;2231:7;2258:10;2251:17;;2178:98;:::o;7973:335::-;8083:1;8066:19;;:5;:19;;;;8058:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8164:1;8145:21;;:7;:21;;;;8137:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8246:6;8216:11;:18;8228:5;8216:18;;;;;;;;;;;;;;;:27;8235:7;8216:27;;;;;;;;;;;;;;;:36;;;;8284:7;8268:32;;8277:5;8268:32;;;8293:6;8268:32;;;;;;:::i;:::-;;;;;;;;7973:335;;;:::o;8316:1335::-;8420:1;8404:18;;:4;:18;;;;8396:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8497:1;8483:16;;:2;:16;;;;8475:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8567:1;8558:6;:10;8550:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8643:15;8653:4;8643:9;:15::i;:::-;8633:6;:25;;8625:86;;;;;;;;;;;;:::i;:::-;;;;;;;;;8734:11;;;;;;;;;;;:39;;;;8749:18;:24;8768:4;8749:24;;;;;;;;;;;;;;;;;;;;;;;;;8734:39;:65;;;;8777:18;:22;8796:2;8777:22;;;;;;;;;;;;;;;;;;;;;;;;;8734:65;8726:101;;;;;;;;;;;;:::i;:::-;;;;;;;;;8852:13;;;;;;;;;;;8844:21;;:4;:21;;;:55;;;;;8883:15;;;;;;;;;;;8869:30;;:2;:30;;;;8844:55;:83;;;;;8905:18;:22;8924:2;8905:22;;;;;;;;;;;;;;;;;;;;;;;;;8903:24;8844:83;8840:278;;;8966:11;;8956:6;:21;;8948:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;9060:15;;9050:6;9034:13;9044:2;9034:9;:13::i;:::-;:22;;;;:::i;:::-;:41;;9026:80;;;;;;;;;;;;:::i;:::-;;;;;;;;;8840:278;9130:28;9161:24;9179:4;9161:9;:24::i;:::-;9130:55;;9205:6;;;;;;;;;;;9204:7;:32;;;;;9223:13;;;;;;;;;;;9215:21;;:4;:21;;;;9204:32;:47;;;;;9240:11;;;;;;;;;;;9204:47;:73;;;;;9276:1;9255:20;:22;9204:73;9200:344;;;9298:38;9315:20;9298:16;:38::i;:::-;9355:26;9384:21;9355:50;;9448:1;9427:18;:22;9424:105;;;9474:35;9487:21;9474:12;:35::i;:::-;9424:105;9200:344;;9556:87;9571:4;9577:2;9581:6;9591:18;:24;9610:4;9591:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;9619:18;:22;9638:2;9619:22;;;;;;;;;;;;;;;;;;;;;;;;;9591:50;9589:53;9556:14;:87::i;:::-;8316:1335;;;;:::o;3282:173::-;3338:16;3357:6;;;;;;;;;;;3338:25;;3383:8;3374:6;;:17;;;;;;;;;;;;;;;;;;3438:8;3407:40;;3428:8;3407:40;;;;;;;;;;;;3282:173;;:::o;9659:483::-;6003:4;5994:6;;:13;;;;;;;;;;;;;;;;;;9737:21:::1;9775:1;9761:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9737:40;;9806:4;9788;9793:1;9788:7;;;;;;;;;;;;;;;;;;;;;:23;;;;;;;;;::::0;::::1;9832:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9822:4;9827:1;9822:7;;;;;;;;;;;;;;;;;;;;;:32;;;;;;;;;::::0;::::1;9865:62;9882:4;9897:15;;;;;;;;;;;9915:11;9865:8;:62::i;:::-;9938:15;;;;;;;;;;;:66;;;10019:11;10045:1;10061:4;10088;10108:15;9938:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;6018:1;6039:5:::0;6030:6;;:14;;;;;;;;;;;;;;;;;;9659:483;:::o;12173:95::-;12230:13;;;;;;;;;;;:22;;:30;12253:6;12230:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12173:95;:::o;10150:340::-;10277:6;10258:7;:15;10266:6;10258:15;;;;;;;;;;;;;;;;:25;;;;;;;:::i;:::-;;;;;;;;10294:22;10320:7;10319:57;;10370:6;10319:57;;;10331:36;10341:6;10349:9;10360:6;10331:9;:36::i;:::-;10319:57;10294:82;;10409:14;10387:7;:18;10395:9;10387:18;;;;;;;;;;;;;;;;:36;;;;;;;:::i;:::-;;;;;;;;10456:9;10439:43;;10448:6;10439:43;;;10467:14;10439:43;;;;;;:::i;:::-;;;;;;;;10150:340;;;;;:::o;10498:504::-;10577:7;10597:18;10637:13;;;;;;;;;;;10629:21;;:4;:21;;;10626:162;;;10681:12;;;;;;;;;;;10668:25;;;;10626:162;;;10721:13;;;;;;;;;;;10715:19;;:2;:19;;;10711:77;;;10763:13;;;;;;;;;;;10750:26;;;;10711:77;10626:162;10798:17;10840:16;;;;;;;;;;10818:38;;10827:10;10818:6;:19;;;;:::i;:::-;:38;;;;:::i;:::-;10798:58;;10893:9;10867:7;:22;10883:4;10867:22;;;;;;;;;;;;;;;;:35;;;;;;;:::i;:::-;;;;;;;;10941:4;10918:40;;10927:4;10918:40;;;10948:9;10918:40;;;;;;:::i;:::-;;;;;;;;10985:9;10976:6;:18;;;;:::i;:::-;10969:25;;;;10498:504;;;;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:143::-;209:5;240:6;234:13;225:22;;256:33;283:5;256:33;:::i;:::-;215:80;;;;:::o;301:137::-;355:5;386:6;380:13;371:22;;402:30;426:5;402:30;:::i;:::-;361:77;;;;:::o;444:137::-;489:5;527:6;514:20;505:29;;543:32;569:5;543:32;:::i;:::-;495:86;;;;:::o;587:139::-;633:5;671:6;658:20;649:29;;687:33;714:5;687:33;:::i;:::-;639:87;;;;:::o;732:262::-;791:6;840:2;828:9;819:7;815:23;811:32;808:2;;;856:1;853;846:12;808:2;899:1;924:53;969:7;960:6;949:9;945:22;924:53;:::i;:::-;914:63;;870:117;798:196;;;;:::o;1000:284::-;1070:6;1119:2;1107:9;1098:7;1094:23;1090:32;1087:2;;;1135:1;1132;1125:12;1087:2;1178:1;1203:64;1259:7;1250:6;1239:9;1235:22;1203:64;:::i;:::-;1193:74;;1149:128;1077:207;;;;:::o;1290:407::-;1358:6;1366;1415:2;1403:9;1394:7;1390:23;1386:32;1383:2;;;1431:1;1428;1421:12;1383:2;1474:1;1499:53;1544:7;1535:6;1524:9;1520:22;1499:53;:::i;:::-;1489:63;;1445:117;1601:2;1627:53;1672:7;1663:6;1652:9;1648:22;1627:53;:::i;:::-;1617:63;;1572:118;1373:324;;;;;:::o;1703:552::-;1780:6;1788;1796;1845:2;1833:9;1824:7;1820:23;1816:32;1813:2;;;1861:1;1858;1851:12;1813:2;1904:1;1929:53;1974:7;1965:6;1954:9;1950:22;1929:53;:::i;:::-;1919:63;;1875:117;2031:2;2057:53;2102:7;2093:6;2082:9;2078:22;2057:53;:::i;:::-;2047:63;;2002:118;2159:2;2185:53;2230:7;2221:6;2210:9;2206:22;2185:53;:::i;:::-;2175:63;;2130:118;1803:452;;;;;:::o;2261:407::-;2329:6;2337;2386:2;2374:9;2365:7;2361:23;2357:32;2354:2;;;2402:1;2399;2392:12;2354:2;2445:1;2470:53;2515:7;2506:6;2495:9;2491:22;2470:53;:::i;:::-;2460:63;;2416:117;2572:2;2598:53;2643:7;2634:6;2623:9;2619:22;2598:53;:::i;:::-;2588:63;;2543:118;2344:324;;;;;:::o;2674:278::-;2741:6;2790:2;2778:9;2769:7;2765:23;2761:32;2758:2;;;2806:1;2803;2796:12;2758:2;2849:1;2874:61;2927:7;2918:6;2907:9;2903:22;2874:61;:::i;:::-;2864:71;;2820:125;2748:204;;;;:::o;2958:260::-;3016:6;3065:2;3053:9;3044:7;3040:23;3036:32;3033:2;;;3081:1;3078;3071:12;3033:2;3124:1;3149:52;3193:7;3184:6;3173:9;3169:22;3149:52;:::i;:::-;3139:62;;3095:116;3023:195;;;;:::o;3224:262::-;3283:6;3332:2;3320:9;3311:7;3307:23;3303:32;3300:2;;;3348:1;3345;3338:12;3300:2;3391:1;3416:53;3461:7;3452:6;3441:9;3437:22;3416:53;:::i;:::-;3406:63;;3362:117;3290:196;;;;:::o;3492:407::-;3560:6;3568;3617:2;3605:9;3596:7;3592:23;3588:32;3585:2;;;3633:1;3630;3623:12;3585:2;3676:1;3701:53;3746:7;3737:6;3726:9;3722:22;3701:53;:::i;:::-;3691:63;;3647:117;3803:2;3829:53;3874:7;3865:6;3854:9;3850:22;3829:53;:::i;:::-;3819:63;;3774:118;3575:324;;;;;:::o;3905:179::-;3974:10;3995:46;4037:3;4029:6;3995:46;:::i;:::-;4073:4;4068:3;4064:14;4050:28;;3985:99;;;;:::o;4090:108::-;4167:24;4185:5;4167:24;:::i;:::-;4162:3;4155:37;4145:53;;:::o;4204:118::-;4291:24;4309:5;4291:24;:::i;:::-;4286:3;4279:37;4269:53;;:::o;4358:732::-;4477:3;4506:54;4554:5;4506:54;:::i;:::-;4576:86;4655:6;4650:3;4576:86;:::i;:::-;4569:93;;4686:56;4736:5;4686:56;:::i;:::-;4765:7;4796:1;4781:284;4806:6;4803:1;4800:13;4781:284;;;4882:6;4876:13;4909:63;4968:3;4953:13;4909:63;:::i;:::-;4902:70;;4995:60;5048:6;4995:60;:::i;:::-;4985:70;;4841:224;4828:1;4825;4821:9;4816:14;;4781:284;;;4785:14;5081:3;5074:10;;4482:608;;;;;;;:::o;5096:109::-;5177:21;5192:5;5177:21;:::i;:::-;5172:3;5165:34;5155:50;;:::o;5211:147::-;5306:45;5345:5;5306:45;:::i;:::-;5301:3;5294:58;5284:74;;:::o;5364:364::-;5452:3;5480:39;5513:5;5480:39;:::i;:::-;5535:71;5599:6;5594:3;5535:71;:::i;:::-;5528:78;;5615:52;5660:6;5655:3;5648:4;5641:5;5637:16;5615:52;:::i;:::-;5692:29;5714:6;5692:29;:::i;:::-;5687:3;5683:39;5676:46;;5456:272;;;;;:::o;5734:366::-;5876:3;5897:67;5961:2;5956:3;5897:67;:::i;:::-;5890:74;;5973:93;6062:3;5973:93;:::i;:::-;6091:2;6086:3;6082:12;6075:19;;5880:220;;;:::o;6106:366::-;6248:3;6269:67;6333:2;6328:3;6269:67;:::i;:::-;6262:74;;6345:93;6434:3;6345:93;:::i;:::-;6463:2;6458:3;6454:12;6447:19;;6252:220;;;:::o;6478:366::-;6620:3;6641:67;6705:2;6700:3;6641:67;:::i;:::-;6634:74;;6717:93;6806:3;6717:93;:::i;:::-;6835:2;6830:3;6826:12;6819:19;;6624:220;;;:::o;6850:366::-;6992:3;7013:67;7077:2;7072:3;7013:67;:::i;:::-;7006:74;;7089:93;7178:3;7089:93;:::i;:::-;7207:2;7202:3;7198:12;7191:19;;6996:220;;;:::o;7222:366::-;7364:3;7385:67;7449:2;7444:3;7385:67;:::i;:::-;7378:74;;7461:93;7550:3;7461:93;:::i;:::-;7579:2;7574:3;7570:12;7563:19;;7368:220;;;:::o;7594:366::-;7736:3;7757:67;7821:2;7816:3;7757:67;:::i;:::-;7750:74;;7833:93;7922:3;7833:93;:::i;:::-;7951:2;7946:3;7942:12;7935:19;;7740:220;;;:::o;7966:366::-;8108:3;8129:67;8193:2;8188:3;8129:67;:::i;:::-;8122:74;;8205:93;8294:3;8205:93;:::i;:::-;8323:2;8318:3;8314:12;8307:19;;8112:220;;;:::o;8338:366::-;8480:3;8501:67;8565:2;8560:3;8501:67;:::i;:::-;8494:74;;8577:93;8666:3;8577:93;:::i;:::-;8695:2;8690:3;8686:12;8679:19;;8484:220;;;:::o;8710:366::-;8852:3;8873:67;8937:2;8932:3;8873:67;:::i;:::-;8866:74;;8949:93;9038:3;8949:93;:::i;:::-;9067:2;9062:3;9058:12;9051:19;;8856:220;;;:::o;9082:366::-;9224:3;9245:67;9309:2;9304:3;9245:67;:::i;:::-;9238:74;;9321:93;9410:3;9321:93;:::i;:::-;9439:2;9434:3;9430:12;9423:19;;9228:220;;;:::o;9454:366::-;9596:3;9617:67;9681:2;9676:3;9617:67;:::i;:::-;9610:74;;9693:93;9782:3;9693:93;:::i;:::-;9811:2;9806:3;9802:12;9795:19;;9600:220;;;:::o;9826:366::-;9968:3;9989:67;10053:2;10048:3;9989:67;:::i;:::-;9982:74;;10065:93;10154:3;10065:93;:::i;:::-;10183:2;10178:3;10174:12;10167:19;;9972:220;;;:::o;10198:366::-;10340:3;10361:67;10425:2;10420:3;10361:67;:::i;:::-;10354:74;;10437:93;10526:3;10437:93;:::i;:::-;10555:2;10550:3;10546:12;10539:19;;10344:220;;;:::o;10570:366::-;10712:3;10733:67;10797:2;10792:3;10733:67;:::i;:::-;10726:74;;10809:93;10898:3;10809:93;:::i;:::-;10927:2;10922:3;10918:12;10911:19;;10716:220;;;:::o;10942:366::-;11084:3;11105:67;11169:2;11164:3;11105:67;:::i;:::-;11098:74;;11181:93;11270:3;11181:93;:::i;:::-;11299:2;11294:3;11290:12;11283:19;;11088:220;;;:::o;11314:115::-;11399:23;11416:5;11399:23;:::i;:::-;11394:3;11387:36;11377:52;;:::o;11435:118::-;11522:24;11540:5;11522:24;:::i;:::-;11517:3;11510:37;11500:53;;:::o;11559:112::-;11642:22;11658:5;11642:22;:::i;:::-;11637:3;11630:35;11620:51;;:::o;11677:222::-;11770:4;11808:2;11797:9;11793:18;11785:26;;11821:71;11889:1;11878:9;11874:17;11865:6;11821:71;:::i;:::-;11775:124;;;;:::o;11905:332::-;12026:4;12064:2;12053:9;12049:18;12041:26;;12077:71;12145:1;12134:9;12130:17;12121:6;12077:71;:::i;:::-;12158:72;12226:2;12215:9;12211:18;12202:6;12158:72;:::i;:::-;12031:206;;;;;:::o;12243:210::-;12330:4;12368:2;12357:9;12353:18;12345:26;;12381:65;12443:1;12432:9;12428:17;12419:6;12381:65;:::i;:::-;12335:118;;;;:::o;12459:313::-;12572:4;12610:2;12599:9;12595:18;12587:26;;12659:9;12653:4;12649:20;12645:1;12634:9;12630:17;12623:47;12687:78;12760:4;12751:6;12687:78;:::i;:::-;12679:86;;12577:195;;;;:::o;12778:419::-;12944:4;12982:2;12971:9;12967:18;12959:26;;13031:9;13025:4;13021:20;13017:1;13006:9;13002:17;12995:47;13059:131;13185:4;13059:131;:::i;:::-;13051:139;;12949:248;;;:::o;13203:419::-;13369:4;13407:2;13396:9;13392:18;13384:26;;13456:9;13450:4;13446:20;13442:1;13431:9;13427:17;13420:47;13484:131;13610:4;13484:131;:::i;:::-;13476:139;;13374:248;;;:::o;13628:419::-;13794:4;13832:2;13821:9;13817:18;13809:26;;13881:9;13875:4;13871:20;13867:1;13856:9;13852:17;13845:47;13909:131;14035:4;13909:131;:::i;:::-;13901:139;;13799:248;;;:::o;14053:419::-;14219:4;14257:2;14246:9;14242:18;14234:26;;14306:9;14300:4;14296:20;14292:1;14281:9;14277:17;14270:47;14334:131;14460:4;14334:131;:::i;:::-;14326:139;;14224:248;;;:::o;14478:419::-;14644:4;14682:2;14671:9;14667:18;14659:26;;14731:9;14725:4;14721:20;14717:1;14706:9;14702:17;14695:47;14759:131;14885:4;14759:131;:::i;:::-;14751:139;;14649:248;;;:::o;14903:419::-;15069:4;15107:2;15096:9;15092:18;15084:26;;15156:9;15150:4;15146:20;15142:1;15131:9;15127:17;15120:47;15184:131;15310:4;15184:131;:::i;:::-;15176:139;;15074:248;;;:::o;15328:419::-;15494:4;15532:2;15521:9;15517:18;15509:26;;15581:9;15575:4;15571:20;15567:1;15556:9;15552:17;15545:47;15609:131;15735:4;15609:131;:::i;:::-;15601:139;;15499:248;;;:::o;15753:419::-;15919:4;15957:2;15946:9;15942:18;15934:26;;16006:9;16000:4;15996:20;15992:1;15981:9;15977:17;15970:47;16034:131;16160:4;16034:131;:::i;:::-;16026:139;;15924:248;;;:::o;16178:419::-;16344:4;16382:2;16371:9;16367:18;16359:26;;16431:9;16425:4;16421:20;16417:1;16406:9;16402:17;16395:47;16459:131;16585:4;16459:131;:::i;:::-;16451:139;;16349:248;;;:::o;16603:419::-;16769:4;16807:2;16796:9;16792:18;16784:26;;16856:9;16850:4;16846:20;16842:1;16831:9;16827:17;16820:47;16884:131;17010:4;16884:131;:::i;:::-;16876:139;;16774:248;;;:::o;17028:419::-;17194:4;17232:2;17221:9;17217:18;17209:26;;17281:9;17275:4;17271:20;17267:1;17256:9;17252:17;17245:47;17309:131;17435:4;17309:131;:::i;:::-;17301:139;;17199:248;;;:::o;17453:419::-;17619:4;17657:2;17646:9;17642:18;17634:26;;17706:9;17700:4;17696:20;17692:1;17681:9;17677:17;17670:47;17734:131;17860:4;17734:131;:::i;:::-;17726:139;;17624:248;;;:::o;17878:419::-;18044:4;18082:2;18071:9;18067:18;18059:26;;18131:9;18125:4;18121:20;18117:1;18106:9;18102:17;18095:47;18159:131;18285:4;18159:131;:::i;:::-;18151:139;;18049:248;;;:::o;18303:419::-;18469:4;18507:2;18496:9;18492:18;18484:26;;18556:9;18550:4;18546:20;18542:1;18531:9;18527:17;18520:47;18584:131;18710:4;18584:131;:::i;:::-;18576:139;;18474:248;;;:::o;18728:419::-;18894:4;18932:2;18921:9;18917:18;18909:26;;18981:9;18975:4;18971:20;18967:1;18956:9;18952:17;18945:47;19009:131;19135:4;19009:131;:::i;:::-;19001:139;;18899:248;;;:::o;19153:218::-;19244:4;19282:2;19271:9;19267:18;19259:26;;19295:69;19361:1;19350:9;19346:17;19337:6;19295:69;:::i;:::-;19249:122;;;;:::o;19377:222::-;19470:4;19508:2;19497:9;19493:18;19485:26;;19521:71;19589:1;19578:9;19574:17;19565:6;19521:71;:::i;:::-;19475:124;;;;:::o;19605:831::-;19868:4;19906:3;19895:9;19891:19;19883:27;;19920:71;19988:1;19977:9;19973:17;19964:6;19920:71;:::i;:::-;20001:80;20077:2;20066:9;20062:18;20053:6;20001:80;:::i;:::-;20128:9;20122:4;20118:20;20113:2;20102:9;20098:18;20091:48;20156:108;20259:4;20250:6;20156:108;:::i;:::-;20148:116;;20274:72;20342:2;20331:9;20327:18;20318:6;20274:72;:::i;:::-;20356:73;20424:3;20413:9;20409:19;20400:6;20356:73;:::i;:::-;19873:563;;;;;;;;:::o;20442:214::-;20531:4;20569:2;20558:9;20554:18;20546:26;;20582:67;20646:1;20635:9;20631:17;20622:6;20582:67;:::i;:::-;20536:120;;;;:::o;20662:132::-;20729:4;20752:3;20744:11;;20782:4;20777:3;20773:14;20765:22;;20734:60;;;:::o;20800:114::-;20867:6;20901:5;20895:12;20885:22;;20874:40;;;:::o;20920:99::-;20972:6;21006:5;21000:12;20990:22;;20979:40;;;:::o;21025:113::-;21095:4;21127;21122:3;21118:14;21110:22;;21100:38;;;:::o;21144:184::-;21243:11;21277:6;21272:3;21265:19;21317:4;21312:3;21308:14;21293:29;;21255:73;;;;:::o;21334:169::-;21418:11;21452:6;21447:3;21440:19;21492:4;21487:3;21483:14;21468:29;;21430:73;;;;:::o;21509:305::-;21549:3;21568:20;21586:1;21568:20;:::i;:::-;21563:25;;21602:20;21620:1;21602:20;:::i;:::-;21597:25;;21756:1;21688:66;21684:74;21681:1;21678:81;21675:2;;;21762:18;;:::i;:::-;21675:2;21806:1;21803;21799:9;21792:16;;21553:261;;;;:::o;21820:185::-;21860:1;21877:20;21895:1;21877:20;:::i;:::-;21872:25;;21911:20;21929:1;21911:20;:::i;:::-;21906:25;;21950:1;21940:2;;21955:18;;:::i;:::-;21940:2;21997:1;21994;21990:9;21985:14;;21862:143;;;;:::o;22011:848::-;22072:5;22079:4;22103:6;22094:15;;22127:5;22118:14;;22141:712;22162:1;22152:8;22149:15;22141:712;;;22257:4;22252:3;22248:14;22242:4;22239:24;22236:2;;;22266:18;;:::i;:::-;22236:2;22316:1;22306:8;22302:16;22299:2;;;22731:4;22724:5;22720:16;22711:25;;22299:2;22781:4;22775;22771:15;22763:23;;22811:32;22834:8;22811:32;:::i;:::-;22799:44;;22141:712;;;22084:775;;;;;;;:::o;22865:281::-;22923:5;22947:23;22965:4;22947:23;:::i;:::-;22939:31;;22991:25;23007:8;22991:25;:::i;:::-;22979:37;;23035:104;23072:66;23062:8;23056:4;23035:104;:::i;:::-;23026:113;;22929:217;;;;:::o;23152:1073::-;23206:5;23397:8;23387:2;;23418:1;23409:10;;23420:5;;23387:2;23446:4;23436:2;;23463:1;23454:10;;23465:5;;23436:2;23532:4;23580:1;23575:27;;;;23616:1;23611:191;;;;23525:277;;23575:27;23593:1;23584:10;;23595:5;;;23611:191;23656:3;23646:8;23643:17;23640:2;;;23663:18;;:::i;:::-;23640:2;23712:8;23709:1;23705:16;23696:25;;23747:3;23740:5;23737:14;23734:2;;;23754:18;;:::i;:::-;23734:2;23787:5;;;23525:277;;23911:2;23901:8;23898:16;23892:3;23886:4;23883:13;23879:36;23861:2;23851:8;23848:16;23843:2;23837:4;23834:12;23830:35;23814:111;23811:2;;;23967:8;23961:4;23957:19;23948:28;;24002:3;23995:5;23992:14;23989:2;;;24009:18;;:::i;:::-;23989:2;24042:5;;23811:2;24082:42;24120:3;24110:8;24104:4;24101:1;24082:42;:::i;:::-;24067:57;;;;24156:4;24151:3;24147:14;24140:5;24137:25;24134:2;;;24165:18;;:::i;:::-;24134:2;24214:4;24207:5;24203:16;24194:25;;23212:1013;;;;;;:::o;24231:348::-;24271:7;24294:20;24312:1;24294:20;:::i;:::-;24289:25;;24328:20;24346:1;24328:20;:::i;:::-;24323:25;;24516:1;24448:66;24444:74;24441:1;24438:81;24433:1;24426:9;24419:17;24415:105;24412:2;;;24523:18;;:::i;:::-;24412:2;24571:1;24568;24564:9;24553:20;;24279:300;;;;:::o;24585:191::-;24625:4;24645:20;24663:1;24645:20;:::i;:::-;24640:25;;24679:20;24697:1;24679:20;:::i;:::-;24674:25;;24718:1;24715;24712:8;24709:2;;;24723:18;;:::i;:::-;24709:2;24768:1;24765;24761:9;24753:17;;24630:146;;;;:::o;24782:96::-;24819:7;24848:24;24866:5;24848:24;:::i;:::-;24837:35;;24827:51;;;:::o;24884:90::-;24918:7;24961:5;24954:13;24947:21;24936:32;;24926:48;;;:::o;24980:89::-;25016:7;25056:6;25049:5;25045:18;25034:29;;25024:45;;;:::o;25075:126::-;25112:7;25152:42;25145:5;25141:54;25130:65;;25120:81;;;:::o;25207:77::-;25244:7;25273:5;25262:16;;25252:32;;;:::o;25290:86::-;25325:7;25365:4;25358:5;25354:16;25343:27;;25333:43;;;:::o;25382:121::-;25440:9;25473:24;25491:5;25473:24;:::i;:::-;25460:37;;25450:53;;;:::o;25509:307::-;25577:1;25587:113;25601:6;25598:1;25595:13;25587:113;;;25686:1;25681:3;25677:11;25671:18;25667:1;25662:3;25658:11;25651:39;25623:2;25620:1;25616:10;25611:15;;25587:113;;;25718:6;25715:1;25712:13;25709:2;;;25798:1;25789:6;25784:3;25780:16;25773:27;25709:2;25558:258;;;;:::o;25822:180::-;25870:77;25867:1;25860:88;25967:4;25964:1;25957:15;25991:4;25988:1;25981:15;26008:180;26056:77;26053:1;26046:88;26153:4;26150:1;26143:15;26177:4;26174:1;26167:15;26194:102;26235:6;26286:2;26282:7;26277:2;26270:5;26266:14;26262:28;26252:38;;26242:54;;;:::o;26302:102::-;26344:8;26391:5;26388:1;26384:13;26363:34;;26353:51;;;:::o;26410:222::-;26550:34;26546:1;26538:6;26534:14;26527:58;26619:5;26614:2;26606:6;26602:15;26595:30;26516:116;:::o;26638:175::-;26778:27;26774:1;26766:6;26762:14;26755:51;26744:69;:::o;26819:236::-;26959:34;26955:1;26947:6;26943:14;26936:58;27028:19;27023:2;27015:6;27011:15;27004:44;26925:130;:::o;27061:225::-;27201:34;27197:1;27189:6;27185:14;27178:58;27270:8;27265:2;27257:6;27253:15;27246:33;27167:119;:::o;27292:221::-;27432:34;27428:1;27420:6;27416:14;27409:58;27501:4;27496:2;27488:6;27484:15;27477:29;27398:115;:::o;27519:182::-;27659:34;27655:1;27647:6;27643:14;27636:58;27625:76;:::o;27707:227::-;27847:34;27843:1;27835:6;27831:14;27824:58;27916:10;27911:2;27903:6;27899:15;27892:35;27813:121;:::o;27940:182::-;28080:34;28076:1;28068:6;28064:14;28057:58;28046:76;:::o;28128:228::-;28268:34;28264:1;28256:6;28252:14;28245:58;28337:11;28332:2;28324:6;28320:15;28313:36;28234:122;:::o;28362:224::-;28502:34;28498:1;28490:6;28486:14;28479:58;28571:7;28566:2;28558:6;28554:15;28547:32;28468:118;:::o;28592:176::-;28732:28;28728:1;28720:6;28716:14;28709:52;28698:70;:::o;28774:223::-;28914:34;28910:1;28902:6;28898:14;28891:58;28983:6;28978:2;28970:6;28966:15;28959:31;28880:117;:::o;29003:179::-;29143:31;29139:1;29131:6;29127:14;29120:55;29109:73;:::o;29188:173::-;29328:25;29324:1;29316:6;29312:14;29305:49;29294:67;:::o;29367:173::-;29507:25;29503:1;29495:6;29491:14;29484:49;29473:67;:::o;29546:122::-;29619:24;29637:5;29619:24;:::i;:::-;29612:5;29609:35;29599:2;;29658:1;29655;29648:12;29599:2;29589:79;:::o;29674:116::-;29744:21;29759:5;29744:21;:::i;:::-;29737:5;29734:32;29724:2;;29780:1;29777;29770:12;29724:2;29714:76;:::o;29796:120::-;29868:23;29885:5;29868:23;:::i;:::-;29861:5;29858:34;29848:2;;29906:1;29903;29896:12;29848:2;29838:78;:::o;29922:122::-;29995:24;30013:5;29995:24;:::i;:::-;29988:5;29985:35;29975:2;;30034:1;30031;30024:12;29975:2;29965:79;:::o

Swarm Source

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