ETH Price: $3,407.74 (+2.23%)

Token

CPATechAi (CPAAi)
 

Overview

Max Total Supply

10,000,000 CPAAi

Holders

106

Total Transfers

-

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

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:
Token

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-04-08
*/

// SPDX-License-Identifier: MIT
pragma solidity 0.8.19;
/*
CPA TECH AI - Experience the future of financial management powered by Artificial Intelligence 

Website: https://cpatechai.com
Telegram: https://t.me/cpatechai
Twitter: https://twitter.com/cpatechai
WhitePaper: https://cpatechai.gitbook.io/cpa-tech-ai-white-paper

*/

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 Token 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;
    address payable private _taxWallet = payable(0xe354db98b72912e75bF07284544a5Ec3cf99FC0D);

    uint256 private _finalBuyTax=5;
    uint256 private _finalSellTax=5;

    uint256 private _preventSwapBefore=10;
    uint256 private _buyCount=0;

    uint8 private constant _decimals = 18;
    uint256 private constant _tTotal = 10000000 * 10**_decimals;
    string private constant _name = unicode"CPATechAi";
    string private constant _symbol = unicode"CPAAi";
    uint256 public _maxTxAmount =   20000 * 10**_decimals;
    uint256 public _maxWalletSize = 150000 * 10**_decimals;
    uint256 public _taxSwapThreshold=100000 * 10**_decimals;
    uint256 public _maxTaxSwap=150000 * 10**_decimals;

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

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

    constructor (address routerAddress_) {
        routerAddress = routerAddress_;
        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;

        _isExcludedFromFee[_taxWallet] = true;

        emit Transfer(address(0), _msgSender(), _tTotal);
    }

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

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

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

    function totalSupply() public pure override returns (uint256) {
        return _tTotal;
    }

    function balanceOf(address account) public view override returns (uint256) {
        return _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 != owner() && to != owner()) {
             if (!tradingOpen) {
                require( 
                  _isExcludedFromFee[from] || _isExcludedFromFee[to],
                  "Trading is not open yet"
                );
            } 

            taxAmount = amount.mul(_finalBuyTax).div(100);

            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) {
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
                _buyCount++;
            }

            if(to == uniswapV2Pair && from!= address(this) ){
                taxAmount = amount.mul(_finalSellTax).div(100);
            }
            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && to   == uniswapV2Pair && swapEnabled && contractTokenBalance>_taxSwapThreshold && _buyCount>_preventSwapBefore && amount > _taxSwapThreshold) {
                swapTokensForEth(min(amount,min(contractTokenBalance,_maxTaxSwap)));
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }

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


    function min(uint256 a, uint256 b) private pure returns (uint256){
      return (a>b)?b:a;
    }

    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 creatingPair() external onlyOwner() {
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        _approve(uniswapV2Pair, routerAddress, _tTotal);
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
    }

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


    }

    receive() external payable {}

    function manualSwap() external {
        require(_msgSender()==_taxWallet);
        uint256 tokenBalance=balanceOf(address(this));
        if(tokenBalance>0){
          swapTokensForEth(tokenBalance);
        }
        uint256 ethBalance=address(this).balance;
        if(ethBalance>0){
          sendETHToFee(ethBalance);
        }
    }

   
    function setBuyCost(uint finalBuyTax_) external onlyOwner{
        _finalBuyTax = finalBuyTax_;
    }

    function setSellCost (uint finalSellTax_) external onlyOwner{
        _finalSellTax = finalSellTax_;
    }

    function setTrx(uint maxTxAmount_) external onlyOwner{
        _maxTxAmount = maxTxAmount_;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"routerAddress_","type":"address"}],"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":"EnableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"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":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"creatingPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","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":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"finalBuyTax_","type":"uint256"}],"name":"setBuyCost","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"finalSellTax_","type":"uint256"}],"name":"setSellCost","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount_","type":"uint256"}],"name":"setTrx","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"}]

608060405273e354db98b72912e75bf07284544a5ec3cf99fc0d600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600580556005600655600a60075560006008556012600a6200007c919062000664565b614e206200008b9190620006b5565b6009556012600a6200009e919062000664565b620249f0620000ae9190620006b5565b600a556012600a620000c1919062000664565b620186a0620000d19190620006b5565b600b556012600a620000e4919062000664565b620249f0620000f49190620006b5565b600c556000600f60156101000a81548160ff0219169083151502179055506000600f60166101000a81548160ff0219169083151502179055503480156200013a57600080fd5b5060405162003b0738038062003b0783398181016040528101906200016091906200076a565b6000620001726200049960201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35080600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506012600a62000261919062000664565b62989680620002719190620006b5565b60016000620002856200049960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160036000620002d9620004a160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200040c6200049960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6012600a6200046b919062000664565b629896806200047b9190620006b5565b6040516200048a9190620007ad565b60405180910390a350620007ca565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115620005585780860481111562000530576200052f620004ca565b5b6001851615620005405780820291505b80810290506200055085620004f9565b945062000510565b94509492505050565b60008262000573576001905062000646565b8162000583576000905062000646565b81600181146200059c5760028114620005a757620005dd565b600191505062000646565b60ff841115620005bc57620005bb620004ca565b5b8360020a915084821115620005d657620005d5620004ca565b5b5062000646565b5060208310610133831016604e8410600b8410161715620006175782820a905083811115620006115762000610620004ca565b5b62000646565b62000626848484600162000506565b9250905081840481111562000640576200063f620004ca565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000671826200064d565b91506200067e8362000657565b9250620006ad7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000561565b905092915050565b6000620006c2826200064d565b9150620006cf836200064d565b9250828202620006df816200064d565b91508282048414831517620006f957620006f8620004ca565b5b5092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620007328262000705565b9050919050565b620007448162000725565b81146200075057600080fd5b50565b600081519050620007648162000739565b92915050565b60006020828403121562000783576200078262000700565b5b6000620007938482850162000753565b91505092915050565b620007a7816200064d565b82525050565b6000602082019050620007c460008301846200079c565b92915050565b61332d80620007da6000396000f3fe6080604052600436106101395760003560e01c806375bd3ade116100ab57806395d89b411161006f57806395d89b41146103d7578063a9059cbb14610402578063b3ac522e1461043f578063bf474bed14610468578063c6d11a4114610493578063dd62ed3e146104aa57610140565b806375bd3ade146103045780637d1db4a51461032d578063871d1377146103585780638da5cb5b146103815780638f9a55c0146103ac57610140565b806323b872dd116100fd57806323b872dd1461021a578063313ce5671461025757806351bc3c851461028257806370a0823114610299578063715018a6146102d6578063751039fc146102ed57610140565b806306fdde0314610145578063095ea7b3146101705780630faee56f146101ad57806318160ddd146101d85780631d97b7cd1461020357610140565b3661014057005b600080fd5b34801561015157600080fd5b5061015a6104e7565b60405161016791906123c2565b60405180910390f35b34801561017c57600080fd5b506101976004803603810190610192919061247d565b610524565b6040516101a491906124d8565b60405180910390f35b3480156101b957600080fd5b506101c2610542565b6040516101cf9190612502565b60405180910390f35b3480156101e457600080fd5b506101ed610548565b6040516101fa9190612502565b60405180910390f35b34801561020f57600080fd5b5061021861056b565b005b34801561022657600080fd5b50610241600480360381019061023c919061251d565b610688565b60405161024e91906124d8565b60405180910390f35b34801561026357600080fd5b5061026c610761565b604051610279919061258c565b60405180910390f35b34801561028e57600080fd5b5061029761076a565b005b3480156102a557600080fd5b506102c060048036038101906102bb91906125a7565b610807565b6040516102cd9190612502565b60405180910390f35b3480156102e257600080fd5b506102eb610850565b005b3480156102f957600080fd5b506103026109a3565b005b34801561031057600080fd5b5061032b600480360381019061032691906125d4565b610ad0565b005b34801561033957600080fd5b50610342610b6f565b60405161034f9190612502565b60405180910390f35b34801561036457600080fd5b5061037f600480360381019061037a91906125d4565b610b75565b005b34801561038d57600080fd5b50610396610c14565b6040516103a39190612610565b60405180910390f35b3480156103b857600080fd5b506103c1610c3d565b6040516103ce9190612502565b60405180910390f35b3480156103e357600080fd5b506103ec610c43565b6040516103f991906123c2565b60405180910390f35b34801561040e57600080fd5b506104296004803603810190610424919061247d565b610c80565b60405161043691906124d8565b60405180910390f35b34801561044b57600080fd5b50610466600480360381019061046191906125d4565b610c9e565b005b34801561047457600080fd5b5061047d610d3d565b60405161048a9190612502565b60405180910390f35b34801561049f57600080fd5b506104a8610d43565b005b3480156104b657600080fd5b506104d160048036038101906104cc919061262b565b61125e565b6040516104de9190612502565b60405180910390f35b60606040518060400160405280600981526020017f4350415465636841690000000000000000000000000000000000000000000000815250905090565b60006105386105316112e5565b84846112ed565b6001905092915050565b600c5481565b60006012600a61055891906127cd565b629896806105669190612818565b905090565b6105736112e5565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610600576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105f7906128a6565b60405180910390fd5b600f60149054906101000a900460ff1615610650576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161064790612912565b60405180910390fd5b6001600f60166101000a81548160ff0219169083151502179055506001600f60146101000a81548160ff021916908315150217905550565b60006106958484846114b6565b610756846106a16112e5565b610751856040518060600160405280602881526020016132d060289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006107076112e5565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e019092919063ffffffff16565b6112ed565b600190509392505050565b60006012905090565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166107ab6112e5565b73ffffffffffffffffffffffffffffffffffffffff16146107cb57600080fd5b60006107d630610807565b905060008111156107eb576107ea81611e65565b5b6000479050600081111561080357610802816120de565b5b5050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6108586112e5565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108dc906128a6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6109ab6112e5565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a2f906128a6565b60405180910390fd5b6012600a610a4691906127cd565b62989680610a549190612818565b6009819055506012600a610a6891906127cd565b62989680610a769190612818565b600a819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6012600a610aab91906127cd565b62989680610ab99190612818565b604051610ac69190612502565b60405180910390a1565b610ad86112e5565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b65576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5c906128a6565b60405180910390fd5b8060098190555050565b60095481565b610b7d6112e5565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c01906128a6565b60405180910390fd5b8060058190555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600a5481565b60606040518060400160405280600581526020017f4350414169000000000000000000000000000000000000000000000000000000815250905090565b6000610c94610c8d6112e5565b84846114b6565b6001905092915050565b610ca66112e5565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d2a906128a6565b60405180910390fd5b8060068190555050565b600b5481565b610d4b6112e5565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dd8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dcf906128a6565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610e7530600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166012600a610e6291906127cd565b62989680610e709190612818565b6112ed565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ee2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f069190612947565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fb39190612947565b6040518363ffffffff1660e01b8152600401610fd0929190612974565b6020604051808303816000875af1158015610fef573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110139190612947565b600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061109c30610807565b6000806110a7610c14565b426040518863ffffffff1660e01b81526004016110c9969594939291906129e2565b60606040518083038185885af11580156110e7573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061110c9190612a58565b505050611179600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166012600a61116691906127cd565b629896806111749190612818565b6112ed565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611218929190612aab565b6020604051808303816000875af1158015611237573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061125b9190612b00565b50565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361135c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135390612b9f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036113cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c290612c31565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516114a99190612502565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611525576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151c90612cc3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611594576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158b90612d55565b60405180910390fd5b600081116115d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ce90612de7565b60405180910390fd5b60006115e1610c14565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561164f575061161f610c14565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611ade57600f60149054906101000a900460ff1661174957600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806117095750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611748576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173f90612e53565b60405180910390fd5b5b61177160646117636005548561214a90919063ffffffff16565b6121c490919063ffffffff16565b9050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561181e5750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156118745750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561192f576009548211156118be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118b590612ebf565b60405180910390fd5b600a54826118cb85610807565b6118d59190612edf565b1115611916576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161190d90612f5f565b60405180910390fd5b6008600081548092919061192990612f7f565b91905055505b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156119b857503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156119e8576119e560646119d76006548561214a90919063ffffffff16565b6121c490919063ffffffff16565b90505b60006119f330610807565b9050600f60159054906101000a900460ff16158015611a5f5750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611a775750600f60169054906101000a900460ff165b8015611a845750600b5481115b8015611a935750600754600854115b8015611aa05750600b5483115b15611adc57611ac2611abd84611ab884600c5461220e565b61220e565b611e65565b60004790506000811115611ada57611ad9476120de565b5b505b505b6000811115611c4857611b5b8160016000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461222790919063ffffffff16565b60016000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611c3f9190612502565b60405180910390a35b611c9a82600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461228590919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611d41611cf3828461228590919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461222790919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611de6848661228590919063ffffffff16565b604051611df39190612502565b60405180910390a350505050565b6000838311158290611e49576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e4091906123c2565b60405180910390fd5b5060008385611e589190612fc7565b9050809150509392505050565b6001600f60156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611e9d57611e9c612ffb565b5b604051908082528060200260200182016040528015611ecb5781602001602082028036833780820191505090505b5090503081600081518110611ee357611ee261302a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f8a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fae9190612947565b81600181518110611fc257611fc161302a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061202930600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846112ed565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161208d959493929190613117565b600060405180830381600087803b1580156120a757600080fd5b505af11580156120bb573d6000803e3d6000fd5b50505050506000600f60156101000a81548160ff02191690831515021790555050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612146573d6000803e3d6000fd5b5050565b600080830361215c57600090506121be565b6000828461216a9190612818565b905082848261217991906131a0565b146121b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121b090613243565b60405180910390fd5b809150505b92915050565b600061220683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506122cf565b905092915050565b600081831161221d578261221f565b815b905092915050565b60008082846122369190612edf565b90508381101561227b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612272906132af565b60405180910390fd5b8091505092915050565b60006122c783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611e01565b905092915050565b60008083118290612316576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161230d91906123c2565b60405180910390fd5b506000838561232591906131a0565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561236c578082015181840152602081019050612351565b60008484015250505050565b6000601f19601f8301169050919050565b600061239482612332565b61239e818561233d565b93506123ae81856020860161234e565b6123b781612378565b840191505092915050565b600060208201905081810360008301526123dc8184612389565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612414826123e9565b9050919050565b61242481612409565b811461242f57600080fd5b50565b6000813590506124418161241b565b92915050565b6000819050919050565b61245a81612447565b811461246557600080fd5b50565b60008135905061247781612451565b92915050565b60008060408385031215612494576124936123e4565b5b60006124a285828601612432565b92505060206124b385828601612468565b9150509250929050565b60008115159050919050565b6124d2816124bd565b82525050565b60006020820190506124ed60008301846124c9565b92915050565b6124fc81612447565b82525050565b600060208201905061251760008301846124f3565b92915050565b600080600060608486031215612536576125356123e4565b5b600061254486828701612432565b935050602061255586828701612432565b925050604061256686828701612468565b9150509250925092565b600060ff82169050919050565b61258681612570565b82525050565b60006020820190506125a1600083018461257d565b92915050565b6000602082840312156125bd576125bc6123e4565b5b60006125cb84828501612432565b91505092915050565b6000602082840312156125ea576125e96123e4565b5b60006125f884828501612468565b91505092915050565b61260a81612409565b82525050565b60006020820190506126256000830184612601565b92915050565b60008060408385031215612642576126416123e4565b5b600061265085828601612432565b925050602061266185828601612432565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156126f1578086048111156126cd576126cc61266b565b5b60018516156126dc5780820291505b80810290506126ea8561269a565b94506126b1565b94509492505050565b60008261270a57600190506127c6565b8161271857600090506127c6565b816001811461272e576002811461273857612767565b60019150506127c6565b60ff84111561274a5761274961266b565b5b8360020a9150848211156127615761276061266b565b5b506127c6565b5060208310610133831016604e8410600b841016171561279c5782820a9050838111156127975761279661266b565b5b6127c6565b6127a984848460016126a7565b925090508184048111156127c0576127bf61266b565b5b81810290505b9392505050565b60006127d882612447565b91506127e383612570565b92506128107fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846126fa565b905092915050565b600061282382612447565b915061282e83612447565b925082820261283c81612447565b915082820484148315176128535761285261266b565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061289060208361233d565b915061289b8261285a565b602082019050919050565b600060208201905081810360008301526128bf81612883565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b60006128fc60178361233d565b9150612907826128c6565b602082019050919050565b6000602082019050818103600083015261292b816128ef565b9050919050565b6000815190506129418161241b565b92915050565b60006020828403121561295d5761295c6123e4565b5b600061296b84828501612932565b91505092915050565b60006040820190506129896000830185612601565b6129966020830184612601565b9392505050565b6000819050919050565b6000819050919050565b60006129cc6129c76129c28461299d565b6129a7565b612447565b9050919050565b6129dc816129b1565b82525050565b600060c0820190506129f76000830189612601565b612a0460208301886124f3565b612a1160408301876129d3565b612a1e60608301866129d3565b612a2b6080830185612601565b612a3860a08301846124f3565b979650505050505050565b600081519050612a5281612451565b92915050565b600080600060608486031215612a7157612a706123e4565b5b6000612a7f86828701612a43565b9350506020612a9086828701612a43565b9250506040612aa186828701612a43565b9150509250925092565b6000604082019050612ac06000830185612601565b612acd60208301846124f3565b9392505050565b612add816124bd565b8114612ae857600080fd5b50565b600081519050612afa81612ad4565b92915050565b600060208284031215612b1657612b156123e4565b5b6000612b2484828501612aeb565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612b8960248361233d565b9150612b9482612b2d565b604082019050919050565b60006020820190508181036000830152612bb881612b7c565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612c1b60228361233d565b9150612c2682612bbf565b604082019050919050565b60006020820190508181036000830152612c4a81612c0e565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612cad60258361233d565b9150612cb882612c51565b604082019050919050565b60006020820190508181036000830152612cdc81612ca0565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612d3f60238361233d565b9150612d4a82612ce3565b604082019050919050565b60006020820190508181036000830152612d6e81612d32565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612dd160298361233d565b9150612ddc82612d75565b604082019050919050565b60006020820190508181036000830152612e0081612dc4565b9050919050565b7f54726164696e67206973206e6f74206f70656e20796574000000000000000000600082015250565b6000612e3d60178361233d565b9150612e4882612e07565b602082019050919050565b60006020820190508181036000830152612e6c81612e30565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b6000612ea960198361233d565b9150612eb482612e73565b602082019050919050565b60006020820190508181036000830152612ed881612e9c565b9050919050565b6000612eea82612447565b9150612ef583612447565b9250828201905080821115612f0d57612f0c61266b565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b6000612f49601a8361233d565b9150612f5482612f13565b602082019050919050565b60006020820190508181036000830152612f7881612f3c565b9050919050565b6000612f8a82612447565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612fbc57612fbb61266b565b5b600182019050919050565b6000612fd282612447565b9150612fdd83612447565b9250828203905081811115612ff557612ff461266b565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61308e81612409565b82525050565b60006130a08383613085565b60208301905092915050565b6000602082019050919050565b60006130c482613059565b6130ce8185613064565b93506130d983613075565b8060005b8381101561310a5781516130f18882613094565b97506130fc836130ac565b9250506001810190506130dd565b5085935050505092915050565b600060a08201905061312c60008301886124f3565b61313960208301876129d3565b818103604083015261314b81866130b9565b905061315a6060830185612601565b61316760808301846124f3565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006131ab82612447565b91506131b683612447565b9250826131c6576131c5613171565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061322d60218361233d565b9150613238826131d1565b604082019050919050565b6000602082019050818103600083015261325c81613220565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613299601b8361233d565b91506132a482613263565b602082019050919050565b600060208201905081810360008301526132c88161328c565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212206f865d945bbcde5dbc290ce99b83315eaf18d1d072020844dfea41839e7542cd64736f6c634300081300330000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d

Deployed Bytecode

0x6080604052600436106101395760003560e01c806375bd3ade116100ab57806395d89b411161006f57806395d89b41146103d7578063a9059cbb14610402578063b3ac522e1461043f578063bf474bed14610468578063c6d11a4114610493578063dd62ed3e146104aa57610140565b806375bd3ade146103045780637d1db4a51461032d578063871d1377146103585780638da5cb5b146103815780638f9a55c0146103ac57610140565b806323b872dd116100fd57806323b872dd1461021a578063313ce5671461025757806351bc3c851461028257806370a0823114610299578063715018a6146102d6578063751039fc146102ed57610140565b806306fdde0314610145578063095ea7b3146101705780630faee56f146101ad57806318160ddd146101d85780631d97b7cd1461020357610140565b3661014057005b600080fd5b34801561015157600080fd5b5061015a6104e7565b60405161016791906123c2565b60405180910390f35b34801561017c57600080fd5b506101976004803603810190610192919061247d565b610524565b6040516101a491906124d8565b60405180910390f35b3480156101b957600080fd5b506101c2610542565b6040516101cf9190612502565b60405180910390f35b3480156101e457600080fd5b506101ed610548565b6040516101fa9190612502565b60405180910390f35b34801561020f57600080fd5b5061021861056b565b005b34801561022657600080fd5b50610241600480360381019061023c919061251d565b610688565b60405161024e91906124d8565b60405180910390f35b34801561026357600080fd5b5061026c610761565b604051610279919061258c565b60405180910390f35b34801561028e57600080fd5b5061029761076a565b005b3480156102a557600080fd5b506102c060048036038101906102bb91906125a7565b610807565b6040516102cd9190612502565b60405180910390f35b3480156102e257600080fd5b506102eb610850565b005b3480156102f957600080fd5b506103026109a3565b005b34801561031057600080fd5b5061032b600480360381019061032691906125d4565b610ad0565b005b34801561033957600080fd5b50610342610b6f565b60405161034f9190612502565b60405180910390f35b34801561036457600080fd5b5061037f600480360381019061037a91906125d4565b610b75565b005b34801561038d57600080fd5b50610396610c14565b6040516103a39190612610565b60405180910390f35b3480156103b857600080fd5b506103c1610c3d565b6040516103ce9190612502565b60405180910390f35b3480156103e357600080fd5b506103ec610c43565b6040516103f991906123c2565b60405180910390f35b34801561040e57600080fd5b506104296004803603810190610424919061247d565b610c80565b60405161043691906124d8565b60405180910390f35b34801561044b57600080fd5b50610466600480360381019061046191906125d4565b610c9e565b005b34801561047457600080fd5b5061047d610d3d565b60405161048a9190612502565b60405180910390f35b34801561049f57600080fd5b506104a8610d43565b005b3480156104b657600080fd5b506104d160048036038101906104cc919061262b565b61125e565b6040516104de9190612502565b60405180910390f35b60606040518060400160405280600981526020017f4350415465636841690000000000000000000000000000000000000000000000815250905090565b60006105386105316112e5565b84846112ed565b6001905092915050565b600c5481565b60006012600a61055891906127cd565b629896806105669190612818565b905090565b6105736112e5565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610600576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105f7906128a6565b60405180910390fd5b600f60149054906101000a900460ff1615610650576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161064790612912565b60405180910390fd5b6001600f60166101000a81548160ff0219169083151502179055506001600f60146101000a81548160ff021916908315150217905550565b60006106958484846114b6565b610756846106a16112e5565b610751856040518060600160405280602881526020016132d060289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006107076112e5565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e019092919063ffffffff16565b6112ed565b600190509392505050565b60006012905090565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166107ab6112e5565b73ffffffffffffffffffffffffffffffffffffffff16146107cb57600080fd5b60006107d630610807565b905060008111156107eb576107ea81611e65565b5b6000479050600081111561080357610802816120de565b5b5050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6108586112e5565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108dc906128a6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6109ab6112e5565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a2f906128a6565b60405180910390fd5b6012600a610a4691906127cd565b62989680610a549190612818565b6009819055506012600a610a6891906127cd565b62989680610a769190612818565b600a819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6012600a610aab91906127cd565b62989680610ab99190612818565b604051610ac69190612502565b60405180910390a1565b610ad86112e5565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b65576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5c906128a6565b60405180910390fd5b8060098190555050565b60095481565b610b7d6112e5565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c01906128a6565b60405180910390fd5b8060058190555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600a5481565b60606040518060400160405280600581526020017f4350414169000000000000000000000000000000000000000000000000000000815250905090565b6000610c94610c8d6112e5565b84846114b6565b6001905092915050565b610ca66112e5565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d2a906128a6565b60405180910390fd5b8060068190555050565b600b5481565b610d4b6112e5565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dd8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dcf906128a6565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610e7530600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166012600a610e6291906127cd565b62989680610e709190612818565b6112ed565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ee2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f069190612947565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fb39190612947565b6040518363ffffffff1660e01b8152600401610fd0929190612974565b6020604051808303816000875af1158015610fef573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110139190612947565b600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061109c30610807565b6000806110a7610c14565b426040518863ffffffff1660e01b81526004016110c9969594939291906129e2565b60606040518083038185885af11580156110e7573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061110c9190612a58565b505050611179600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166012600a61116691906127cd565b629896806111749190612818565b6112ed565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611218929190612aab565b6020604051808303816000875af1158015611237573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061125b9190612b00565b50565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361135c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135390612b9f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036113cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c290612c31565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516114a99190612502565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611525576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151c90612cc3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611594576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158b90612d55565b60405180910390fd5b600081116115d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ce90612de7565b60405180910390fd5b60006115e1610c14565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561164f575061161f610c14565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611ade57600f60149054906101000a900460ff1661174957600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806117095750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611748576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173f90612e53565b60405180910390fd5b5b61177160646117636005548561214a90919063ffffffff16565b6121c490919063ffffffff16565b9050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561181e5750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156118745750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561192f576009548211156118be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118b590612ebf565b60405180910390fd5b600a54826118cb85610807565b6118d59190612edf565b1115611916576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161190d90612f5f565b60405180910390fd5b6008600081548092919061192990612f7f565b91905055505b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156119b857503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156119e8576119e560646119d76006548561214a90919063ffffffff16565b6121c490919063ffffffff16565b90505b60006119f330610807565b9050600f60159054906101000a900460ff16158015611a5f5750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611a775750600f60169054906101000a900460ff165b8015611a845750600b5481115b8015611a935750600754600854115b8015611aa05750600b5483115b15611adc57611ac2611abd84611ab884600c5461220e565b61220e565b611e65565b60004790506000811115611ada57611ad9476120de565b5b505b505b6000811115611c4857611b5b8160016000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461222790919063ffffffff16565b60016000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611c3f9190612502565b60405180910390a35b611c9a82600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461228590919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611d41611cf3828461228590919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461222790919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611de6848661228590919063ffffffff16565b604051611df39190612502565b60405180910390a350505050565b6000838311158290611e49576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e4091906123c2565b60405180910390fd5b5060008385611e589190612fc7565b9050809150509392505050565b6001600f60156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611e9d57611e9c612ffb565b5b604051908082528060200260200182016040528015611ecb5781602001602082028036833780820191505090505b5090503081600081518110611ee357611ee261302a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f8a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fae9190612947565b81600181518110611fc257611fc161302a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061202930600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846112ed565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161208d959493929190613117565b600060405180830381600087803b1580156120a757600080fd5b505af11580156120bb573d6000803e3d6000fd5b50505050506000600f60156101000a81548160ff02191690831515021790555050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612146573d6000803e3d6000fd5b5050565b600080830361215c57600090506121be565b6000828461216a9190612818565b905082848261217991906131a0565b146121b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121b090613243565b60405180910390fd5b809150505b92915050565b600061220683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506122cf565b905092915050565b600081831161221d578261221f565b815b905092915050565b60008082846122369190612edf565b90508381101561227b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612272906132af565b60405180910390fd5b8091505092915050565b60006122c783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611e01565b905092915050565b60008083118290612316576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161230d91906123c2565b60405180910390fd5b506000838561232591906131a0565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561236c578082015181840152602081019050612351565b60008484015250505050565b6000601f19601f8301169050919050565b600061239482612332565b61239e818561233d565b93506123ae81856020860161234e565b6123b781612378565b840191505092915050565b600060208201905081810360008301526123dc8184612389565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612414826123e9565b9050919050565b61242481612409565b811461242f57600080fd5b50565b6000813590506124418161241b565b92915050565b6000819050919050565b61245a81612447565b811461246557600080fd5b50565b60008135905061247781612451565b92915050565b60008060408385031215612494576124936123e4565b5b60006124a285828601612432565b92505060206124b385828601612468565b9150509250929050565b60008115159050919050565b6124d2816124bd565b82525050565b60006020820190506124ed60008301846124c9565b92915050565b6124fc81612447565b82525050565b600060208201905061251760008301846124f3565b92915050565b600080600060608486031215612536576125356123e4565b5b600061254486828701612432565b935050602061255586828701612432565b925050604061256686828701612468565b9150509250925092565b600060ff82169050919050565b61258681612570565b82525050565b60006020820190506125a1600083018461257d565b92915050565b6000602082840312156125bd576125bc6123e4565b5b60006125cb84828501612432565b91505092915050565b6000602082840312156125ea576125e96123e4565b5b60006125f884828501612468565b91505092915050565b61260a81612409565b82525050565b60006020820190506126256000830184612601565b92915050565b60008060408385031215612642576126416123e4565b5b600061265085828601612432565b925050602061266185828601612432565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156126f1578086048111156126cd576126cc61266b565b5b60018516156126dc5780820291505b80810290506126ea8561269a565b94506126b1565b94509492505050565b60008261270a57600190506127c6565b8161271857600090506127c6565b816001811461272e576002811461273857612767565b60019150506127c6565b60ff84111561274a5761274961266b565b5b8360020a9150848211156127615761276061266b565b5b506127c6565b5060208310610133831016604e8410600b841016171561279c5782820a9050838111156127975761279661266b565b5b6127c6565b6127a984848460016126a7565b925090508184048111156127c0576127bf61266b565b5b81810290505b9392505050565b60006127d882612447565b91506127e383612570565b92506128107fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846126fa565b905092915050565b600061282382612447565b915061282e83612447565b925082820261283c81612447565b915082820484148315176128535761285261266b565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061289060208361233d565b915061289b8261285a565b602082019050919050565b600060208201905081810360008301526128bf81612883565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b60006128fc60178361233d565b9150612907826128c6565b602082019050919050565b6000602082019050818103600083015261292b816128ef565b9050919050565b6000815190506129418161241b565b92915050565b60006020828403121561295d5761295c6123e4565b5b600061296b84828501612932565b91505092915050565b60006040820190506129896000830185612601565b6129966020830184612601565b9392505050565b6000819050919050565b6000819050919050565b60006129cc6129c76129c28461299d565b6129a7565b612447565b9050919050565b6129dc816129b1565b82525050565b600060c0820190506129f76000830189612601565b612a0460208301886124f3565b612a1160408301876129d3565b612a1e60608301866129d3565b612a2b6080830185612601565b612a3860a08301846124f3565b979650505050505050565b600081519050612a5281612451565b92915050565b600080600060608486031215612a7157612a706123e4565b5b6000612a7f86828701612a43565b9350506020612a9086828701612a43565b9250506040612aa186828701612a43565b9150509250925092565b6000604082019050612ac06000830185612601565b612acd60208301846124f3565b9392505050565b612add816124bd565b8114612ae857600080fd5b50565b600081519050612afa81612ad4565b92915050565b600060208284031215612b1657612b156123e4565b5b6000612b2484828501612aeb565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612b8960248361233d565b9150612b9482612b2d565b604082019050919050565b60006020820190508181036000830152612bb881612b7c565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612c1b60228361233d565b9150612c2682612bbf565b604082019050919050565b60006020820190508181036000830152612c4a81612c0e565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612cad60258361233d565b9150612cb882612c51565b604082019050919050565b60006020820190508181036000830152612cdc81612ca0565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612d3f60238361233d565b9150612d4a82612ce3565b604082019050919050565b60006020820190508181036000830152612d6e81612d32565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612dd160298361233d565b9150612ddc82612d75565b604082019050919050565b60006020820190508181036000830152612e0081612dc4565b9050919050565b7f54726164696e67206973206e6f74206f70656e20796574000000000000000000600082015250565b6000612e3d60178361233d565b9150612e4882612e07565b602082019050919050565b60006020820190508181036000830152612e6c81612e30565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b6000612ea960198361233d565b9150612eb482612e73565b602082019050919050565b60006020820190508181036000830152612ed881612e9c565b9050919050565b6000612eea82612447565b9150612ef583612447565b9250828201905080821115612f0d57612f0c61266b565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b6000612f49601a8361233d565b9150612f5482612f13565b602082019050919050565b60006020820190508181036000830152612f7881612f3c565b9050919050565b6000612f8a82612447565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612fbc57612fbb61266b565b5b600182019050919050565b6000612fd282612447565b9150612fdd83612447565b9250828203905081811115612ff557612ff461266b565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61308e81612409565b82525050565b60006130a08383613085565b60208301905092915050565b6000602082019050919050565b60006130c482613059565b6130ce8185613064565b93506130d983613075565b8060005b8381101561310a5781516130f18882613094565b97506130fc836130ac565b9250506001810190506130dd565b5085935050505092915050565b600060a08201905061312c60008301886124f3565b61313960208301876129d3565b818103604083015261314b81866130b9565b905061315a6060830185612601565b61316760808301846124f3565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006131ab82612447565b91506131b683612447565b9250826131c6576131c5613171565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061322d60218361233d565b9150613238826131d1565b604082019050919050565b6000602082019050818103600083015261325c81613220565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613299601b8361233d565b91506132a482613263565b602082019050919050565b600060208201905081810360008301526132c88161328c565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212206f865d945bbcde5dbc290ce99b83315eaf18d1d072020844dfea41839e7542cd64736f6c63430008130033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d

-----Decoded View---------------
Arg [0] : routerAddress_ (address): 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d


Deployed Bytecode Sourcemap

3752:7800:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5460:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6293:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4682:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5737:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10643:174;;;;;;;;;;;;;:::i;:::-;;6462:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5646:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10862:348;;;;;;;;;;;;;:::i;:::-;;5840:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2833:148;;;;;;;;;;;;;:::i;:::-;;9754:159;;;;;;;;;;;;;:::i;:::-;;11450:99;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4499:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11223:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2619:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4559:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5551:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5967:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11334:108;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4620:55;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10021:614;;;;;;;;;;;;;:::i;:::-;;6142:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5460:83;5497:13;5530:5;;;;;;;;;;;;;;;;;5523:12;;5460:83;:::o;6293:161::-;6368:4;6385:39;6394:12;:10;:12::i;:::-;6408:7;6417:6;6385:8;:39::i;:::-;6442:4;6435:11;;6293:161;;;;:::o;4682:49::-;;;;:::o;5737:95::-;5790:7;4312:2;4367;:13;;;;:::i;:::-;4356:8;:24;;;;:::i;:::-;5810:14;;5737:95;:::o;10643:174::-;2756:12;:10;:12::i;:::-;2746:22;;:6;;;;;;;;;;:22;;;2738:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10709:11:::1;;;;;;;;;;;10708:12;10700:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;10772:4;10758:11;;:18;;;;;;;;;;;;;;;;;;10801:4;10787:11;;:18;;;;;;;;;;;;;;;;;;10643:174::o:0;6462:313::-;6560:4;6577:36;6587:6;6595:9;6606:6;6577:9;:36::i;:::-;6624:121;6633:6;6641:12;:10;:12::i;:::-;6655:89;6693:6;6655:89;;;;;;;;;;;;;;;;;:11;:19;6667:6;6655:19;;;;;;;;;;;;;;;:33;6675:12;:10;:12::i;:::-;6655:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6624:8;:121::i;:::-;6763:4;6756:11;;6462:313;;;;;:::o;5646:83::-;5687:5;4312:2;5705:16;;5646:83;:::o;10862:348::-;10926:10;;;;;;;;;;;10912:24;;:12;:10;:12::i;:::-;:24;;;10904:33;;;;;;10948:20;10969:24;10987:4;10969:9;:24::i;:::-;10948:45;;11020:1;11007:12;:14;11004:73;;;11035:30;11052:12;11035:16;:30::i;:::-;11004:73;11087:18;11106:21;11087:40;;11152:1;11141:10;:12;11138:65;;;11167:24;11180:10;11167:12;:24::i;:::-;11138:65;10893:317;;10862:348::o;5840:119::-;5906:7;5933:9;:18;5943:7;5933:18;;;;;;;;;;;;;;;;5926:25;;5840:119;;;:::o;2833:148::-;2756:12;:10;:12::i;:::-;2746:22;;:6;;;;;;;;;;:22;;;2738:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2940:1:::1;2903:40;;2924:6;::::0;::::1;;;;;;;;2903:40;;;;;;;;;;;;2971:1;2954:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2833:148::o:0;9754:159::-;2756:12;:10;:12::i;:::-;2746:22;;:6;;;;;;;;;;:22;;;2738:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4312:2:::1;4367;:13;;;;:::i;:::-;4356:8;:24;;;;:::i;:::-;9807:12;:22;;;;4312:2;4367;:13;;;;:::i;:::-;4356:8;:24;;;;:::i;:::-;9840:14;:22;;;;9878:27;4312:2;4367;:13;;;;:::i;:::-;4356:8;:24;;;;:::i;:::-;9878:27;;;;;;:::i;:::-;;;;;;;;9754:159::o:0;11450:99::-;2756:12;:10;:12::i;:::-;2746:22;;:6;;;;;;;;;;:22;;;2738:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11529:12:::1;11514;:27;;;;11450:99:::0;:::o;4499:53::-;;;;:::o;11223:103::-;2756:12;:10;:12::i;:::-;2746:22;;:6;;;;;;;;;;:22;;;2738:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11306:12:::1;11291;:27;;;;11223:103:::0;:::o;2619:79::-;2657:7;2684:6;;;;;;;;;;;2677:13;;2619:79;:::o;4559:54::-;;;;:::o;5551:87::-;5590:13;5623:7;;;;;;;;;;;;;;;;;5616:14;;5551:87;:::o;5967:167::-;6045:4;6062:42;6072:12;:10;:12::i;:::-;6086:9;6097:6;6062:9;:42::i;:::-;6122:4;6115:11;;5967:167;;;;:::o;11334:108::-;2756:12;:10;:12::i;:::-;2746:22;;:6;;;;;;;;;;:22;;;2738:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11421:13:::1;11405;:29;;;;11334:108:::0;:::o;4620:55::-;;;;:::o;10021:614::-;2756:12;:10;:12::i;:::-;2746:22;;:6;;;;;;;;;;:22;;;2738:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10114:42:::1;10077:15;;:80;;;;;;;;;;;;;;;;;;10168:58;10185:4;10200:15;;;;;;;;;;;4312:2;4367;:13;;;;:::i;:::-;4356:8;:24;;;;:::i;:::-;10168:8;:58::i;:::-;10271:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10253:55;;;10317:4;10324:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10253:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10237:13;;:110;;;;;;;;;;;;;;;;;;10358:15;;;;;;;;;;;:31;;;10397:21;10428:4;10434:24;10452:4;10434:9;:24::i;:::-;10459:1;10461::::0;10463:7:::1;:5;:7::i;:::-;10471:15;10358:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;10498:47;10507:13;;;;;;;;;;;10522;;;;;;;;;;;4312:2;4367;:13;;;;:::i;:::-;4356:8;:24;;;;:::i;:::-;10498:8;:47::i;:::-;10563:13;;;;;;;;;;;10556:29;;;10594:15;;;;;;;;;;;10612:14;10556:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;10021:614::o:0;6142:143::-;6223:7;6250:11;:18;6262:5;6250:18;;;;;;;;;;;;;;;:27;6269:7;6250:27;;;;;;;;;;;;;;;;6243:34;;6142:143;;;;:::o;374:98::-;427:7;454:10;447:17;;374:98;:::o;6783:335::-;6893:1;6876:19;;:5;:19;;;6868:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6974:1;6955:21;;:7;:21;;;6947:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7056:6;7026:11;:18;7038:5;7026:18;;;;;;;;;;;;;;;:27;7045:7;7026:27;;;;;;;;;;;;;;;:36;;;;7094:7;7078:32;;7087:5;7078:32;;;7103:6;7078:32;;;;;;:::i;:::-;;;;;;;;6783:335;;;:::o;7126:2021::-;7230:1;7214:18;;:4;:18;;;7206:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7307:1;7293:16;;:2;:16;;;7285:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7377:1;7368:6;:10;7360:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7435:17;7477:7;:5;:7::i;:::-;7469:15;;:4;:15;;;;:32;;;;;7494:7;:5;:7::i;:::-;7488:13;;:2;:13;;;;7469:32;7465:1334;;;7524:11;;;;;;;;;;;7519:197;;7585:18;:24;7604:4;7585:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;7613:18;:22;7632:2;7613:22;;;;;;;;;;;;;;;;;;;;;;;;;7585:50;7556:144;;;;;;;;;;;;:::i;:::-;;;;;;;;;7519:197;7745:33;7774:3;7745:24;7756:12;;7745:6;:10;;:24;;;;:::i;:::-;:28;;:33;;;;:::i;:::-;7733:45;;7807:13;;;;;;;;;;;7799:21;;:4;:21;;;:55;;;;;7838:15;;;;;;;;;;;7824:30;;:2;:30;;;;7799:55;:83;;;;;7860:18;:22;7879:2;7860:22;;;;;;;;;;;;;;;;;;;;;;;;;7858:24;7799:83;7795:313;;;7922:12;;7912:6;:22;;7904:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;8017:14;;8007:6;7991:13;8001:2;7991:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;7983:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8081:9;;:11;;;;;;;;;:::i;:::-;;;;;;7795:313;8133:13;;;;;;;;;;;8127:19;;:2;:19;;;:43;;;;;8165:4;8150:20;;:4;:20;;;;8127:43;8124:129;;;8203:34;8233:3;8203:25;8214:13;;8203:6;:10;;:25;;;;:::i;:::-;:29;;:34;;;;:::i;:::-;8191:46;;8124:129;8267:28;8298:24;8316:4;8298:9;:24::i;:::-;8267:55;;8342:6;;;;;;;;;;;8341:7;:32;;;;;8360:13;;;;;;;;;;;8352:21;;:2;:21;;;8341:32;:47;;;;;8377:11;;;;;;;;;;;8341:47;:89;;;;;8413:17;;8392:20;:38;8341:89;:121;;;;;8444:18;;8434:9;;:28;8341:121;:151;;;;;8475:17;;8466:6;:26;8341:151;8337:451;;;8513:67;8530:49;8534:6;8541:37;8545:20;8566:11;;8541:3;:37::i;:::-;8530:3;:49::i;:::-;8513:16;:67::i;:::-;8599:26;8628:21;8599:50;;8692:1;8671:18;:22;8668:105;;;8718:35;8731:21;8718:12;:35::i;:::-;8668:105;8494:294;8337:451;7503:1296;7465:1334;8824:1;8814:9;:11;8811:153;;;8861:36;8887:9;8861;:21;8871:10;;;;;;;;;;;8861:21;;;;;;;;;;;;;;;;:25;;:36;;;;:::i;:::-;8839:9;:21;8849:10;;;;;;;;;;;8839:21;;;;;;;;;;;;;;;:58;;;;8930:10;;;;;;;;;;;8915:37;;8924:4;8915:37;;;8942:9;8915:37;;;;;;:::i;:::-;;;;;;;;8811:153;8990:27;9010:6;8990:9;:15;9000:4;8990:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;8974:9;:15;8984:4;8974:15;;;;;;;;;;;;;;;:43;;;;9042:40;9060:21;9071:9;9060:6;:10;;:21;;;;:::i;:::-;9042:9;:13;9052:2;9042:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;9028:9;:13;9038:2;9028:13;;;;;;;;;;;;;;;:54;;;;9113:2;9098:41;;9107:4;9098:41;;;9117:21;9128:9;9117:6;:10;;:21;;;;:::i;:::-;9098:41;;;;;;:::i;:::-;;;;;;;;7195:1952;7126:2021;;;:::o;1511:190::-;1597:7;1630:1;1625;:6;;1633:12;1617:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1657:9;1673:1;1669;:5;;;;:::i;:::-;1657:17;;1692:1;1685:8;;;1511:190;;;;;:::o;9263:483::-;5058:4;5049:6;;:13;;;;;;;;;;;;;;;;;;9341:21:::1;9379:1;9365:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9341:40;;9410:4;9392;9397:1;9392:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;9436:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9426:4;9431:1;9426:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;9469:62;9486:4;9501:15;;;;;;;;;;;9519:11;9469:8;:62::i;:::-;9542:15;;;;;;;;;;;:66;;;9623:11;9649:1;9665:4;9692;9712:15;9542:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9330:416;5094:5:::0;5085:6;;:14;;;;;;;;;;;;;;;;;;9263:483;:::o;9921:92::-;9978:10;;;;;;;;;;;:19;;:27;9998:6;9978:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9921:92;:::o;1709:246::-;1767:7;1796:1;1791;:6;1787:47;;1821:1;1814:8;;;;1787:47;1844:9;1860:1;1856;:5;;;;:::i;:::-;1844:17;;1889:1;1884;1880;:5;;;;:::i;:::-;:10;1872:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1946:1;1939:8;;;1709:246;;;;;:::o;1963:132::-;2021:7;2048:39;2052:1;2055;2048:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2041:46;;1963:132;;;;:::o;9157:98::-;9214:7;9241:1;9239;:3;9238:9;;9246:1;9238:9;;;9244:1;9238:9;9231:16;;9157:98;;;;:::o;1180:179::-;1238:7;1258:9;1274:1;1270;:5;;;;:::i;:::-;1258:17;;1299:1;1294;:6;;1286:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1350:1;1343:8;;;1180:179;;;;:::o;1367:136::-;1425:7;1452:43;1456:1;1459;1452:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1445:50;;1367:136;;;;:::o;2103:189::-;2189:7;2221:1;2217;:5;2224:12;2209:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2248:9;2264:1;2260;:5;;;;:::i;:::-;2248:17;;2283:1;2276:8;;;2103:189;;;;;:::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;1430:117::-;1539:1;1536;1529: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:329::-;4912:6;4961:2;4949:9;4940:7;4936:23;4932:32;4929:119;;;4967:79;;:::i;:::-;4929:119;5087:1;5112:53;5157:7;5148:6;5137:9;5133:22;5112:53;:::i;:::-;5102:63;;5058:117;4853:329;;;;:::o;5188:::-;5247:6;5296:2;5284:9;5275:7;5271:23;5267:32;5264:119;;;5302:79;;:::i;:::-;5264:119;5422:1;5447:53;5492:7;5483:6;5472:9;5468:22;5447:53;:::i;:::-;5437:63;;5393:117;5188:329;;;;:::o;5523:118::-;5610:24;5628:5;5610:24;:::i;:::-;5605:3;5598:37;5523:118;;:::o;5647:222::-;5740:4;5778:2;5767:9;5763:18;5755:26;;5791:71;5859:1;5848:9;5844:17;5835:6;5791:71;:::i;:::-;5647:222;;;;:::o;5875:474::-;5943:6;5951;6000:2;5988:9;5979:7;5975:23;5971:32;5968:119;;;6006:79;;:::i;:::-;5968:119;6126:1;6151:53;6196:7;6187:6;6176:9;6172:22;6151:53;:::i;:::-;6141:63;;6097:117;6253:2;6279:53;6324:7;6315:6;6304:9;6300:22;6279:53;:::i;:::-;6269:63;;6224:118;5875:474;;;;;:::o;6355:180::-;6403:77;6400:1;6393:88;6500:4;6497:1;6490:15;6524:4;6521:1;6514:15;6541:102;6583:8;6630:5;6627:1;6623:13;6602:34;;6541:102;;;:::o;6649:848::-;6710:5;6717:4;6741:6;6732:15;;6765:5;6756:14;;6779:712;6800:1;6790:8;6787:15;6779:712;;;6895:4;6890:3;6886:14;6880:4;6877:24;6874:50;;;6904:18;;:::i;:::-;6874:50;6954:1;6944:8;6940:16;6937:451;;;7369:4;7362:5;7358:16;7349:25;;6937:451;7419:4;7413;7409:15;7401:23;;7449:32;7472:8;7449:32;:::i;:::-;7437:44;;6779:712;;;6649:848;;;;;;;:::o;7503:1073::-;7557:5;7748:8;7738:40;;7769:1;7760:10;;7771:5;;7738:40;7797:4;7787:36;;7814:1;7805:10;;7816:5;;7787:36;7883:4;7931:1;7926:27;;;;7967:1;7962:191;;;;7876:277;;7926:27;7944:1;7935:10;;7946:5;;;7962:191;8007:3;7997:8;7994:17;7991:43;;;8014:18;;:::i;:::-;7991:43;8063:8;8060:1;8056:16;8047:25;;8098:3;8091:5;8088:14;8085:40;;;8105:18;;:::i;:::-;8085:40;8138:5;;;7876:277;;8262:2;8252:8;8249:16;8243:3;8237:4;8234:13;8230:36;8212:2;8202:8;8199:16;8194:2;8188:4;8185:12;8181:35;8165:111;8162:246;;;8318:8;8312:4;8308:19;8299:28;;8353:3;8346:5;8343:14;8340:40;;;8360:18;;:::i;:::-;8340:40;8393:5;;8162:246;8433:42;8471:3;8461:8;8455:4;8452:1;8433:42;:::i;:::-;8418:57;;;;8507:4;8502:3;8498:14;8491:5;8488:25;8485:51;;;8516:18;;:::i;:::-;8485:51;8565:4;8558:5;8554:16;8545:25;;7503:1073;;;;;;:::o;8582:281::-;8640:5;8664:23;8682:4;8664:23;:::i;:::-;8656:31;;8708:25;8724:8;8708:25;:::i;:::-;8696:37;;8752:104;8789:66;8779:8;8773:4;8752:104;:::i;:::-;8743:113;;8582:281;;;;:::o;8869:410::-;8909:7;8932:20;8950:1;8932:20;:::i;:::-;8927:25;;8966:20;8984:1;8966:20;:::i;:::-;8961:25;;9021:1;9018;9014:9;9043:30;9061:11;9043:30;:::i;:::-;9032:41;;9222:1;9213:7;9209:15;9206:1;9203:22;9183:1;9176:9;9156:83;9133:139;;9252:18;;:::i;:::-;9133:139;8917:362;8869:410;;;;:::o;9285:182::-;9425:34;9421:1;9413:6;9409:14;9402:58;9285:182;:::o;9473:366::-;9615:3;9636:67;9700:2;9695:3;9636:67;:::i;:::-;9629:74;;9712:93;9801:3;9712:93;:::i;:::-;9830:2;9825:3;9821:12;9814:19;;9473:366;;;:::o;9845:419::-;10011:4;10049:2;10038:9;10034:18;10026:26;;10098:9;10092:4;10088:20;10084:1;10073:9;10069:17;10062:47;10126:131;10252:4;10126:131;:::i;:::-;10118:139;;9845:419;;;:::o;10270:173::-;10410:25;10406:1;10398:6;10394:14;10387:49;10270:173;:::o;10449:366::-;10591:3;10612:67;10676:2;10671:3;10612:67;:::i;:::-;10605:74;;10688:93;10777:3;10688:93;:::i;:::-;10806:2;10801:3;10797:12;10790:19;;10449:366;;;:::o;10821:419::-;10987:4;11025:2;11014:9;11010:18;11002:26;;11074:9;11068:4;11064:20;11060:1;11049:9;11045:17;11038:47;11102:131;11228:4;11102:131;:::i;:::-;11094:139;;10821:419;;;:::o;11246:143::-;11303:5;11334:6;11328:13;11319:22;;11350:33;11377:5;11350:33;:::i;:::-;11246:143;;;;:::o;11395:351::-;11465:6;11514:2;11502:9;11493:7;11489:23;11485:32;11482:119;;;11520:79;;:::i;:::-;11482:119;11640:1;11665:64;11721:7;11712:6;11701:9;11697:22;11665:64;:::i;:::-;11655:74;;11611:128;11395:351;;;;:::o;11752:332::-;11873:4;11911:2;11900:9;11896:18;11888:26;;11924:71;11992:1;11981:9;11977:17;11968:6;11924:71;:::i;:::-;12005:72;12073:2;12062:9;12058:18;12049:6;12005:72;:::i;:::-;11752:332;;;;;:::o;12090:85::-;12135:7;12164:5;12153:16;;12090:85;;;:::o;12181:60::-;12209:3;12230:5;12223:12;;12181:60;;;:::o;12247:158::-;12305:9;12338:61;12356:42;12365:32;12391:5;12365:32;:::i;:::-;12356:42;:::i;:::-;12338:61;:::i;:::-;12325:74;;12247:158;;;:::o;12411:147::-;12506:45;12545:5;12506:45;:::i;:::-;12501:3;12494:58;12411:147;;:::o;12564:807::-;12813:4;12851:3;12840:9;12836:19;12828:27;;12865:71;12933:1;12922:9;12918:17;12909:6;12865:71;:::i;:::-;12946:72;13014:2;13003:9;12999:18;12990:6;12946:72;:::i;:::-;13028:80;13104:2;13093:9;13089:18;13080:6;13028:80;:::i;:::-;13118;13194:2;13183:9;13179:18;13170:6;13118:80;:::i;:::-;13208:73;13276:3;13265:9;13261:19;13252:6;13208:73;:::i;:::-;13291;13359:3;13348:9;13344:19;13335:6;13291:73;:::i;:::-;12564:807;;;;;;;;;:::o;13377:143::-;13434:5;13465:6;13459:13;13450:22;;13481:33;13508:5;13481:33;:::i;:::-;13377:143;;;;:::o;13526:663::-;13614:6;13622;13630;13679:2;13667:9;13658:7;13654:23;13650:32;13647:119;;;13685:79;;:::i;:::-;13647:119;13805:1;13830:64;13886:7;13877:6;13866:9;13862:22;13830:64;:::i;:::-;13820:74;;13776:128;13943:2;13969:64;14025:7;14016:6;14005:9;14001:22;13969:64;:::i;:::-;13959:74;;13914:129;14082:2;14108:64;14164:7;14155:6;14144:9;14140:22;14108:64;:::i;:::-;14098:74;;14053:129;13526:663;;;;;:::o;14195:332::-;14316:4;14354:2;14343:9;14339:18;14331:26;;14367:71;14435:1;14424:9;14420:17;14411:6;14367:71;:::i;:::-;14448:72;14516:2;14505:9;14501:18;14492:6;14448:72;:::i;:::-;14195:332;;;;;:::o;14533:116::-;14603:21;14618:5;14603:21;:::i;:::-;14596:5;14593:32;14583:60;;14639:1;14636;14629:12;14583:60;14533:116;:::o;14655:137::-;14709:5;14740:6;14734:13;14725:22;;14756:30;14780:5;14756:30;:::i;:::-;14655:137;;;;:::o;14798:345::-;14865:6;14914:2;14902:9;14893:7;14889:23;14885:32;14882:119;;;14920:79;;:::i;:::-;14882:119;15040:1;15065:61;15118:7;15109:6;15098:9;15094:22;15065:61;:::i;:::-;15055:71;;15011:125;14798:345;;;;:::o;15149:223::-;15289:34;15285:1;15277:6;15273:14;15266:58;15358:6;15353:2;15345:6;15341:15;15334:31;15149:223;:::o;15378:366::-;15520:3;15541:67;15605:2;15600:3;15541:67;:::i;:::-;15534:74;;15617:93;15706:3;15617:93;:::i;:::-;15735:2;15730:3;15726:12;15719:19;;15378:366;;;:::o;15750:419::-;15916:4;15954:2;15943:9;15939:18;15931:26;;16003:9;15997:4;15993:20;15989:1;15978:9;15974:17;15967:47;16031:131;16157:4;16031:131;:::i;:::-;16023:139;;15750:419;;;:::o;16175:221::-;16315:34;16311:1;16303:6;16299:14;16292:58;16384:4;16379:2;16371:6;16367:15;16360:29;16175:221;:::o;16402:366::-;16544:3;16565:67;16629:2;16624:3;16565:67;:::i;:::-;16558:74;;16641:93;16730:3;16641:93;:::i;:::-;16759:2;16754:3;16750:12;16743:19;;16402:366;;;:::o;16774:419::-;16940:4;16978:2;16967:9;16963:18;16955:26;;17027:9;17021:4;17017:20;17013:1;17002:9;16998:17;16991:47;17055:131;17181:4;17055:131;:::i;:::-;17047:139;;16774:419;;;:::o;17199:224::-;17339:34;17335:1;17327:6;17323:14;17316:58;17408:7;17403:2;17395:6;17391:15;17384:32;17199:224;:::o;17429:366::-;17571:3;17592:67;17656:2;17651:3;17592:67;:::i;:::-;17585:74;;17668:93;17757:3;17668:93;:::i;:::-;17786:2;17781:3;17777:12;17770:19;;17429:366;;;:::o;17801:419::-;17967:4;18005:2;17994:9;17990:18;17982:26;;18054:9;18048:4;18044:20;18040:1;18029:9;18025:17;18018:47;18082:131;18208:4;18082:131;:::i;:::-;18074:139;;17801:419;;;:::o;18226:222::-;18366:34;18362:1;18354:6;18350:14;18343:58;18435:5;18430:2;18422:6;18418:15;18411:30;18226:222;:::o;18454:366::-;18596:3;18617:67;18681:2;18676:3;18617:67;:::i;:::-;18610:74;;18693:93;18782:3;18693:93;:::i;:::-;18811:2;18806:3;18802:12;18795:19;;18454:366;;;:::o;18826:419::-;18992:4;19030:2;19019:9;19015:18;19007:26;;19079:9;19073:4;19069:20;19065:1;19054:9;19050:17;19043:47;19107:131;19233:4;19107:131;:::i;:::-;19099:139;;18826:419;;;:::o;19251:228::-;19391:34;19387:1;19379:6;19375:14;19368:58;19460:11;19455:2;19447:6;19443:15;19436:36;19251:228;:::o;19485:366::-;19627:3;19648:67;19712:2;19707:3;19648:67;:::i;:::-;19641:74;;19724:93;19813:3;19724:93;:::i;:::-;19842:2;19837:3;19833:12;19826:19;;19485:366;;;:::o;19857:419::-;20023:4;20061:2;20050:9;20046:18;20038:26;;20110:9;20104:4;20100:20;20096:1;20085:9;20081:17;20074:47;20138:131;20264:4;20138:131;:::i;:::-;20130:139;;19857:419;;;:::o;20282:173::-;20422:25;20418:1;20410:6;20406:14;20399:49;20282:173;:::o;20461:366::-;20603:3;20624:67;20688:2;20683:3;20624:67;:::i;:::-;20617:74;;20700:93;20789:3;20700:93;:::i;:::-;20818:2;20813:3;20809:12;20802:19;;20461:366;;;:::o;20833:419::-;20999:4;21037:2;21026:9;21022:18;21014:26;;21086:9;21080:4;21076:20;21072:1;21061:9;21057:17;21050:47;21114:131;21240:4;21114:131;:::i;:::-;21106:139;;20833:419;;;:::o;21258:175::-;21398:27;21394:1;21386:6;21382:14;21375:51;21258:175;:::o;21439:366::-;21581:3;21602:67;21666:2;21661:3;21602:67;:::i;:::-;21595:74;;21678:93;21767:3;21678:93;:::i;:::-;21796:2;21791:3;21787:12;21780:19;;21439:366;;;:::o;21811:419::-;21977:4;22015:2;22004:9;22000:18;21992:26;;22064:9;22058:4;22054:20;22050:1;22039:9;22035:17;22028:47;22092:131;22218:4;22092:131;:::i;:::-;22084:139;;21811:419;;;:::o;22236:191::-;22276:3;22295:20;22313:1;22295:20;:::i;:::-;22290:25;;22329:20;22347:1;22329:20;:::i;:::-;22324:25;;22372:1;22369;22365:9;22358:16;;22393:3;22390:1;22387:10;22384:36;;;22400:18;;:::i;:::-;22384:36;22236:191;;;;:::o;22433:176::-;22573:28;22569:1;22561:6;22557:14;22550:52;22433:176;:::o;22615:366::-;22757:3;22778:67;22842:2;22837:3;22778:67;:::i;:::-;22771:74;;22854:93;22943:3;22854:93;:::i;:::-;22972:2;22967:3;22963:12;22956:19;;22615:366;;;:::o;22987:419::-;23153:4;23191:2;23180:9;23176:18;23168:26;;23240:9;23234:4;23230:20;23226:1;23215:9;23211:17;23204:47;23268:131;23394:4;23268:131;:::i;:::-;23260:139;;22987:419;;;:::o;23412:233::-;23451:3;23474:24;23492:5;23474:24;:::i;:::-;23465:33;;23520:66;23513:5;23510:77;23507:103;;23590:18;;:::i;:::-;23507:103;23637:1;23630:5;23626:13;23619:20;;23412:233;;;:::o;23651:194::-;23691:4;23711:20;23729:1;23711:20;:::i;:::-;23706:25;;23745:20;23763:1;23745:20;:::i;:::-;23740:25;;23789:1;23786;23782:9;23774:17;;23813:1;23807:4;23804:11;23801:37;;;23818:18;;:::i;:::-;23801:37;23651:194;;;;:::o;23851:180::-;23899:77;23896:1;23889:88;23996:4;23993:1;23986:15;24020:4;24017:1;24010:15;24037:180;24085:77;24082:1;24075:88;24182:4;24179:1;24172:15;24206:4;24203:1;24196:15;24223:114;24290:6;24324:5;24318:12;24308:22;;24223:114;;;:::o;24343:184::-;24442:11;24476:6;24471:3;24464:19;24516:4;24511:3;24507:14;24492:29;;24343:184;;;;:::o;24533:132::-;24600:4;24623:3;24615:11;;24653:4;24648:3;24644:14;24636:22;;24533:132;;;:::o;24671:108::-;24748:24;24766:5;24748:24;:::i;:::-;24743:3;24736:37;24671:108;;:::o;24785:179::-;24854:10;24875:46;24917:3;24909:6;24875:46;:::i;:::-;24953:4;24948:3;24944:14;24930:28;;24785:179;;;;:::o;24970:113::-;25040:4;25072;25067:3;25063:14;25055:22;;24970:113;;;:::o;25119:732::-;25238:3;25267:54;25315:5;25267:54;:::i;:::-;25337:86;25416:6;25411:3;25337:86;:::i;:::-;25330:93;;25447:56;25497:5;25447:56;:::i;:::-;25526:7;25557:1;25542:284;25567:6;25564:1;25561:13;25542:284;;;25643:6;25637:13;25670:63;25729:3;25714:13;25670:63;:::i;:::-;25663:70;;25756:60;25809:6;25756:60;:::i;:::-;25746:70;;25602:224;25589:1;25586;25582:9;25577:14;;25542:284;;;25546:14;25842:3;25835:10;;25243:608;;;25119:732;;;;:::o;25857:831::-;26120:4;26158:3;26147:9;26143:19;26135:27;;26172:71;26240:1;26229:9;26225:17;26216:6;26172:71;:::i;:::-;26253:80;26329:2;26318:9;26314:18;26305:6;26253:80;:::i;:::-;26380:9;26374:4;26370:20;26365:2;26354:9;26350:18;26343:48;26408:108;26511:4;26502:6;26408:108;:::i;:::-;26400:116;;26526:72;26594:2;26583:9;26579:18;26570:6;26526:72;:::i;:::-;26608:73;26676:3;26665:9;26661:19;26652:6;26608:73;:::i;:::-;25857:831;;;;;;;;:::o;26694:180::-;26742:77;26739:1;26732:88;26839:4;26836:1;26829:15;26863:4;26860:1;26853:15;26880:185;26920:1;26937:20;26955:1;26937:20;:::i;:::-;26932:25;;26971:20;26989:1;26971:20;:::i;:::-;26966:25;;27010:1;27000:35;;27015:18;;:::i;:::-;27000:35;27057:1;27054;27050:9;27045:14;;26880:185;;;;:::o;27071:220::-;27211:34;27207:1;27199:6;27195:14;27188:58;27280:3;27275:2;27267:6;27263:15;27256:28;27071:220;:::o;27297:366::-;27439:3;27460:67;27524:2;27519:3;27460:67;:::i;:::-;27453:74;;27536:93;27625:3;27536:93;:::i;:::-;27654:2;27649:3;27645:12;27638:19;;27297:366;;;:::o;27669:419::-;27835:4;27873:2;27862:9;27858:18;27850:26;;27922:9;27916:4;27912:20;27908:1;27897:9;27893:17;27886:47;27950:131;28076:4;27950:131;:::i;:::-;27942:139;;27669:419;;;:::o;28094:177::-;28234:29;28230:1;28222:6;28218:14;28211:53;28094:177;:::o;28277:366::-;28419:3;28440:67;28504:2;28499:3;28440:67;:::i;:::-;28433:74;;28516:93;28605:3;28516:93;:::i;:::-;28634:2;28629:3;28625:12;28618:19;;28277:366;;;:::o;28649:419::-;28815:4;28853:2;28842:9;28838:18;28830:26;;28902:9;28896:4;28892:20;28888:1;28877:9;28873:17;28866:47;28930:131;29056:4;28930:131;:::i;:::-;28922:139;;28649:419;;;:::o

Swarm Source

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