ETH Price: $3,442.02 (-1.32%)
Gas: 9 Gwei

Token

DMT Inu (DMT)
 

Overview

Max Total Supply

1,000,000 DMT

Holders

99

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 8 Decimals)

Balance
0.00000001 DMT

Value
$0.00
0x1f4aeda8d2ce102d1a6eb6ddff886fd21ba195f4
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:
DMTInu

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

//dmteth.com
//A Path to the Otherside

// SPDX-License-Identifier: MIT
pragma solidity 0.8.17;

abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
}

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

}

contract Ownable is Context {
    address private _owner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

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

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

    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

}

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

contract DMTInu is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private bots;
    address payable private _taxWallet = payable(msg.sender);

    uint256 private _initialTax=25;
    uint256 private _finalTax=25;
    uint256 private _reduceTaxCountdown=1000;
    uint256 private _preventSwapBefore=960;   
    uint256 private _taxBots = 65;

    uint8 private constant _decimals = 8;
    uint256 private constant _tTotal = 1_000_000 * 10**_decimals;
    string private constant _name = "DMT Inu";
    string private constant _symbol = "DMT";

    uint256 public _maxTxAmount = 20_000 * 10**_decimals;
    uint256 public _maxWalletSize = 20_000 * 10**_decimals;
    uint256 public _taxSwap=2_500 * 10**_decimals;
    

    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    address _marketingWallet;
    address _developmentWallet;

    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor () {
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());

        _developmentWallet = 0xF1cb0C093e1da540a283aF7acb49B94036C0778C;
        _marketingWallet = 0x74907352Dc94205b55A807ED44CA140077D9c71D;
        uint256 _marketingTokens = _tTotal.mul(10).div(100);
        _balances[_marketingWallet] = _marketingTokens;
        _balances[_msgSender()] = _tTotal - _marketingTokens;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_taxWallet] = true;
        emit Transfer(address(0), _msgSender(), _tTotal);
    }

    receive() external payable {}

    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 _balances[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 override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        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");
        uint256 taxAmount=0;
        if (from != _taxWallet && to != _taxWallet && 
            from != _marketingWallet && from != _developmentWallet) {
            require(tradingOpen);

            if(!bots[from])
                taxAmount = amount.mul( (_reduceTaxCountdown==0)?_finalTax:_initialTax ).div(100);
            else
                taxAmount = amount.mul(_taxBots).div(100);
            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) {
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
                if(_reduceTaxCountdown>0){_reduceTaxCountdown--;}
            }

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

        _balances[from]=_balances[from].sub(amount);
        _balances[to]=_balances[to].add(amount.sub(taxAmount));
        emit Transfer(from, to, amount.sub(taxAmount));
        if(taxAmount>0){
          _balances[address(this)]=_balances[address(this)].add(taxAmount);
          emit Transfer(from, address(this),taxAmount);
        }
    }

    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 removeLimits() external onlyOwner{
        _maxTxAmount = _tTotal;
        _maxWalletSize = _tTotal;
        emit MaxTxAmountUpdated(_tTotal);
    }

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

    function addBots(address[] memory bots_) public onlyOwner {
        for (uint i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }

    function delBots(address[] memory notbot) public onlyOwner {
      for (uint i = 0; i < notbot.length; i++) {
          bots[notbot[i]] = false;
      }
    }

    function excludeMultipleFromFees(address[] memory addressesToExclude, bool toExclude) public onlyOwner {
        for(uint256 i = 0;i<addressesToExclude.length;i++)
            bots[addressesToExclude[i]] = toExclude;
    }

    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        swapEnabled = true;
        tradingOpen = true;
    }

    function manualswap() external {
        swapTokensForEth(balanceOf(address(this)));
    }

    function manualsend() external {
        sendETHToFee(address(this).balance);
    }

    function reduceTax(uint256 newInitialTax, uint256 newFinalTax) external onlyOwner {
        require(newInitialTax < _initialTax, "Only tax reduction permitted.");
        require(newFinalTax < _finalTax, "Only tax reduction permitted.");
        _initialTax = newInitialTax;
        _finalTax = newFinalTax;
    }
}

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":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"addBots","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":"notbot","type":"address[]"}],"name":"delBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addressesToExclude","type":"address[]"},{"internalType":"bool","name":"toExclude","type":"bool"}],"name":"excludeMultipleFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","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":[{"internalType":"uint256","name":"newInitialTax","type":"uint256"},{"internalType":"uint256","name":"newFinalTax","type":"uint256"}],"name":"reduceTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","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":"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"},{"stateMutability":"payable","type":"receive"}]

608060405233600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601960065560196007556103e86008556103c06009556041600a556008600a62000070919062000abd565b614e206200007f919062000b0e565b600b556008600a62000092919062000abd565b614e20620000a1919062000b0e565b600c556008600a620000b4919062000abd565b6109c4620000c3919062000b0e565b600d556000600f60156101000a81548160ff0219169083151502179055506000600f60166101000a81548160ff0219169083151502179055503480156200010957600080fd5b5060006200011c620007b560201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350737a250d5630b4cf539739df2c5dacb4c659f2488d600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200027d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002a3919062000bc3565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200032d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000353919062000bc3565b6040518363ffffffff1660e01b81526004016200037292919062000c06565b6020604051808303816000875af115801562000392573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003b8919062000bc3565b600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073f1cb0c093e1da540a283af7acb49b94036c0778c601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507374907352dc94205b55a807ed44ca140077d9c71d601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000620004f86064620004e4600a6008600a620004c0919062000abd565b620f4240620004d0919062000b0e565b620007bd60201b620010131790919060201c565b6200084060201b6200108d1790919060201c565b90508060016000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550806008600a62000571919062000abd565b620f424062000581919062000b0e565b6200058d919062000c33565b60016000620005a1620007b560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160036000620005f56200089260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000728620007b560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6008600a62000787919062000abd565b620f424062000797919062000b0e565b604051620007a6919062000c7f565b60405180910390a35062000e59565b600033905090565b6000808303620007d157600090506200083a565b60008284620007e1919062000b0e565b9050828482620007f2919062000ccb565b1462000835576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200082c9062000d8a565b60405180910390fd5b809150505b92915050565b60006200088a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250620008bb60201b60201c565b905092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000808311829062000905576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008fc919062000e35565b60405180910390fd5b506000838562000916919062000ccb565b9050809150509392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115620009b15780860481111562000989576200098862000923565b5b6001851615620009995780820291505b8081029050620009a98562000952565b945062000969565b94509492505050565b600082620009cc576001905062000a9f565b81620009dc576000905062000a9f565b8160018114620009f5576002811462000a005762000a36565b600191505062000a9f565b60ff84111562000a155762000a1462000923565b5b8360020a91508482111562000a2f5762000a2e62000923565b5b5062000a9f565b5060208310610133831016604e8410600b841016171562000a705782820a90508381111562000a6a5762000a6962000923565b5b62000a9f565b62000a7f84848460016200095f565b9250905081840481111562000a995762000a9862000923565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000aca8262000aa6565b915062000ad78362000ab0565b925062000b067fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620009ba565b905092915050565b600062000b1b8262000aa6565b915062000b288362000aa6565b925082820262000b388162000aa6565b9150828204841483151762000b525762000b5162000923565b5b5092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000b8b8262000b5e565b9050919050565b62000b9d8162000b7e565b811462000ba957600080fd5b50565b60008151905062000bbd8162000b92565b92915050565b60006020828403121562000bdc5762000bdb62000b59565b5b600062000bec8482850162000bac565b91505092915050565b62000c008162000b7e565b82525050565b600060408201905062000c1d600083018562000bf5565b62000c2c602083018462000bf5565b9392505050565b600062000c408262000aa6565b915062000c4d8362000aa6565b925082820390508181111562000c685762000c6762000923565b5b92915050565b62000c798162000aa6565b82525050565b600060208201905062000c96600083018462000c6e565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000cd88262000aa6565b915062000ce58362000aa6565b92508262000cf85762000cf762000c9c565b5b828204905092915050565b600082825260208201905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600062000d7260218362000d03565b915062000d7f8262000d14565b604082019050919050565b6000602082019050818103600083015262000da58162000d63565b9050919050565b600081519050919050565b60005b8381101562000dd757808201518184015260208101905062000dba565b60008484015250505050565b6000601f19601f8301169050919050565b600062000e018262000dac565b62000e0d818562000d03565b935062000e1f81856020860162000db7565b62000e2a8162000de3565b840191505092915050565b6000602082019050818103600083015262000e51818462000df4565b905092915050565b6130758062000e696000396000f3fe6080604052600436106101395760003560e01c80637d1db4a5116100ab578063b9a410ff1161006f578063b9a410ff146103ff578063bea1cb2714610428578063c3c8cd8014610451578063c9567bf914610468578063d34628cc1461047f578063dd62ed3e146104a857610140565b80637d1db4a5146103165780638da5cb5b146103415780638f9a55c01461036c57806395d89b4114610397578063a9059cbb146103c257610140565b806331c2d847116100fd57806331c2d8471461024057806334376f3b146102695780636fc3eaec1461029457806370a08231146102ab578063715018a6146102e8578063751039fc146102ff57610140565b806306fdde0314610145578063095ea7b31461017057806318160ddd146101ad57806323b872dd146101d8578063313ce5671461021557610140565b3661014057005b600080fd5b34801561015157600080fd5b5061015a6104e5565b6040516101679190612049565b60405180910390f35b34801561017c57600080fd5b5061019760048036038101906101929190612113565b610522565b6040516101a4919061216e565b60405180910390f35b3480156101b957600080fd5b506101c2610540565b6040516101cf9190612198565b60405180910390f35b3480156101e457600080fd5b506101ff60048036038101906101fa91906121b3565b610563565b60405161020c919061216e565b60405180910390f35b34801561022157600080fd5b5061022a61063c565b6040516102379190612222565b60405180910390f35b34801561024c57600080fd5b5061026760048036038101906102629190612385565b610645565b005b34801561027557600080fd5b5061027e61076f565b60405161028b9190612198565b60405180910390f35b3480156102a057600080fd5b506102a9610775565b005b3480156102b757600080fd5b506102d260048036038101906102cd91906123ce565b610780565b6040516102df9190612198565b60405180910390f35b3480156102f457600080fd5b506102fd6107c9565b005b34801561030b57600080fd5b5061031461091c565b005b34801561032257600080fd5b5061032b610a49565b6040516103389190612198565b60405180910390f35b34801561034d57600080fd5b50610356610a4f565b604051610363919061240a565b60405180910390f35b34801561037857600080fd5b50610381610a78565b60405161038e9190612198565b60405180910390f35b3480156103a357600080fd5b506103ac610a7e565b6040516103b99190612049565b60405180910390f35b3480156103ce57600080fd5b506103e960048036038101906103e49190612113565b610abb565b6040516103f6919061216e565b60405180910390f35b34801561040b57600080fd5b5061042660048036038101906104219190612425565b610ad9565b005b34801561043457600080fd5b5061044f600480360381019061044a9190612491565b610c08565b005b34801561045d57600080fd5b50610466610d32565b005b34801561047457600080fd5b5061047d610d45565b005b34801561048b57600080fd5b506104a660048036038101906104a19190612385565b610e62565b005b3480156104b457600080fd5b506104cf60048036038101906104ca91906124ed565b610f8c565b6040516104dc9190612198565b60405180910390f35b60606040518060400160405280600781526020017f444d5420496e7500000000000000000000000000000000000000000000000000815250905090565b600061053661052f6110d7565b84846110df565b6001905092915050565b60006008600a610550919061268f565b620f424061055e91906126da565b905090565b60006105708484846112a8565b6106318461057c6110d7565b61062c8560405180606001604052806028815260200161301860289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006105e26110d7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b659092919063ffffffff16565b6110df565b600190509392505050565b60006008905090565b61064d6110d7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106d190612768565b60405180910390fd5b60005b815181101561076b576000600460008484815181106106ff576106fe612788565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610763906127b7565b9150506106dd565b5050565b600d5481565b61077e47611bc9565b565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6107d16110d7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461085e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085590612768565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6109246110d7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109a890612768565b60405180910390fd5b6008600a6109bf919061268f565b620f42406109cd91906126da565b600b819055506008600a6109e1919061268f565b620f42406109ef91906126da565b600c819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6008600a610a24919061268f565b620f4240610a3291906126da565b604051610a3f9190612198565b60405180910390a1565b600b5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600c5481565b60606040518060400160405280600381526020017f444d540000000000000000000000000000000000000000000000000000000000815250905090565b6000610acf610ac86110d7565b84846112a8565b6001905092915050565b610ae16110d7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b6e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b6590612768565b60405180910390fd5b6006548210610bb2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ba99061284b565b60405180910390fd5b6007548110610bf6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bed9061284b565b60405180910390fd5b81600681905550806007819055505050565b610c106110d7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c9d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9490612768565b60405180910390fd5b60005b8251811015610d2d578160046000858481518110610cc157610cc0612788565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610d25906127b7565b915050610ca0565b505050565b610d43610d3e30610780565b611c35565b565b610d4d6110d7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dda576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dd190612768565b60405180910390fd5b600f60149054906101000a900460ff1615610e2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e21906128b7565b60405180910390fd5b6001600f60166101000a81548160ff0219169083151502179055506001600f60146101000a81548160ff021916908315150217905550565b610e6a6110d7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ef7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eee90612768565b60405180910390fd5b60005b8151811015610f8857600160046000848481518110610f1c57610f1b612788565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610f80906127b7565b915050610efa565b5050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008083036110255760009050611087565b6000828461103391906126da565b90508284826110429190612906565b14611082576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611079906129a9565b60405180910390fd5b809150505b92915050565b60006110cf83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611eae565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361114e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114590612a3b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036111bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111b490612acd565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161129b9190612198565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611317576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130e90612b5f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611386576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137d90612bf1565b60405180910390fd5b600081116113c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c090612c83565b60405180910390fd5b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156114775750600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156114d15750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b801561152b5750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156118a857600f60149054906101000a900460ff1661154957600080fd5b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166115dc576115d560646115c76000600854146115b4576006546115b8565b6007545b8561101390919063ffffffff16565b61108d90919063ffffffff16565b9050611607565b61160460646115f6600a548561101390919063ffffffff16565b61108d90919063ffffffff16565b90505b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156116b25750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156117085750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156117cf57600b54821115611752576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174990612cef565b60405180910390fd5b600c548261175f85610780565b6117699190612d0f565b11156117aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117a190612d8f565b60405180910390fd5b600060085411156117ce57600860008154809291906117c890612daf565b91905055505b5b60006117da30610780565b9050600f60159054906101000a900460ff161580156118475750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b801561185f5750600f60169054906101000a900460ff165b801561186c5750600d5481115b801561187c575060095460085411155b156118a65761188c600d54611c35565b600047905060008111156118a4576118a347611bc9565b5b505b505b6118fa82600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f1190919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506119a16119538284611f1190919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f5b90919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611a468486611f1190919063ffffffff16565b604051611a539190612198565b60405180910390a36000811115611b5f57611ab681600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f5b90919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611b569190612198565b60405180910390a35b50505050565b6000838311158290611bad576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ba49190612049565b60405180910390fd5b5060008385611bbc9190612dd8565b9050809150509392505050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611c31573d6000803e3d6000fd5b5050565b6001600f60156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611c6d57611c6c612242565b5b604051908082528060200260200182016040528015611c9b5781602001602082028036833780820191505090505b5090503081600081518110611cb357611cb2612788565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d5a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d7e9190612e21565b81600181518110611d9257611d91612788565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611df930600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846110df565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611e5d959493929190612f51565b600060405180830381600087803b158015611e7757600080fd5b505af1158015611e8b573d6000803e3d6000fd5b50505050506000600f60156101000a81548160ff02191690831515021790555050565b60008083118290611ef5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eec9190612049565b60405180910390fd5b5060008385611f049190612906565b9050809150509392505050565b6000611f5383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611b65565b905092915050565b6000808284611f6a9190612d0f565b905083811015611faf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fa690612ff7565b60405180910390fd5b8091505092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611ff3578082015181840152602081019050611fd8565b60008484015250505050565b6000601f19601f8301169050919050565b600061201b82611fb9565b6120258185611fc4565b9350612035818560208601611fd5565b61203e81611fff565b840191505092915050565b600060208201905081810360008301526120638184612010565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006120aa8261207f565b9050919050565b6120ba8161209f565b81146120c557600080fd5b50565b6000813590506120d7816120b1565b92915050565b6000819050919050565b6120f0816120dd565b81146120fb57600080fd5b50565b60008135905061210d816120e7565b92915050565b6000806040838503121561212a57612129612075565b5b6000612138858286016120c8565b9250506020612149858286016120fe565b9150509250929050565b60008115159050919050565b61216881612153565b82525050565b6000602082019050612183600083018461215f565b92915050565b612192816120dd565b82525050565b60006020820190506121ad6000830184612189565b92915050565b6000806000606084860312156121cc576121cb612075565b5b60006121da868287016120c8565b93505060206121eb868287016120c8565b92505060406121fc868287016120fe565b9150509250925092565b600060ff82169050919050565b61221c81612206565b82525050565b60006020820190506122376000830184612213565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61227a82611fff565b810181811067ffffffffffffffff8211171561229957612298612242565b5b80604052505050565b60006122ac61206b565b90506122b88282612271565b919050565b600067ffffffffffffffff8211156122d8576122d7612242565b5b602082029050602081019050919050565b600080fd5b60006123016122fc846122bd565b6122a2565b90508083825260208201905060208402830185811115612324576123236122e9565b5b835b8181101561234d578061233988826120c8565b845260208401935050602081019050612326565b5050509392505050565b600082601f83011261236c5761236b61223d565b5b813561237c8482602086016122ee565b91505092915050565b60006020828403121561239b5761239a612075565b5b600082013567ffffffffffffffff8111156123b9576123b861207a565b5b6123c584828501612357565b91505092915050565b6000602082840312156123e4576123e3612075565b5b60006123f2848285016120c8565b91505092915050565b6124048161209f565b82525050565b600060208201905061241f60008301846123fb565b92915050565b6000806040838503121561243c5761243b612075565b5b600061244a858286016120fe565b925050602061245b858286016120fe565b9150509250929050565b61246e81612153565b811461247957600080fd5b50565b60008135905061248b81612465565b92915050565b600080604083850312156124a8576124a7612075565b5b600083013567ffffffffffffffff8111156124c6576124c561207a565b5b6124d285828601612357565b92505060206124e38582860161247c565b9150509250929050565b6000806040838503121561250457612503612075565b5b6000612512858286016120c8565b9250506020612523858286016120c8565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156125b35780860481111561258f5761258e61252d565b5b600185161561259e5780820291505b80810290506125ac8561255c565b9450612573565b94509492505050565b6000826125cc5760019050612688565b816125da5760009050612688565b81600181146125f057600281146125fa57612629565b6001915050612688565b60ff84111561260c5761260b61252d565b5b8360020a9150848211156126235761262261252d565b5b50612688565b5060208310610133831016604e8410600b841016171561265e5782820a9050838111156126595761265861252d565b5b612688565b61266b8484846001612569565b925090508184048111156126825761268161252d565b5b81810290505b9392505050565b600061269a826120dd565b91506126a583612206565b92506126d27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846125bc565b905092915050565b60006126e5826120dd565b91506126f0836120dd565b92508282026126fe816120dd565b915082820484148315176127155761271461252d565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612752602083611fc4565b915061275d8261271c565b602082019050919050565b6000602082019050818103600083015261278181612745565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006127c2826120dd565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036127f4576127f361252d565b5b600182019050919050565b7f4f6e6c792074617820726564756374696f6e207065726d69747465642e000000600082015250565b6000612835601d83611fc4565b9150612840826127ff565b602082019050919050565b6000602082019050818103600083015261286481612828565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b60006128a1601783611fc4565b91506128ac8261286b565b602082019050919050565b600060208201905081810360008301526128d081612894565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612911826120dd565b915061291c836120dd565b92508261292c5761292b6128d7565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000612993602183611fc4565b915061299e82612937565b604082019050919050565b600060208201905081810360008301526129c281612986565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612a25602483611fc4565b9150612a30826129c9565b604082019050919050565b60006020820190508181036000830152612a5481612a18565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612ab7602283611fc4565b9150612ac282612a5b565b604082019050919050565b60006020820190508181036000830152612ae681612aaa565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612b49602583611fc4565b9150612b5482612aed565b604082019050919050565b60006020820190508181036000830152612b7881612b3c565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612bdb602383611fc4565b9150612be682612b7f565b604082019050919050565b60006020820190508181036000830152612c0a81612bce565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612c6d602983611fc4565b9150612c7882612c11565b604082019050919050565b60006020820190508181036000830152612c9c81612c60565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b6000612cd9601983611fc4565b9150612ce482612ca3565b602082019050919050565b60006020820190508181036000830152612d0881612ccc565b9050919050565b6000612d1a826120dd565b9150612d25836120dd565b9250828201905080821115612d3d57612d3c61252d565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b6000612d79601a83611fc4565b9150612d8482612d43565b602082019050919050565b60006020820190508181036000830152612da881612d6c565b9050919050565b6000612dba826120dd565b915060008203612dcd57612dcc61252d565b5b600182039050919050565b6000612de3826120dd565b9150612dee836120dd565b9250828203905081811115612e0657612e0561252d565b5b92915050565b600081519050612e1b816120b1565b92915050565b600060208284031215612e3757612e36612075565b5b6000612e4584828501612e0c565b91505092915050565b6000819050919050565b6000819050919050565b6000612e7d612e78612e7384612e4e565b612e58565b6120dd565b9050919050565b612e8d81612e62565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612ec88161209f565b82525050565b6000612eda8383612ebf565b60208301905092915050565b6000602082019050919050565b6000612efe82612e93565b612f088185612e9e565b9350612f1383612eaf565b8060005b83811015612f44578151612f2b8882612ece565b9750612f3683612ee6565b925050600181019050612f17565b5085935050505092915050565b600060a082019050612f666000830188612189565b612f736020830187612e84565b8181036040830152612f858186612ef3565b9050612f9460608301856123fb565b612fa16080830184612189565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000612fe1601b83611fc4565b9150612fec82612fab565b602082019050919050565b6000602082019050818103600083015261301081612fd4565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212208b033007a0e2e5cdc03c1afd61c3ed8110ae6f15fde8c56c2f4f98fbe7af333064736f6c63430008110033

Deployed Bytecode

0x6080604052600436106101395760003560e01c80637d1db4a5116100ab578063b9a410ff1161006f578063b9a410ff146103ff578063bea1cb2714610428578063c3c8cd8014610451578063c9567bf914610468578063d34628cc1461047f578063dd62ed3e146104a857610140565b80637d1db4a5146103165780638da5cb5b146103415780638f9a55c01461036c57806395d89b4114610397578063a9059cbb146103c257610140565b806331c2d847116100fd57806331c2d8471461024057806334376f3b146102695780636fc3eaec1461029457806370a08231146102ab578063715018a6146102e8578063751039fc146102ff57610140565b806306fdde0314610145578063095ea7b31461017057806318160ddd146101ad57806323b872dd146101d8578063313ce5671461021557610140565b3661014057005b600080fd5b34801561015157600080fd5b5061015a6104e5565b6040516101679190612049565b60405180910390f35b34801561017c57600080fd5b5061019760048036038101906101929190612113565b610522565b6040516101a4919061216e565b60405180910390f35b3480156101b957600080fd5b506101c2610540565b6040516101cf9190612198565b60405180910390f35b3480156101e457600080fd5b506101ff60048036038101906101fa91906121b3565b610563565b60405161020c919061216e565b60405180910390f35b34801561022157600080fd5b5061022a61063c565b6040516102379190612222565b60405180910390f35b34801561024c57600080fd5b5061026760048036038101906102629190612385565b610645565b005b34801561027557600080fd5b5061027e61076f565b60405161028b9190612198565b60405180910390f35b3480156102a057600080fd5b506102a9610775565b005b3480156102b757600080fd5b506102d260048036038101906102cd91906123ce565b610780565b6040516102df9190612198565b60405180910390f35b3480156102f457600080fd5b506102fd6107c9565b005b34801561030b57600080fd5b5061031461091c565b005b34801561032257600080fd5b5061032b610a49565b6040516103389190612198565b60405180910390f35b34801561034d57600080fd5b50610356610a4f565b604051610363919061240a565b60405180910390f35b34801561037857600080fd5b50610381610a78565b60405161038e9190612198565b60405180910390f35b3480156103a357600080fd5b506103ac610a7e565b6040516103b99190612049565b60405180910390f35b3480156103ce57600080fd5b506103e960048036038101906103e49190612113565b610abb565b6040516103f6919061216e565b60405180910390f35b34801561040b57600080fd5b5061042660048036038101906104219190612425565b610ad9565b005b34801561043457600080fd5b5061044f600480360381019061044a9190612491565b610c08565b005b34801561045d57600080fd5b50610466610d32565b005b34801561047457600080fd5b5061047d610d45565b005b34801561048b57600080fd5b506104a660048036038101906104a19190612385565b610e62565b005b3480156104b457600080fd5b506104cf60048036038101906104ca91906124ed565b610f8c565b6040516104dc9190612198565b60405180910390f35b60606040518060400160405280600781526020017f444d5420496e7500000000000000000000000000000000000000000000000000815250905090565b600061053661052f6110d7565b84846110df565b6001905092915050565b60006008600a610550919061268f565b620f424061055e91906126da565b905090565b60006105708484846112a8565b6106318461057c6110d7565b61062c8560405180606001604052806028815260200161301860289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006105e26110d7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b659092919063ffffffff16565b6110df565b600190509392505050565b60006008905090565b61064d6110d7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106d190612768565b60405180910390fd5b60005b815181101561076b576000600460008484815181106106ff576106fe612788565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610763906127b7565b9150506106dd565b5050565b600d5481565b61077e47611bc9565b565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6107d16110d7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461085e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085590612768565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6109246110d7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109a890612768565b60405180910390fd5b6008600a6109bf919061268f565b620f42406109cd91906126da565b600b819055506008600a6109e1919061268f565b620f42406109ef91906126da565b600c819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6008600a610a24919061268f565b620f4240610a3291906126da565b604051610a3f9190612198565b60405180910390a1565b600b5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600c5481565b60606040518060400160405280600381526020017f444d540000000000000000000000000000000000000000000000000000000000815250905090565b6000610acf610ac86110d7565b84846112a8565b6001905092915050565b610ae16110d7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b6e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b6590612768565b60405180910390fd5b6006548210610bb2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ba99061284b565b60405180910390fd5b6007548110610bf6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bed9061284b565b60405180910390fd5b81600681905550806007819055505050565b610c106110d7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c9d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9490612768565b60405180910390fd5b60005b8251811015610d2d578160046000858481518110610cc157610cc0612788565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610d25906127b7565b915050610ca0565b505050565b610d43610d3e30610780565b611c35565b565b610d4d6110d7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dda576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dd190612768565b60405180910390fd5b600f60149054906101000a900460ff1615610e2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e21906128b7565b60405180910390fd5b6001600f60166101000a81548160ff0219169083151502179055506001600f60146101000a81548160ff021916908315150217905550565b610e6a6110d7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ef7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eee90612768565b60405180910390fd5b60005b8151811015610f8857600160046000848481518110610f1c57610f1b612788565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610f80906127b7565b915050610efa565b5050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008083036110255760009050611087565b6000828461103391906126da565b90508284826110429190612906565b14611082576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611079906129a9565b60405180910390fd5b809150505b92915050565b60006110cf83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611eae565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361114e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114590612a3b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036111bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111b490612acd565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161129b9190612198565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611317576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130e90612b5f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611386576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137d90612bf1565b60405180910390fd5b600081116113c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c090612c83565b60405180910390fd5b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156114775750600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156114d15750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b801561152b5750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156118a857600f60149054906101000a900460ff1661154957600080fd5b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166115dc576115d560646115c76000600854146115b4576006546115b8565b6007545b8561101390919063ffffffff16565b61108d90919063ffffffff16565b9050611607565b61160460646115f6600a548561101390919063ffffffff16565b61108d90919063ffffffff16565b90505b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156116b25750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156117085750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156117cf57600b54821115611752576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174990612cef565b60405180910390fd5b600c548261175f85610780565b6117699190612d0f565b11156117aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117a190612d8f565b60405180910390fd5b600060085411156117ce57600860008154809291906117c890612daf565b91905055505b5b60006117da30610780565b9050600f60159054906101000a900460ff161580156118475750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b801561185f5750600f60169054906101000a900460ff165b801561186c5750600d5481115b801561187c575060095460085411155b156118a65761188c600d54611c35565b600047905060008111156118a4576118a347611bc9565b5b505b505b6118fa82600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f1190919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506119a16119538284611f1190919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f5b90919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611a468486611f1190919063ffffffff16565b604051611a539190612198565b60405180910390a36000811115611b5f57611ab681600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f5b90919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611b569190612198565b60405180910390a35b50505050565b6000838311158290611bad576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ba49190612049565b60405180910390fd5b5060008385611bbc9190612dd8565b9050809150509392505050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611c31573d6000803e3d6000fd5b5050565b6001600f60156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611c6d57611c6c612242565b5b604051908082528060200260200182016040528015611c9b5781602001602082028036833780820191505090505b5090503081600081518110611cb357611cb2612788565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d5a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d7e9190612e21565b81600181518110611d9257611d91612788565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611df930600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846110df565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611e5d959493929190612f51565b600060405180830381600087803b158015611e7757600080fd5b505af1158015611e8b573d6000803e3d6000fd5b50505050506000600f60156101000a81548160ff02191690831515021790555050565b60008083118290611ef5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eec9190612049565b60405180910390fd5b5060008385611f049190612906565b9050809150509392505050565b6000611f5383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611b65565b905092915050565b6000808284611f6a9190612d0f565b905083811015611faf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fa690612ff7565b60405180910390fd5b8091505092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611ff3578082015181840152602081019050611fd8565b60008484015250505050565b6000601f19601f8301169050919050565b600061201b82611fb9565b6120258185611fc4565b9350612035818560208601611fd5565b61203e81611fff565b840191505092915050565b600060208201905081810360008301526120638184612010565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006120aa8261207f565b9050919050565b6120ba8161209f565b81146120c557600080fd5b50565b6000813590506120d7816120b1565b92915050565b6000819050919050565b6120f0816120dd565b81146120fb57600080fd5b50565b60008135905061210d816120e7565b92915050565b6000806040838503121561212a57612129612075565b5b6000612138858286016120c8565b9250506020612149858286016120fe565b9150509250929050565b60008115159050919050565b61216881612153565b82525050565b6000602082019050612183600083018461215f565b92915050565b612192816120dd565b82525050565b60006020820190506121ad6000830184612189565b92915050565b6000806000606084860312156121cc576121cb612075565b5b60006121da868287016120c8565b93505060206121eb868287016120c8565b92505060406121fc868287016120fe565b9150509250925092565b600060ff82169050919050565b61221c81612206565b82525050565b60006020820190506122376000830184612213565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61227a82611fff565b810181811067ffffffffffffffff8211171561229957612298612242565b5b80604052505050565b60006122ac61206b565b90506122b88282612271565b919050565b600067ffffffffffffffff8211156122d8576122d7612242565b5b602082029050602081019050919050565b600080fd5b60006123016122fc846122bd565b6122a2565b90508083825260208201905060208402830185811115612324576123236122e9565b5b835b8181101561234d578061233988826120c8565b845260208401935050602081019050612326565b5050509392505050565b600082601f83011261236c5761236b61223d565b5b813561237c8482602086016122ee565b91505092915050565b60006020828403121561239b5761239a612075565b5b600082013567ffffffffffffffff8111156123b9576123b861207a565b5b6123c584828501612357565b91505092915050565b6000602082840312156123e4576123e3612075565b5b60006123f2848285016120c8565b91505092915050565b6124048161209f565b82525050565b600060208201905061241f60008301846123fb565b92915050565b6000806040838503121561243c5761243b612075565b5b600061244a858286016120fe565b925050602061245b858286016120fe565b9150509250929050565b61246e81612153565b811461247957600080fd5b50565b60008135905061248b81612465565b92915050565b600080604083850312156124a8576124a7612075565b5b600083013567ffffffffffffffff8111156124c6576124c561207a565b5b6124d285828601612357565b92505060206124e38582860161247c565b9150509250929050565b6000806040838503121561250457612503612075565b5b6000612512858286016120c8565b9250506020612523858286016120c8565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156125b35780860481111561258f5761258e61252d565b5b600185161561259e5780820291505b80810290506125ac8561255c565b9450612573565b94509492505050565b6000826125cc5760019050612688565b816125da5760009050612688565b81600181146125f057600281146125fa57612629565b6001915050612688565b60ff84111561260c5761260b61252d565b5b8360020a9150848211156126235761262261252d565b5b50612688565b5060208310610133831016604e8410600b841016171561265e5782820a9050838111156126595761265861252d565b5b612688565b61266b8484846001612569565b925090508184048111156126825761268161252d565b5b81810290505b9392505050565b600061269a826120dd565b91506126a583612206565b92506126d27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846125bc565b905092915050565b60006126e5826120dd565b91506126f0836120dd565b92508282026126fe816120dd565b915082820484148315176127155761271461252d565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612752602083611fc4565b915061275d8261271c565b602082019050919050565b6000602082019050818103600083015261278181612745565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006127c2826120dd565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036127f4576127f361252d565b5b600182019050919050565b7f4f6e6c792074617820726564756374696f6e207065726d69747465642e000000600082015250565b6000612835601d83611fc4565b9150612840826127ff565b602082019050919050565b6000602082019050818103600083015261286481612828565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b60006128a1601783611fc4565b91506128ac8261286b565b602082019050919050565b600060208201905081810360008301526128d081612894565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612911826120dd565b915061291c836120dd565b92508261292c5761292b6128d7565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000612993602183611fc4565b915061299e82612937565b604082019050919050565b600060208201905081810360008301526129c281612986565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612a25602483611fc4565b9150612a30826129c9565b604082019050919050565b60006020820190508181036000830152612a5481612a18565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612ab7602283611fc4565b9150612ac282612a5b565b604082019050919050565b60006020820190508181036000830152612ae681612aaa565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612b49602583611fc4565b9150612b5482612aed565b604082019050919050565b60006020820190508181036000830152612b7881612b3c565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612bdb602383611fc4565b9150612be682612b7f565b604082019050919050565b60006020820190508181036000830152612c0a81612bce565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612c6d602983611fc4565b9150612c7882612c11565b604082019050919050565b60006020820190508181036000830152612c9c81612c60565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b6000612cd9601983611fc4565b9150612ce482612ca3565b602082019050919050565b60006020820190508181036000830152612d0881612ccc565b9050919050565b6000612d1a826120dd565b9150612d25836120dd565b9250828201905080821115612d3d57612d3c61252d565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b6000612d79601a83611fc4565b9150612d8482612d43565b602082019050919050565b60006020820190508181036000830152612da881612d6c565b9050919050565b6000612dba826120dd565b915060008203612dcd57612dcc61252d565b5b600182039050919050565b6000612de3826120dd565b9150612dee836120dd565b9250828203905081811115612e0657612e0561252d565b5b92915050565b600081519050612e1b816120b1565b92915050565b600060208284031215612e3757612e36612075565b5b6000612e4584828501612e0c565b91505092915050565b6000819050919050565b6000819050919050565b6000612e7d612e78612e7384612e4e565b612e58565b6120dd565b9050919050565b612e8d81612e62565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612ec88161209f565b82525050565b6000612eda8383612ebf565b60208301905092915050565b6000602082019050919050565b6000612efe82612e93565b612f088185612e9e565b9350612f1383612eaf565b8060005b83811015612f44578151612f2b8882612ece565b9750612f3683612ee6565b925050600181019050612f17565b5085935050505092915050565b600060a082019050612f666000830188612189565b612f736020830187612e84565b8181036040830152612f858186612ef3565b9050612f9460608301856123fb565b612fa16080830184612189565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000612fe1601b83611fc4565b9150612fec82612fab565b602082019050919050565b6000602082019050818103600083015261301081612fd4565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212208b033007a0e2e5cdc03c1afd61c3ed8110ae6f15fde8c56c2f4f98fbe7af333064736f6c63430008110033

Deployed Bytecode Sourcemap

3514:7787:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5703:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6536:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5980:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6705:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5889:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10208:162;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4427:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10887:85;;;;;;;;;;;;;:::i;:::-;;6083:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2595:148;;;;;;;;;;;;;:::i;:::-;;9767:161;;;;;;;;;;;;;:::i;:::-;;4307:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2381:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4366:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5794:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6210:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10980:318;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10378:225;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10787:92;;;;;;;;;;;;;:::i;:::-;;10611:168;;;;;;;;;;;;;:::i;:::-;;10036:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6385:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5703:83;5740:13;5773:5;;;;;;;;;;;;;;;;;5766:12;;5703:83;:::o;6536:161::-;6611:4;6628:39;6637:12;:10;:12::i;:::-;6651:7;6660:6;6628:8;:39::i;:::-;6685:4;6678:11;;6536:161;;;;:::o;5980:95::-;6033:7;4136:1;4191:2;:13;;;;:::i;:::-;4179:9;:25;;;;:::i;:::-;6053:14;;5980:95;:::o;6705:313::-;6803:4;6820:36;6830:6;6838:9;6849:6;6820:9;:36::i;:::-;6867:121;6876:6;6884:12;:10;:12::i;:::-;6898:89;6936:6;6898:89;;;;;;;;;;;;;;;;;:11;:19;6910:6;6898:19;;;;;;;;;;;;;;;:33;6918:12;:10;:12::i;:::-;6898:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6867:8;:121::i;:::-;7006:4;6999:11;;6705:313;;;;;:::o;5889:83::-;5930:5;4136:1;5948:16;;5889:83;:::o;10208:162::-;2518:12;:10;:12::i;:::-;2508:22;;:6;;;;;;;;;;:22;;;2500:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10281:6:::1;10276:87;10297:6;:13;10293:1;:17;10276:87;;;10348:5;10330:4;:15;10335:6;10342:1;10335:9;;;;;;;;:::i;:::-;;;;;;;;10330:15;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;10312:3;;;;;:::i;:::-;;;;10276:87;;;;10208:162:::0;:::o;4427:45::-;;;;:::o;10887:85::-;10929:35;10942:21;10929:12;:35::i;:::-;10887:85::o;6083:119::-;6149:7;6176:9;:18;6186:7;6176:18;;;;;;;;;;;;;;;;6169:25;;6083:119;;;:::o;2595:148::-;2518:12;:10;:12::i;:::-;2508:22;;:6;;;;;;;;;;:22;;;2500:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2702:1:::1;2665:40;;2686:6;::::0;::::1;;;;;;;;2665:40;;;;;;;;;;;;2733:1;2716:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2595:148::o:0;9767:161::-;2518:12;:10;:12::i;:::-;2508:22;;:6;;;;;;;;;;:22;;;2500:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4136:1:::1;4191:2;:13;;;;:::i;:::-;4179:9;:25;;;;:::i;:::-;9820:12;:22;;;;4136:1;4191:2;:13;;;;:::i;:::-;4179:9;:25;;;;:::i;:::-;9853:14;:24;;;;9893:27;4136:1;4191:2;:13;;;;:::i;:::-;4179:9;:25;;;;:::i;:::-;9893:27;;;;;;:::i;:::-;;;;;;;;9767:161::o:0;4307:52::-;;;;:::o;2381:79::-;2419:7;2446:6;;;;;;;;;;;2439:13;;2381:79;:::o;4366:54::-;;;;:::o;5794:87::-;5833:13;5866:7;;;;;;;;;;;;;;;;;5859:14;;5794:87;:::o;6210:167::-;6288:4;6305:42;6315:12;:10;:12::i;:::-;6329:9;6340:6;6305:9;:42::i;:::-;6365:4;6358:11;;6210:167;;;;:::o;10980:318::-;2518:12;:10;:12::i;:::-;2508:22;;:6;;;;;;;;;;:22;;;2500:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11097:11:::1;;11081:13;:27;11073:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;11175:9;;11161:11;:23;11153:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;11243:13;11229:11;:27;;;;11279:11;11267:9;:23;;;;10980:318:::0;;:::o;10378:225::-;2518:12;:10;:12::i;:::-;2508:22;;:6;;;;;;;;;;:22;;;2500:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10496:9:::1;10492:103;10512:18;:25;10510:1;:27;10492:103;;;10586:9;10556:4;:27;10561:18;10580:1;10561:21;;;;;;;;:::i;:::-;;;;;;;;10556:27;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;10538:3;;;;;:::i;:::-;;;;10492:103;;;;10378:225:::0;;:::o;10787:92::-;10829:42;10846:24;10864:4;10846:9;:24::i;:::-;10829:16;:42::i;:::-;10787:92::o;10611:168::-;2518:12;:10;:12::i;:::-;2508:22;;:6;;;;;;;;;;:22;;;2500:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10675:11:::1;;;;;;;;;;;10674:12;10666:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;10738:4;10724:11;;:18;;;;;;;;;;;;;;;;;;10767:4;10753:11;;:18;;;;;;;;;;;;;;;;;;10611:168::o:0;10036:164::-;2518:12;:10;:12::i;:::-;2508:22;;:6;;;;;;;;;;:22;;;2500:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10110:6:::1;10105:88;10126:5;:12;10122:1;:16;10105:88;;;10177:4;10160;:14;10165:5;10171:1;10165:8;;;;;;;;:::i;:::-;;;;;;;;10160:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;10140:3;;;;;:::i;:::-;;;;10105:88;;;;10036:164:::0;:::o;6385:143::-;6466:7;6493:11;:18;6505:5;6493:18;;;;;;;;;;;;;;;:27;6512:7;6493:27;;;;;;;;;;;;;;;;6486:34;;6385:143;;;;:::o;1471:246::-;1529:7;1558:1;1553;:6;1549:47;;1583:1;1576:8;;;;1549:47;1606:9;1622:1;1618;:5;;;;:::i;:::-;1606:17;;1651:1;1646;1642;:5;;;;:::i;:::-;:10;1634:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1708:1;1701:8;;;1471:246;;;;;:::o;1725:132::-;1783:7;1810:39;1814:1;1817;1810:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1803:46;;1725:132;;;;:::o;136:98::-;189:7;216:10;209:17;;136:98;:::o;7026:335::-;7136:1;7119:19;;:5;:19;;;7111:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7217:1;7198:21;;:7;:21;;;7190:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7299:6;7269:11;:18;7281:5;7269:18;;;;;;;;;;;;;;;:27;7288:7;7269:27;;;;;;;;;;;;;;;:36;;;;7337:7;7321:32;;7330:5;7321:32;;;7346:6;7321:32;;;;;;:::i;:::-;;;;;;;;7026:335;;;:::o;7369:1899::-;7473:1;7457:18;;:4;:18;;;7449:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7550:1;7536:16;;:2;:16;;;7528:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7620:1;7611:6;:10;7603:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7678:17;7720:10;;;;;;;;;;;7712:18;;:4;:18;;;;:38;;;;;7740:10;;;;;;;;;;;7734:16;;:2;:16;;;;7712:38;:80;;;;;7776:16;;;;;;;;;;;7768:24;;:4;:24;;;;7712:80;:110;;;;;7804:18;;;;;;;;;;;7796:26;;:4;:26;;;;7712:110;7708:1204;;;7847:11;;;;;;;;;;;7839:20;;;;;;7880:4;:10;7885:4;7880:10;;;;;;;;;;;;;;;;;;;;;;;;;7876:192;;7921:69;7986:3;7921:60;7955:1;7934:19;;:22;7933:46;;7968:11;;7933:46;;;7958:9;;7933:46;7921:6;:10;;:60;;;;:::i;:::-;:64;;:69;;;;:::i;:::-;7909:81;;7876:192;;;8039:29;8064:3;8039:20;8050:8;;8039:6;:10;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;8027:41;;7876:192;8095:13;;;;;;;;;;;8087:21;;:4;:21;;;:55;;;;;8126:15;;;;;;;;;;;8112:30;;:2;:30;;;;8087:55;:83;;;;;8148:18;:22;8167:2;8148:22;;;;;;;;;;;;;;;;;;;;;;;;;8146:24;8087:83;8083:350;;;8210:12;;8200:6;:22;;8192:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;8305:14;;8295:6;8279:13;8289:2;8279:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8271:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8392:1;8372:19;;:21;8369:49;;;8395:19;;:21;;;;;;;;;:::i;:::-;;;;;;8369:49;8083:350;8449:28;8480:24;8498:4;8480:9;:24::i;:::-;8449:55;;8524:6;;;;;;;;;;;8523:7;:32;;;;;8542:13;;;;;;;;;;;8534:21;;:4;:21;;;;8523:32;:47;;;;;8559:11;;;;;;;;;;;8523:47;:80;;;;;8595:8;;8574:20;:29;8523:80;:123;;;;;8628:18;;8607:19;;:39;;8523:123;8519:382;;;8667:26;8684:8;;8667:16;:26::i;:::-;8712;8741:21;8712:50;;8805:1;8784:18;:22;8781:105;;;8831:35;8844:21;8831:12;:35::i;:::-;8781:105;8648:253;8519:382;7824:1088;7708:1204;8940:27;8960:6;8940:9;:15;8950:4;8940:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;8924:9;:15;8934:4;8924:15;;;;;;;;;;;;;;;:43;;;;8992:40;9010:21;9021:9;9010:6;:10;;:21;;;;:::i;:::-;8992:9;:13;9002:2;8992:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;8978:9;:13;8988:2;8978:13;;;;;;;;;;;;;;;:54;;;;9063:2;9048:41;;9057:4;9048:41;;;9067:21;9078:9;9067:6;:10;;:21;;;;:::i;:::-;9048:41;;;;;;:::i;:::-;;;;;;;;9113:1;9103:9;:11;9100:161;;;9153:39;9182:9;9153;:24;9171:4;9153:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;9128:9;:24;9146:4;9128:24;;;;;;;;;;;;;;;:64;;;;9233:4;9210:39;;9219:4;9210:39;;;9239:9;9210:39;;;;;;:::i;:::-;;;;;;;;9100:161;7438:1830;7369:1899;;;:::o;1273:190::-;1359:7;1392:1;1387;:6;;1395:12;1379:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1419:9;1435:1;1431;:5;;;;:::i;:::-;1419:17;;1454:1;1447:8;;;1273:190;;;;;:::o;9936:92::-;9993:10;;;;;;;;;;;:19;;:27;10013:6;9993:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9936:92;:::o;9276:483::-;4833:4;4824:6;;:13;;;;;;;;;;;;;;;;;;9354:21:::1;9392:1;9378:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9354:40;;9423:4;9405;9410:1;9405:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;9449:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9439:4;9444:1;9439:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;9482:62;9499:4;9514:15;;;;;;;;;;;9532:11;9482:8;:62::i;:::-;9555:15;;;;;;;;;;;:66;;;9636:11;9662:1;9678:4;9705;9725:15;9555:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9343:416;4869:5:::0;4860:6;;:14;;;;;;;;;;;;;;;;;;9276:483;:::o;1865:189::-;1951:7;1983:1;1979;:5;1986:12;1971:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2010:9;2026:1;2022;:5;;;;:::i;:::-;2010:17;;2045:1;2038:8;;;1865:189;;;;;:::o;1129:136::-;1187:7;1214:43;1218:1;1221;1214:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1207:50;;1129:136;;;;:::o;942:179::-;1000:7;1020:9;1036:1;1032;:5;;;;:::i;:::-;1020:17;;1061:1;1056;:6;;1048:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1112:1;1105:8;;;942:179;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1349:75::-;1382:6;1415:2;1409:9;1399:19;;1349:75;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:117::-;4962:1;4959;4952:12;4976:180;5024:77;5021:1;5014:88;5121:4;5118:1;5111:15;5145:4;5142:1;5135:15;5162:281;5245:27;5267:4;5245:27;:::i;:::-;5237:6;5233:40;5375:6;5363:10;5360:22;5339:18;5327:10;5324:34;5321:62;5318:88;;;5386:18;;:::i;:::-;5318:88;5426:10;5422:2;5415:22;5205:238;5162:281;;:::o;5449:129::-;5483:6;5510:20;;:::i;:::-;5500:30;;5539:33;5567:4;5559:6;5539:33;:::i;:::-;5449:129;;;:::o;5584:311::-;5661:4;5751:18;5743:6;5740:30;5737:56;;;5773:18;;:::i;:::-;5737:56;5823:4;5815:6;5811:17;5803:25;;5883:4;5877;5873:15;5865:23;;5584:311;;;:::o;5901:117::-;6010:1;6007;6000:12;6041:710;6137:5;6162:81;6178:64;6235:6;6178:64;:::i;:::-;6162:81;:::i;:::-;6153:90;;6263:5;6292:6;6285:5;6278:21;6326:4;6319:5;6315:16;6308:23;;6379:4;6371:6;6367:17;6359:6;6355:30;6408:3;6400:6;6397:15;6394:122;;;6427:79;;:::i;:::-;6394:122;6542:6;6525:220;6559:6;6554:3;6551:15;6525:220;;;6634:3;6663:37;6696:3;6684:10;6663:37;:::i;:::-;6658:3;6651:50;6730:4;6725:3;6721:14;6714:21;;6601:144;6585:4;6580:3;6576:14;6569:21;;6525:220;;;6529:21;6143:608;;6041:710;;;;;:::o;6774:370::-;6845:5;6894:3;6887:4;6879:6;6875:17;6871:27;6861:122;;6902:79;;:::i;:::-;6861:122;7019:6;7006:20;7044:94;7134:3;7126:6;7119:4;7111:6;7107:17;7044:94;:::i;:::-;7035:103;;6851:293;6774:370;;;;:::o;7150:539::-;7234:6;7283:2;7271:9;7262:7;7258:23;7254:32;7251:119;;;7289:79;;:::i;:::-;7251:119;7437:1;7426:9;7422:17;7409:31;7467:18;7459:6;7456:30;7453:117;;;7489:79;;:::i;:::-;7453:117;7594:78;7664:7;7655:6;7644:9;7640:22;7594:78;:::i;:::-;7584:88;;7380:302;7150:539;;;;:::o;7695:329::-;7754:6;7803:2;7791:9;7782:7;7778:23;7774:32;7771:119;;;7809:79;;:::i;:::-;7771:119;7929:1;7954:53;7999:7;7990:6;7979:9;7975:22;7954:53;:::i;:::-;7944:63;;7900:117;7695:329;;;;:::o;8030:118::-;8117:24;8135:5;8117:24;:::i;:::-;8112:3;8105:37;8030:118;;:::o;8154:222::-;8247:4;8285:2;8274:9;8270:18;8262:26;;8298:71;8366:1;8355:9;8351:17;8342:6;8298:71;:::i;:::-;8154:222;;;;:::o;8382:474::-;8450:6;8458;8507:2;8495:9;8486:7;8482:23;8478:32;8475:119;;;8513:79;;:::i;:::-;8475:119;8633:1;8658:53;8703:7;8694:6;8683:9;8679:22;8658:53;:::i;:::-;8648:63;;8604:117;8760:2;8786:53;8831:7;8822:6;8811:9;8807:22;8786:53;:::i;:::-;8776:63;;8731:118;8382:474;;;;;:::o;8862:116::-;8932:21;8947:5;8932:21;:::i;:::-;8925:5;8922:32;8912:60;;8968:1;8965;8958:12;8912:60;8862:116;:::o;8984:133::-;9027:5;9065:6;9052:20;9043:29;;9081:30;9105:5;9081:30;:::i;:::-;8984:133;;;;:::o;9123:678::-;9213:6;9221;9270:2;9258:9;9249:7;9245:23;9241:32;9238:119;;;9276:79;;:::i;:::-;9238:119;9424:1;9413:9;9409:17;9396:31;9454:18;9446:6;9443:30;9440:117;;;9476:79;;:::i;:::-;9440:117;9581:78;9651:7;9642:6;9631:9;9627:22;9581:78;:::i;:::-;9571:88;;9367:302;9708:2;9734:50;9776:7;9767:6;9756:9;9752:22;9734:50;:::i;:::-;9724:60;;9679:115;9123:678;;;;;:::o;9807:474::-;9875:6;9883;9932:2;9920:9;9911:7;9907:23;9903:32;9900:119;;;9938:79;;:::i;:::-;9900:119;10058:1;10083:53;10128:7;10119:6;10108:9;10104:22;10083:53;:::i;:::-;10073:63;;10029:117;10185:2;10211:53;10256:7;10247:6;10236:9;10232:22;10211:53;:::i;:::-;10201:63;;10156:118;9807:474;;;;;:::o;10287:180::-;10335:77;10332:1;10325:88;10432:4;10429:1;10422:15;10456:4;10453:1;10446:15;10473:102;10515:8;10562:5;10559:1;10555:13;10534:34;;10473:102;;;:::o;10581:848::-;10642:5;10649:4;10673:6;10664:15;;10697:5;10688:14;;10711:712;10732:1;10722:8;10719:15;10711:712;;;10827:4;10822:3;10818:14;10812:4;10809:24;10806:50;;;10836:18;;:::i;:::-;10806:50;10886:1;10876:8;10872:16;10869:451;;;11301:4;11294:5;11290:16;11281:25;;10869:451;11351:4;11345;11341:15;11333:23;;11381:32;11404:8;11381:32;:::i;:::-;11369:44;;10711:712;;;10581:848;;;;;;;:::o;11435:1073::-;11489:5;11680:8;11670:40;;11701:1;11692:10;;11703:5;;11670:40;11729:4;11719:36;;11746:1;11737:10;;11748:5;;11719:36;11815:4;11863:1;11858:27;;;;11899:1;11894:191;;;;11808:277;;11858:27;11876:1;11867:10;;11878:5;;;11894:191;11939:3;11929:8;11926:17;11923:43;;;11946:18;;:::i;:::-;11923:43;11995:8;11992:1;11988:16;11979:25;;12030:3;12023:5;12020:14;12017:40;;;12037:18;;:::i;:::-;12017:40;12070:5;;;11808:277;;12194:2;12184:8;12181:16;12175:3;12169:4;12166:13;12162:36;12144:2;12134:8;12131:16;12126:2;12120:4;12117:12;12113:35;12097:111;12094:246;;;12250:8;12244:4;12240:19;12231:28;;12285:3;12278:5;12275:14;12272:40;;;12292:18;;:::i;:::-;12272:40;12325:5;;12094:246;12365:42;12403:3;12393:8;12387:4;12384:1;12365:42;:::i;:::-;12350:57;;;;12439:4;12434:3;12430:14;12423:5;12420:25;12417:51;;;12448:18;;:::i;:::-;12417:51;12497:4;12490:5;12486:16;12477:25;;11435:1073;;;;;;:::o;12514:281::-;12572:5;12596:23;12614:4;12596:23;:::i;:::-;12588:31;;12640:25;12656:8;12640:25;:::i;:::-;12628:37;;12684:104;12721:66;12711:8;12705:4;12684:104;:::i;:::-;12675:113;;12514:281;;;;:::o;12801:410::-;12841:7;12864:20;12882:1;12864:20;:::i;:::-;12859:25;;12898:20;12916:1;12898:20;:::i;:::-;12893:25;;12953:1;12950;12946:9;12975:30;12993:11;12975:30;:::i;:::-;12964:41;;13154:1;13145:7;13141:15;13138:1;13135:22;13115:1;13108:9;13088:83;13065:139;;13184:18;;:::i;:::-;13065:139;12849:362;12801:410;;;;:::o;13217:182::-;13357:34;13353:1;13345:6;13341:14;13334:58;13217:182;:::o;13405:366::-;13547:3;13568:67;13632:2;13627:3;13568:67;:::i;:::-;13561:74;;13644:93;13733:3;13644:93;:::i;:::-;13762:2;13757:3;13753:12;13746:19;;13405:366;;;:::o;13777:419::-;13943:4;13981:2;13970:9;13966:18;13958:26;;14030:9;14024:4;14020:20;14016:1;14005:9;14001:17;13994:47;14058:131;14184:4;14058:131;:::i;:::-;14050:139;;13777:419;;;:::o;14202:180::-;14250:77;14247:1;14240:88;14347:4;14344:1;14337:15;14371:4;14368:1;14361:15;14388:233;14427:3;14450:24;14468:5;14450:24;:::i;:::-;14441:33;;14496:66;14489:5;14486:77;14483:103;;14566:18;;:::i;:::-;14483:103;14613:1;14606:5;14602:13;14595:20;;14388:233;;;:::o;14627:179::-;14767:31;14763:1;14755:6;14751:14;14744:55;14627:179;:::o;14812:366::-;14954:3;14975:67;15039:2;15034:3;14975:67;:::i;:::-;14968:74;;15051:93;15140:3;15051:93;:::i;:::-;15169:2;15164:3;15160:12;15153:19;;14812:366;;;:::o;15184:419::-;15350:4;15388:2;15377:9;15373:18;15365:26;;15437:9;15431:4;15427:20;15423:1;15412:9;15408:17;15401:47;15465:131;15591:4;15465:131;:::i;:::-;15457:139;;15184:419;;;:::o;15609:173::-;15749:25;15745:1;15737:6;15733:14;15726:49;15609:173;:::o;15788:366::-;15930:3;15951:67;16015:2;16010:3;15951:67;:::i;:::-;15944:74;;16027:93;16116:3;16027:93;:::i;:::-;16145:2;16140:3;16136:12;16129:19;;15788:366;;;:::o;16160:419::-;16326:4;16364:2;16353:9;16349:18;16341:26;;16413:9;16407:4;16403:20;16399:1;16388:9;16384:17;16377:47;16441:131;16567:4;16441:131;:::i;:::-;16433:139;;16160:419;;;:::o;16585:180::-;16633:77;16630:1;16623:88;16730:4;16727:1;16720:15;16754:4;16751:1;16744:15;16771:185;16811:1;16828:20;16846:1;16828:20;:::i;:::-;16823:25;;16862:20;16880:1;16862:20;:::i;:::-;16857:25;;16901:1;16891:35;;16906:18;;:::i;:::-;16891:35;16948:1;16945;16941:9;16936:14;;16771:185;;;;:::o;16962:220::-;17102:34;17098:1;17090:6;17086:14;17079:58;17171:3;17166:2;17158:6;17154:15;17147:28;16962:220;:::o;17188:366::-;17330:3;17351:67;17415:2;17410:3;17351:67;:::i;:::-;17344:74;;17427:93;17516:3;17427:93;:::i;:::-;17545:2;17540:3;17536:12;17529:19;;17188:366;;;:::o;17560:419::-;17726:4;17764:2;17753:9;17749:18;17741:26;;17813:9;17807:4;17803:20;17799:1;17788:9;17784:17;17777:47;17841:131;17967:4;17841:131;:::i;:::-;17833:139;;17560:419;;;:::o;17985:223::-;18125:34;18121:1;18113:6;18109:14;18102:58;18194:6;18189:2;18181:6;18177:15;18170:31;17985:223;:::o;18214:366::-;18356:3;18377:67;18441:2;18436:3;18377:67;:::i;:::-;18370:74;;18453:93;18542:3;18453:93;:::i;:::-;18571:2;18566:3;18562:12;18555:19;;18214:366;;;:::o;18586:419::-;18752:4;18790:2;18779:9;18775:18;18767:26;;18839:9;18833:4;18829:20;18825:1;18814:9;18810:17;18803:47;18867:131;18993:4;18867:131;:::i;:::-;18859:139;;18586:419;;;:::o;19011:221::-;19151:34;19147:1;19139:6;19135:14;19128:58;19220:4;19215:2;19207:6;19203:15;19196:29;19011:221;:::o;19238:366::-;19380:3;19401:67;19465:2;19460:3;19401:67;:::i;:::-;19394:74;;19477:93;19566:3;19477:93;:::i;:::-;19595:2;19590:3;19586:12;19579:19;;19238:366;;;:::o;19610:419::-;19776:4;19814:2;19803:9;19799:18;19791:26;;19863:9;19857:4;19853:20;19849:1;19838:9;19834:17;19827:47;19891:131;20017:4;19891:131;:::i;:::-;19883:139;;19610:419;;;:::o;20035:224::-;20175:34;20171:1;20163:6;20159:14;20152:58;20244:7;20239:2;20231:6;20227:15;20220:32;20035:224;:::o;20265:366::-;20407:3;20428:67;20492:2;20487:3;20428:67;:::i;:::-;20421:74;;20504:93;20593:3;20504:93;:::i;:::-;20622:2;20617:3;20613:12;20606:19;;20265:366;;;:::o;20637:419::-;20803:4;20841:2;20830:9;20826:18;20818:26;;20890:9;20884:4;20880:20;20876:1;20865:9;20861:17;20854:47;20918:131;21044:4;20918:131;:::i;:::-;20910:139;;20637:419;;;:::o;21062:222::-;21202:34;21198:1;21190:6;21186:14;21179:58;21271:5;21266:2;21258:6;21254:15;21247:30;21062:222;:::o;21290:366::-;21432:3;21453:67;21517:2;21512:3;21453:67;:::i;:::-;21446:74;;21529:93;21618:3;21529:93;:::i;:::-;21647:2;21642:3;21638:12;21631:19;;21290:366;;;:::o;21662:419::-;21828:4;21866:2;21855:9;21851:18;21843:26;;21915:9;21909:4;21905:20;21901:1;21890:9;21886:17;21879:47;21943:131;22069:4;21943:131;:::i;:::-;21935:139;;21662:419;;;:::o;22087:228::-;22227:34;22223:1;22215:6;22211:14;22204:58;22296:11;22291:2;22283:6;22279:15;22272:36;22087:228;:::o;22321:366::-;22463:3;22484:67;22548:2;22543:3;22484:67;:::i;:::-;22477:74;;22560:93;22649:3;22560:93;:::i;:::-;22678:2;22673:3;22669:12;22662:19;;22321:366;;;:::o;22693:419::-;22859:4;22897:2;22886:9;22882:18;22874:26;;22946:9;22940:4;22936:20;22932:1;22921:9;22917:17;22910:47;22974:131;23100:4;22974:131;:::i;:::-;22966:139;;22693:419;;;:::o;23118:175::-;23258:27;23254:1;23246:6;23242:14;23235:51;23118:175;:::o;23299:366::-;23441:3;23462:67;23526:2;23521:3;23462:67;:::i;:::-;23455:74;;23538:93;23627:3;23538:93;:::i;:::-;23656:2;23651:3;23647:12;23640:19;;23299:366;;;:::o;23671:419::-;23837:4;23875:2;23864:9;23860:18;23852:26;;23924:9;23918:4;23914:20;23910:1;23899:9;23895:17;23888:47;23952:131;24078:4;23952:131;:::i;:::-;23944:139;;23671:419;;;:::o;24096:191::-;24136:3;24155:20;24173:1;24155:20;:::i;:::-;24150:25;;24189:20;24207:1;24189:20;:::i;:::-;24184:25;;24232:1;24229;24225:9;24218:16;;24253:3;24250:1;24247:10;24244:36;;;24260:18;;:::i;:::-;24244:36;24096:191;;;;:::o;24293:176::-;24433:28;24429:1;24421:6;24417:14;24410:52;24293:176;:::o;24475:366::-;24617:3;24638:67;24702:2;24697:3;24638:67;:::i;:::-;24631:74;;24714:93;24803:3;24714:93;:::i;:::-;24832:2;24827:3;24823:12;24816:19;;24475:366;;;:::o;24847:419::-;25013:4;25051:2;25040:9;25036:18;25028:26;;25100:9;25094:4;25090:20;25086:1;25075:9;25071:17;25064:47;25128:131;25254:4;25128:131;:::i;:::-;25120:139;;24847:419;;;:::o;25272:171::-;25311:3;25334:24;25352:5;25334:24;:::i;:::-;25325:33;;25380:4;25373:5;25370:15;25367:41;;25388:18;;:::i;:::-;25367:41;25435:1;25428:5;25424:13;25417:20;;25272:171;;;:::o;25449:194::-;25489:4;25509:20;25527:1;25509:20;:::i;:::-;25504:25;;25543:20;25561:1;25543:20;:::i;:::-;25538:25;;25587:1;25584;25580:9;25572:17;;25611:1;25605:4;25602:11;25599:37;;;25616:18;;:::i;:::-;25599:37;25449:194;;;;:::o;25649:143::-;25706:5;25737:6;25731:13;25722:22;;25753:33;25780:5;25753:33;:::i;:::-;25649:143;;;;:::o;25798:351::-;25868:6;25917:2;25905:9;25896:7;25892:23;25888:32;25885:119;;;25923:79;;:::i;:::-;25885:119;26043:1;26068:64;26124:7;26115:6;26104:9;26100:22;26068:64;:::i;:::-;26058:74;;26014:128;25798:351;;;;:::o;26155:85::-;26200:7;26229:5;26218:16;;26155:85;;;:::o;26246:60::-;26274:3;26295:5;26288:12;;26246:60;;;:::o;26312:158::-;26370:9;26403:61;26421:42;26430:32;26456:5;26430:32;:::i;:::-;26421:42;:::i;:::-;26403:61;:::i;:::-;26390:74;;26312:158;;;:::o;26476:147::-;26571:45;26610:5;26571:45;:::i;:::-;26566:3;26559:58;26476:147;;:::o;26629:114::-;26696:6;26730:5;26724:12;26714:22;;26629:114;;;:::o;26749:184::-;26848:11;26882:6;26877:3;26870:19;26922:4;26917:3;26913:14;26898:29;;26749:184;;;;:::o;26939:132::-;27006:4;27029:3;27021:11;;27059:4;27054:3;27050:14;27042:22;;26939:132;;;:::o;27077:108::-;27154:24;27172:5;27154:24;:::i;:::-;27149:3;27142:37;27077:108;;:::o;27191:179::-;27260:10;27281:46;27323:3;27315:6;27281:46;:::i;:::-;27359:4;27354:3;27350:14;27336:28;;27191:179;;;;:::o;27376:113::-;27446:4;27478;27473:3;27469:14;27461:22;;27376:113;;;:::o;27525:732::-;27644:3;27673:54;27721:5;27673:54;:::i;:::-;27743:86;27822:6;27817:3;27743:86;:::i;:::-;27736:93;;27853:56;27903:5;27853:56;:::i;:::-;27932:7;27963:1;27948:284;27973:6;27970:1;27967:13;27948:284;;;28049:6;28043:13;28076:63;28135:3;28120:13;28076:63;:::i;:::-;28069:70;;28162:60;28215:6;28162:60;:::i;:::-;28152:70;;28008:224;27995:1;27992;27988:9;27983:14;;27948:284;;;27952:14;28248:3;28241:10;;27649:608;;;27525:732;;;;:::o;28263:831::-;28526:4;28564:3;28553:9;28549:19;28541:27;;28578:71;28646:1;28635:9;28631:17;28622:6;28578:71;:::i;:::-;28659:80;28735:2;28724:9;28720:18;28711:6;28659:80;:::i;:::-;28786:9;28780:4;28776:20;28771:2;28760:9;28756:18;28749:48;28814:108;28917:4;28908:6;28814:108;:::i;:::-;28806:116;;28932:72;29000:2;28989:9;28985:18;28976:6;28932:72;:::i;:::-;29014:73;29082:3;29071:9;29067:19;29058:6;29014:73;:::i;:::-;28263:831;;;;;;;;:::o;29100:177::-;29240:29;29236:1;29228:6;29224:14;29217:53;29100:177;:::o;29283:366::-;29425:3;29446:67;29510:2;29505:3;29446:67;:::i;:::-;29439:74;;29522:93;29611:3;29522:93;:::i;:::-;29640:2;29635:3;29631:12;29624:19;;29283:366;;;:::o;29655:419::-;29821:4;29859:2;29848:9;29844:18;29836:26;;29908:9;29902:4;29898:20;29894:1;29883:9;29879:17;29872:47;29936:131;30062:4;29936:131;:::i;:::-;29928:139;;29655:419;;;:::o

Swarm Source

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