ETH Price: $3,343.26 (-1.09%)

Token

NinjaCat (NINJA)
 

Overview

Max Total Supply

1,000,000,000 NINJA

Holders

96

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
0.150887033 NINJA

Value
$0.00
0xd41c9e546b02049990f8ca6ac7a2572cc7f16b8a
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:
NINJA

Compiler Version
v0.8.14+commit.80d49f37

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-11-24
*/

/*

Twitter: https://twitter.com/NinjaCatERC

Telegram: https://t.me/ninjacaterc

Website: https://ninjacat.ninja/

*/
// SPDX-License-Identifier: UNLICENSED

pragma solidity 0.8.14;

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 NINJA 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;
    mapping(address => uint256) private _holderLastTransferTimestamp;
    bool public transferDelayEnabled = true;
    address payable private _taxWallet;

    uint256 private _initialBuyTax=18;
    uint256 private _initialSellTax=30;
    uint256 private _finalBuyTax=0;
    uint256 private _finalSellTax=0;
    uint256 private _reduceBuyTaxAt=25;
    uint256 private _reduceSellTaxAt=25;
    uint256 private _preventSwapBefore=20;
    uint256 private _buyCount=0;

    mapping(address => uint256) private cooldownTimer;
    bool public buyCooldownEnabled = true;
    uint8 public cooldownTimerInterval = 1;
    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 1000000000 * 10**_decimals;
    string private constant _name = unicode"NinjaCat";
    string private constant _symbol = unicode"NINJA";
    uint256 public _maxTxAmount = 15000000 * 10**_decimals;
    uint256 public _maxWalletSize = 20000000 * 10**_decimals;
    uint256 public _taxSwapThreshold= 10000000 * 10**_decimals;
    uint256 public _maxTaxSwap= 10000000 * 10**_decimals;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    // function cooldownEnabled(bool _status, uint8 _interval) public onlyOwner {
    //     buyCooldownEnabled = _status;
    //     cooldownTimerInterval = _interval;
    // }

    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()) {
            require(!bots[from] && !bots[to]);
            taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);

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

            if (from == uniswapV2Pair && buyCooldownEnabled && ! _isExcludedFromFee[to]) {
                require(
                    cooldownTimer[to] < block.timestamp,
                    "buy Cooldown exists"
                );
                cooldownTimer[to] = block.timestamp + cooldownTimerInterval;
            }

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

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

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

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


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

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function removeLimits() external onlyOwner{
        _maxTxAmount = _tTotal;
        _maxWalletSize=_tTotal;
        transferDelayEnabled=false;
        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 Eureka() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        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 reduceTax(uint256 _newFee) external{
        require(_msgSender()==_taxWallet);
    
            _finalSellTax=_newFee;
    }

    receive() external payable {}

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

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"Eureka","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"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":"buyCooldownEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"cooldownTimerInterval","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"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":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newFee","type":"uint256"}],"name":"reduceTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526001600660006101000a81548160ff0219169083151502179055506012600755601e60085560006009556000600a556019600b556019600c556014600d556000600e556001601060006101000a81548160ff0219169083151502179055506001601060016101000a81548160ff021916908360ff1602179055506009600a6200008e919062000662565b62e4e1c06200009e9190620006b3565b6011556009600a620000b1919062000662565b6301312d00620000c29190620006b3565b6012556009600a620000d5919062000662565b62989680620000e59190620006b3565b6013556009600a620000f8919062000662565b62989680620001089190620006b3565b6014556000601660156101000a81548160ff02191690831515021790555060006016806101000a81548160ff0219169083151502179055503480156200014d57600080fd5b506000620001606200049760201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506200020e6200049760201b60201c565b600660016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a6200025e919062000662565b633b9aca006200026f9190620006b3565b60016000620002836200049760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160036000620002d76200049f60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200040a6200049760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a62000469919062000662565b633b9aca006200047a9190620006b3565b60405162000489919062000725565b60405180910390a362000742565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000556578086048111156200052e576200052d620004c8565b5b60018516156200053e5780820291505b80810290506200054e85620004f7565b94506200050e565b94509492505050565b60008262000571576001905062000644565b8162000581576000905062000644565b81600181146200059a5760028114620005a557620005db565b600191505062000644565b60ff841115620005ba57620005b9620004c8565b5b8360020a915084821115620005d457620005d3620004c8565b5b5062000644565b5060208310610133831016604e8410600b8410161715620006155782820a9050838111156200060f576200060e620004c8565b5b62000644565b62000624848484600162000504565b925090508184048111156200063e576200063d620004c8565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b60006200066f826200064b565b91506200067c8362000655565b9250620006ab7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200055f565b905092915050565b6000620006c0826200064b565b9150620006cd836200064b565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615620007095762000708620004c8565b5b828202905092915050565b6200071f816200064b565b82525050565b60006020820190506200073c600083018462000714565b92915050565b61399f80620007526000396000f3fe60806040526004361061016a5760003560e01c8063722b62ad116100d157806395d89b411161008a578063c876d0b911610064578063c876d0b914610505578063d34628cc14610530578063dd62ed3e14610559578063ef9858941461059657610171565b806395d89b4114610472578063a9059cbb1461049d578063bf474bed146104da57610171565b8063722b62ad14610398578063751039fc146103c35780637d1db4a5146103da5780638da5cb5b146104055780638f9a55c014610430578063951af5ef1461045b57610171565b806331c2d8471161012357806331c2d8471461029c5780633bbac579146102c557806351bc3c8514610302578063617fe0ed1461031957806370a0823114610344578063715018a61461038157610171565b806306fdde0314610176578063095ea7b3146101a15780630faee56f146101de57806318160ddd1461020957806323b872dd14610234578063313ce5671461027157610171565b3661017157005b600080fd5b34801561018257600080fd5b5061018b6105bf565b60405161019891906127d1565b60405180910390f35b3480156101ad57600080fd5b506101c860048036038101906101c3919061289b565b6105fc565b6040516101d591906128f6565b60405180910390f35b3480156101ea57600080fd5b506101f361061a565b6040516102009190612920565b60405180910390f35b34801561021557600080fd5b5061021e610620565b60405161022b9190612920565b60405180910390f35b34801561024057600080fd5b5061025b6004803603810190610256919061293b565b610644565b60405161026891906128f6565b60405180910390f35b34801561027d57600080fd5b5061028661071d565b60405161029391906129aa565b60405180910390f35b3480156102a857600080fd5b506102c360048036038101906102be9190612b0d565b610726565b005b3480156102d157600080fd5b506102ec60048036038101906102e79190612b56565b610850565b6040516102f991906128f6565b60405180910390f35b34801561030e57600080fd5b506103176108a6565b005b34801561032557600080fd5b5061032e610943565b60405161033b91906128f6565b60405180910390f35b34801561035057600080fd5b5061036b60048036038101906103669190612b56565b610956565b6040516103789190612920565b60405180910390f35b34801561038d57600080fd5b5061039661099f565b005b3480156103a457600080fd5b506103ad610af2565b6040516103ba91906129aa565b60405180910390f35b3480156103cf57600080fd5b506103d8610b05565b005b3480156103e657600080fd5b506103ef610c50565b6040516103fc9190612920565b60405180910390f35b34801561041157600080fd5b5061041a610c56565b6040516104279190612b92565b60405180910390f35b34801561043c57600080fd5b50610445610c7f565b6040516104529190612920565b60405180910390f35b34801561046757600080fd5b50610470610c85565b005b34801561047e57600080fd5b506104876111bc565b60405161049491906127d1565b60405180910390f35b3480156104a957600080fd5b506104c460048036038101906104bf919061289b565b6111f9565b6040516104d191906128f6565b60405180910390f35b3480156104e657600080fd5b506104ef611217565b6040516104fc9190612920565b60405180910390f35b34801561051157600080fd5b5061051a61121d565b60405161052791906128f6565b60405180910390f35b34801561053c57600080fd5b5061055760048036038101906105529190612b0d565b611230565b005b34801561056557600080fd5b50610580600480360381019061057b9190612bad565b61135a565b60405161058d9190612920565b60405180910390f35b3480156105a257600080fd5b506105bd60048036038101906105b89190612bed565b6113e1565b005b60606040518060400160405280600881526020017f4e696e6a61436174000000000000000000000000000000000000000000000000815250905090565b600061061061060961144c565b8484611454565b6001905092915050565b60145481565b60006009600a6106309190612d7c565b633b9aca0061063f9190612dc7565b905090565b600061065184848461161d565b6107128461065d61144c565b61070d8560405180606001604052806028815260200161394260289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006106c361144c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122079092919063ffffffff16565b611454565b600190509392505050565b60006009905090565b61072e61144c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107b290612e6d565b60405180910390fd5b60005b815181101561084c576000600460008484815181106107e0576107df612e8d565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061084490612ebc565b9150506107be565b5050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108e761144c565b73ffffffffffffffffffffffffffffffffffffffff161461090757600080fd5b600061091230610956565b90506000811115610927576109268161226b565b5b6000479050600081111561093f5761093e816124e4565b5b5050565b601060009054906101000a900460ff1681565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6109a761144c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a2b90612e6d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b601060019054906101000a900460ff1681565b610b0d61144c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b9190612e6d565b60405180910390fd5b6009600a610ba89190612d7c565b633b9aca00610bb79190612dc7565b6011819055506009600a610bcb9190612d7c565b633b9aca00610bda9190612dc7565b6012819055506000600660006101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610c2a9190612d7c565b633b9aca00610c399190612dc7565b604051610c469190612920565b60405180910390a1565b60115481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60125481565b610c8d61144c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1190612e6d565b60405180910390fd5b601660149054906101000a900460ff1615610d6a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6190612f50565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610e0830601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610df49190612d7c565b633b9aca00610e039190612dc7565b611454565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e75573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e999190612f85565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f22573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f469190612f85565b6040518363ffffffff1660e01b8152600401610f63929190612fb2565b6020604051808303816000875af1158015610f82573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fa69190612f85565b601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061102f30610956565b60008061103a610c56565b426040518863ffffffff1660e01b815260040161105c96959493929190613020565b60606040518083038185885af115801561107a573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061109f9190613096565b505050601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016111419291906130e9565b6020604051808303816000875af1158015611160573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611184919061313e565b5060016016806101000a81548160ff0219169083151502179055506001601660146101000a81548160ff021916908315150217905550565b60606040518060400160405280600581526020017f4e494e4a41000000000000000000000000000000000000000000000000000000815250905090565b600061120d61120661144c565b848461161d565b6001905092915050565b60135481565b600660009054906101000a900460ff1681565b61123861144c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112bc90612e6d565b60405180910390fd5b60005b8151811015611356576001600460008484815181106112ea576112e9612e8d565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061134e90612ebc565b9150506112c8565b5050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661142261144c565b73ffffffffffffffffffffffffffffffffffffffff161461144257600080fd5b80600a8190555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036114c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ba906131dd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611532576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115299061326f565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516116109190612920565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361168c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168390613301565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036116fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116f290613393565b60405180910390fd5b6000811161173e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173590613425565b60405180910390fd5b6000611748610c56565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156117b65750611786610c56565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611f4a57600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561185f5750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61186857600080fd5b6118a46064611896600b54600e541161188357600754611887565b6009545b8561255090919063ffffffff16565b6125ca90919063ffffffff16565b9050600660009054906101000a900460ff1615611a3357601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156119675750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611a325743600560003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054106119ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119e4906134dd565b60405180910390fd5b43600560003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611a9c5750601060009054906101000a900460ff165b8015611af25750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611bda5742600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410611b78576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b6f90613549565b60405180910390fd5b601060019054906101000a900460ff1660ff1642611b969190613569565b600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611c855750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611cdb5750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611d9657601154821115611d25576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d1c9061360b565b60405180910390fd5b60125482611d3285610956565b611d3c9190613569565b1115611d7d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d7490613677565b60405180910390fd5b600e6000815480929190611d9090612ebc565b91905055505b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611e1f57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611e6357611e606064611e52600c54600e5411611e3f57600854611e43565b600a545b8561255090919063ffffffff16565b6125ca90919063ffffffff16565b90505b6000611e6e30610956565b9050601660159054906101000a900460ff16158015611eda5750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611ef0575060168054906101000a900460ff165b8015611efd575060135481115b8015611f0c5750600d54600e54115b15611f4857611f2e611f2984611f2484601454612614565b612614565b61226b565b60004790506000811115611f4657611f45476124e4565b5b505b505b600081111561204e57611fa581600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461262d90919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516120459190612920565b60405180910390a35b6120a082600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461268b90919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506121476120f9828461268b90919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461262d90919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6121ec848661268b90919063ffffffff16565b6040516121f99190612920565b60405180910390a350505050565b600083831115829061224f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161224691906127d1565b60405180910390fd5b506000838561225e9190613697565b9050809150509392505050565b6001601660156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156122a3576122a26129ca565b5b6040519080825280602002602001820160405280156122d15781602001602082028036833780820191505090505b50905030816000815181106122e9576122e8612e8d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612390573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123b49190612f85565b816001815181106123c8576123c7612e8d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061242f30601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611454565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612493959493929190613789565b600060405180830381600087803b1580156124ad57600080fd5b505af11580156124c1573d6000803e3d6000fd5b50505050506000601660156101000a81548160ff02191690831515021790555050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561254c573d6000803e3d6000fd5b5050565b600080830361256257600090506125c4565b600082846125709190612dc7565b905082848261257f9190613812565b146125bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125b6906138b5565b60405180910390fd5b809150505b92915050565b600061260c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506126d5565b905092915050565b60008183116126235782612625565b815b905092915050565b600080828461263c9190613569565b905083811015612681576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161267890613921565b60405180910390fd5b8091505092915050565b60006126cd83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612207565b905092915050565b6000808311829061271c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161271391906127d1565b60405180910390fd5b506000838561272b9190613812565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612772578082015181840152602081019050612757565b83811115612781576000848401525b50505050565b6000601f19601f8301169050919050565b60006127a382612738565b6127ad8185612743565b93506127bd818560208601612754565b6127c681612787565b840191505092915050565b600060208201905081810360008301526127eb8184612798565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061283282612807565b9050919050565b61284281612827565b811461284d57600080fd5b50565b60008135905061285f81612839565b92915050565b6000819050919050565b61287881612865565b811461288357600080fd5b50565b6000813590506128958161286f565b92915050565b600080604083850312156128b2576128b16127fd565b5b60006128c085828601612850565b92505060206128d185828601612886565b9150509250929050565b60008115159050919050565b6128f0816128db565b82525050565b600060208201905061290b60008301846128e7565b92915050565b61291a81612865565b82525050565b60006020820190506129356000830184612911565b92915050565b600080600060608486031215612954576129536127fd565b5b600061296286828701612850565b935050602061297386828701612850565b925050604061298486828701612886565b9150509250925092565b600060ff82169050919050565b6129a48161298e565b82525050565b60006020820190506129bf600083018461299b565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612a0282612787565b810181811067ffffffffffffffff82111715612a2157612a206129ca565b5b80604052505050565b6000612a346127f3565b9050612a4082826129f9565b919050565b600067ffffffffffffffff821115612a6057612a5f6129ca565b5b602082029050602081019050919050565b600080fd5b6000612a89612a8484612a45565b612a2a565b90508083825260208201905060208402830185811115612aac57612aab612a71565b5b835b81811015612ad55780612ac18882612850565b845260208401935050602081019050612aae565b5050509392505050565b600082601f830112612af457612af36129c5565b5b8135612b04848260208601612a76565b91505092915050565b600060208284031215612b2357612b226127fd565b5b600082013567ffffffffffffffff811115612b4157612b40612802565b5b612b4d84828501612adf565b91505092915050565b600060208284031215612b6c57612b6b6127fd565b5b6000612b7a84828501612850565b91505092915050565b612b8c81612827565b82525050565b6000602082019050612ba76000830184612b83565b92915050565b60008060408385031215612bc457612bc36127fd565b5b6000612bd285828601612850565b9250506020612be385828601612850565b9150509250929050565b600060208284031215612c0357612c026127fd565b5b6000612c1184828501612886565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115612ca057808604811115612c7c57612c7b612c1a565b5b6001851615612c8b5780820291505b8081029050612c9985612c49565b9450612c60565b94509492505050565b600082612cb95760019050612d75565b81612cc75760009050612d75565b8160018114612cdd5760028114612ce757612d16565b6001915050612d75565b60ff841115612cf957612cf8612c1a565b5b8360020a915084821115612d1057612d0f612c1a565b5b50612d75565b5060208310610133831016604e8410600b8410161715612d4b5782820a905083811115612d4657612d45612c1a565b5b612d75565b612d588484846001612c56565b92509050818404811115612d6f57612d6e612c1a565b5b81810290505b9392505050565b6000612d8782612865565b9150612d928361298e565b9250612dbf7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612ca9565b905092915050565b6000612dd282612865565b9150612ddd83612865565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612e1657612e15612c1a565b5b828202905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612e57602083612743565b9150612e6282612e21565b602082019050919050565b60006020820190508181036000830152612e8681612e4a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000612ec782612865565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612ef957612ef8612c1a565b5b600182019050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000612f3a601783612743565b9150612f4582612f04565b602082019050919050565b60006020820190508181036000830152612f6981612f2d565b9050919050565b600081519050612f7f81612839565b92915050565b600060208284031215612f9b57612f9a6127fd565b5b6000612fa984828501612f70565b91505092915050565b6000604082019050612fc76000830185612b83565b612fd46020830184612b83565b9392505050565b6000819050919050565b6000819050919050565b600061300a61300561300084612fdb565b612fe5565b612865565b9050919050565b61301a81612fef565b82525050565b600060c0820190506130356000830189612b83565b6130426020830188612911565b61304f6040830187613011565b61305c6060830186613011565b6130696080830185612b83565b61307660a0830184612911565b979650505050505050565b6000815190506130908161286f565b92915050565b6000806000606084860312156130af576130ae6127fd565b5b60006130bd86828701613081565b93505060206130ce86828701613081565b92505060406130df86828701613081565b9150509250925092565b60006040820190506130fe6000830185612b83565b61310b6020830184612911565b9392505050565b61311b816128db565b811461312657600080fd5b50565b60008151905061313881613112565b92915050565b600060208284031215613154576131536127fd565b5b600061316284828501613129565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006131c7602483612743565b91506131d28261316b565b604082019050919050565b600060208201905081810360008301526131f6816131ba565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613259602283612743565b9150613264826131fd565b604082019050919050565b600060208201905081810360008301526132888161324c565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006132eb602583612743565b91506132f68261328f565b604082019050919050565b6000602082019050818103600083015261331a816132de565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061337d602383612743565b915061338882613321565b604082019050919050565b600060208201905081810360008301526133ac81613370565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061340f602983612743565b915061341a826133b3565b604082019050919050565b6000602082019050818103600083015261343e81613402565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60008201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b60006134c7604983612743565b91506134d282613445565b606082019050919050565b600060208201905081810360008301526134f6816134ba565b9050919050565b7f62757920436f6f6c646f776e2065786973747300000000000000000000000000600082015250565b6000613533601383612743565b915061353e826134fd565b602082019050919050565b6000602082019050818103600083015261356281613526565b9050919050565b600061357482612865565b915061357f83612865565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156135b4576135b3612c1a565b5b828201905092915050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b60006135f5601983612743565b9150613600826135bf565b602082019050919050565b60006020820190508181036000830152613624816135e8565b9050919050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b6000613661601a83612743565b915061366c8261362b565b602082019050919050565b6000602082019050818103600083015261369081613654565b9050919050565b60006136a282612865565b91506136ad83612865565b9250828210156136c0576136bf612c1a565b5b828203905092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61370081612827565b82525050565b600061371283836136f7565b60208301905092915050565b6000602082019050919050565b6000613736826136cb565b61374081856136d6565b935061374b836136e7565b8060005b8381101561377c5781516137638882613706565b975061376e8361371e565b92505060018101905061374f565b5085935050505092915050565b600060a08201905061379e6000830188612911565b6137ab6020830187613011565b81810360408301526137bd818661372b565b90506137cc6060830185612b83565b6137d96080830184612911565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061381d82612865565b915061382883612865565b925082613838576138376137e3565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061389f602183612743565b91506138aa82613843565b604082019050919050565b600060208201905081810360008301526138ce81613892565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600061390b601b83612743565b9150613916826138d5565b602082019050919050565b6000602082019050818103600083015261393a816138fe565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212200e786c5555869c4bb891ba53c019c8a6bd6b43ebee5aed9567794711002faee064736f6c634300080e0033

Deployed Bytecode

0x60806040526004361061016a5760003560e01c8063722b62ad116100d157806395d89b411161008a578063c876d0b911610064578063c876d0b914610505578063d34628cc14610530578063dd62ed3e14610559578063ef9858941461059657610171565b806395d89b4114610472578063a9059cbb1461049d578063bf474bed146104da57610171565b8063722b62ad14610398578063751039fc146103c35780637d1db4a5146103da5780638da5cb5b146104055780638f9a55c014610430578063951af5ef1461045b57610171565b806331c2d8471161012357806331c2d8471461029c5780633bbac579146102c557806351bc3c8514610302578063617fe0ed1461031957806370a0823114610344578063715018a61461038157610171565b806306fdde0314610176578063095ea7b3146101a15780630faee56f146101de57806318160ddd1461020957806323b872dd14610234578063313ce5671461027157610171565b3661017157005b600080fd5b34801561018257600080fd5b5061018b6105bf565b60405161019891906127d1565b60405180910390f35b3480156101ad57600080fd5b506101c860048036038101906101c3919061289b565b6105fc565b6040516101d591906128f6565b60405180910390f35b3480156101ea57600080fd5b506101f361061a565b6040516102009190612920565b60405180910390f35b34801561021557600080fd5b5061021e610620565b60405161022b9190612920565b60405180910390f35b34801561024057600080fd5b5061025b6004803603810190610256919061293b565b610644565b60405161026891906128f6565b60405180910390f35b34801561027d57600080fd5b5061028661071d565b60405161029391906129aa565b60405180910390f35b3480156102a857600080fd5b506102c360048036038101906102be9190612b0d565b610726565b005b3480156102d157600080fd5b506102ec60048036038101906102e79190612b56565b610850565b6040516102f991906128f6565b60405180910390f35b34801561030e57600080fd5b506103176108a6565b005b34801561032557600080fd5b5061032e610943565b60405161033b91906128f6565b60405180910390f35b34801561035057600080fd5b5061036b60048036038101906103669190612b56565b610956565b6040516103789190612920565b60405180910390f35b34801561038d57600080fd5b5061039661099f565b005b3480156103a457600080fd5b506103ad610af2565b6040516103ba91906129aa565b60405180910390f35b3480156103cf57600080fd5b506103d8610b05565b005b3480156103e657600080fd5b506103ef610c50565b6040516103fc9190612920565b60405180910390f35b34801561041157600080fd5b5061041a610c56565b6040516104279190612b92565b60405180910390f35b34801561043c57600080fd5b50610445610c7f565b6040516104529190612920565b60405180910390f35b34801561046757600080fd5b50610470610c85565b005b34801561047e57600080fd5b506104876111bc565b60405161049491906127d1565b60405180910390f35b3480156104a957600080fd5b506104c460048036038101906104bf919061289b565b6111f9565b6040516104d191906128f6565b60405180910390f35b3480156104e657600080fd5b506104ef611217565b6040516104fc9190612920565b60405180910390f35b34801561051157600080fd5b5061051a61121d565b60405161052791906128f6565b60405180910390f35b34801561053c57600080fd5b5061055760048036038101906105529190612b0d565b611230565b005b34801561056557600080fd5b50610580600480360381019061057b9190612bad565b61135a565b60405161058d9190612920565b60405180910390f35b3480156105a257600080fd5b506105bd60048036038101906105b89190612bed565b6113e1565b005b60606040518060400160405280600881526020017f4e696e6a61436174000000000000000000000000000000000000000000000000815250905090565b600061061061060961144c565b8484611454565b6001905092915050565b60145481565b60006009600a6106309190612d7c565b633b9aca0061063f9190612dc7565b905090565b600061065184848461161d565b6107128461065d61144c565b61070d8560405180606001604052806028815260200161394260289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006106c361144c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122079092919063ffffffff16565b611454565b600190509392505050565b60006009905090565b61072e61144c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107b290612e6d565b60405180910390fd5b60005b815181101561084c576000600460008484815181106107e0576107df612e8d565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061084490612ebc565b9150506107be565b5050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108e761144c565b73ffffffffffffffffffffffffffffffffffffffff161461090757600080fd5b600061091230610956565b90506000811115610927576109268161226b565b5b6000479050600081111561093f5761093e816124e4565b5b5050565b601060009054906101000a900460ff1681565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6109a761144c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a2b90612e6d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b601060019054906101000a900460ff1681565b610b0d61144c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b9190612e6d565b60405180910390fd5b6009600a610ba89190612d7c565b633b9aca00610bb79190612dc7565b6011819055506009600a610bcb9190612d7c565b633b9aca00610bda9190612dc7565b6012819055506000600660006101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610c2a9190612d7c565b633b9aca00610c399190612dc7565b604051610c469190612920565b60405180910390a1565b60115481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60125481565b610c8d61144c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1190612e6d565b60405180910390fd5b601660149054906101000a900460ff1615610d6a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6190612f50565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610e0830601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610df49190612d7c565b633b9aca00610e039190612dc7565b611454565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e75573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e999190612f85565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f22573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f469190612f85565b6040518363ffffffff1660e01b8152600401610f63929190612fb2565b6020604051808303816000875af1158015610f82573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fa69190612f85565b601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061102f30610956565b60008061103a610c56565b426040518863ffffffff1660e01b815260040161105c96959493929190613020565b60606040518083038185885af115801561107a573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061109f9190613096565b505050601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016111419291906130e9565b6020604051808303816000875af1158015611160573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611184919061313e565b5060016016806101000a81548160ff0219169083151502179055506001601660146101000a81548160ff021916908315150217905550565b60606040518060400160405280600581526020017f4e494e4a41000000000000000000000000000000000000000000000000000000815250905090565b600061120d61120661144c565b848461161d565b6001905092915050565b60135481565b600660009054906101000a900460ff1681565b61123861144c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112bc90612e6d565b60405180910390fd5b60005b8151811015611356576001600460008484815181106112ea576112e9612e8d565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061134e90612ebc565b9150506112c8565b5050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661142261144c565b73ffffffffffffffffffffffffffffffffffffffff161461144257600080fd5b80600a8190555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036114c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ba906131dd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611532576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115299061326f565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516116109190612920565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361168c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168390613301565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036116fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116f290613393565b60405180910390fd5b6000811161173e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173590613425565b60405180910390fd5b6000611748610c56565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156117b65750611786610c56565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611f4a57600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561185f5750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61186857600080fd5b6118a46064611896600b54600e541161188357600754611887565b6009545b8561255090919063ffffffff16565b6125ca90919063ffffffff16565b9050600660009054906101000a900460ff1615611a3357601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156119675750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611a325743600560003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054106119ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119e4906134dd565b60405180910390fd5b43600560003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611a9c5750601060009054906101000a900460ff165b8015611af25750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611bda5742600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410611b78576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b6f90613549565b60405180910390fd5b601060019054906101000a900460ff1660ff1642611b969190613569565b600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611c855750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611cdb5750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611d9657601154821115611d25576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d1c9061360b565b60405180910390fd5b60125482611d3285610956565b611d3c9190613569565b1115611d7d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d7490613677565b60405180910390fd5b600e6000815480929190611d9090612ebc565b91905055505b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611e1f57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611e6357611e606064611e52600c54600e5411611e3f57600854611e43565b600a545b8561255090919063ffffffff16565b6125ca90919063ffffffff16565b90505b6000611e6e30610956565b9050601660159054906101000a900460ff16158015611eda5750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611ef0575060168054906101000a900460ff165b8015611efd575060135481115b8015611f0c5750600d54600e54115b15611f4857611f2e611f2984611f2484601454612614565b612614565b61226b565b60004790506000811115611f4657611f45476124e4565b5b505b505b600081111561204e57611fa581600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461262d90919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516120459190612920565b60405180910390a35b6120a082600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461268b90919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506121476120f9828461268b90919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461262d90919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6121ec848661268b90919063ffffffff16565b6040516121f99190612920565b60405180910390a350505050565b600083831115829061224f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161224691906127d1565b60405180910390fd5b506000838561225e9190613697565b9050809150509392505050565b6001601660156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156122a3576122a26129ca565b5b6040519080825280602002602001820160405280156122d15781602001602082028036833780820191505090505b50905030816000815181106122e9576122e8612e8d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612390573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123b49190612f85565b816001815181106123c8576123c7612e8d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061242f30601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611454565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612493959493929190613789565b600060405180830381600087803b1580156124ad57600080fd5b505af11580156124c1573d6000803e3d6000fd5b50505050506000601660156101000a81548160ff02191690831515021790555050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561254c573d6000803e3d6000fd5b5050565b600080830361256257600090506125c4565b600082846125709190612dc7565b905082848261257f9190613812565b146125bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125b6906138b5565b60405180910390fd5b809150505b92915050565b600061260c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506126d5565b905092915050565b60008183116126235782612625565b815b905092915050565b600080828461263c9190613569565b905083811015612681576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161267890613921565b60405180910390fd5b8091505092915050565b60006126cd83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612207565b905092915050565b6000808311829061271c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161271391906127d1565b60405180910390fd5b506000838561272b9190613812565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612772578082015181840152602081019050612757565b83811115612781576000848401525b50505050565b6000601f19601f8301169050919050565b60006127a382612738565b6127ad8185612743565b93506127bd818560208601612754565b6127c681612787565b840191505092915050565b600060208201905081810360008301526127eb8184612798565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061283282612807565b9050919050565b61284281612827565b811461284d57600080fd5b50565b60008135905061285f81612839565b92915050565b6000819050919050565b61287881612865565b811461288357600080fd5b50565b6000813590506128958161286f565b92915050565b600080604083850312156128b2576128b16127fd565b5b60006128c085828601612850565b92505060206128d185828601612886565b9150509250929050565b60008115159050919050565b6128f0816128db565b82525050565b600060208201905061290b60008301846128e7565b92915050565b61291a81612865565b82525050565b60006020820190506129356000830184612911565b92915050565b600080600060608486031215612954576129536127fd565b5b600061296286828701612850565b935050602061297386828701612850565b925050604061298486828701612886565b9150509250925092565b600060ff82169050919050565b6129a48161298e565b82525050565b60006020820190506129bf600083018461299b565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612a0282612787565b810181811067ffffffffffffffff82111715612a2157612a206129ca565b5b80604052505050565b6000612a346127f3565b9050612a4082826129f9565b919050565b600067ffffffffffffffff821115612a6057612a5f6129ca565b5b602082029050602081019050919050565b600080fd5b6000612a89612a8484612a45565b612a2a565b90508083825260208201905060208402830185811115612aac57612aab612a71565b5b835b81811015612ad55780612ac18882612850565b845260208401935050602081019050612aae565b5050509392505050565b600082601f830112612af457612af36129c5565b5b8135612b04848260208601612a76565b91505092915050565b600060208284031215612b2357612b226127fd565b5b600082013567ffffffffffffffff811115612b4157612b40612802565b5b612b4d84828501612adf565b91505092915050565b600060208284031215612b6c57612b6b6127fd565b5b6000612b7a84828501612850565b91505092915050565b612b8c81612827565b82525050565b6000602082019050612ba76000830184612b83565b92915050565b60008060408385031215612bc457612bc36127fd565b5b6000612bd285828601612850565b9250506020612be385828601612850565b9150509250929050565b600060208284031215612c0357612c026127fd565b5b6000612c1184828501612886565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115612ca057808604811115612c7c57612c7b612c1a565b5b6001851615612c8b5780820291505b8081029050612c9985612c49565b9450612c60565b94509492505050565b600082612cb95760019050612d75565b81612cc75760009050612d75565b8160018114612cdd5760028114612ce757612d16565b6001915050612d75565b60ff841115612cf957612cf8612c1a565b5b8360020a915084821115612d1057612d0f612c1a565b5b50612d75565b5060208310610133831016604e8410600b8410161715612d4b5782820a905083811115612d4657612d45612c1a565b5b612d75565b612d588484846001612c56565b92509050818404811115612d6f57612d6e612c1a565b5b81810290505b9392505050565b6000612d8782612865565b9150612d928361298e565b9250612dbf7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612ca9565b905092915050565b6000612dd282612865565b9150612ddd83612865565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612e1657612e15612c1a565b5b828202905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612e57602083612743565b9150612e6282612e21565b602082019050919050565b60006020820190508181036000830152612e8681612e4a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000612ec782612865565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612ef957612ef8612c1a565b5b600182019050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000612f3a601783612743565b9150612f4582612f04565b602082019050919050565b60006020820190508181036000830152612f6981612f2d565b9050919050565b600081519050612f7f81612839565b92915050565b600060208284031215612f9b57612f9a6127fd565b5b6000612fa984828501612f70565b91505092915050565b6000604082019050612fc76000830185612b83565b612fd46020830184612b83565b9392505050565b6000819050919050565b6000819050919050565b600061300a61300561300084612fdb565b612fe5565b612865565b9050919050565b61301a81612fef565b82525050565b600060c0820190506130356000830189612b83565b6130426020830188612911565b61304f6040830187613011565b61305c6060830186613011565b6130696080830185612b83565b61307660a0830184612911565b979650505050505050565b6000815190506130908161286f565b92915050565b6000806000606084860312156130af576130ae6127fd565b5b60006130bd86828701613081565b93505060206130ce86828701613081565b92505060406130df86828701613081565b9150509250925092565b60006040820190506130fe6000830185612b83565b61310b6020830184612911565b9392505050565b61311b816128db565b811461312657600080fd5b50565b60008151905061313881613112565b92915050565b600060208284031215613154576131536127fd565b5b600061316284828501613129565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006131c7602483612743565b91506131d28261316b565b604082019050919050565b600060208201905081810360008301526131f6816131ba565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613259602283612743565b9150613264826131fd565b604082019050919050565b600060208201905081810360008301526132888161324c565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006132eb602583612743565b91506132f68261328f565b604082019050919050565b6000602082019050818103600083015261331a816132de565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061337d602383612743565b915061338882613321565b604082019050919050565b600060208201905081810360008301526133ac81613370565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061340f602983612743565b915061341a826133b3565b604082019050919050565b6000602082019050818103600083015261343e81613402565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60008201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b60006134c7604983612743565b91506134d282613445565b606082019050919050565b600060208201905081810360008301526134f6816134ba565b9050919050565b7f62757920436f6f6c646f776e2065786973747300000000000000000000000000600082015250565b6000613533601383612743565b915061353e826134fd565b602082019050919050565b6000602082019050818103600083015261356281613526565b9050919050565b600061357482612865565b915061357f83612865565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156135b4576135b3612c1a565b5b828201905092915050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b60006135f5601983612743565b9150613600826135bf565b602082019050919050565b60006020820190508181036000830152613624816135e8565b9050919050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b6000613661601a83612743565b915061366c8261362b565b602082019050919050565b6000602082019050818103600083015261369081613654565b9050919050565b60006136a282612865565b91506136ad83612865565b9250828210156136c0576136bf612c1a565b5b828203905092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61370081612827565b82525050565b600061371283836136f7565b60208301905092915050565b6000602082019050919050565b6000613736826136cb565b61374081856136d6565b935061374b836136e7565b8060005b8381101561377c5781516137638882613706565b975061376e8361371e565b92505060018101905061374f565b5085935050505092915050565b600060a08201905061379e6000830188612911565b6137ab6020830187613011565b81810360408301526137bd818661372b565b90506137cc6060830185612b83565b6137d96080830184612911565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061381d82612865565b915061382883612865565b925082613838576138376137e3565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061389f602183612743565b91506138aa82613843565b604082019050919050565b600060208201905081810360008301526138ce81613892565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600061390b601b83612743565b9150613916826138d5565b602082019050919050565b6000602082019050818103600083015261393a816138fe565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212200e786c5555869c4bb891ba53c019c8a6bd6b43ebee5aed9567794711002faee064736f6c634300080e0033

Deployed Bytecode Sourcemap

3608:9264:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5684:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6517:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4959:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5961:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6686:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5870:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11397:162;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11567:83;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12521:348;;;;;;;;;;;;;:::i;:::-;;4459:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6064:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2689:148;;;;;;;;;;;;;:::i;:::-;;4503:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10921:196;;;;;;;;;;;;;:::i;:::-;;4770:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2475:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4831:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11658:666;;;;;;;;;;;;;:::i;:::-;;5775:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6191:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4894:58;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3995:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11225:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6366:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12338:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5684:83;5721:13;5754:5;;;;;;;;;;;;;;;;;5747:12;;5684:83;:::o;6517:161::-;6592:4;6609:39;6618:12;:10;:12::i;:::-;6632:7;6641:6;6609:8;:39::i;:::-;6666:4;6659:11;;6517:161;;;;:::o;4959:52::-;;;;:::o;5961:95::-;6014:7;4583:1;4639:2;:13;;;;:::i;:::-;4626:10;:26;;;;:::i;:::-;6034:14;;5961:95;:::o;6686:313::-;6784:4;6801:36;6811:6;6819:9;6830:6;6801:9;:36::i;:::-;6848:121;6857:6;6865:12;:10;:12::i;:::-;6879:89;6917:6;6879:89;;;;;;;;;;;;;;;;;:11;:19;6891:6;6879:19;;;;;;;;;;;;;;;:33;6899:12;:10;:12::i;:::-;6879:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6848:8;:121::i;:::-;6987:4;6980:11;;6686:313;;;;;:::o;5870:83::-;5911:5;4583:1;5929:16;;5870:83;:::o;11397:162::-;2612:12;:10;:12::i;:::-;2602:22;;:6;;;;;;;;;;:22;;;2594:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11470:6:::1;11465:87;11486:6;:13;11482:1;:17;11465:87;;;11537:5;11519:4;:15;11524:6;11531:1;11524:9;;;;;;;;:::i;:::-;;;;;;;;11519:15;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;11501:3;;;;;:::i;:::-;;;;11465:87;;;;11397:162:::0;:::o;11567:83::-;11614:4;11635;:7;11640:1;11635:7;;;;;;;;;;;;;;;;;;;;;;;;;11628:14;;11567:83;;;:::o;12521:348::-;12585:10;;;;;;;;;;;12571:24;;:12;:10;:12::i;:::-;:24;;;12563:33;;;;;;12607:20;12628:24;12646:4;12628:9;:24::i;:::-;12607:45;;12679:1;12666:12;:14;12663:73;;;12694:30;12711:12;12694:16;:30::i;:::-;12663:73;12746:18;12765:21;12746:40;;12811:1;12800:10;:12;12797:65;;;12826:24;12839:10;12826:12;:24::i;:::-;12797:65;12552:317;;12521:348::o;4459:37::-;;;;;;;;;;;;;:::o;6064:119::-;6130:7;6157:9;:18;6167:7;6157:18;;;;;;;;;;;;;;;;6150:25;;6064:119;;;:::o;2689:148::-;2612:12;:10;:12::i;:::-;2602:22;;:6;;;;;;;;;;:22;;;2594:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2796:1:::1;2759:40;;2780:6;::::0;::::1;;;;;;;;2759:40;;;;;;;;;;;;2827:1;2810:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2689:148::o:0;4503:38::-;;;;;;;;;;;;;:::o;10921:196::-;2612:12;:10;:12::i;:::-;2602:22;;:6;;;;;;;;;;:22;;;2594:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4583:1:::1;4639:2;:13;;;;:::i;:::-;4626:10;:26;;;;:::i;:::-;10974:12;:22;;;;4583:1;4639:2;:13;;;;:::i;:::-;4626:10;:26;;;;:::i;:::-;11007:14;:22;;;;11061:5;11040:20;;:26;;;;;;;;;;;;;;;;;;11082:27;4583:1;4639:2;:13;;;;:::i;:::-;4626:10;:26;;;;:::i;:::-;11082:27;;;;;;:::i;:::-;;;;;;;;10921:196::o:0;4770:54::-;;;;:::o;2475:79::-;2513:7;2540:6;;;;;;;;;;;2533:13;;2475:79;:::o;4831:56::-;;;;:::o;11658:666::-;2612:12;:10;:12::i;:::-;2602:22;;:6;;;;;;;;;;:22;;;2594:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11717:11:::1;;;;;;;;;;;11716:12;11708:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;11803:42;11766:15;;:80;;;;;;;;;;;;;;;;;;11857:58;11874:4;11889:15;;;;;;;;;;;4583:1;4639:2;:13;;;;:::i;:::-;4626:10;:26;;;;:::i;:::-;11857:8;:58::i;:::-;11960:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11942:55;;;12006:4;12013:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11942:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11926:13;;:110;;;;;;;;;;;;;;;;;;12047:15;;;;;;;;;;;:31;;;12086:21;12117:4;12123:24;12141:4;12123:9;:24::i;:::-;12148:1;12150::::0;12152:7:::1;:5;:7::i;:::-;12160:15;12047:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;12194:13;;;;;;;;;;;12187:29;;;12225:15;;;;;;;;;;;12243:14;12187:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12283:4;12269:11;::::0;:18:::1;;;;;;;;;;;;;;;;;;12312:4;12298:11;;:18;;;;;;;;;;;;;;;;;;11658:666::o:0;5775:87::-;5814:13;5847:7;;;;;;;;;;;;;;;;;5840:14;;5775:87;:::o;6191:167::-;6269:4;6286:42;6296:12;:10;:12::i;:::-;6310:9;6321:6;6286:9;:42::i;:::-;6346:4;6339:11;;6191:167;;;;:::o;4894:58::-;;;;:::o;3995:39::-;;;;;;;;;;;;;:::o;11225:164::-;2612:12;:10;:12::i;:::-;2602:22;;:6;;;;;;;;;;:22;;;2594:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11299:6:::1;11294:88;11315:5;:12;11311:1;:16;11294:88;;;11366:4;11349;:14;11354:5;11360:1;11354:8;;;;;;;;:::i;:::-;;;;;;;;11349:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;11329:3;;;;;:::i;:::-;;;;11294:88;;;;11225:164:::0;:::o;6366:143::-;6447:7;6474:11;:18;6486:5;6474:18;;;;;;;;;;;;;;;:27;6493:7;6474:27;;;;;;;;;;;;;;;;6467:34;;6366:143;;;;:::o;12338:138::-;12415:10;;;;;;;;;;;12401:24;;:12;:10;:12::i;:::-;:24;;;12393:33;;;;;;12461:7;12447:13;:21;;;;12338:138;:::o;230:98::-;283:7;310:10;303:17;;230:98;:::o;7007:335::-;7117:1;7100:19;;:5;:19;;;7092:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7198:1;7179:21;;:7;:21;;;7171:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7280:6;7250:11;:18;7262:5;7250:18;;;;;;;;;;;;;;;:27;7269:7;7250:27;;;;;;;;;;;;;;;:36;;;;7318:7;7302:32;;7311:5;7302:32;;;7327:6;7302:32;;;;;;:::i;:::-;;;;;;;;7007:335;;;:::o;7534:2780::-;7638:1;7622:18;;:4;:18;;;7614:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7715:1;7701:16;;:2;:16;;;7693:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7785:1;7776:6;:10;7768:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7843:17;7885:7;:5;:7::i;:::-;7877:15;;:4;:15;;;;:32;;;;;7902:7;:5;:7::i;:::-;7896:13;;:2;:13;;;;7877:32;7873:2085;;;7935:4;:10;7940:4;7935:10;;;;;;;;;;;;;;;;;;;;;;;;;7934:11;:24;;;;;7950:4;:8;7955:2;7950:8;;;;;;;;;;;;;;;;;;;;;;;;;7949:9;7934:24;7926:33;;;;;;7986:76;8058:3;7986:67;8008:15;;7998:9;;:25;7997:55;;8038:14;;7997:55;;;8025:12;;7997:55;7986:6;:10;;:67;;;;:::i;:::-;:71;;:76;;;;:::i;:::-;7974:88;;8083:20;;;;;;;;;;;8079:508;;;8144:15;;;;;;;;;;;8130:30;;:2;:30;;;;:62;;;;;8178:13;;;;;;;;;;;8164:28;;:2;:28;;;;8130:62;8126:444;;;8328:12;8255:28;:39;8284:9;8255:39;;;;;;;;;;;;;;;;:85;8219:250;;;;;;;;;;;;:::i;:::-;;;;;;;;;8536:12;8494:28;:39;8523:9;8494:39;;;;;;;;;;;;;;;:54;;;;8126:444;8079:508;8615:13;;;;;;;;;;;8607:21;;:4;:21;;;:43;;;;;8632:18;;;;;;;;;;;8607:43;:71;;;;;8656:18;:22;8675:2;8656:22;;;;;;;;;;;;;;;;;;;;;;;;;8654:24;8607:71;8603:318;;;8749:15;8729:13;:17;8743:2;8729:17;;;;;;;;;;;;;;;;:35;8699:128;;;;;;;;;;;;:::i;:::-;;;;;;;;;8884:21;;;;;;;;;;;8866:39;;:15;:39;;;;:::i;:::-;8846:13;:17;8860:2;8846:17;;;;;;;;;;;;;;;:59;;;;8603:318;8949:13;;;;;;;;;;;8941:21;;:4;:21;;;:55;;;;;8980:15;;;;;;;;;;;8966:30;;:2;:30;;;;8941:55;:83;;;;;9002:18;:22;9021:2;9002:22;;;;;;;;;;;;;;;;;;;;;;;;;9000:24;8941:83;8937:313;;;9064:12;;9054:6;:22;;9046:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;9159:14;;9149:6;9133:13;9143:2;9133:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;9125:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;9223:9;;:11;;;;;;;;;:::i;:::-;;;;;;8937:313;9275:13;;;;;;;;;;;9269:19;;:2;:19;;;:43;;;;;9307:4;9292:20;;:4;:20;;;;9269:43;9266:174;;;9345:79;9420:3;9345:70;9367:16;;9357:9;;:26;9356:58;;9399:15;;9356:58;;;9385:13;;9356:58;9345:6;:10;;:70;;;;:::i;:::-;:74;;:79;;;;:::i;:::-;9333:91;;9266:174;9456:28;9487:24;9505:4;9487:9;:24::i;:::-;9456:55;;9531:6;;;;;;;;;;;9530:7;:32;;;;;9549:13;;;;;;;;;;;9541:21;;:2;:21;;;9530:32;:47;;;;;9566:11;;;;;;;;;;9530:47;:89;;;;;9602:17;;9581:20;:38;9530:89;:121;;;;;9633:18;;9623:9;;:28;9530:121;9526:421;;;9672:67;9689:49;9693:6;9700:37;9704:20;9725:11;;9700:3;:37::i;:::-;9689:3;:49::i;:::-;9672:16;:67::i;:::-;9758:26;9787:21;9758:50;;9851:1;9830:18;:22;9827:105;;;9877:35;9890:21;9877:12;:35::i;:::-;9827:105;9653:294;9526:421;7911:2047;7873:2085;9983:1;9973:9;:11;9970:161;;;10023:39;10052:9;10023;:24;10041:4;10023:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;9998:9;:24;10016:4;9998:24;;;;;;;;;;;;;;;:64;;;;10103:4;10080:39;;10089:4;10080:39;;;10109:9;10080:39;;;;;;:::i;:::-;;;;;;;;9970:161;10157:27;10177:6;10157:9;:15;10167:4;10157:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;10141:9;:15;10151:4;10141:15;;;;;;;;;;;;;;;:43;;;;10209:40;10227:21;10238:9;10227:6;:10;;:21;;;;:::i;:::-;10209:9;:13;10219:2;10209:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;10195:9;:13;10205:2;10195:13;;;;;;;;;;;;;;;:54;;;;10280:2;10265:41;;10274:4;10265:41;;;10284:21;10295:9;10284:6;:10;;:21;;;;:::i;:::-;10265:41;;;;;;:::i;:::-;;;;;;;;7603:2711;7534:2780;;;:::o;1367:190::-;1453:7;1486:1;1481;:6;;1489:12;1473:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1513:9;1529:1;1525;:5;;;;:::i;:::-;1513:17;;1548:1;1541:8;;;1367:190;;;;;:::o;10430:483::-;5302:4;5293:6;;:13;;;;;;;;;;;;;;;;;;10508:21:::1;10546:1;10532:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10508:40;;10577:4;10559;10564:1;10559:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10603:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10593:4;10598:1;10593:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;10636:62;10653:4;10668:15;;;;;;;;;;;10686:11;10636:8;:62::i;:::-;10709:15;;;;;;;;;;;:66;;;10790:11;10816:1;10832:4;10859;10879:15;10709:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10497:416;5338:5:::0;5329:6;;:14;;;;;;;;;;;;;;;;;;10430:483;:::o;11125:92::-;11182:10;;;;;;;;;;;:19;;:27;11202:6;11182:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11125:92;:::o;1565:246::-;1623:7;1652:1;1647;:6;1643:47;;1677:1;1670:8;;;;1643:47;1700:9;1716:1;1712;:5;;;;:::i;:::-;1700:17;;1745:1;1740;1736;:5;;;;:::i;:::-;:10;1728:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1802:1;1795:8;;;1565:246;;;;;:::o;1819:132::-;1877:7;1904:39;1908:1;1911;1904:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1897:46;;1819:132;;;;:::o;10324:98::-;10381:7;10408:1;10406;:3;10405:9;;10413:1;10405:9;;;10411:1;10405:9;10398:16;;10324:98;;;;:::o;1036:179::-;1094:7;1114:9;1130:1;1126;:5;;;;:::i;:::-;1114:17;;1155:1;1150;:6;;1142:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1206:1;1199:8;;;1036:179;;;;:::o;1223:136::-;1281:7;1308:43;1312:1;1315;1308:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1301:50;;1223:136;;;;:::o;1959:189::-;2045:7;2077:1;2073;:5;2080:12;2065:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2104:9;2120:1;2116;:5;;;;:::i;:::-;2104:17;;2139:1;2132:8;;;1959: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:307::-;355:1;365:113;379:6;376:1;373:13;365:113;;;464:1;459:3;455:11;449:18;445:1;440:3;436:11;429:39;401:2;398:1;394:10;389:15;;365:113;;;496:6;493:1;490:13;487:101;;;576:1;567:6;562:3;558:16;551:27;487:101;336:258;287:307;;;:::o;600:102::-;641:6;692:2;688:7;683:2;676:5;672:14;668:28;658:38;;600:102;;;:::o;708:364::-;796:3;824:39;857:5;824:39;:::i;:::-;879:71;943:6;938:3;879:71;:::i;:::-;872:78;;959:52;1004:6;999:3;992:4;985:5;981:16;959:52;:::i;:::-;1036:29;1058:6;1036:29;:::i;:::-;1031:3;1027:39;1020:46;;800:272;708:364;;;;:::o;1078:313::-;1191:4;1229:2;1218:9;1214:18;1206:26;;1278:9;1272:4;1268:20;1264:1;1253:9;1249:17;1242:47;1306:78;1379:4;1370:6;1306:78;:::i;:::-;1298:86;;1078:313;;;;:::o;1397:75::-;1430:6;1463:2;1457:9;1447:19;;1397:75;:::o;1478:117::-;1587:1;1584;1577:12;1601:117;1710:1;1707;1700:12;1724:126;1761:7;1801:42;1794:5;1790:54;1779:65;;1724:126;;;:::o;1856:96::-;1893:7;1922:24;1940:5;1922:24;:::i;:::-;1911:35;;1856:96;;;:::o;1958:122::-;2031:24;2049:5;2031:24;:::i;:::-;2024:5;2021:35;2011:63;;2070:1;2067;2060:12;2011:63;1958:122;:::o;2086:139::-;2132:5;2170:6;2157:20;2148:29;;2186:33;2213:5;2186:33;:::i;:::-;2086:139;;;;:::o;2231:77::-;2268:7;2297:5;2286:16;;2231:77;;;:::o;2314:122::-;2387:24;2405:5;2387:24;:::i;:::-;2380:5;2377:35;2367:63;;2426:1;2423;2416:12;2367:63;2314:122;:::o;2442:139::-;2488:5;2526:6;2513:20;2504:29;;2542:33;2569:5;2542:33;:::i;:::-;2442:139;;;;:::o;2587:474::-;2655:6;2663;2712:2;2700:9;2691:7;2687:23;2683:32;2680:119;;;2718:79;;:::i;:::-;2680:119;2838:1;2863:53;2908:7;2899:6;2888:9;2884:22;2863:53;:::i;:::-;2853:63;;2809:117;2965:2;2991:53;3036:7;3027:6;3016:9;3012:22;2991:53;:::i;:::-;2981:63;;2936:118;2587:474;;;;;:::o;3067:90::-;3101:7;3144:5;3137:13;3130:21;3119:32;;3067:90;;;:::o;3163:109::-;3244:21;3259:5;3244:21;:::i;:::-;3239:3;3232:34;3163:109;;:::o;3278:210::-;3365:4;3403:2;3392:9;3388:18;3380:26;;3416:65;3478:1;3467:9;3463:17;3454:6;3416:65;:::i;:::-;3278:210;;;;:::o;3494:118::-;3581:24;3599:5;3581:24;:::i;:::-;3576:3;3569:37;3494:118;;:::o;3618:222::-;3711:4;3749:2;3738:9;3734:18;3726:26;;3762:71;3830:1;3819:9;3815:17;3806:6;3762:71;:::i;:::-;3618:222;;;;:::o;3846:619::-;3923:6;3931;3939;3988:2;3976:9;3967:7;3963:23;3959:32;3956:119;;;3994:79;;:::i;:::-;3956:119;4114:1;4139:53;4184:7;4175:6;4164:9;4160:22;4139:53;:::i;:::-;4129:63;;4085:117;4241:2;4267:53;4312:7;4303:6;4292:9;4288:22;4267:53;:::i;:::-;4257:63;;4212:118;4369:2;4395:53;4440:7;4431:6;4420:9;4416:22;4395:53;:::i;:::-;4385:63;;4340:118;3846:619;;;;;:::o;4471:86::-;4506:7;4546:4;4539:5;4535:16;4524:27;;4471:86;;;:::o;4563:112::-;4646:22;4662:5;4646:22;:::i;:::-;4641:3;4634:35;4563:112;;:::o;4681:214::-;4770:4;4808:2;4797:9;4793:18;4785:26;;4821:67;4885:1;4874:9;4870:17;4861:6;4821:67;:::i;:::-;4681:214;;;;:::o;4901:117::-;5010:1;5007;5000:12;5024:180;5072:77;5069:1;5062:88;5169:4;5166:1;5159:15;5193:4;5190:1;5183:15;5210:281;5293:27;5315:4;5293:27;:::i;:::-;5285:6;5281:40;5423:6;5411:10;5408:22;5387:18;5375:10;5372:34;5369:62;5366:88;;;5434:18;;:::i;:::-;5366:88;5474:10;5470:2;5463:22;5253:238;5210:281;;:::o;5497:129::-;5531:6;5558:20;;:::i;:::-;5548:30;;5587:33;5615:4;5607:6;5587:33;:::i;:::-;5497:129;;;:::o;5632:311::-;5709:4;5799:18;5791:6;5788:30;5785:56;;;5821:18;;:::i;:::-;5785:56;5871:4;5863:6;5859:17;5851:25;;5931:4;5925;5921:15;5913:23;;5632:311;;;:::o;5949:117::-;6058:1;6055;6048:12;6089:710;6185:5;6210:81;6226:64;6283:6;6226:64;:::i;:::-;6210:81;:::i;:::-;6201:90;;6311:5;6340:6;6333:5;6326:21;6374:4;6367:5;6363:16;6356:23;;6427:4;6419:6;6415:17;6407:6;6403:30;6456:3;6448:6;6445:15;6442:122;;;6475:79;;:::i;:::-;6442:122;6590:6;6573:220;6607:6;6602:3;6599:15;6573:220;;;6682:3;6711:37;6744:3;6732:10;6711:37;:::i;:::-;6706:3;6699:50;6778:4;6773:3;6769:14;6762:21;;6649:144;6633:4;6628:3;6624:14;6617:21;;6573:220;;;6577:21;6191:608;;6089:710;;;;;:::o;6822:370::-;6893:5;6942:3;6935:4;6927:6;6923:17;6919:27;6909:122;;6950:79;;:::i;:::-;6909:122;7067:6;7054:20;7092:94;7182:3;7174:6;7167:4;7159:6;7155:17;7092:94;:::i;:::-;7083:103;;6899:293;6822:370;;;;:::o;7198:539::-;7282:6;7331:2;7319:9;7310:7;7306:23;7302:32;7299:119;;;7337:79;;:::i;:::-;7299:119;7485:1;7474:9;7470:17;7457:31;7515:18;7507:6;7504:30;7501:117;;;7537:79;;:::i;:::-;7501:117;7642:78;7712:7;7703:6;7692:9;7688:22;7642:78;:::i;:::-;7632:88;;7428:302;7198:539;;;;:::o;7743:329::-;7802:6;7851:2;7839:9;7830:7;7826:23;7822:32;7819:119;;;7857:79;;:::i;:::-;7819:119;7977:1;8002:53;8047:7;8038:6;8027:9;8023:22;8002:53;:::i;:::-;7992:63;;7948:117;7743:329;;;;:::o;8078:118::-;8165:24;8183:5;8165:24;:::i;:::-;8160:3;8153:37;8078:118;;:::o;8202:222::-;8295:4;8333:2;8322:9;8318:18;8310:26;;8346:71;8414:1;8403:9;8399:17;8390:6;8346:71;:::i;:::-;8202:222;;;;:::o;8430:474::-;8498:6;8506;8555:2;8543:9;8534:7;8530:23;8526:32;8523:119;;;8561:79;;:::i;:::-;8523:119;8681:1;8706:53;8751:7;8742:6;8731:9;8727:22;8706:53;:::i;:::-;8696:63;;8652:117;8808:2;8834:53;8879:7;8870:6;8859:9;8855:22;8834:53;:::i;:::-;8824:63;;8779:118;8430:474;;;;;:::o;8910:329::-;8969:6;9018:2;9006:9;8997:7;8993:23;8989:32;8986:119;;;9024:79;;:::i;:::-;8986:119;9144:1;9169:53;9214:7;9205:6;9194:9;9190:22;9169:53;:::i;:::-;9159:63;;9115:117;8910:329;;;;:::o;9245:180::-;9293:77;9290:1;9283:88;9390:4;9387:1;9380:15;9414:4;9411:1;9404:15;9431:102;9473:8;9520:5;9517:1;9513:13;9492:34;;9431:102;;;:::o;9539:848::-;9600:5;9607:4;9631:6;9622:15;;9655:5;9646:14;;9669:712;9690:1;9680:8;9677:15;9669:712;;;9785:4;9780:3;9776:14;9770:4;9767:24;9764:50;;;9794:18;;:::i;:::-;9764:50;9844:1;9834:8;9830:16;9827:451;;;10259:4;10252:5;10248:16;10239:25;;9827:451;10309:4;10303;10299:15;10291:23;;10339:32;10362:8;10339:32;:::i;:::-;10327:44;;9669:712;;;9539:848;;;;;;;:::o;10393:1073::-;10447:5;10638:8;10628:40;;10659:1;10650:10;;10661:5;;10628:40;10687:4;10677:36;;10704:1;10695:10;;10706:5;;10677:36;10773:4;10821:1;10816:27;;;;10857:1;10852:191;;;;10766:277;;10816:27;10834:1;10825:10;;10836:5;;;10852:191;10897:3;10887:8;10884:17;10881:43;;;10904:18;;:::i;:::-;10881:43;10953:8;10950:1;10946:16;10937:25;;10988:3;10981:5;10978:14;10975:40;;;10995:18;;:::i;:::-;10975:40;11028:5;;;10766:277;;11152:2;11142:8;11139:16;11133:3;11127:4;11124:13;11120:36;11102:2;11092:8;11089:16;11084:2;11078:4;11075:12;11071:35;11055:111;11052:246;;;11208:8;11202:4;11198:19;11189:28;;11243:3;11236:5;11233:14;11230:40;;;11250:18;;:::i;:::-;11230:40;11283:5;;11052:246;11323:42;11361:3;11351:8;11345:4;11342:1;11323:42;:::i;:::-;11308:57;;;;11397:4;11392:3;11388:14;11381:5;11378:25;11375:51;;;11406:18;;:::i;:::-;11375:51;11455:4;11448:5;11444:16;11435:25;;10393:1073;;;;;;:::o;11472:281::-;11530:5;11554:23;11572:4;11554:23;:::i;:::-;11546:31;;11598:25;11614:8;11598:25;:::i;:::-;11586:37;;11642:104;11679:66;11669:8;11663:4;11642:104;:::i;:::-;11633:113;;11472:281;;;;:::o;11759:348::-;11799:7;11822:20;11840:1;11822:20;:::i;:::-;11817:25;;11856:20;11874:1;11856:20;:::i;:::-;11851:25;;12044:1;11976:66;11972:74;11969:1;11966:81;11961:1;11954:9;11947:17;11943:105;11940:131;;;12051:18;;:::i;:::-;11940:131;12099:1;12096;12092:9;12081:20;;11759:348;;;;:::o;12113:182::-;12253:34;12249:1;12241:6;12237:14;12230:58;12113:182;:::o;12301:366::-;12443:3;12464:67;12528:2;12523:3;12464:67;:::i;:::-;12457:74;;12540:93;12629:3;12540:93;:::i;:::-;12658:2;12653:3;12649:12;12642:19;;12301:366;;;:::o;12673:419::-;12839:4;12877:2;12866:9;12862:18;12854:26;;12926:9;12920:4;12916:20;12912:1;12901:9;12897:17;12890:47;12954:131;13080:4;12954:131;:::i;:::-;12946:139;;12673:419;;;:::o;13098:180::-;13146:77;13143:1;13136:88;13243:4;13240:1;13233:15;13267:4;13264:1;13257:15;13284:233;13323:3;13346:24;13364:5;13346:24;:::i;:::-;13337:33;;13392:66;13385:5;13382:77;13379:103;;13462:18;;:::i;:::-;13379:103;13509:1;13502:5;13498:13;13491:20;;13284:233;;;:::o;13523:173::-;13663:25;13659:1;13651:6;13647:14;13640:49;13523:173;:::o;13702:366::-;13844:3;13865:67;13929:2;13924:3;13865:67;:::i;:::-;13858:74;;13941:93;14030:3;13941:93;:::i;:::-;14059:2;14054:3;14050:12;14043:19;;13702:366;;;:::o;14074:419::-;14240:4;14278:2;14267:9;14263:18;14255:26;;14327:9;14321:4;14317:20;14313:1;14302:9;14298:17;14291:47;14355:131;14481:4;14355:131;:::i;:::-;14347:139;;14074:419;;;:::o;14499:143::-;14556:5;14587:6;14581:13;14572:22;;14603:33;14630:5;14603:33;:::i;:::-;14499:143;;;;:::o;14648:351::-;14718:6;14767:2;14755:9;14746:7;14742:23;14738:32;14735:119;;;14773:79;;:::i;:::-;14735:119;14893:1;14918:64;14974:7;14965:6;14954:9;14950:22;14918:64;:::i;:::-;14908:74;;14864:128;14648:351;;;;:::o;15005:332::-;15126:4;15164:2;15153:9;15149:18;15141:26;;15177:71;15245:1;15234:9;15230:17;15221:6;15177:71;:::i;:::-;15258:72;15326:2;15315:9;15311:18;15302:6;15258:72;:::i;:::-;15005:332;;;;;:::o;15343:85::-;15388:7;15417:5;15406:16;;15343:85;;;:::o;15434:60::-;15462:3;15483:5;15476:12;;15434:60;;;:::o;15500:158::-;15558:9;15591:61;15609:42;15618:32;15644:5;15618:32;:::i;:::-;15609:42;:::i;:::-;15591:61;:::i;:::-;15578:74;;15500:158;;;:::o;15664:147::-;15759:45;15798:5;15759:45;:::i;:::-;15754:3;15747:58;15664:147;;:::o;15817:807::-;16066:4;16104:3;16093:9;16089:19;16081:27;;16118:71;16186:1;16175:9;16171:17;16162:6;16118:71;:::i;:::-;16199:72;16267:2;16256:9;16252:18;16243:6;16199:72;:::i;:::-;16281:80;16357:2;16346:9;16342:18;16333:6;16281:80;:::i;:::-;16371;16447:2;16436:9;16432:18;16423:6;16371:80;:::i;:::-;16461:73;16529:3;16518:9;16514:19;16505:6;16461:73;:::i;:::-;16544;16612:3;16601:9;16597:19;16588:6;16544:73;:::i;:::-;15817:807;;;;;;;;;:::o;16630:143::-;16687:5;16718:6;16712:13;16703:22;;16734:33;16761:5;16734:33;:::i;:::-;16630:143;;;;:::o;16779:663::-;16867:6;16875;16883;16932:2;16920:9;16911:7;16907:23;16903:32;16900:119;;;16938:79;;:::i;:::-;16900:119;17058:1;17083:64;17139:7;17130:6;17119:9;17115:22;17083:64;:::i;:::-;17073:74;;17029:128;17196:2;17222:64;17278:7;17269:6;17258:9;17254:22;17222:64;:::i;:::-;17212:74;;17167:129;17335:2;17361:64;17417:7;17408:6;17397:9;17393:22;17361:64;:::i;:::-;17351:74;;17306:129;16779:663;;;;;:::o;17448:332::-;17569:4;17607:2;17596:9;17592:18;17584:26;;17620:71;17688:1;17677:9;17673:17;17664:6;17620:71;:::i;:::-;17701:72;17769:2;17758:9;17754:18;17745:6;17701:72;:::i;:::-;17448:332;;;;;:::o;17786:116::-;17856:21;17871:5;17856:21;:::i;:::-;17849:5;17846:32;17836:60;;17892:1;17889;17882:12;17836:60;17786:116;:::o;17908:137::-;17962:5;17993:6;17987:13;17978:22;;18009:30;18033:5;18009:30;:::i;:::-;17908:137;;;;:::o;18051:345::-;18118:6;18167:2;18155:9;18146:7;18142:23;18138:32;18135:119;;;18173:79;;:::i;:::-;18135:119;18293:1;18318:61;18371:7;18362:6;18351:9;18347:22;18318:61;:::i;:::-;18308:71;;18264:125;18051:345;;;;:::o;18402:223::-;18542:34;18538:1;18530:6;18526:14;18519:58;18611:6;18606:2;18598:6;18594:15;18587:31;18402:223;:::o;18631:366::-;18773:3;18794:67;18858:2;18853:3;18794:67;:::i;:::-;18787:74;;18870:93;18959:3;18870:93;:::i;:::-;18988:2;18983:3;18979:12;18972:19;;18631:366;;;:::o;19003:419::-;19169:4;19207:2;19196:9;19192:18;19184:26;;19256:9;19250:4;19246:20;19242:1;19231:9;19227:17;19220:47;19284:131;19410:4;19284:131;:::i;:::-;19276:139;;19003:419;;;:::o;19428:221::-;19568:34;19564:1;19556:6;19552:14;19545:58;19637:4;19632:2;19624:6;19620:15;19613:29;19428:221;:::o;19655:366::-;19797:3;19818:67;19882:2;19877:3;19818:67;:::i;:::-;19811:74;;19894:93;19983:3;19894:93;:::i;:::-;20012:2;20007:3;20003:12;19996:19;;19655:366;;;:::o;20027:419::-;20193:4;20231:2;20220:9;20216:18;20208:26;;20280:9;20274:4;20270:20;20266:1;20255:9;20251:17;20244:47;20308:131;20434:4;20308:131;:::i;:::-;20300:139;;20027:419;;;:::o;20452:224::-;20592:34;20588:1;20580:6;20576:14;20569:58;20661:7;20656:2;20648:6;20644:15;20637:32;20452:224;:::o;20682:366::-;20824:3;20845:67;20909:2;20904:3;20845:67;:::i;:::-;20838:74;;20921:93;21010:3;20921:93;:::i;:::-;21039:2;21034:3;21030:12;21023:19;;20682:366;;;:::o;21054:419::-;21220:4;21258:2;21247:9;21243:18;21235:26;;21307:9;21301:4;21297:20;21293:1;21282:9;21278:17;21271:47;21335:131;21461:4;21335:131;:::i;:::-;21327:139;;21054:419;;;:::o;21479:222::-;21619:34;21615:1;21607:6;21603:14;21596:58;21688:5;21683:2;21675:6;21671:15;21664:30;21479:222;:::o;21707:366::-;21849:3;21870:67;21934:2;21929:3;21870:67;:::i;:::-;21863:74;;21946:93;22035:3;21946:93;:::i;:::-;22064:2;22059:3;22055:12;22048:19;;21707:366;;;:::o;22079:419::-;22245:4;22283:2;22272:9;22268:18;22260:26;;22332:9;22326:4;22322:20;22318:1;22307:9;22303:17;22296:47;22360:131;22486:4;22360:131;:::i;:::-;22352:139;;22079:419;;;:::o;22504:228::-;22644:34;22640:1;22632:6;22628:14;22621:58;22713:11;22708:2;22700:6;22696:15;22689:36;22504:228;:::o;22738:366::-;22880:3;22901:67;22965:2;22960:3;22901:67;:::i;:::-;22894:74;;22977:93;23066:3;22977:93;:::i;:::-;23095:2;23090:3;23086:12;23079:19;;22738:366;;;:::o;23110:419::-;23276:4;23314:2;23303:9;23299:18;23291:26;;23363:9;23357:4;23353:20;23349:1;23338:9;23334:17;23327:47;23391:131;23517:4;23391:131;:::i;:::-;23383:139;;23110:419;;;:::o;23535:297::-;23675:34;23671:1;23663:6;23659:14;23652:58;23744:34;23739:2;23731:6;23727:15;23720:59;23813:11;23808:2;23800:6;23796:15;23789:36;23535:297;:::o;23838:366::-;23980:3;24001:67;24065:2;24060:3;24001:67;:::i;:::-;23994:74;;24077:93;24166:3;24077:93;:::i;:::-;24195:2;24190:3;24186:12;24179:19;;23838:366;;;:::o;24210:419::-;24376:4;24414:2;24403:9;24399:18;24391:26;;24463:9;24457:4;24453:20;24449:1;24438:9;24434:17;24427:47;24491:131;24617:4;24491:131;:::i;:::-;24483:139;;24210:419;;;:::o;24635:169::-;24775:21;24771:1;24763:6;24759:14;24752:45;24635:169;:::o;24810:366::-;24952:3;24973:67;25037:2;25032:3;24973:67;:::i;:::-;24966:74;;25049:93;25138:3;25049:93;:::i;:::-;25167:2;25162:3;25158:12;25151:19;;24810:366;;;:::o;25182:419::-;25348:4;25386:2;25375:9;25371:18;25363:26;;25435:9;25429:4;25425:20;25421:1;25410:9;25406:17;25399:47;25463:131;25589:4;25463:131;:::i;:::-;25455:139;;25182:419;;;:::o;25607:305::-;25647:3;25666:20;25684:1;25666:20;:::i;:::-;25661:25;;25700:20;25718:1;25700:20;:::i;:::-;25695:25;;25854:1;25786:66;25782:74;25779:1;25776:81;25773:107;;;25860:18;;:::i;:::-;25773:107;25904:1;25901;25897:9;25890:16;;25607:305;;;;:::o;25918:175::-;26058:27;26054:1;26046:6;26042:14;26035:51;25918:175;:::o;26099:366::-;26241:3;26262:67;26326:2;26321:3;26262:67;:::i;:::-;26255:74;;26338:93;26427:3;26338:93;:::i;:::-;26456:2;26451:3;26447:12;26440:19;;26099:366;;;:::o;26471:419::-;26637:4;26675:2;26664:9;26660:18;26652:26;;26724:9;26718:4;26714:20;26710:1;26699:9;26695:17;26688:47;26752:131;26878:4;26752:131;:::i;:::-;26744:139;;26471:419;;;:::o;26896:176::-;27036:28;27032:1;27024:6;27020:14;27013:52;26896:176;:::o;27078:366::-;27220:3;27241:67;27305:2;27300:3;27241:67;:::i;:::-;27234:74;;27317:93;27406:3;27317:93;:::i;:::-;27435:2;27430:3;27426:12;27419:19;;27078:366;;;:::o;27450:419::-;27616:4;27654:2;27643:9;27639:18;27631:26;;27703:9;27697:4;27693:20;27689:1;27678:9;27674:17;27667:47;27731:131;27857:4;27731:131;:::i;:::-;27723:139;;27450:419;;;:::o;27875:191::-;27915:4;27935:20;27953:1;27935:20;:::i;:::-;27930:25;;27969:20;27987:1;27969:20;:::i;:::-;27964:25;;28008:1;28005;28002:8;27999:34;;;28013:18;;:::i;:::-;27999:34;28058:1;28055;28051:9;28043:17;;27875:191;;;;:::o;28072:114::-;28139:6;28173:5;28167:12;28157:22;;28072:114;;;:::o;28192:184::-;28291:11;28325:6;28320:3;28313:19;28365:4;28360:3;28356:14;28341:29;;28192:184;;;;:::o;28382:132::-;28449:4;28472:3;28464:11;;28502:4;28497:3;28493:14;28485:22;;28382:132;;;:::o;28520:108::-;28597:24;28615:5;28597:24;:::i;:::-;28592:3;28585:37;28520:108;;:::o;28634:179::-;28703:10;28724:46;28766:3;28758:6;28724:46;:::i;:::-;28802:4;28797:3;28793:14;28779:28;;28634:179;;;;:::o;28819:113::-;28889:4;28921;28916:3;28912:14;28904:22;;28819:113;;;:::o;28968:732::-;29087:3;29116:54;29164:5;29116:54;:::i;:::-;29186:86;29265:6;29260:3;29186:86;:::i;:::-;29179:93;;29296:56;29346:5;29296:56;:::i;:::-;29375:7;29406:1;29391:284;29416:6;29413:1;29410:13;29391:284;;;29492:6;29486:13;29519:63;29578:3;29563:13;29519:63;:::i;:::-;29512:70;;29605:60;29658:6;29605:60;:::i;:::-;29595:70;;29451:224;29438:1;29435;29431:9;29426:14;;29391:284;;;29395:14;29691:3;29684:10;;29092:608;;;28968:732;;;;:::o;29706:831::-;29969:4;30007:3;29996:9;29992:19;29984:27;;30021:71;30089:1;30078:9;30074:17;30065:6;30021:71;:::i;:::-;30102:80;30178:2;30167:9;30163:18;30154:6;30102:80;:::i;:::-;30229:9;30223:4;30219:20;30214:2;30203:9;30199:18;30192:48;30257:108;30360:4;30351:6;30257:108;:::i;:::-;30249:116;;30375:72;30443:2;30432:9;30428:18;30419:6;30375:72;:::i;:::-;30457:73;30525:3;30514:9;30510:19;30501:6;30457:73;:::i;:::-;29706:831;;;;;;;;:::o;30543:180::-;30591:77;30588:1;30581:88;30688:4;30685:1;30678:15;30712:4;30709:1;30702:15;30729:185;30769:1;30786:20;30804:1;30786:20;:::i;:::-;30781:25;;30820:20;30838:1;30820:20;:::i;:::-;30815:25;;30859:1;30849:35;;30864:18;;:::i;:::-;30849:35;30906:1;30903;30899:9;30894:14;;30729:185;;;;:::o;30920:220::-;31060:34;31056:1;31048:6;31044:14;31037:58;31129:3;31124:2;31116:6;31112:15;31105:28;30920:220;:::o;31146:366::-;31288:3;31309:67;31373:2;31368:3;31309:67;:::i;:::-;31302:74;;31385:93;31474:3;31385:93;:::i;:::-;31503:2;31498:3;31494:12;31487:19;;31146:366;;;:::o;31518:419::-;31684:4;31722:2;31711:9;31707:18;31699:26;;31771:9;31765:4;31761:20;31757:1;31746:9;31742:17;31735:47;31799:131;31925:4;31799:131;:::i;:::-;31791:139;;31518:419;;;:::o;31943:177::-;32083:29;32079:1;32071:6;32067:14;32060:53;31943:177;:::o;32126:366::-;32268:3;32289:67;32353:2;32348:3;32289:67;:::i;:::-;32282:74;;32365:93;32454:3;32365:93;:::i;:::-;32483:2;32478:3;32474:12;32467:19;;32126:366;;;:::o;32498:419::-;32664:4;32702:2;32691:9;32687:18;32679:26;;32751:9;32745:4;32741:20;32737:1;32726:9;32722:17;32715:47;32779:131;32905:4;32779:131;:::i;:::-;32771:139;;32498:419;;;:::o

Swarm Source

ipfs://0e786c5555869c4bb891ba53c019c8a6bd6b43ebee5aed9567794711002faee0
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.