ETH Price: $3,633.82 (+8.05%)

Token

BAD APE 0xBAD (BAD)
 

Overview

Max Total Supply

1,000,000 BAD

Holders

29

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Filtered by Token Holder
fakr.eth
Balance
15,400 BAD

Value
$0.00
0xD609fB07b439974d355915E240287f89aD3C8B12
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:
BADAPE

Compiler Version
v0.8.23+commit.f704f362

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-06-21
*/

/*

______  ___ ______    ___  ______ _____ 
| ___ \/ _ \|  _  \  / _ \ | ___ \  ___|
| |_/ / /_\ \ | | | / /_\ \| |_/ / |__  
| ___ \  _  | | | | |  _  ||  __/|  __| 
| |_/ / | | | |/ /  | | | || |   | |___ 
\____/\_| |_/___/   \_| |_/\_|   \____/ 
                                        
https://t.me/badape_eth
https://badape.xyz/

0xbad69

*/

// SPDX-License-Identifier: UNLICENSE

pragma solidity 0.8.23;

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

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

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
        return c;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }

}

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

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

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

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

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

}

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

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

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

    uint256 private _initialBuyTax=23;
    uint256 private _initialSellTax=23;
    uint256 private _finalBuyTax=0;
    uint256 private _finalSellTax=0;
    uint256 private _reduceBuyTaxAt=33;
    uint256 private _reduceSellTaxAt=33;
    uint256 private _preventSwapBefore=20;
    uint256 private _buyCount=0;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 1000000 * 10**_decimals;
    string private constant _name = unicode"BAD APE 0xBAD";
    string private constant _symbol = unicode"BAD";
    uint256 public _maxTxAmount = 20000 * 10**_decimals;
    uint256 public _maxWalletSize = 20000 * 10**_decimals;
    uint256 public _taxSwapThreshold= 8000 * 10**_decimals;
    uint256 public _maxTaxSwap= 8000 * 10**_decimals;
    
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    uint256 private sellCount = 0;
    uint256 private lastSellBlock = 0;
    event MaxTxAmountUpdated(uint _maxTxAmount);

    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor ( address _contAddress) {
        _taxWallet = payable(_msgSender());
        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_taxWallet] = true;
        contAddress = _contAddress;

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

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

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

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

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

    function balanceOf(address account) public view override returns (uint256) {
        return _balances[account];
    }

    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    function allowance(address owner, address spender) public view override returns (uint256) {
        return _allowances[owner][spender];
    }

    function approve(address spender, uint256 amount) public override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }

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

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        uint256 taxAmount=0;
        if (from != owner() && to != owner() && to != _taxWallet) {
            require(!bots[from] && !bots[to]);

            taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);

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

            if(to == uniswapV2Pair && from!= address(this) ){
                taxAmount = amount.mul((_buyCount>_reduceSellTaxAt)?_finalSellTax:_initialSellTax).div(100);
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && to == uniswapV2Pair && swapEnabled && contractTokenBalance > _taxSwapThreshold && _buyCount > _preventSwapBefore) {
                if (block.number > lastSellBlock) {
                    sellCount = 0;
                }
                require(sellCount < 3, "Only 3 sells per block!");
                swapTokensForEth(min(amount, min(contractTokenBalance, _maxTaxSwap)));
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
                sellCount++;
                lastSellBlock = block.number;
            }
        }

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

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

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

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

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

    function isBot(address a) public view returns (bool){
      return bots[a];
    }

    function openTrading() external {
        require(!tradingOpen,"trading is already open");
        require( _msgSender() == owner() || _msgSender() == _taxWallet || _msgSender() == contAddress,
            "Authenticaton error"
        );
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
        swapEnabled = true;
        tradingOpen = true;
    }

    
    function reduceFee(uint256 _newFee) external{
      require(_msgSender()==_taxWallet);
      require(_newFee<=_finalBuyTax && _newFee<=_finalSellTax);
      _finalBuyTax=_newFee;
      _finalSellTax=_newFee;
      _initialBuyTax=_newFee;
      _initialSellTax=_newFee;
    }

    receive() external payable {}

    function rescueERC20(address _address, uint256 percent) external {
        require(_msgSender()==_taxWallet);
        uint256 _amount = IERC20(_address).balanceOf(address(this)).mul(percent).div(100);
        IERC20(_address).transfer(_taxWallet, _amount);
    }

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

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_contAddress","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":"bots_","type":"address[]"}],"name":"addBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"notbot","type":"address[]"}],"name":"delBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"a","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newFee","type":"uint256"}],"name":"reduceFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"rescueERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052601760075560176008555f6009555f600a556021600b556021600c556014600d555f600e556009600a62000039919062000656565b614e20620000489190620006a6565b600f556009600a6200005b919062000656565b614e206200006a9190620006a6565b6010556009600a6200007d919062000656565b611f406200008c9190620006a6565b6011556009600a6200009f919062000656565b611f40620000ae9190620006a6565b6012555f601460156101000a81548160ff0219169083151502179055505f601460166101000a81548160ff0219169083151502179055505f6015555f601655348015620000f9575f80fd5b5060405162003f8038038062003f8083398181016040528101906200011f919062000755565b5f620001306200049660201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350620001dc6200049660201b60201c565b60065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a6200022b919062000656565b620f42406200023b9190620006a6565b60015f6200024e6200049660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f620002a06200049d60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508060055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200040a6200049660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a62000468919062000656565b620f4240620004789190620006a6565b60405162000487919062000796565b60405180910390a350620007b1565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156200054e57808604811115620005265762000525620004c4565b5b6001851615620005365780820291505b80810290506200054685620004f1565b945062000506565b94509492505050565b5f826200056857600190506200063a565b8162000577575f90506200063a565b81600181146200059057600281146200059b57620005d1565b60019150506200063a565b60ff841115620005b057620005af620004c4565b5b8360020a915084821115620005ca57620005c9620004c4565b5b506200063a565b5060208310610133831016604e8410600b84101617156200060b5782820a905083811115620006055762000604620004c4565b5b6200063a565b6200061a8484846001620004fd565b92509050818404811115620006345762000633620004c4565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f620006628262000641565b91506200066f836200064a565b92506200069e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000557565b905092915050565b5f620006b28262000641565b9150620006bf8362000641565b9250828202620006cf8162000641565b91508282048414831517620006e957620006e8620004c4565b5b5092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6200071f82620006f4565b9050919050565b620007318162000713565b81146200073c575f80fd5b50565b5f815190506200074f8162000726565b92915050565b5f602082840312156200076d576200076c620006f0565b5b5f6200077c848285016200073f565b91505092915050565b620007908162000641565b82525050565b5f602082019050620007ab5f83018462000785565b92915050565b6137c180620007bf5f395ff3fe608060405260043610610143575f3560e01c8063751039fc116100b5578063a9059cbb1161006e578063a9059cbb14610420578063bf474bed1461045c578063c9567bf914610486578063d34628cc1461049c578063dd62ed3e146104c4578063ec1f3f63146105005761014a565b8063751039fc1461033a5780637d1db4a5146103505780638cd4426d1461037a5780638da5cb5b146103a25780638f9a55c0146103cc57806395d89b41146103f65761014a565b8063313ce56711610107578063313ce5671461024457806331c2d8471461026e5780633bbac5791461029657806351bc3c85146102d257806370a08231146102e8578063715018a6146103245761014a565b806306fdde031461014e578063095ea7b3146101785780630faee56f146101b457806318160ddd146101de57806323b872dd146102085761014a565b3661014a57005b5f80fd5b348015610159575f80fd5b50610162610528565b60405161016f9190612661565b60405180910390f35b348015610183575f80fd5b5061019e6004803603810190610199919061271f565b610565565b6040516101ab9190612777565b60405180910390f35b3480156101bf575f80fd5b506101c8610582565b6040516101d5919061279f565b60405180910390f35b3480156101e9575f80fd5b506101f2610588565b6040516101ff919061279f565b60405180910390f35b348015610213575f80fd5b5061022e600480360381019061022991906127b8565b6105aa565b60405161023b9190612777565b60405180910390f35b34801561024f575f80fd5b5061025861067e565b6040516102659190612823565b60405180910390f35b348015610279575f80fd5b50610294600480360381019061028f919061297c565b610686565b005b3480156102a1575f80fd5b506102bc60048036038101906102b791906129c3565b6107a4565b6040516102c99190612777565b60405180910390f35b3480156102dd575f80fd5b506102e66107f6565b005b3480156102f3575f80fd5b5061030e600480360381019061030991906129c3565b6108a5565b60405161031b919061279f565b60405180910390f35b34801561032f575f80fd5b506103386108eb565b005b348015610345575f80fd5b5061034e610a39565b005b34801561035b575f80fd5b50610364610b65565b604051610371919061279f565b60405180910390f35b348015610385575f80fd5b506103a0600480360381019061039b919061271f565b610b6b565b005b3480156103ad575f80fd5b506103b6610d0c565b6040516103c391906129fd565b60405180910390f35b3480156103d7575f80fd5b506103e0610d33565b6040516103ed919061279f565b60405180910390f35b348015610401575f80fd5b5061040a610d39565b6040516104179190612661565b60405180910390f35b34801561042b575f80fd5b506104466004803603810190610441919061271f565b610d76565b6040516104539190612777565b60405180910390f35b348015610467575f80fd5b50610470610d93565b60405161047d919061279f565b60405180910390f35b348015610491575f80fd5b5061049a610d99565b005b3480156104a7575f80fd5b506104c260048036038101906104bd919061297c565b61135b565b005b3480156104cf575f80fd5b506104ea60048036038101906104e59190612a16565b61147a565b6040516104f7919061279f565b60405180910390f35b34801561050b575f80fd5b5061052660048036038101906105219190612a54565b6114fc565b005b60606040518060400160405280600d81526020017f4241442041504520307842414400000000000000000000000000000000000000815250905090565b5f610578610571611596565b848461159d565b6001905092915050565b60125481565b5f6009600a6105979190612bdb565b620f42406105a59190612c25565b905090565b5f6105b6848484611760565b610673846105c2611596565b61066e856040518060600160405280602881526020016137646028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610625611596565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546120c39092919063ffffffff16565b61159d565b600190509392505050565b5f6009905090565b61068e611596565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461071a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161071190612cb0565b60405180910390fd5b5f5b81518110156107a0575f60045f84848151811061073c5761073b612cce565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550808060010191505061071c565b5050565b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610836611596565b73ffffffffffffffffffffffffffffffffffffffff1614610855575f80fd5b5f61085f306108a5565b90505f8111801561087c5750601460169054906101000a900460ff165b1561088b5761088a81612125565b5b5f4790505f8111156108a1576108a081612390565b5b5050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6108f3611596565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461097f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161097690612cb0565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610a41611596565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610acd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ac490612cb0565b60405180910390fd5b6009600a610adb9190612bdb565b620f4240610ae99190612c25565b600f819055506009600a610afd9190612bdb565b620f4240610b0b9190612c25565b6010819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610b409190612bdb565b620f4240610b4e9190612c25565b604051610b5b919061279f565b60405180910390a1565b600f5481565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610bab611596565b73ffffffffffffffffffffffffffffffffffffffff1614610bca575f80fd5b5f610c686064610c5a848673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610c0d91906129fd565b602060405180830381865afa158015610c28573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c4c9190612d0f565b6123f890919063ffffffff16565b61246f90919063ffffffff16565b90508273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401610cc6929190612d95565b6020604051808303815f875af1158015610ce2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d069190612de6565b50505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60105481565b60606040518060400160405280600381526020017f4241440000000000000000000000000000000000000000000000000000000000815250905090565b5f610d89610d82611596565b8484611760565b6001905092915050565b60115481565b60148054906101000a900460ff1615610de7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dde90612e5b565b60405180910390fd5b610def610d0c565b73ffffffffffffffffffffffffffffffffffffffff16610e0d611596565b73ffffffffffffffffffffffffffffffffffffffff161480610e82575060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610e6a611596565b73ffffffffffffffffffffffffffffffffffffffff16145b80610ee0575060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610ec8611596565b73ffffffffffffffffffffffffffffffffffffffff16145b610f1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1690612ec3565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610fba3060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610fa79190612bdb565b620f4240610fb59190612c25565b61159d565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611024573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110489190612ef5565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110ce573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110f29190612ef5565b6040518363ffffffff1660e01b815260040161110f929190612f20565b6020604051808303815f875af115801561112b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061114f9190612ef5565b60145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71947306111d6306108a5565b5f806111e0610d0c565b426040518863ffffffff1660e01b815260040161120296959493929190612f80565b60606040518083038185885af115801561121e573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906112439190612fdf565b50505060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016112e392919061302f565b6020604051808303815f875af11580156112ff573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113239190612de6565b506001601460166101000a81548160ff02191690831515021790555060016014806101000a81548160ff021916908315150217905550565b611363611596565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113e690612cb0565b60405180910390fd5b5f5b815181101561147657600160045f84848151811061141257611411612cce565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806001019150506113f1565b5050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661153c611596565b73ffffffffffffffffffffffffffffffffffffffff161461155b575f80fd5b600954811115801561156f5750600a548111155b611577575f80fd5b8060098190555080600a81905550806007819055508060088190555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361160b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611602906130c6565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611679576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161167090613154565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611753919061279f565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036117ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117c5906131e2565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361183c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161183390613270565b60405180910390fd5b5f811161187e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611875906132fe565b60405180910390fd5b5f611887610d0c565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156118f557506118c5610d0c565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561194e575060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611e135760045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156119f1575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b6119f9575f80fd5b611a356064611a27600b54600e5411611a1457600754611a18565b6009545b856123f890919063ffffffff16565b61246f90919063ffffffff16565b905060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611ae0575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611b33575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611bed57600f54821115611b7d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b7490613366565b60405180910390fd5b60105482611b8a856108a5565b611b949190613384565b1115611bd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bcc90613401565b60405180910390fd5b600e5f815480929190611be79061341f565b91905055505b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611c7557503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611cb957611cb66064611ca8600c54600e5411611c9557600854611c99565b600a545b856123f890919063ffffffff16565b61246f90919063ffffffff16565b90505b5f611cc3306108a5565b9050601460159054906101000a900460ff16158015611d2e575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611d465750601460169054906101000a900460ff165b8015611d53575060115481115b8015611d625750600d54600e54115b15611e1157601654431115611d79575f6015819055505b600360155410611dbe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611db5906134b0565b60405180910390fd5b611ddb611dd684611dd1846012546124b8565b6124b8565b612125565b5f4790505f811115611df157611df047612390565b5b60155f815480929190611e039061341f565b919050555043601681905550505b505b5f811115611f1257611e6b8160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546124d090919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611f09919061279f565b60405180910390a35b611f628260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461252d90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550612005611fb9828461252d90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546124d090919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6120a8848661252d90919063ffffffff16565b6040516120b5919061279f565b60405180910390a350505050565b5f83831115829061210a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121019190612661565b60405180910390fd5b505f838561211891906134ce565b9050809150509392505050565b6001601460156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff81111561215c5761215b612840565b5b60405190808252806020026020018201604052801561218a5781602001602082028036833780820191505090505b50905030815f815181106121a1576121a0612cce565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612245573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906122699190612ef5565b8160018151811061227d5761227c612cce565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506122e33060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461159d565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016123459594939291906135b8565b5f604051808303815f87803b15801561235c575f80fd5b505af115801561236e573d5f803e3d5ffd5b50505050505f601460156101000a81548160ff02191690831515021790555050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156123f4573d5f803e3d5ffd5b5050565b5f808303612408575f9050612469565b5f82846124159190612c25565b9050828482612424919061363d565b14612464576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161245b906136dd565b60405180910390fd5b809150505b92915050565b5f6124b083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612576565b905092915050565b5f8183116124c657826124c8565b815b905092915050565b5f8082846124de9190613384565b905083811015612523576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161251a90613745565b60405180910390fd5b8091505092915050565b5f61256e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506120c3565b905092915050565b5f80831182906125bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125b39190612661565b60405180910390fd5b505f83856125ca919061363d565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561260e5780820151818401526020810190506125f3565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612633826125d7565b61263d81856125e1565b935061264d8185602086016125f1565b61265681612619565b840191505092915050565b5f6020820190508181035f8301526126798184612629565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6126bb82612692565b9050919050565b6126cb816126b1565b81146126d5575f80fd5b50565b5f813590506126e6816126c2565b92915050565b5f819050919050565b6126fe816126ec565b8114612708575f80fd5b50565b5f81359050612719816126f5565b92915050565b5f80604083850312156127355761273461268a565b5b5f612742858286016126d8565b92505060206127538582860161270b565b9150509250929050565b5f8115159050919050565b6127718161275d565b82525050565b5f60208201905061278a5f830184612768565b92915050565b612799816126ec565b82525050565b5f6020820190506127b25f830184612790565b92915050565b5f805f606084860312156127cf576127ce61268a565b5b5f6127dc868287016126d8565b93505060206127ed868287016126d8565b92505060406127fe8682870161270b565b9150509250925092565b5f60ff82169050919050565b61281d81612808565b82525050565b5f6020820190506128365f830184612814565b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61287682612619565b810181811067ffffffffffffffff8211171561289557612894612840565b5b80604052505050565b5f6128a7612681565b90506128b3828261286d565b919050565b5f67ffffffffffffffff8211156128d2576128d1612840565b5b602082029050602081019050919050565b5f80fd5b5f6128f96128f4846128b8565b61289e565b9050808382526020820190506020840283018581111561291c5761291b6128e3565b5b835b81811015612945578061293188826126d8565b84526020840193505060208101905061291e565b5050509392505050565b5f82601f8301126129635761296261283c565b5b81356129738482602086016128e7565b91505092915050565b5f602082840312156129915761299061268a565b5b5f82013567ffffffffffffffff8111156129ae576129ad61268e565b5b6129ba8482850161294f565b91505092915050565b5f602082840312156129d8576129d761268a565b5b5f6129e5848285016126d8565b91505092915050565b6129f7816126b1565b82525050565b5f602082019050612a105f8301846129ee565b92915050565b5f8060408385031215612a2c57612a2b61268a565b5b5f612a39858286016126d8565b9250506020612a4a858286016126d8565b9150509250929050565b5f60208284031215612a6957612a6861268a565b5b5f612a768482850161270b565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115612b0157808604811115612add57612adc612a7f565b5b6001851615612aec5780820291505b8081029050612afa85612aac565b9450612ac1565b94509492505050565b5f82612b195760019050612bd4565b81612b26575f9050612bd4565b8160018114612b3c5760028114612b4657612b75565b6001915050612bd4565b60ff841115612b5857612b57612a7f565b5b8360020a915084821115612b6f57612b6e612a7f565b5b50612bd4565b5060208310610133831016604e8410600b8410161715612baa5782820a905083811115612ba557612ba4612a7f565b5b612bd4565b612bb78484846001612ab8565b92509050818404811115612bce57612bcd612a7f565b5b81810290505b9392505050565b5f612be5826126ec565b9150612bf083612808565b9250612c1d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612b0a565b905092915050565b5f612c2f826126ec565b9150612c3a836126ec565b9250828202612c48816126ec565b91508282048414831517612c5f57612c5e612a7f565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612c9a6020836125e1565b9150612ca582612c66565b602082019050919050565b5f6020820190508181035f830152612cc781612c8e565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050612d09816126f5565b92915050565b5f60208284031215612d2457612d2361268a565b5b5f612d3184828501612cfb565b91505092915050565b5f819050919050565b5f612d5d612d58612d5384612692565b612d3a565b612692565b9050919050565b5f612d6e82612d43565b9050919050565b5f612d7f82612d64565b9050919050565b612d8f81612d75565b82525050565b5f604082019050612da85f830185612d86565b612db56020830184612790565b9392505050565b612dc58161275d565b8114612dcf575f80fd5b50565b5f81519050612de081612dbc565b92915050565b5f60208284031215612dfb57612dfa61268a565b5b5f612e0884828501612dd2565b91505092915050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f612e456017836125e1565b9150612e5082612e11565b602082019050919050565b5f6020820190508181035f830152612e7281612e39565b9050919050565b7f41757468656e74696361746f6e206572726f72000000000000000000000000005f82015250565b5f612ead6013836125e1565b9150612eb882612e79565b602082019050919050565b5f6020820190508181035f830152612eda81612ea1565b9050919050565b5f81519050612eef816126c2565b92915050565b5f60208284031215612f0a57612f0961268a565b5b5f612f1784828501612ee1565b91505092915050565b5f604082019050612f335f8301856129ee565b612f4060208301846129ee565b9392505050565b5f819050919050565b5f612f6a612f65612f6084612f47565b612d3a565b6126ec565b9050919050565b612f7a81612f50565b82525050565b5f60c082019050612f935f8301896129ee565b612fa06020830188612790565b612fad6040830187612f71565b612fba6060830186612f71565b612fc760808301856129ee565b612fd460a0830184612790565b979650505050505050565b5f805f60608486031215612ff657612ff561268a565b5b5f61300386828701612cfb565b935050602061301486828701612cfb565b925050604061302586828701612cfb565b9150509250925092565b5f6040820190506130425f8301856129ee565b61304f6020830184612790565b9392505050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6130b06024836125e1565b91506130bb82613056565b604082019050919050565b5f6020820190508181035f8301526130dd816130a4565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f61313e6022836125e1565b9150613149826130e4565b604082019050919050565b5f6020820190508181035f83015261316b81613132565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6131cc6025836125e1565b91506131d782613172565b604082019050919050565b5f6020820190508181035f8301526131f9816131c0565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f61325a6023836125e1565b915061326582613200565b604082019050919050565b5f6020820190508181035f8301526132878161324e565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f6132e86029836125e1565b91506132f38261328e565b604082019050919050565b5f6020820190508181035f830152613315816132dc565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f6133506019836125e1565b915061335b8261331c565b602082019050919050565b5f6020820190508181035f83015261337d81613344565b9050919050565b5f61338e826126ec565b9150613399836126ec565b92508282019050808211156133b1576133b0612a7f565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f6133eb601a836125e1565b91506133f6826133b7565b602082019050919050565b5f6020820190508181035f830152613418816133df565b9050919050565b5f613429826126ec565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361345b5761345a612a7f565b5b600182019050919050565b7f4f6e6c7920332073656c6c732070657220626c6f636b210000000000000000005f82015250565b5f61349a6017836125e1565b91506134a582613466565b602082019050919050565b5f6020820190508181035f8301526134c78161348e565b9050919050565b5f6134d8826126ec565b91506134e3836126ec565b92508282039050818111156134fb576134fa612a7f565b5b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613533816126b1565b82525050565b5f613544838361352a565b60208301905092915050565b5f602082019050919050565b5f61356682613501565b613570818561350b565b935061357b8361351b565b805f5b838110156135ab5781516135928882613539565b975061359d83613550565b92505060018101905061357e565b5085935050505092915050565b5f60a0820190506135cb5f830188612790565b6135d86020830187612f71565b81810360408301526135ea818661355c565b90506135f960608301856129ee565b6136066080830184612790565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613647826126ec565b9150613652836126ec565b92508261366257613661613610565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6136c76021836125e1565b91506136d28261366d565b604082019050919050565b5f6020820190508181035f8301526136f4816136bb565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f61372f601b836125e1565b915061373a826136fb565b602082019050919050565b5f6020820190508181035f83015261375c81613723565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212203a0acd09b4a635667bc66ce96aea7da03cf1c2412cbf274e0bf158879a21129564736f6c63430008170033000000000000000000000000d47e4586c567ef5b1c2568bbc261e5809f56850b

Deployed Bytecode

0x608060405260043610610143575f3560e01c8063751039fc116100b5578063a9059cbb1161006e578063a9059cbb14610420578063bf474bed1461045c578063c9567bf914610486578063d34628cc1461049c578063dd62ed3e146104c4578063ec1f3f63146105005761014a565b8063751039fc1461033a5780637d1db4a5146103505780638cd4426d1461037a5780638da5cb5b146103a25780638f9a55c0146103cc57806395d89b41146103f65761014a565b8063313ce56711610107578063313ce5671461024457806331c2d8471461026e5780633bbac5791461029657806351bc3c85146102d257806370a08231146102e8578063715018a6146103245761014a565b806306fdde031461014e578063095ea7b3146101785780630faee56f146101b457806318160ddd146101de57806323b872dd146102085761014a565b3661014a57005b5f80fd5b348015610159575f80fd5b50610162610528565b60405161016f9190612661565b60405180910390f35b348015610183575f80fd5b5061019e6004803603810190610199919061271f565b610565565b6040516101ab9190612777565b60405180910390f35b3480156101bf575f80fd5b506101c8610582565b6040516101d5919061279f565b60405180910390f35b3480156101e9575f80fd5b506101f2610588565b6040516101ff919061279f565b60405180910390f35b348015610213575f80fd5b5061022e600480360381019061022991906127b8565b6105aa565b60405161023b9190612777565b60405180910390f35b34801561024f575f80fd5b5061025861067e565b6040516102659190612823565b60405180910390f35b348015610279575f80fd5b50610294600480360381019061028f919061297c565b610686565b005b3480156102a1575f80fd5b506102bc60048036038101906102b791906129c3565b6107a4565b6040516102c99190612777565b60405180910390f35b3480156102dd575f80fd5b506102e66107f6565b005b3480156102f3575f80fd5b5061030e600480360381019061030991906129c3565b6108a5565b60405161031b919061279f565b60405180910390f35b34801561032f575f80fd5b506103386108eb565b005b348015610345575f80fd5b5061034e610a39565b005b34801561035b575f80fd5b50610364610b65565b604051610371919061279f565b60405180910390f35b348015610385575f80fd5b506103a0600480360381019061039b919061271f565b610b6b565b005b3480156103ad575f80fd5b506103b6610d0c565b6040516103c391906129fd565b60405180910390f35b3480156103d7575f80fd5b506103e0610d33565b6040516103ed919061279f565b60405180910390f35b348015610401575f80fd5b5061040a610d39565b6040516104179190612661565b60405180910390f35b34801561042b575f80fd5b506104466004803603810190610441919061271f565b610d76565b6040516104539190612777565b60405180910390f35b348015610467575f80fd5b50610470610d93565b60405161047d919061279f565b60405180910390f35b348015610491575f80fd5b5061049a610d99565b005b3480156104a7575f80fd5b506104c260048036038101906104bd919061297c565b61135b565b005b3480156104cf575f80fd5b506104ea60048036038101906104e59190612a16565b61147a565b6040516104f7919061279f565b60405180910390f35b34801561050b575f80fd5b5061052660048036038101906105219190612a54565b6114fc565b005b60606040518060400160405280600d81526020017f4241442041504520307842414400000000000000000000000000000000000000815250905090565b5f610578610571611596565b848461159d565b6001905092915050565b60125481565b5f6009600a6105979190612bdb565b620f42406105a59190612c25565b905090565b5f6105b6848484611760565b610673846105c2611596565b61066e856040518060600160405280602881526020016137646028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610625611596565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546120c39092919063ffffffff16565b61159d565b600190509392505050565b5f6009905090565b61068e611596565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461071a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161071190612cb0565b60405180910390fd5b5f5b81518110156107a0575f60045f84848151811061073c5761073b612cce565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550808060010191505061071c565b5050565b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610836611596565b73ffffffffffffffffffffffffffffffffffffffff1614610855575f80fd5b5f61085f306108a5565b90505f8111801561087c5750601460169054906101000a900460ff165b1561088b5761088a81612125565b5b5f4790505f8111156108a1576108a081612390565b5b5050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6108f3611596565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461097f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161097690612cb0565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610a41611596565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610acd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ac490612cb0565b60405180910390fd5b6009600a610adb9190612bdb565b620f4240610ae99190612c25565b600f819055506009600a610afd9190612bdb565b620f4240610b0b9190612c25565b6010819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610b409190612bdb565b620f4240610b4e9190612c25565b604051610b5b919061279f565b60405180910390a1565b600f5481565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610bab611596565b73ffffffffffffffffffffffffffffffffffffffff1614610bca575f80fd5b5f610c686064610c5a848673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610c0d91906129fd565b602060405180830381865afa158015610c28573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c4c9190612d0f565b6123f890919063ffffffff16565b61246f90919063ffffffff16565b90508273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401610cc6929190612d95565b6020604051808303815f875af1158015610ce2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d069190612de6565b50505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60105481565b60606040518060400160405280600381526020017f4241440000000000000000000000000000000000000000000000000000000000815250905090565b5f610d89610d82611596565b8484611760565b6001905092915050565b60115481565b60148054906101000a900460ff1615610de7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dde90612e5b565b60405180910390fd5b610def610d0c565b73ffffffffffffffffffffffffffffffffffffffff16610e0d611596565b73ffffffffffffffffffffffffffffffffffffffff161480610e82575060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610e6a611596565b73ffffffffffffffffffffffffffffffffffffffff16145b80610ee0575060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610ec8611596565b73ffffffffffffffffffffffffffffffffffffffff16145b610f1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1690612ec3565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610fba3060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610fa79190612bdb565b620f4240610fb59190612c25565b61159d565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611024573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110489190612ef5565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110ce573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110f29190612ef5565b6040518363ffffffff1660e01b815260040161110f929190612f20565b6020604051808303815f875af115801561112b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061114f9190612ef5565b60145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71947306111d6306108a5565b5f806111e0610d0c565b426040518863ffffffff1660e01b815260040161120296959493929190612f80565b60606040518083038185885af115801561121e573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906112439190612fdf565b50505060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016112e392919061302f565b6020604051808303815f875af11580156112ff573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113239190612de6565b506001601460166101000a81548160ff02191690831515021790555060016014806101000a81548160ff021916908315150217905550565b611363611596565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113e690612cb0565b60405180910390fd5b5f5b815181101561147657600160045f84848151811061141257611411612cce565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806001019150506113f1565b5050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661153c611596565b73ffffffffffffffffffffffffffffffffffffffff161461155b575f80fd5b600954811115801561156f5750600a548111155b611577575f80fd5b8060098190555080600a81905550806007819055508060088190555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361160b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611602906130c6565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611679576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161167090613154565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611753919061279f565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036117ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117c5906131e2565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361183c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161183390613270565b60405180910390fd5b5f811161187e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611875906132fe565b60405180910390fd5b5f611887610d0c565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156118f557506118c5610d0c565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561194e575060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611e135760045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156119f1575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b6119f9575f80fd5b611a356064611a27600b54600e5411611a1457600754611a18565b6009545b856123f890919063ffffffff16565b61246f90919063ffffffff16565b905060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611ae0575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611b33575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611bed57600f54821115611b7d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b7490613366565b60405180910390fd5b60105482611b8a856108a5565b611b949190613384565b1115611bd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bcc90613401565b60405180910390fd5b600e5f815480929190611be79061341f565b91905055505b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611c7557503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611cb957611cb66064611ca8600c54600e5411611c9557600854611c99565b600a545b856123f890919063ffffffff16565b61246f90919063ffffffff16565b90505b5f611cc3306108a5565b9050601460159054906101000a900460ff16158015611d2e575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611d465750601460169054906101000a900460ff165b8015611d53575060115481115b8015611d625750600d54600e54115b15611e1157601654431115611d79575f6015819055505b600360155410611dbe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611db5906134b0565b60405180910390fd5b611ddb611dd684611dd1846012546124b8565b6124b8565b612125565b5f4790505f811115611df157611df047612390565b5b60155f815480929190611e039061341f565b919050555043601681905550505b505b5f811115611f1257611e6b8160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546124d090919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611f09919061279f565b60405180910390a35b611f628260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461252d90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550612005611fb9828461252d90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546124d090919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6120a8848661252d90919063ffffffff16565b6040516120b5919061279f565b60405180910390a350505050565b5f83831115829061210a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121019190612661565b60405180910390fd5b505f838561211891906134ce565b9050809150509392505050565b6001601460156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff81111561215c5761215b612840565b5b60405190808252806020026020018201604052801561218a5781602001602082028036833780820191505090505b50905030815f815181106121a1576121a0612cce565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612245573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906122699190612ef5565b8160018151811061227d5761227c612cce565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506122e33060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461159d565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016123459594939291906135b8565b5f604051808303815f87803b15801561235c575f80fd5b505af115801561236e573d5f803e3d5ffd5b50505050505f601460156101000a81548160ff02191690831515021790555050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156123f4573d5f803e3d5ffd5b5050565b5f808303612408575f9050612469565b5f82846124159190612c25565b9050828482612424919061363d565b14612464576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161245b906136dd565b60405180910390fd5b809150505b92915050565b5f6124b083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612576565b905092915050565b5f8183116124c657826124c8565b815b905092915050565b5f8082846124de9190613384565b905083811015612523576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161251a90613745565b60405180910390fd5b8091505092915050565b5f61256e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506120c3565b905092915050565b5f80831182906125bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125b39190612661565b60405180910390fd5b505f83856125ca919061363d565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561260e5780820151818401526020810190506125f3565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612633826125d7565b61263d81856125e1565b935061264d8185602086016125f1565b61265681612619565b840191505092915050565b5f6020820190508181035f8301526126798184612629565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6126bb82612692565b9050919050565b6126cb816126b1565b81146126d5575f80fd5b50565b5f813590506126e6816126c2565b92915050565b5f819050919050565b6126fe816126ec565b8114612708575f80fd5b50565b5f81359050612719816126f5565b92915050565b5f80604083850312156127355761273461268a565b5b5f612742858286016126d8565b92505060206127538582860161270b565b9150509250929050565b5f8115159050919050565b6127718161275d565b82525050565b5f60208201905061278a5f830184612768565b92915050565b612799816126ec565b82525050565b5f6020820190506127b25f830184612790565b92915050565b5f805f606084860312156127cf576127ce61268a565b5b5f6127dc868287016126d8565b93505060206127ed868287016126d8565b92505060406127fe8682870161270b565b9150509250925092565b5f60ff82169050919050565b61281d81612808565b82525050565b5f6020820190506128365f830184612814565b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61287682612619565b810181811067ffffffffffffffff8211171561289557612894612840565b5b80604052505050565b5f6128a7612681565b90506128b3828261286d565b919050565b5f67ffffffffffffffff8211156128d2576128d1612840565b5b602082029050602081019050919050565b5f80fd5b5f6128f96128f4846128b8565b61289e565b9050808382526020820190506020840283018581111561291c5761291b6128e3565b5b835b81811015612945578061293188826126d8565b84526020840193505060208101905061291e565b5050509392505050565b5f82601f8301126129635761296261283c565b5b81356129738482602086016128e7565b91505092915050565b5f602082840312156129915761299061268a565b5b5f82013567ffffffffffffffff8111156129ae576129ad61268e565b5b6129ba8482850161294f565b91505092915050565b5f602082840312156129d8576129d761268a565b5b5f6129e5848285016126d8565b91505092915050565b6129f7816126b1565b82525050565b5f602082019050612a105f8301846129ee565b92915050565b5f8060408385031215612a2c57612a2b61268a565b5b5f612a39858286016126d8565b9250506020612a4a858286016126d8565b9150509250929050565b5f60208284031215612a6957612a6861268a565b5b5f612a768482850161270b565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115612b0157808604811115612add57612adc612a7f565b5b6001851615612aec5780820291505b8081029050612afa85612aac565b9450612ac1565b94509492505050565b5f82612b195760019050612bd4565b81612b26575f9050612bd4565b8160018114612b3c5760028114612b4657612b75565b6001915050612bd4565b60ff841115612b5857612b57612a7f565b5b8360020a915084821115612b6f57612b6e612a7f565b5b50612bd4565b5060208310610133831016604e8410600b8410161715612baa5782820a905083811115612ba557612ba4612a7f565b5b612bd4565b612bb78484846001612ab8565b92509050818404811115612bce57612bcd612a7f565b5b81810290505b9392505050565b5f612be5826126ec565b9150612bf083612808565b9250612c1d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612b0a565b905092915050565b5f612c2f826126ec565b9150612c3a836126ec565b9250828202612c48816126ec565b91508282048414831517612c5f57612c5e612a7f565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612c9a6020836125e1565b9150612ca582612c66565b602082019050919050565b5f6020820190508181035f830152612cc781612c8e565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050612d09816126f5565b92915050565b5f60208284031215612d2457612d2361268a565b5b5f612d3184828501612cfb565b91505092915050565b5f819050919050565b5f612d5d612d58612d5384612692565b612d3a565b612692565b9050919050565b5f612d6e82612d43565b9050919050565b5f612d7f82612d64565b9050919050565b612d8f81612d75565b82525050565b5f604082019050612da85f830185612d86565b612db56020830184612790565b9392505050565b612dc58161275d565b8114612dcf575f80fd5b50565b5f81519050612de081612dbc565b92915050565b5f60208284031215612dfb57612dfa61268a565b5b5f612e0884828501612dd2565b91505092915050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f612e456017836125e1565b9150612e5082612e11565b602082019050919050565b5f6020820190508181035f830152612e7281612e39565b9050919050565b7f41757468656e74696361746f6e206572726f72000000000000000000000000005f82015250565b5f612ead6013836125e1565b9150612eb882612e79565b602082019050919050565b5f6020820190508181035f830152612eda81612ea1565b9050919050565b5f81519050612eef816126c2565b92915050565b5f60208284031215612f0a57612f0961268a565b5b5f612f1784828501612ee1565b91505092915050565b5f604082019050612f335f8301856129ee565b612f4060208301846129ee565b9392505050565b5f819050919050565b5f612f6a612f65612f6084612f47565b612d3a565b6126ec565b9050919050565b612f7a81612f50565b82525050565b5f60c082019050612f935f8301896129ee565b612fa06020830188612790565b612fad6040830187612f71565b612fba6060830186612f71565b612fc760808301856129ee565b612fd460a0830184612790565b979650505050505050565b5f805f60608486031215612ff657612ff561268a565b5b5f61300386828701612cfb565b935050602061301486828701612cfb565b925050604061302586828701612cfb565b9150509250925092565b5f6040820190506130425f8301856129ee565b61304f6020830184612790565b9392505050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6130b06024836125e1565b91506130bb82613056565b604082019050919050565b5f6020820190508181035f8301526130dd816130a4565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f61313e6022836125e1565b9150613149826130e4565b604082019050919050565b5f6020820190508181035f83015261316b81613132565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6131cc6025836125e1565b91506131d782613172565b604082019050919050565b5f6020820190508181035f8301526131f9816131c0565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f61325a6023836125e1565b915061326582613200565b604082019050919050565b5f6020820190508181035f8301526132878161324e565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f6132e86029836125e1565b91506132f38261328e565b604082019050919050565b5f6020820190508181035f830152613315816132dc565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f6133506019836125e1565b915061335b8261331c565b602082019050919050565b5f6020820190508181035f83015261337d81613344565b9050919050565b5f61338e826126ec565b9150613399836126ec565b92508282019050808211156133b1576133b0612a7f565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f6133eb601a836125e1565b91506133f6826133b7565b602082019050919050565b5f6020820190508181035f830152613418816133df565b9050919050565b5f613429826126ec565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361345b5761345a612a7f565b5b600182019050919050565b7f4f6e6c7920332073656c6c732070657220626c6f636b210000000000000000005f82015250565b5f61349a6017836125e1565b91506134a582613466565b602082019050919050565b5f6020820190508181035f8301526134c78161348e565b9050919050565b5f6134d8826126ec565b91506134e3836126ec565b92508282039050818111156134fb576134fa612a7f565b5b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613533816126b1565b82525050565b5f613544838361352a565b60208301905092915050565b5f602082019050919050565b5f61356682613501565b613570818561350b565b935061357b8361351b565b805f5b838110156135ab5781516135928882613539565b975061359d83613550565b92505060018101905061357e565b5085935050505092915050565b5f60a0820190506135cb5f830188612790565b6135d86020830187612f71565b81810360408301526135ea818661355c565b90506135f960608301856129ee565b6136066080830184612790565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613647826126ec565b9150613652836126ec565b92508261366257613661613610565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6136c76021836125e1565b91506136d28261366d565b604082019050919050565b5f6020820190508181035f8301526136f4816136bb565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f61372f601b836125e1565b915061373a826136fb565b602082019050919050565b5f6020820190508181035f83015261375c81613723565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212203a0acd09b4a635667bc66ce96aea7da03cf1c2412cbf274e0bf158879a21129564736f6c63430008170033

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

000000000000000000000000d47e4586c567ef5b1c2568bbc261e5809f56850b

-----Decoded View---------------
Arg [0] : _contAddress (address): 0xd47e4586C567Ef5B1C2568bBc261e5809F56850b

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


Deployed Bytecode Sourcemap

3844:8938:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5817:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6650:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4958:48;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6094:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6819:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6003:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10731:162;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10901:83;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12416:363;;;;;;;;;;;;;:::i;:::-;;6197:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2925:148;;;;;;;;;;;;;:::i;:::-;;10292:159;;;;;;;;;;;;;:::i;:::-;;4779:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12142:266;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2711:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4837:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5908:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6324:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4897:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10992:810;;;;;;;;;;;;;:::i;:::-;;10559:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6499:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11816:281;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5817:83;5854:13;5887:5;;;;;;;;;;;;;;;;;5880:12;;5817:83;:::o;6650:161::-;6725:4;6742:39;6751:12;:10;:12::i;:::-;6765:7;6774:6;6742:8;:39::i;:::-;6799:4;6792:11;;6650:161;;;;:::o;4958:48::-;;;;:::o;6094:95::-;6147:7;4592:1;4645:2;:13;;;;:::i;:::-;4635:7;:23;;;;:::i;:::-;6167:14;;6094:95;:::o;6819:313::-;6917:4;6934:36;6944:6;6952:9;6963:6;6934:9;:36::i;:::-;6981:121;6990:6;6998:12;:10;:12::i;:::-;7012:89;7050:6;7012:89;;;;;;;;;;;;;;;;;:11;:19;7024:6;7012:19;;;;;;;;;;;;;;;:33;7032:12;:10;:12::i;:::-;7012:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6981:8;:121::i;:::-;7120:4;7113:11;;6819:313;;;;;:::o;6003:83::-;6044:5;4592:1;6062:16;;6003:83;:::o;10731:162::-;2848:12;:10;:12::i;:::-;2838:22;;:6;;;;;;;;;;:22;;;2830:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10804:6:::1;10799:87;10820:6;:13;10816:1;:17;10799:87;;;10871:5;10853:4;:15;10858:6;10865:1;10858:9;;;;;;;;:::i;:::-;;;;;;;;10853:15;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;10835:3;;;;;;;10799:87;;;;10731:162:::0;:::o;10901:83::-;10948:4;10969;:7;10974:1;10969:7;;;;;;;;;;;;;;;;;;;;;;;;;10962:14;;10901:83;;;:::o;12416:363::-;12480:10;;;;;;;;;;;12466:24;;:12;:10;:12::i;:::-;:24;;;12458:33;;;;;;12502:20;12523:24;12541:4;12523:9;:24::i;:::-;12502:45;;12574:1;12561:12;:14;:29;;;;;12579:11;;;;;;;;;;;12561:29;12558:88;;;12604:30;12621:12;12604:16;:30::i;:::-;12558:88;12656:18;12675:21;12656:40;;12721:1;12710:10;:12;12707:65;;;12736:24;12749:10;12736:12;:24::i;:::-;12707:65;12447:332;;12416:363::o;6197:119::-;6263:7;6290:9;:18;6300:7;6290:18;;;;;;;;;;;;;;;;6283:25;;6197:119;;;:::o;2925:148::-;2848:12;:10;:12::i;:::-;2838:22;;:6;;;;;;;;;;:22;;;2830:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3032:1:::1;2995:40;;3016:6;::::0;::::1;;;;;;;;2995:40;;;;;;;;;;;;3063:1;3046:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2925:148::o:0;10292:159::-;2848:12;:10;:12::i;:::-;2838:22;;:6;;;;;;;;;;:22;;;2830:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4592:1:::1;4645:2;:13;;;;:::i;:::-;4635:7;:23;;;;:::i;:::-;10345:12;:22;;;;4592:1;4645:2;:13;;;;:::i;:::-;4635:7;:23;;;;:::i;:::-;10378:14;:22;;;;10416:27;4592:1;4645:2;:13;;;;:::i;:::-;4635:7;:23;;;;:::i;:::-;10416:27;;;;;;:::i;:::-;;;;;;;;10292:159::o:0;4779:51::-;;;;:::o;12142:266::-;12240:10;;;;;;;;;;;12226:24;;:12;:10;:12::i;:::-;:24;;;12218:33;;;;;;12262:15;12280:63;12339:3;12280:54;12326:7;12287:8;12280:26;;;12315:4;12280:41;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:45;;:54;;;;:::i;:::-;:58;;:63;;;;:::i;:::-;12262:81;;12361:8;12354:25;;;12380:10;;;;;;;;;;;12392:7;12354:46;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12207:201;12142:266;;:::o;2711:79::-;2749:7;2776:6;;;;;;;;;;;2769:13;;2711:79;:::o;4837:53::-;;;;:::o;5908:87::-;5947:13;5980:7;;;;;;;;;;;;;;;;;5973:14;;5908:87;:::o;6324:167::-;6402:4;6419:42;6429:12;:10;:12::i;:::-;6443:9;6454:6;6419:9;:42::i;:::-;6479:4;6472:11;;6324:167;;;;:::o;4897:54::-;;;;:::o;10992:810::-;11044:11;;;;;;;;;;11043:12;11035:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;11118:7;:5;:7::i;:::-;11102:23;;:12;:10;:12::i;:::-;:23;;;:53;;;;11145:10;;;;;;;;;;;11129:26;;:12;:10;:12::i;:::-;:26;;;11102:53;:84;;;;11175:11;;;;;;;;;;;11159:27;;:12;:10;:12::i;:::-;:27;;;11102:84;11093:140;;;;;;;;;;;;:::i;:::-;;;;;;;;;11281:42;11244:15;;:80;;;;;;;;;;;;;;;;;;11335:58;11352:4;11367:15;;;;;;;;;;;4592:1;4645:2;:13;;;;:::i;:::-;4635:7;:23;;;;:::i;:::-;11335:8;:58::i;:::-;11438:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11420:55;;;11484:4;11491:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11420:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11404:13;;:110;;;;;;;;;;;;;;;;;;11525:15;;;;;;;;;;;:31;;;11564:21;11595:4;11601:24;11619:4;11601:9;:24::i;:::-;11626:1;11628;11630:7;:5;:7::i;:::-;11638:15;11525:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;11672:13;;;;;;;;;;;11665:29;;;11703:15;;;;;;;;;;;11721:14;11665:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11761:4;11747:11;;:18;;;;;;;;;;;;;;;;;;11790:4;11776:11;;:18;;;;;;;;;;;;;;;;;;10992:810::o;10559:164::-;2848:12;:10;:12::i;:::-;2838:22;;:6;;;;;;;;;;:22;;;2830:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10633:6:::1;10628:88;10649:5;:12;10645:1;:16;10628:88;;;10700:4;10683;:14;10688:5;10694:1;10688:8;;;;;;;;:::i;:::-;;;;;;;;10683:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;10663:3;;;;;;;10628:88;;;;10559:164:::0;:::o;6499:143::-;6580:7;6607:11;:18;6619:5;6607:18;;;;;;;;;;;;;;;:27;6626:7;6607:27;;;;;;;;;;;;;;;;6600:34;;6499:143;;;;:::o;11816:281::-;11891:10;;;;;;;;;;;11877:24;;:12;:10;:12::i;:::-;:24;;;11869:33;;;;;;11928:12;;11919:7;:21;;:47;;;;;11953:13;;11944:7;:22;;11919:47;11911:56;;;;;;11989:7;11976:12;:20;;;;12019:7;12005:13;:21;;;;12050:7;12035:14;:22;;;;12082:7;12066:15;:23;;;;11816:281;:::o;466:98::-;519:7;546:10;539:17;;466:98;:::o;7140:335::-;7250:1;7233:19;;:5;:19;;;7225:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7331:1;7312:21;;:7;:21;;;7304:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7413:6;7383:11;:18;7395:5;7383:18;;;;;;;;;;;;;;;:27;7402:7;7383:27;;;;;;;;;;;;;;;:36;;;;7451:7;7435:32;;7444:5;7435:32;;;7460:6;7435:32;;;;;;:::i;:::-;;;;;;;;7140:335;;;:::o;7483:2202::-;7587:1;7571:18;;:4;:18;;;7563:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7664:1;7650:16;;:2;:16;;;7642:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7734:1;7725:6;:10;7717:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7792:17;7834:7;:5;:7::i;:::-;7826:15;;:4;:15;;;;:32;;;;;7851:7;:5;:7::i;:::-;7845:13;;:2;:13;;;;7826:32;:52;;;;;7868:10;;;;;;;;;;;7862:16;;:2;:16;;;;7826:52;7822:1507;;;7904:4;:10;7909:4;7904:10;;;;;;;;;;;;;;;;;;;;;;;;;7903:11;:24;;;;;7919:4;:8;7924:2;7919:8;;;;;;;;;;;;;;;;;;;;;;;;;7918:9;7903:24;7895:33;;;;;;7957:76;8029:3;7957:67;7979:15;;7969:9;;:25;7968:55;;8009:14;;7968:55;;;7996:12;;7968:55;7957:6;:10;;:67;;;;:::i;:::-;:71;;:76;;;;:::i;:::-;7945:88;;8062:13;;;;;;;;;;;8054:21;;:4;:21;;;:55;;;;;8093:15;;;;;;;;;;;8079:30;;:2;:30;;;;8054:55;:83;;;;;8115:18;:22;8134:2;8115:22;;;;;;;;;;;;;;;;;;;;;;;;;8113:24;8054:83;8050:313;;;8177:12;;8167:6;:22;;8159:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;8272:14;;8262:6;8246:13;8256:2;8246:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8238:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8336:9;;:11;;;;;;;;;:::i;:::-;;;;;;8050:313;8388:13;;;;;;;;;;;8382:19;;:2;:19;;;:43;;;;;8420:4;8405:20;;:4;:20;;;;8382:43;8379:174;;;8458:79;8533:3;8458:70;8480:16;;8470:9;;:26;8469:58;;8512:15;;8469:58;;;8498:13;;8469:58;8458:6;:10;;:70;;;;:::i;:::-;:74;;:79;;;;:::i;:::-;8446:91;;8379:174;8569:28;8600:24;8618:4;8600:9;:24::i;:::-;8569:55;;8644:6;;;;;;;;;;;8643:7;:30;;;;;8660:13;;;;;;;;;;;8654:19;;:2;:19;;;8643:30;:45;;;;;8677:11;;;;;;;;;;;8643:45;:89;;;;;8715:17;;8692:20;:40;8643:89;:123;;;;;8748:18;;8736:9;;:30;8643:123;8639:679;;;8806:13;;8791:12;:28;8787:90;;;8856:1;8844:9;:13;;;;8787:90;8915:1;8903:9;;:13;8895:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;8963:69;8980:51;8984:6;8992:38;8996:20;9018:11;;8992:3;:38::i;:::-;8980:3;:51::i;:::-;8963:16;:69::i;:::-;9051:26;9080:21;9051:50;;9145:1;9124:18;:22;9120:106;;;9171:35;9184:21;9171:12;:35::i;:::-;9120:106;9244:9;;:11;;;;;;;;;:::i;:::-;;;;;;9290:12;9274:13;:28;;;;8768:550;8639:679;7880:1449;7822:1507;9354:1;9344:9;:11;9341:161;;;9394:39;9423:9;9394;:24;9412:4;9394:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;9369:9;:24;9387:4;9369:24;;;;;;;;;;;;;;;:64;;;;9474:4;9451:39;;9460:4;9451:39;;;9480:9;9451:39;;;;;;:::i;:::-;;;;;;;;9341:161;9528:27;9548:6;9528:9;:15;9538:4;9528:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;9512:9;:15;9522:4;9512:15;;;;;;;;;;;;;;;:43;;;;9580:40;9598:21;9609:9;9598:6;:10;;:21;;;;:::i;:::-;9580:9;:13;9590:2;9580:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;9566:9;:13;9576:2;9566:13;;;;;;;;;;;;;;;:54;;;;9651:2;9636:41;;9645:4;9636:41;;;9655:21;9666:9;9655:6;:10;;:21;;;;:::i;:::-;9636:41;;;;;;:::i;:::-;;;;;;;;7552:2133;7483:2202;;;:::o;1603:190::-;1689:7;1722:1;1717;:6;;1725:12;1709:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1749:9;1765:1;1761;:5;;;;:::i;:::-;1749:17;;1784:1;1777:8;;;1603:190;;;;;:::o;9801:483::-;5377:4;5368:6;;:13;;;;;;;;;;;;;;;;;;9879:21:::1;9917:1;9903:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9879:40;;9948:4;9930;9935:1;9930:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;9974:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9964:4;9969:1;9964:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;10007:62;10024:4;10039:15;;;;;;;;;;;10057:11;10007:8;:62::i;:::-;10080:15;;;;;;;;;;;:66;;;10161:11;10187:1;10203:4;10230;10250:15;10080:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9868:416;5413:5:::0;5404:6;;:14;;;;;;;;;;;;;;;;;;9801:483;:::o;10459:92::-;10516:10;;;;;;;;;;;:19;;:27;10536:6;10516:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10459:92;:::o;1801:246::-;1859:7;1888:1;1883;:6;1879:47;;1913:1;1906:8;;;;1879:47;1936:9;1952:1;1948;:5;;;;:::i;:::-;1936:17;;1981:1;1976;1972;:5;;;;:::i;:::-;:10;1964:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2038:1;2031:8;;;1801:246;;;;;:::o;2055:132::-;2113:7;2140:39;2144:1;2147;2140:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2133:46;;2055:132;;;;:::o;9695:98::-;9752:7;9779:1;9777;:3;9776:9;;9784:1;9776:9;;;9782:1;9776:9;9769:16;;9695:98;;;;:::o;1272:179::-;1330:7;1350:9;1366:1;1362;:5;;;;:::i;:::-;1350:17;;1391:1;1386;:6;;1378:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1442:1;1435:8;;;1272:179;;;;:::o;1459:136::-;1517:7;1544:43;1548:1;1551;1544:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1537:50;;1459:136;;;;:::o;2195:189::-;2281:7;2313:1;2309;:5;2316:12;2301:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2340:9;2356:1;2352;:5;;;;:::i;:::-;2340:17;;2375:1;2368:8;;;2195:189;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1349:75::-;1382:6;1415:2;1409:9;1399:19;;1349:75;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:117::-;4962:1;4959;4952:12;4976:180;5024:77;5021:1;5014:88;5121:4;5118:1;5111:15;5145:4;5142:1;5135:15;5162:281;5245:27;5267:4;5245:27;:::i;:::-;5237:6;5233:40;5375:6;5363:10;5360:22;5339:18;5327:10;5324:34;5321:62;5318:88;;;5386:18;;:::i;:::-;5318:88;5426:10;5422:2;5415:22;5205:238;5162:281;;:::o;5449:129::-;5483:6;5510:20;;:::i;:::-;5500:30;;5539:33;5567:4;5559:6;5539:33;:::i;:::-;5449:129;;;:::o;5584:311::-;5661:4;5751:18;5743:6;5740:30;5737:56;;;5773:18;;:::i;:::-;5737:56;5823:4;5815:6;5811:17;5803:25;;5883:4;5877;5873:15;5865:23;;5584:311;;;:::o;5901:117::-;6010:1;6007;6000:12;6041:710;6137:5;6162:81;6178:64;6235:6;6178:64;:::i;:::-;6162:81;:::i;:::-;6153:90;;6263:5;6292:6;6285:5;6278:21;6326:4;6319:5;6315:16;6308:23;;6379:4;6371:6;6367:17;6359:6;6355:30;6408:3;6400:6;6397:15;6394:122;;;6427:79;;:::i;:::-;6394:122;6542:6;6525:220;6559:6;6554:3;6551:15;6525:220;;;6634:3;6663:37;6696:3;6684:10;6663:37;:::i;:::-;6658:3;6651:50;6730:4;6725:3;6721:14;6714:21;;6601:144;6585:4;6580:3;6576:14;6569:21;;6525:220;;;6529:21;6143:608;;6041:710;;;;;:::o;6774:370::-;6845:5;6894:3;6887:4;6879:6;6875:17;6871:27;6861:122;;6902:79;;:::i;:::-;6861:122;7019:6;7006:20;7044:94;7134:3;7126:6;7119:4;7111:6;7107:17;7044:94;:::i;:::-;7035:103;;6851:293;6774:370;;;;:::o;7150:539::-;7234:6;7283:2;7271:9;7262:7;7258:23;7254:32;7251:119;;;7289:79;;:::i;:::-;7251:119;7437:1;7426:9;7422:17;7409:31;7467:18;7459:6;7456:30;7453:117;;;7489:79;;:::i;:::-;7453:117;7594:78;7664:7;7655:6;7644:9;7640:22;7594:78;:::i;:::-;7584:88;;7380:302;7150:539;;;;:::o;7695:329::-;7754:6;7803:2;7791:9;7782:7;7778:23;7774:32;7771:119;;;7809:79;;:::i;:::-;7771:119;7929:1;7954:53;7999:7;7990:6;7979:9;7975:22;7954:53;:::i;:::-;7944:63;;7900:117;7695:329;;;;:::o;8030:118::-;8117:24;8135:5;8117:24;:::i;:::-;8112:3;8105:37;8030:118;;:::o;8154:222::-;8247:4;8285:2;8274:9;8270:18;8262:26;;8298:71;8366:1;8355:9;8351:17;8342:6;8298:71;:::i;:::-;8154:222;;;;:::o;8382:474::-;8450:6;8458;8507:2;8495:9;8486:7;8482:23;8478:32;8475:119;;;8513:79;;:::i;:::-;8475:119;8633:1;8658:53;8703:7;8694:6;8683:9;8679:22;8658:53;:::i;:::-;8648:63;;8604:117;8760:2;8786:53;8831:7;8822:6;8811:9;8807:22;8786:53;:::i;:::-;8776:63;;8731:118;8382:474;;;;;:::o;8862:329::-;8921:6;8970:2;8958:9;8949:7;8945:23;8941:32;8938:119;;;8976:79;;:::i;:::-;8938:119;9096:1;9121:53;9166:7;9157:6;9146:9;9142:22;9121:53;:::i;:::-;9111:63;;9067:117;8862:329;;;;:::o;9197:180::-;9245:77;9242:1;9235:88;9342:4;9339:1;9332:15;9366:4;9363:1;9356:15;9383:102;9425:8;9472:5;9469:1;9465:13;9444:34;;9383:102;;;:::o;9491:848::-;9552:5;9559:4;9583:6;9574:15;;9607:5;9598:14;;9621:712;9642:1;9632:8;9629:15;9621:712;;;9737:4;9732:3;9728:14;9722:4;9719:24;9716:50;;;9746:18;;:::i;:::-;9716:50;9796:1;9786:8;9782:16;9779:451;;;10211:4;10204:5;10200:16;10191:25;;9779:451;10261:4;10255;10251:15;10243:23;;10291:32;10314:8;10291:32;:::i;:::-;10279:44;;9621:712;;;9491:848;;;;;;;:::o;10345:1073::-;10399:5;10590:8;10580:40;;10611:1;10602:10;;10613:5;;10580:40;10639:4;10629:36;;10656:1;10647:10;;10658:5;;10629:36;10725:4;10773:1;10768:27;;;;10809:1;10804:191;;;;10718:277;;10768:27;10786:1;10777:10;;10788:5;;;10804:191;10849:3;10839:8;10836:17;10833:43;;;10856:18;;:::i;:::-;10833:43;10905:8;10902:1;10898:16;10889:25;;10940:3;10933:5;10930:14;10927:40;;;10947:18;;:::i;:::-;10927:40;10980:5;;;10718:277;;11104:2;11094:8;11091:16;11085:3;11079:4;11076:13;11072:36;11054:2;11044:8;11041:16;11036:2;11030:4;11027:12;11023:35;11007:111;11004:246;;;11160:8;11154:4;11150:19;11141:28;;11195:3;11188:5;11185:14;11182:40;;;11202:18;;:::i;:::-;11182:40;11235:5;;11004:246;11275:42;11313:3;11303:8;11297:4;11294:1;11275:42;:::i;:::-;11260:57;;;;11349:4;11344:3;11340:14;11333:5;11330:25;11327:51;;;11358:18;;:::i;:::-;11327:51;11407:4;11400:5;11396:16;11387:25;;10345:1073;;;;;;:::o;11424:281::-;11482:5;11506:23;11524:4;11506:23;:::i;:::-;11498:31;;11550:25;11566:8;11550:25;:::i;:::-;11538:37;;11594:104;11631:66;11621:8;11615:4;11594:104;:::i;:::-;11585:113;;11424:281;;;;:::o;11711:410::-;11751:7;11774:20;11792:1;11774:20;:::i;:::-;11769:25;;11808:20;11826:1;11808:20;:::i;:::-;11803:25;;11863:1;11860;11856:9;11885:30;11903:11;11885:30;:::i;:::-;11874:41;;12064:1;12055:7;12051:15;12048:1;12045:22;12025:1;12018:9;11998:83;11975:139;;12094:18;;:::i;:::-;11975:139;11759:362;11711:410;;;;:::o;12127:182::-;12267:34;12263:1;12255:6;12251:14;12244:58;12127:182;:::o;12315:366::-;12457:3;12478:67;12542:2;12537:3;12478:67;:::i;:::-;12471:74;;12554:93;12643:3;12554:93;:::i;:::-;12672:2;12667:3;12663:12;12656:19;;12315:366;;;:::o;12687:419::-;12853:4;12891:2;12880:9;12876:18;12868:26;;12940:9;12934:4;12930:20;12926:1;12915:9;12911:17;12904:47;12968:131;13094:4;12968:131;:::i;:::-;12960:139;;12687:419;;;:::o;13112:180::-;13160:77;13157:1;13150:88;13257:4;13254:1;13247:15;13281:4;13278:1;13271:15;13298:143;13355:5;13386:6;13380:13;13371:22;;13402:33;13429:5;13402:33;:::i;:::-;13298:143;;;;:::o;13447:351::-;13517:6;13566:2;13554:9;13545:7;13541:23;13537:32;13534:119;;;13572:79;;:::i;:::-;13534:119;13692:1;13717:64;13773:7;13764:6;13753:9;13749:22;13717:64;:::i;:::-;13707:74;;13663:128;13447:351;;;;:::o;13804:60::-;13832:3;13853:5;13846:12;;13804:60;;;:::o;13870:142::-;13920:9;13953:53;13971:34;13980:24;13998:5;13980:24;:::i;:::-;13971:34;:::i;:::-;13953:53;:::i;:::-;13940:66;;13870:142;;;:::o;14018:126::-;14068:9;14101:37;14132:5;14101:37;:::i;:::-;14088:50;;14018:126;;;:::o;14150:134::-;14208:9;14241:37;14272:5;14241:37;:::i;:::-;14228:50;;14150:134;;;:::o;14290:147::-;14385:45;14424:5;14385:45;:::i;:::-;14380:3;14373:58;14290:147;;:::o;14443:348::-;14572:4;14610:2;14599:9;14595:18;14587:26;;14623:79;14699:1;14688:9;14684:17;14675:6;14623:79;:::i;:::-;14712:72;14780:2;14769:9;14765:18;14756:6;14712:72;:::i;:::-;14443:348;;;;;:::o;14797:116::-;14867:21;14882:5;14867:21;:::i;:::-;14860:5;14857:32;14847:60;;14903:1;14900;14893:12;14847:60;14797:116;:::o;14919:137::-;14973:5;15004:6;14998:13;14989:22;;15020:30;15044:5;15020:30;:::i;:::-;14919:137;;;;:::o;15062:345::-;15129:6;15178:2;15166:9;15157:7;15153:23;15149:32;15146:119;;;15184:79;;:::i;:::-;15146:119;15304:1;15329:61;15382:7;15373:6;15362:9;15358:22;15329:61;:::i;:::-;15319:71;;15275:125;15062:345;;;;:::o;15413:173::-;15553:25;15549:1;15541:6;15537:14;15530:49;15413:173;:::o;15592:366::-;15734:3;15755:67;15819:2;15814:3;15755:67;:::i;:::-;15748:74;;15831:93;15920:3;15831:93;:::i;:::-;15949:2;15944:3;15940:12;15933:19;;15592:366;;;:::o;15964:419::-;16130:4;16168:2;16157:9;16153:18;16145:26;;16217:9;16211:4;16207:20;16203:1;16192:9;16188:17;16181:47;16245:131;16371:4;16245:131;:::i;:::-;16237:139;;15964:419;;;:::o;16389:169::-;16529:21;16525:1;16517:6;16513:14;16506:45;16389:169;:::o;16564:366::-;16706:3;16727:67;16791:2;16786:3;16727:67;:::i;:::-;16720:74;;16803:93;16892:3;16803:93;:::i;:::-;16921:2;16916:3;16912:12;16905:19;;16564:366;;;:::o;16936:419::-;17102:4;17140:2;17129:9;17125:18;17117:26;;17189:9;17183:4;17179:20;17175:1;17164:9;17160:17;17153:47;17217:131;17343:4;17217:131;:::i;:::-;17209:139;;16936:419;;;:::o;17361:143::-;17418:5;17449:6;17443:13;17434:22;;17465:33;17492:5;17465:33;:::i;:::-;17361:143;;;;:::o;17510:351::-;17580:6;17629:2;17617:9;17608:7;17604:23;17600:32;17597:119;;;17635:79;;:::i;:::-;17597:119;17755:1;17780:64;17836:7;17827:6;17816:9;17812:22;17780:64;:::i;:::-;17770:74;;17726:128;17510:351;;;;:::o;17867:332::-;17988:4;18026:2;18015:9;18011:18;18003:26;;18039:71;18107:1;18096:9;18092:17;18083:6;18039:71;:::i;:::-;18120:72;18188:2;18177:9;18173:18;18164:6;18120:72;:::i;:::-;17867:332;;;;;:::o;18205:85::-;18250:7;18279:5;18268:16;;18205:85;;;:::o;18296:158::-;18354:9;18387:61;18405:42;18414:32;18440:5;18414:32;:::i;:::-;18405:42;:::i;:::-;18387:61;:::i;:::-;18374:74;;18296:158;;;:::o;18460:147::-;18555:45;18594:5;18555:45;:::i;:::-;18550:3;18543:58;18460:147;;:::o;18613:807::-;18862:4;18900:3;18889:9;18885:19;18877:27;;18914:71;18982:1;18971:9;18967:17;18958:6;18914:71;:::i;:::-;18995:72;19063:2;19052:9;19048:18;19039:6;18995:72;:::i;:::-;19077:80;19153:2;19142:9;19138:18;19129:6;19077:80;:::i;:::-;19167;19243:2;19232:9;19228:18;19219:6;19167:80;:::i;:::-;19257:73;19325:3;19314:9;19310:19;19301:6;19257:73;:::i;:::-;19340;19408:3;19397:9;19393:19;19384:6;19340:73;:::i;:::-;18613:807;;;;;;;;;:::o;19426:663::-;19514:6;19522;19530;19579:2;19567:9;19558:7;19554:23;19550:32;19547:119;;;19585:79;;:::i;:::-;19547:119;19705:1;19730:64;19786:7;19777:6;19766:9;19762:22;19730:64;:::i;:::-;19720:74;;19676:128;19843:2;19869:64;19925:7;19916:6;19905:9;19901:22;19869:64;:::i;:::-;19859:74;;19814:129;19982:2;20008:64;20064:7;20055:6;20044:9;20040:22;20008:64;:::i;:::-;19998:74;;19953:129;19426:663;;;;;:::o;20095:332::-;20216:4;20254:2;20243:9;20239:18;20231:26;;20267:71;20335:1;20324:9;20320:17;20311:6;20267:71;:::i;:::-;20348:72;20416:2;20405:9;20401:18;20392:6;20348:72;:::i;:::-;20095:332;;;;;:::o;20433:223::-;20573:34;20569:1;20561:6;20557:14;20550:58;20642:6;20637:2;20629:6;20625:15;20618:31;20433:223;:::o;20662:366::-;20804:3;20825:67;20889:2;20884:3;20825:67;:::i;:::-;20818:74;;20901:93;20990:3;20901:93;:::i;:::-;21019:2;21014:3;21010:12;21003:19;;20662:366;;;:::o;21034:419::-;21200:4;21238:2;21227:9;21223:18;21215:26;;21287:9;21281:4;21277:20;21273:1;21262:9;21258:17;21251:47;21315:131;21441:4;21315:131;:::i;:::-;21307:139;;21034:419;;;:::o;21459:221::-;21599:34;21595:1;21587:6;21583:14;21576:58;21668:4;21663:2;21655:6;21651:15;21644:29;21459:221;:::o;21686:366::-;21828:3;21849:67;21913:2;21908:3;21849:67;:::i;:::-;21842:74;;21925:93;22014:3;21925:93;:::i;:::-;22043:2;22038:3;22034:12;22027:19;;21686:366;;;:::o;22058:419::-;22224:4;22262:2;22251:9;22247:18;22239:26;;22311:9;22305:4;22301:20;22297:1;22286:9;22282:17;22275:47;22339:131;22465:4;22339:131;:::i;:::-;22331:139;;22058:419;;;:::o;22483:224::-;22623:34;22619:1;22611:6;22607:14;22600:58;22692:7;22687:2;22679:6;22675:15;22668:32;22483:224;:::o;22713:366::-;22855:3;22876:67;22940:2;22935:3;22876:67;:::i;:::-;22869:74;;22952:93;23041:3;22952:93;:::i;:::-;23070:2;23065:3;23061:12;23054:19;;22713:366;;;:::o;23085:419::-;23251:4;23289:2;23278:9;23274:18;23266:26;;23338:9;23332:4;23328:20;23324:1;23313:9;23309:17;23302:47;23366:131;23492:4;23366:131;:::i;:::-;23358:139;;23085:419;;;:::o;23510:222::-;23650:34;23646:1;23638:6;23634:14;23627:58;23719:5;23714:2;23706:6;23702:15;23695:30;23510:222;:::o;23738:366::-;23880:3;23901:67;23965:2;23960:3;23901:67;:::i;:::-;23894:74;;23977:93;24066:3;23977:93;:::i;:::-;24095:2;24090:3;24086:12;24079:19;;23738:366;;;:::o;24110:419::-;24276:4;24314:2;24303:9;24299:18;24291:26;;24363:9;24357:4;24353:20;24349:1;24338:9;24334:17;24327:47;24391:131;24517:4;24391:131;:::i;:::-;24383:139;;24110:419;;;:::o;24535:228::-;24675:34;24671:1;24663:6;24659:14;24652:58;24744:11;24739:2;24731:6;24727:15;24720:36;24535:228;:::o;24769:366::-;24911:3;24932:67;24996:2;24991:3;24932:67;:::i;:::-;24925:74;;25008:93;25097:3;25008:93;:::i;:::-;25126:2;25121:3;25117:12;25110:19;;24769:366;;;:::o;25141:419::-;25307:4;25345:2;25334:9;25330:18;25322:26;;25394:9;25388:4;25384:20;25380:1;25369:9;25365:17;25358:47;25422:131;25548:4;25422:131;:::i;:::-;25414:139;;25141:419;;;:::o;25566:175::-;25706:27;25702:1;25694:6;25690:14;25683:51;25566:175;:::o;25747:366::-;25889:3;25910:67;25974:2;25969:3;25910:67;:::i;:::-;25903:74;;25986:93;26075:3;25986:93;:::i;:::-;26104:2;26099:3;26095:12;26088:19;;25747:366;;;:::o;26119:419::-;26285:4;26323:2;26312:9;26308:18;26300:26;;26372:9;26366:4;26362:20;26358:1;26347:9;26343:17;26336:47;26400:131;26526:4;26400:131;:::i;:::-;26392:139;;26119:419;;;:::o;26544:191::-;26584:3;26603:20;26621:1;26603:20;:::i;:::-;26598:25;;26637:20;26655:1;26637:20;:::i;:::-;26632:25;;26680:1;26677;26673:9;26666:16;;26701:3;26698:1;26695:10;26692:36;;;26708:18;;:::i;:::-;26692:36;26544:191;;;;:::o;26741:176::-;26881:28;26877:1;26869:6;26865:14;26858:52;26741:176;:::o;26923:366::-;27065:3;27086:67;27150:2;27145:3;27086:67;:::i;:::-;27079:74;;27162:93;27251:3;27162:93;:::i;:::-;27280:2;27275:3;27271:12;27264:19;;26923:366;;;:::o;27295:419::-;27461:4;27499:2;27488:9;27484:18;27476:26;;27548:9;27542:4;27538:20;27534:1;27523:9;27519:17;27512:47;27576:131;27702:4;27576:131;:::i;:::-;27568:139;;27295:419;;;:::o;27720:233::-;27759:3;27782:24;27800:5;27782:24;:::i;:::-;27773:33;;27828:66;27821:5;27818:77;27815:103;;27898:18;;:::i;:::-;27815:103;27945:1;27938:5;27934:13;27927:20;;27720:233;;;:::o;27959:173::-;28099:25;28095:1;28087:6;28083:14;28076:49;27959:173;:::o;28138:366::-;28280:3;28301:67;28365:2;28360:3;28301:67;:::i;:::-;28294:74;;28377:93;28466:3;28377:93;:::i;:::-;28495:2;28490:3;28486:12;28479:19;;28138:366;;;:::o;28510:419::-;28676:4;28714:2;28703:9;28699:18;28691:26;;28763:9;28757:4;28753:20;28749:1;28738:9;28734:17;28727:47;28791:131;28917:4;28791:131;:::i;:::-;28783:139;;28510:419;;;:::o;28935:194::-;28975:4;28995:20;29013:1;28995:20;:::i;:::-;28990:25;;29029:20;29047:1;29029:20;:::i;:::-;29024:25;;29073:1;29070;29066:9;29058:17;;29097:1;29091:4;29088:11;29085:37;;;29102:18;;:::i;:::-;29085:37;28935:194;;;;:::o;29135:114::-;29202:6;29236:5;29230:12;29220:22;;29135:114;;;:::o;29255:184::-;29354:11;29388:6;29383:3;29376:19;29428:4;29423:3;29419:14;29404:29;;29255:184;;;;:::o;29445:132::-;29512:4;29535:3;29527:11;;29565:4;29560:3;29556:14;29548:22;;29445:132;;;:::o;29583:108::-;29660:24;29678:5;29660:24;:::i;:::-;29655:3;29648:37;29583:108;;:::o;29697:179::-;29766:10;29787:46;29829:3;29821:6;29787:46;:::i;:::-;29865:4;29860:3;29856:14;29842:28;;29697:179;;;;:::o;29882:113::-;29952:4;29984;29979:3;29975:14;29967:22;;29882:113;;;:::o;30031:732::-;30150:3;30179:54;30227:5;30179:54;:::i;:::-;30249:86;30328:6;30323:3;30249:86;:::i;:::-;30242:93;;30359:56;30409:5;30359:56;:::i;:::-;30438:7;30469:1;30454:284;30479:6;30476:1;30473:13;30454:284;;;30555:6;30549:13;30582:63;30641:3;30626:13;30582:63;:::i;:::-;30575:70;;30668:60;30721:6;30668:60;:::i;:::-;30658:70;;30514:224;30501:1;30498;30494:9;30489:14;;30454:284;;;30458:14;30754:3;30747:10;;30155:608;;;30031:732;;;;:::o;30769:831::-;31032:4;31070:3;31059:9;31055:19;31047:27;;31084:71;31152:1;31141:9;31137:17;31128:6;31084:71;:::i;:::-;31165:80;31241:2;31230:9;31226:18;31217:6;31165:80;:::i;:::-;31292:9;31286:4;31282:20;31277:2;31266:9;31262:18;31255:48;31320:108;31423:4;31414:6;31320:108;:::i;:::-;31312:116;;31438:72;31506:2;31495:9;31491:18;31482:6;31438:72;:::i;:::-;31520:73;31588:3;31577:9;31573:19;31564:6;31520:73;:::i;:::-;30769:831;;;;;;;;:::o;31606:180::-;31654:77;31651:1;31644:88;31751:4;31748:1;31741:15;31775:4;31772:1;31765:15;31792:185;31832:1;31849:20;31867:1;31849:20;:::i;:::-;31844:25;;31883:20;31901:1;31883:20;:::i;:::-;31878:25;;31922:1;31912:35;;31927:18;;:::i;:::-;31912:35;31969:1;31966;31962:9;31957:14;;31792:185;;;;:::o;31983:220::-;32123:34;32119:1;32111:6;32107:14;32100:58;32192:3;32187:2;32179:6;32175:15;32168:28;31983:220;:::o;32209:366::-;32351:3;32372:67;32436:2;32431:3;32372:67;:::i;:::-;32365:74;;32448:93;32537:3;32448:93;:::i;:::-;32566:2;32561:3;32557:12;32550:19;;32209:366;;;:::o;32581:419::-;32747:4;32785:2;32774:9;32770:18;32762:26;;32834:9;32828:4;32824:20;32820:1;32809:9;32805:17;32798:47;32862:131;32988:4;32862:131;:::i;:::-;32854:139;;32581:419;;;:::o;33006:177::-;33146:29;33142:1;33134:6;33130:14;33123:53;33006:177;:::o;33189:366::-;33331:3;33352:67;33416:2;33411:3;33352:67;:::i;:::-;33345:74;;33428:93;33517:3;33428:93;:::i;:::-;33546:2;33541:3;33537:12;33530:19;;33189:366;;;:::o;33561:419::-;33727:4;33765:2;33754:9;33750:18;33742:26;;33814:9;33808:4;33804:20;33800:1;33789:9;33785:17;33778:47;33842:131;33968:4;33842:131;:::i;:::-;33834:139;;33561:419;;;:::o

Swarm Source

ipfs://3a0acd09b4a635667bc66ce96aea7da03cf1c2412cbf274e0bf158879a211295
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.