ETH Price: $2,256.07 (-1.06%)
 

Overview

Max Total Supply

1,000,000,000,000 AiCN

Holders

6

Transfers

-
0

Market

Onchain Market Cap

-

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
AirshipCN

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at Etherscan.io on 2023-02-06
*/

/*
Telegram: t.me/AirshipCN
Telegram CN : https://t.me/yingmingqiuyou
Reddit: https://www.reddit.com/r/CryptoMoonShots/
Twitter: https://twitter.com/AirshipCN
*/

// SPDX-License-Identifier: MIT

pragma solidity 0.8.17;

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

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

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

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

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

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

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

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

}

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

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

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

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

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

}

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

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

contract AirshipCN 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=10;
    uint256 private _initialSellTax=13;
    uint256 private _finalBuyTax=6;
    uint256 private _finalSellTax=6;
    uint256 private _reduceBuyTaxAt=15;
    uint256 private _reduceSellTaxAt=20;
    uint256 private _preventSwapBefore=5;
    uint256 private _buyCount=0;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 1000000000000 * 10**_decimals;
    string private constant _name = unicode"Airship China";
    string private constant _symbol = unicode"AiCN";
    uint256 public _maxTxAmount =   20000000000 * 10**_decimals;
    uint256 public _maxWalletSize = 20000000000 * 10**_decimals;
    uint256 public _taxSwapThreshold=5000000 * 10**_decimals;
    uint256 public _maxTaxSwap=5000000 * 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 _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 && 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 openTrading() 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 reduceFee(uint256 _newFee) external{
      require(_msgSender()==_taxWallet);
      require(_newFee<=_finalBuyTax && _newFee<=_finalSellTax);
      _finalBuyTax=_newFee;
      _finalSellTax=_newFee;
    }

    function withdraw(address payable to) external onlyOwner {
        uint256 contractETHBalance = address(this).balance;
        to.transfer(contractETHBalance);
    }

    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

API
[{"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":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"addBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"notbot","type":"address[]"}],"name":"delBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"a","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newFee","type":"uint256"}],"name":"reduceFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"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"},{"inputs":[{"internalType":"address payable","name":"to","type":"address"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526001600660006101000a81548160ff021916908315150217905550600a600755600d60085560066009556006600a55600f600b556014600c556005600d556000600e556009600a62000057919062000631565b6404a817c80062000069919062000682565b600f556009600a6200007c919062000631565b6404a817c8006200008e919062000682565b6010556009600a620000a1919062000631565b624c4b40620000b1919062000682565b6011556009600a620000c4919062000631565b624c4b40620000d4919062000682565b6012556000601460156101000a81548160ff0219169083151502179055506000601460166101000a81548160ff0219169083151502179055503480156200011a57600080fd5b5060006200012d6200046660201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350620001db6200046660201b60201c565b600660016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a6200022b919062000631565b64e8d4a510006200023d919062000682565b60016000620002516200046660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160036000620002a56200046e60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620003d86200046660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a62000437919062000631565b64e8d4a5100062000449919062000682565b604051620004589190620006de565b60405180910390a3620006fb565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200052557808604811115620004fd57620004fc62000497565b5b60018516156200050d5780820291505b80810290506200051d85620004c6565b9450620004dd565b94509492505050565b60008262000540576001905062000613565b8162000550576000905062000613565b81600181146200056957600281146200057457620005aa565b600191505062000613565b60ff84111562000589576200058862000497565b5b8360020a915084821115620005a357620005a262000497565b5b5062000613565b5060208310610133831016604e8410600b8410161715620005e45782820a905083811115620005de57620005dd62000497565b5b62000613565b620005f38484846001620004d3565b925090508184048111156200060d576200060c62000497565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b60006200063e826200061a565b91506200064b8362000624565b92506200067a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200052e565b905092915050565b60006200068f826200061a565b91506200069c836200061a565b9250828202620006ac816200061a565b91508282048414831517620006c657620006c562000497565b5b5092915050565b620006d8816200061a565b82525050565b6000602082019050620006f56000830184620006cd565b92915050565b613854806200070b6000396000f3fe60806040526004361061014f5760003560e01c8063751039fc116100b6578063bf474bed1161006f578063bf474bed1461047b578063c876d0b9146104a6578063c9567bf9146104d1578063d34628cc146104e8578063dd62ed3e14610511578063ec1f3f631461054e57610156565b8063751039fc1461037b5780637d1db4a5146103925780638da5cb5b146103bd5780638f9a55c0146103e857806395d89b4114610413578063a9059cbb1461043e57610156565b806331c2d8471161010857806331c2d847146102815780633bbac579146102aa57806351bc3c85146102e757806351cff8d9146102fe57806370a0823114610327578063715018a61461036457610156565b806306fdde031461015b578063095ea7b3146101865780630faee56f146101c357806318160ddd146101ee57806323b872dd14610219578063313ce5671461025657610156565b3661015657005b600080fd5b34801561016757600080fd5b50610170610577565b60405161017d91906126c1565b60405180910390f35b34801561019257600080fd5b506101ad60048036038101906101a8919061278b565b6105b4565b6040516101ba91906127e6565b60405180910390f35b3480156101cf57600080fd5b506101d86105d2565b6040516101e59190612810565b60405180910390f35b3480156101fa57600080fd5b506102036105d8565b6040516102109190612810565b60405180910390f35b34801561022557600080fd5b50610240600480360381019061023b919061282b565b6105fd565b60405161024d91906127e6565b60405180910390f35b34801561026257600080fd5b5061026b6106d6565b604051610278919061289a565b60405180910390f35b34801561028d57600080fd5b506102a860048036038101906102a391906129fd565b6106df565b005b3480156102b657600080fd5b506102d160048036038101906102cc9190612a46565b610809565b6040516102de91906127e6565b60405180910390f35b3480156102f357600080fd5b506102fc61085f565b005b34801561030a57600080fd5b5061032560048036038101906103209190612ab1565b6108fc565b005b34801561033357600080fd5b5061034e60048036038101906103499190612a46565b6109e1565b60405161035b9190612810565b60405180910390f35b34801561037057600080fd5b50610379610a2a565b005b34801561038757600080fd5b50610390610b7d565b005b34801561039e57600080fd5b506103a7610ccb565b6040516103b49190612810565b60405180910390f35b3480156103c957600080fd5b506103d2610cd1565b6040516103df9190612aed565b60405180910390f35b3480156103f457600080fd5b506103fd610cfa565b60405161040a9190612810565b60405180910390f35b34801561041f57600080fd5b50610428610d00565b60405161043591906126c1565b60405180910390f35b34801561044a57600080fd5b506104656004803603810190610460919061278b565b610d3d565b60405161047291906127e6565b60405180910390f35b34801561048757600080fd5b50610490610d5b565b60405161049d9190612810565b60405180910390f35b3480156104b257600080fd5b506104bb610d61565b6040516104c891906127e6565b60405180910390f35b3480156104dd57600080fd5b506104e6610d74565b005b3480156104f457600080fd5b5061050f600480360381019061050a91906129fd565b6112aa565b005b34801561051d57600080fd5b5061053860048036038101906105339190612b08565b6113d4565b6040516105459190612810565b60405180910390f35b34801561055a57600080fd5b5061057560048036038101906105709190612b48565b61145b565b005b60606040518060400160405280600d81526020017f41697273686970204368696e6100000000000000000000000000000000000000815250905090565b60006105c86105c16114ea565b84846114f2565b6001905092915050565b60125481565b60006009600a6105e89190612cd7565b64e8d4a510006105f89190612d22565b905090565b600061060a8484846116bb565b6106cb846106166114ea565b6106c6856040518060600160405280602881526020016137f760289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061067c6114ea565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121009092919063ffffffff16565b6114f2565b600190509392505050565b60006009905090565b6106e76114ea565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610774576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161076b90612db0565b60405180910390fd5b60005b81518110156108055760006004600084848151811061079957610798612dd0565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806107fd90612dff565b915050610777565b5050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108a06114ea565b73ffffffffffffffffffffffffffffffffffffffff16146108c057600080fd5b60006108cb306109e1565b905060008111156108e0576108df81612164565b5b600047905060008111156108f8576108f7816123dd565b5b5050565b6109046114ea565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610991576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098890612db0565b60405180910390fd5b60004790508173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156109dc573d6000803e3d6000fd5b505050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610a326114ea565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610abf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ab690612db0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610b856114ea565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0990612db0565b60405180910390fd5b6009600a610c209190612cd7565b64e8d4a51000610c309190612d22565b600f819055506009600a610c449190612cd7565b64e8d4a51000610c549190612d22565b6010819055506000600660006101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610ca49190612cd7565b64e8d4a51000610cb49190612d22565b604051610cc19190612810565b60405180910390a1565b600f5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60105481565b60606040518060400160405280600481526020017f4169434e00000000000000000000000000000000000000000000000000000000815250905090565b6000610d51610d4a6114ea565b84846116bb565b6001905092915050565b60115481565b600660009054906101000a900460ff1681565b610d7c6114ea565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e09576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0090612db0565b60405180910390fd5b60148054906101000a900460ff1615610e57576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4e90612e93565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610ef630601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610ee19190612cd7565b64e8d4a51000610ef19190612d22565b6114f2565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f63573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f879190612ec8565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611010573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110349190612ec8565b6040518363ffffffff1660e01b8152600401611051929190612ef5565b6020604051808303816000875af1158015611070573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110949190612ec8565b601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061111d306109e1565b600080611128610cd1565b426040518863ffffffff1660e01b815260040161114a96959493929190612f63565b60606040518083038185885af1158015611168573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061118d9190612fd9565b505050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161122f92919061302c565b6020604051808303816000875af115801561124e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112729190613081565b506001601460166101000a81548160ff02191690831515021790555060016014806101000a81548160ff021916908315150217905550565b6112b26114ea565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461133f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133690612db0565b60405180910390fd5b60005b81518110156113d05760016004600084848151811061136457611363612dd0565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806113c890612dff565b915050611342565b5050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661149c6114ea565b73ffffffffffffffffffffffffffffffffffffffff16146114bc57600080fd5b60095481111580156114d05750600a548111155b6114d957600080fd5b8060098190555080600a8190555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611561576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155890613120565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036115d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115c7906131b2565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516116ae9190612810565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361172a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172190613244565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611799576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611790906132d6565b60405180910390fd5b600081116117dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117d390613368565b60405180910390fd5b60006117e6610cd1565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156118545750611824610cd1565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611e4357600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156118fd5750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61190657600080fd5b6119426064611934600b54600e541161192157600754611925565b6009545b8561244990919063ffffffff16565b6124c390919063ffffffff16565b9050600660009054906101000a900460ff1615611ad157601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611a055750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611ad05743600560003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410611a8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a8290613420565b60405180910390fd5b43600560003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611b7c5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611bd25750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611c8d57600f54821115611c1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c139061348c565b60405180910390fd5b60105482611c29856109e1565b611c3391906134ac565b1115611c74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c6b9061352c565b60405180910390fd5b600e6000815480929190611c8790612dff565b91905055505b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611d1657503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611d5a57611d576064611d49600c54600e5411611d3657600854611d3a565b600a545b8561244990919063ffffffff16565b6124c390919063ffffffff16565b90505b6000611d65306109e1565b9050601460159054906101000a900460ff16158015611dd15750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611de95750601460169054906101000a900460ff165b8015611df6575060115481115b8015611e055750600d54600e54115b15611e4157611e27611e2284611e1d8460125461250d565b61250d565b612164565b60004790506000811115611e3f57611e3e476123dd565b5b505b505b6000811115611f4757611e9e81600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461252690919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611f3e9190612810565b60405180910390a35b611f9982600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461258490919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612040611ff2828461258490919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461252690919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6120e5848661258490919063ffffffff16565b6040516120f29190612810565b60405180910390a350505050565b6000838311158290612148576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161213f91906126c1565b60405180910390fd5b5060008385612157919061354c565b9050809150509392505050565b6001601460156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561219c5761219b6128ba565b5b6040519080825280602002602001820160405280156121ca5781602001602082028036833780820191505090505b50905030816000815181106121e2576121e1612dd0565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612289573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122ad9190612ec8565b816001815181106122c1576122c0612dd0565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061232830601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846114f2565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161238c95949392919061363e565b600060405180830381600087803b1580156123a657600080fd5b505af11580156123ba573d6000803e3d6000fd5b50505050506000601460156101000a81548160ff02191690831515021790555050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612445573d6000803e3d6000fd5b5050565b600080830361245b57600090506124bd565b600082846124699190612d22565b905082848261247891906136c7565b146124b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124af9061376a565b60405180910390fd5b809150505b92915050565b600061250583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506125ce565b905092915050565b600081831161251c578261251e565b815b905092915050565b600080828461253591906134ac565b90508381101561257a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612571906137d6565b60405180910390fd5b8091505092915050565b60006125c683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612100565b905092915050565b60008083118290612615576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161260c91906126c1565b60405180910390fd5b506000838561262491906136c7565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561266b578082015181840152602081019050612650565b60008484015250505050565b6000601f19601f8301169050919050565b600061269382612631565b61269d818561263c565b93506126ad81856020860161264d565b6126b681612677565b840191505092915050565b600060208201905081810360008301526126db8184612688565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612722826126f7565b9050919050565b61273281612717565b811461273d57600080fd5b50565b60008135905061274f81612729565b92915050565b6000819050919050565b61276881612755565b811461277357600080fd5b50565b6000813590506127858161275f565b92915050565b600080604083850312156127a2576127a16126ed565b5b60006127b085828601612740565b92505060206127c185828601612776565b9150509250929050565b60008115159050919050565b6127e0816127cb565b82525050565b60006020820190506127fb60008301846127d7565b92915050565b61280a81612755565b82525050565b60006020820190506128256000830184612801565b92915050565b600080600060608486031215612844576128436126ed565b5b600061285286828701612740565b935050602061286386828701612740565b925050604061287486828701612776565b9150509250925092565b600060ff82169050919050565b6128948161287e565b82525050565b60006020820190506128af600083018461288b565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6128f282612677565b810181811067ffffffffffffffff82111715612911576129106128ba565b5b80604052505050565b60006129246126e3565b905061293082826128e9565b919050565b600067ffffffffffffffff8211156129505761294f6128ba565b5b602082029050602081019050919050565b600080fd5b600061297961297484612935565b61291a565b9050808382526020820190506020840283018581111561299c5761299b612961565b5b835b818110156129c557806129b18882612740565b84526020840193505060208101905061299e565b5050509392505050565b600082601f8301126129e4576129e36128b5565b5b81356129f4848260208601612966565b91505092915050565b600060208284031215612a1357612a126126ed565b5b600082013567ffffffffffffffff811115612a3157612a306126f2565b5b612a3d848285016129cf565b91505092915050565b600060208284031215612a5c57612a5b6126ed565b5b6000612a6a84828501612740565b91505092915050565b6000612a7e826126f7565b9050919050565b612a8e81612a73565b8114612a9957600080fd5b50565b600081359050612aab81612a85565b92915050565b600060208284031215612ac757612ac66126ed565b5b6000612ad584828501612a9c565b91505092915050565b612ae781612717565b82525050565b6000602082019050612b026000830184612ade565b92915050565b60008060408385031215612b1f57612b1e6126ed565b5b6000612b2d85828601612740565b9250506020612b3e85828601612740565b9150509250929050565b600060208284031215612b5e57612b5d6126ed565b5b6000612b6c84828501612776565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115612bfb57808604811115612bd757612bd6612b75565b5b6001851615612be65780820291505b8081029050612bf485612ba4565b9450612bbb565b94509492505050565b600082612c145760019050612cd0565b81612c225760009050612cd0565b8160018114612c385760028114612c4257612c71565b6001915050612cd0565b60ff841115612c5457612c53612b75565b5b8360020a915084821115612c6b57612c6a612b75565b5b50612cd0565b5060208310610133831016604e8410600b8410161715612ca65782820a905083811115612ca157612ca0612b75565b5b612cd0565b612cb38484846001612bb1565b92509050818404811115612cca57612cc9612b75565b5b81810290505b9392505050565b6000612ce282612755565b9150612ced8361287e565b9250612d1a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612c04565b905092915050565b6000612d2d82612755565b9150612d3883612755565b9250828202612d4681612755565b91508282048414831517612d5d57612d5c612b75565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612d9a60208361263c565b9150612da582612d64565b602082019050919050565b60006020820190508181036000830152612dc981612d8d565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000612e0a82612755565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612e3c57612e3b612b75565b5b600182019050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000612e7d60178361263c565b9150612e8882612e47565b602082019050919050565b60006020820190508181036000830152612eac81612e70565b9050919050565b600081519050612ec281612729565b92915050565b600060208284031215612ede57612edd6126ed565b5b6000612eec84828501612eb3565b91505092915050565b6000604082019050612f0a6000830185612ade565b612f176020830184612ade565b9392505050565b6000819050919050565b6000819050919050565b6000612f4d612f48612f4384612f1e565b612f28565b612755565b9050919050565b612f5d81612f32565b82525050565b600060c082019050612f786000830189612ade565b612f856020830188612801565b612f926040830187612f54565b612f9f6060830186612f54565b612fac6080830185612ade565b612fb960a0830184612801565b979650505050505050565b600081519050612fd38161275f565b92915050565b600080600060608486031215612ff257612ff16126ed565b5b600061300086828701612fc4565b935050602061301186828701612fc4565b925050604061302286828701612fc4565b9150509250925092565b60006040820190506130416000830185612ade565b61304e6020830184612801565b9392505050565b61305e816127cb565b811461306957600080fd5b50565b60008151905061307b81613055565b92915050565b600060208284031215613097576130966126ed565b5b60006130a58482850161306c565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061310a60248361263c565b9150613115826130ae565b604082019050919050565b60006020820190508181036000830152613139816130fd565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061319c60228361263c565b91506131a782613140565b604082019050919050565b600060208201905081810360008301526131cb8161318f565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061322e60258361263c565b9150613239826131d2565b604082019050919050565b6000602082019050818103600083015261325d81613221565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006132c060238361263c565b91506132cb82613264565b604082019050919050565b600060208201905081810360008301526132ef816132b3565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061335260298361263c565b915061335d826132f6565b604082019050919050565b6000602082019050818103600083015261338181613345565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60008201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b600061340a60498361263c565b915061341582613388565b606082019050919050565b60006020820190508181036000830152613439816133fd565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b600061347660198361263c565b915061348182613440565b602082019050919050565b600060208201905081810360008301526134a581613469565b9050919050565b60006134b782612755565b91506134c283612755565b92508282019050808211156134da576134d9612b75565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b6000613516601a8361263c565b9150613521826134e0565b602082019050919050565b6000602082019050818103600083015261354581613509565b9050919050565b600061355782612755565b915061356283612755565b925082820390508181111561357a57613579612b75565b5b92915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6135b581612717565b82525050565b60006135c783836135ac565b60208301905092915050565b6000602082019050919050565b60006135eb82613580565b6135f5818561358b565b93506136008361359c565b8060005b8381101561363157815161361888826135bb565b9750613623836135d3565b925050600181019050613604565b5085935050505092915050565b600060a0820190506136536000830188612801565b6136606020830187612f54565b818103604083015261367281866135e0565b90506136816060830185612ade565b61368e6080830184612801565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006136d282612755565b91506136dd83612755565b9250826136ed576136ec613698565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061375460218361263c565b915061375f826136f8565b604082019050919050565b6000602082019050818103600083015261378381613747565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006137c0601b8361263c565b91506137cb8261378a565b602082019050919050565b600060208201905081810360008301526137ef816137b3565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212206cf518bb6c3b0d16a3ac7b9e099008ee327848a00fd3335bbb25202b35b06c0664736f6c63430008110033

Deployed Bytecode

0x60806040526004361061014f5760003560e01c8063751039fc116100b6578063bf474bed1161006f578063bf474bed1461047b578063c876d0b9146104a6578063c9567bf9146104d1578063d34628cc146104e8578063dd62ed3e14610511578063ec1f3f631461054e57610156565b8063751039fc1461037b5780637d1db4a5146103925780638da5cb5b146103bd5780638f9a55c0146103e857806395d89b4114610413578063a9059cbb1461043e57610156565b806331c2d8471161010857806331c2d847146102815780633bbac579146102aa57806351bc3c85146102e757806351cff8d9146102fe57806370a0823114610327578063715018a61461036457610156565b806306fdde031461015b578063095ea7b3146101865780630faee56f146101c357806318160ddd146101ee57806323b872dd14610219578063313ce5671461025657610156565b3661015657005b600080fd5b34801561016757600080fd5b50610170610577565b60405161017d91906126c1565b60405180910390f35b34801561019257600080fd5b506101ad60048036038101906101a8919061278b565b6105b4565b6040516101ba91906127e6565b60405180910390f35b3480156101cf57600080fd5b506101d86105d2565b6040516101e59190612810565b60405180910390f35b3480156101fa57600080fd5b506102036105d8565b6040516102109190612810565b60405180910390f35b34801561022557600080fd5b50610240600480360381019061023b919061282b565b6105fd565b60405161024d91906127e6565b60405180910390f35b34801561026257600080fd5b5061026b6106d6565b604051610278919061289a565b60405180910390f35b34801561028d57600080fd5b506102a860048036038101906102a391906129fd565b6106df565b005b3480156102b657600080fd5b506102d160048036038101906102cc9190612a46565b610809565b6040516102de91906127e6565b60405180910390f35b3480156102f357600080fd5b506102fc61085f565b005b34801561030a57600080fd5b5061032560048036038101906103209190612ab1565b6108fc565b005b34801561033357600080fd5b5061034e60048036038101906103499190612a46565b6109e1565b60405161035b9190612810565b60405180910390f35b34801561037057600080fd5b50610379610a2a565b005b34801561038757600080fd5b50610390610b7d565b005b34801561039e57600080fd5b506103a7610ccb565b6040516103b49190612810565b60405180910390f35b3480156103c957600080fd5b506103d2610cd1565b6040516103df9190612aed565b60405180910390f35b3480156103f457600080fd5b506103fd610cfa565b60405161040a9190612810565b60405180910390f35b34801561041f57600080fd5b50610428610d00565b60405161043591906126c1565b60405180910390f35b34801561044a57600080fd5b506104656004803603810190610460919061278b565b610d3d565b60405161047291906127e6565b60405180910390f35b34801561048757600080fd5b50610490610d5b565b60405161049d9190612810565b60405180910390f35b3480156104b257600080fd5b506104bb610d61565b6040516104c891906127e6565b60405180910390f35b3480156104dd57600080fd5b506104e6610d74565b005b3480156104f457600080fd5b5061050f600480360381019061050a91906129fd565b6112aa565b005b34801561051d57600080fd5b5061053860048036038101906105339190612b08565b6113d4565b6040516105459190612810565b60405180910390f35b34801561055a57600080fd5b5061057560048036038101906105709190612b48565b61145b565b005b60606040518060400160405280600d81526020017f41697273686970204368696e6100000000000000000000000000000000000000815250905090565b60006105c86105c16114ea565b84846114f2565b6001905092915050565b60125481565b60006009600a6105e89190612cd7565b64e8d4a510006105f89190612d22565b905090565b600061060a8484846116bb565b6106cb846106166114ea565b6106c6856040518060600160405280602881526020016137f760289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061067c6114ea565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121009092919063ffffffff16565b6114f2565b600190509392505050565b60006009905090565b6106e76114ea565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610774576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161076b90612db0565b60405180910390fd5b60005b81518110156108055760006004600084848151811061079957610798612dd0565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806107fd90612dff565b915050610777565b5050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108a06114ea565b73ffffffffffffffffffffffffffffffffffffffff16146108c057600080fd5b60006108cb306109e1565b905060008111156108e0576108df81612164565b5b600047905060008111156108f8576108f7816123dd565b5b5050565b6109046114ea565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610991576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098890612db0565b60405180910390fd5b60004790508173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156109dc573d6000803e3d6000fd5b505050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610a326114ea565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610abf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ab690612db0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610b856114ea565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0990612db0565b60405180910390fd5b6009600a610c209190612cd7565b64e8d4a51000610c309190612d22565b600f819055506009600a610c449190612cd7565b64e8d4a51000610c549190612d22565b6010819055506000600660006101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610ca49190612cd7565b64e8d4a51000610cb49190612d22565b604051610cc19190612810565b60405180910390a1565b600f5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60105481565b60606040518060400160405280600481526020017f4169434e00000000000000000000000000000000000000000000000000000000815250905090565b6000610d51610d4a6114ea565b84846116bb565b6001905092915050565b60115481565b600660009054906101000a900460ff1681565b610d7c6114ea565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e09576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0090612db0565b60405180910390fd5b60148054906101000a900460ff1615610e57576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4e90612e93565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610ef630601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610ee19190612cd7565b64e8d4a51000610ef19190612d22565b6114f2565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f63573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f879190612ec8565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611010573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110349190612ec8565b6040518363ffffffff1660e01b8152600401611051929190612ef5565b6020604051808303816000875af1158015611070573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110949190612ec8565b601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061111d306109e1565b600080611128610cd1565b426040518863ffffffff1660e01b815260040161114a96959493929190612f63565b60606040518083038185885af1158015611168573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061118d9190612fd9565b505050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161122f92919061302c565b6020604051808303816000875af115801561124e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112729190613081565b506001601460166101000a81548160ff02191690831515021790555060016014806101000a81548160ff021916908315150217905550565b6112b26114ea565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461133f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133690612db0565b60405180910390fd5b60005b81518110156113d05760016004600084848151811061136457611363612dd0565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806113c890612dff565b915050611342565b5050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661149c6114ea565b73ffffffffffffffffffffffffffffffffffffffff16146114bc57600080fd5b60095481111580156114d05750600a548111155b6114d957600080fd5b8060098190555080600a8190555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611561576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155890613120565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036115d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115c7906131b2565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516116ae9190612810565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361172a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172190613244565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611799576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611790906132d6565b60405180910390fd5b600081116117dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117d390613368565b60405180910390fd5b60006117e6610cd1565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156118545750611824610cd1565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611e4357600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156118fd5750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61190657600080fd5b6119426064611934600b54600e541161192157600754611925565b6009545b8561244990919063ffffffff16565b6124c390919063ffffffff16565b9050600660009054906101000a900460ff1615611ad157601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611a055750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611ad05743600560003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410611a8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a8290613420565b60405180910390fd5b43600560003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611b7c5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611bd25750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611c8d57600f54821115611c1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c139061348c565b60405180910390fd5b60105482611c29856109e1565b611c3391906134ac565b1115611c74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c6b9061352c565b60405180910390fd5b600e6000815480929190611c8790612dff565b91905055505b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611d1657503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611d5a57611d576064611d49600c54600e5411611d3657600854611d3a565b600a545b8561244990919063ffffffff16565b6124c390919063ffffffff16565b90505b6000611d65306109e1565b9050601460159054906101000a900460ff16158015611dd15750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611de95750601460169054906101000a900460ff165b8015611df6575060115481115b8015611e055750600d54600e54115b15611e4157611e27611e2284611e1d8460125461250d565b61250d565b612164565b60004790506000811115611e3f57611e3e476123dd565b5b505b505b6000811115611f4757611e9e81600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461252690919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611f3e9190612810565b60405180910390a35b611f9982600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461258490919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612040611ff2828461258490919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461252690919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6120e5848661258490919063ffffffff16565b6040516120f29190612810565b60405180910390a350505050565b6000838311158290612148576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161213f91906126c1565b60405180910390fd5b5060008385612157919061354c565b9050809150509392505050565b6001601460156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561219c5761219b6128ba565b5b6040519080825280602002602001820160405280156121ca5781602001602082028036833780820191505090505b50905030816000815181106121e2576121e1612dd0565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612289573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122ad9190612ec8565b816001815181106122c1576122c0612dd0565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061232830601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846114f2565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161238c95949392919061363e565b600060405180830381600087803b1580156123a657600080fd5b505af11580156123ba573d6000803e3d6000fd5b50505050506000601460156101000a81548160ff02191690831515021790555050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612445573d6000803e3d6000fd5b5050565b600080830361245b57600090506124bd565b600082846124699190612d22565b905082848261247891906136c7565b146124b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124af9061376a565b60405180910390fd5b809150505b92915050565b600061250583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506125ce565b905092915050565b600081831161251c578261251e565b815b905092915050565b600080828461253591906134ac565b90508381101561257a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612571906137d6565b60405180910390fd5b8091505092915050565b60006125c683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612100565b905092915050565b60008083118290612615576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161260c91906126c1565b60405180910390fd5b506000838561262491906136c7565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561266b578082015181840152602081019050612650565b60008484015250505050565b6000601f19601f8301169050919050565b600061269382612631565b61269d818561263c565b93506126ad81856020860161264d565b6126b681612677565b840191505092915050565b600060208201905081810360008301526126db8184612688565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612722826126f7565b9050919050565b61273281612717565b811461273d57600080fd5b50565b60008135905061274f81612729565b92915050565b6000819050919050565b61276881612755565b811461277357600080fd5b50565b6000813590506127858161275f565b92915050565b600080604083850312156127a2576127a16126ed565b5b60006127b085828601612740565b92505060206127c185828601612776565b9150509250929050565b60008115159050919050565b6127e0816127cb565b82525050565b60006020820190506127fb60008301846127d7565b92915050565b61280a81612755565b82525050565b60006020820190506128256000830184612801565b92915050565b600080600060608486031215612844576128436126ed565b5b600061285286828701612740565b935050602061286386828701612740565b925050604061287486828701612776565b9150509250925092565b600060ff82169050919050565b6128948161287e565b82525050565b60006020820190506128af600083018461288b565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6128f282612677565b810181811067ffffffffffffffff82111715612911576129106128ba565b5b80604052505050565b60006129246126e3565b905061293082826128e9565b919050565b600067ffffffffffffffff8211156129505761294f6128ba565b5b602082029050602081019050919050565b600080fd5b600061297961297484612935565b61291a565b9050808382526020820190506020840283018581111561299c5761299b612961565b5b835b818110156129c557806129b18882612740565b84526020840193505060208101905061299e565b5050509392505050565b600082601f8301126129e4576129e36128b5565b5b81356129f4848260208601612966565b91505092915050565b600060208284031215612a1357612a126126ed565b5b600082013567ffffffffffffffff811115612a3157612a306126f2565b5b612a3d848285016129cf565b91505092915050565b600060208284031215612a5c57612a5b6126ed565b5b6000612a6a84828501612740565b91505092915050565b6000612a7e826126f7565b9050919050565b612a8e81612a73565b8114612a9957600080fd5b50565b600081359050612aab81612a85565b92915050565b600060208284031215612ac757612ac66126ed565b5b6000612ad584828501612a9c565b91505092915050565b612ae781612717565b82525050565b6000602082019050612b026000830184612ade565b92915050565b60008060408385031215612b1f57612b1e6126ed565b5b6000612b2d85828601612740565b9250506020612b3e85828601612740565b9150509250929050565b600060208284031215612b5e57612b5d6126ed565b5b6000612b6c84828501612776565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115612bfb57808604811115612bd757612bd6612b75565b5b6001851615612be65780820291505b8081029050612bf485612ba4565b9450612bbb565b94509492505050565b600082612c145760019050612cd0565b81612c225760009050612cd0565b8160018114612c385760028114612c4257612c71565b6001915050612cd0565b60ff841115612c5457612c53612b75565b5b8360020a915084821115612c6b57612c6a612b75565b5b50612cd0565b5060208310610133831016604e8410600b8410161715612ca65782820a905083811115612ca157612ca0612b75565b5b612cd0565b612cb38484846001612bb1565b92509050818404811115612cca57612cc9612b75565b5b81810290505b9392505050565b6000612ce282612755565b9150612ced8361287e565b9250612d1a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612c04565b905092915050565b6000612d2d82612755565b9150612d3883612755565b9250828202612d4681612755565b91508282048414831517612d5d57612d5c612b75565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612d9a60208361263c565b9150612da582612d64565b602082019050919050565b60006020820190508181036000830152612dc981612d8d565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000612e0a82612755565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612e3c57612e3b612b75565b5b600182019050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000612e7d60178361263c565b9150612e8882612e47565b602082019050919050565b60006020820190508181036000830152612eac81612e70565b9050919050565b600081519050612ec281612729565b92915050565b600060208284031215612ede57612edd6126ed565b5b6000612eec84828501612eb3565b91505092915050565b6000604082019050612f0a6000830185612ade565b612f176020830184612ade565b9392505050565b6000819050919050565b6000819050919050565b6000612f4d612f48612f4384612f1e565b612f28565b612755565b9050919050565b612f5d81612f32565b82525050565b600060c082019050612f786000830189612ade565b612f856020830188612801565b612f926040830187612f54565b612f9f6060830186612f54565b612fac6080830185612ade565b612fb960a0830184612801565b979650505050505050565b600081519050612fd38161275f565b92915050565b600080600060608486031215612ff257612ff16126ed565b5b600061300086828701612fc4565b935050602061301186828701612fc4565b925050604061302286828701612fc4565b9150509250925092565b60006040820190506130416000830185612ade565b61304e6020830184612801565b9392505050565b61305e816127cb565b811461306957600080fd5b50565b60008151905061307b81613055565b92915050565b600060208284031215613097576130966126ed565b5b60006130a58482850161306c565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061310a60248361263c565b9150613115826130ae565b604082019050919050565b60006020820190508181036000830152613139816130fd565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061319c60228361263c565b91506131a782613140565b604082019050919050565b600060208201905081810360008301526131cb8161318f565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061322e60258361263c565b9150613239826131d2565b604082019050919050565b6000602082019050818103600083015261325d81613221565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006132c060238361263c565b91506132cb82613264565b604082019050919050565b600060208201905081810360008301526132ef816132b3565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061335260298361263c565b915061335d826132f6565b604082019050919050565b6000602082019050818103600083015261338181613345565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60008201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b600061340a60498361263c565b915061341582613388565b606082019050919050565b60006020820190508181036000830152613439816133fd565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b600061347660198361263c565b915061348182613440565b602082019050919050565b600060208201905081810360008301526134a581613469565b9050919050565b60006134b782612755565b91506134c283612755565b92508282019050808211156134da576134d9612b75565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b6000613516601a8361263c565b9150613521826134e0565b602082019050919050565b6000602082019050818103600083015261354581613509565b9050919050565b600061355782612755565b915061356283612755565b925082820390508181111561357a57613579612b75565b5b92915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6135b581612717565b82525050565b60006135c783836135ac565b60208301905092915050565b6000602082019050919050565b60006135eb82613580565b6135f5818561358b565b93506136008361359c565b8060005b8381101561363157815161361888826135bb565b9750613623836135d3565b925050600181019050613604565b5085935050505092915050565b600060a0820190506136536000830188612801565b6136606020830187612f54565b818103604083015261367281866135e0565b90506136816060830185612ade565b61368e6080830184612801565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006136d282612755565b91506136dd83612755565b9250826136ed576136ec613698565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061375460218361263c565b915061375f826136f8565b604082019050919050565b6000602082019050818103600083015261378381613747565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006137c0601b8361263c565b91506137cb8261378a565b602082019050919050565b600060208201905081810360008301526137ef816137b3565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212206cf518bb6c3b0d16a3ac7b9e099008ee327848a00fd3335bbb25202b35b06c0664736f6c63430008110033

Deployed Bytecode Sourcemap

3643:8876:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5588:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6421:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4865:50;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5865:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6590:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5774:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10783:162;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10953:83;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12168:348;;;;;;;;;;;;;:::i;:::-;;11955:168;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5968:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2724:148;;;;;;;;;;;;;:::i;:::-;;10307:196;;;;;;;;;;;;;:::i;:::-;;4670:59;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2510:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4736:59;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5679:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6095:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4802:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4034:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11044:671;;;;;;;;;;;;;:::i;:::-;;10611:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6270:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11729:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5588:83;5625:13;5658:5;;;;;;;;;;;;;;;;;5651:12;;5588:83;:::o;6421:161::-;6496:4;6513:39;6522:12;:10;:12::i;:::-;6536:7;6545:6;6513:8;:39::i;:::-;6570:4;6563:11;;6421:161;;;;:::o;4865:50::-;;;;:::o;5865:95::-;5918:7;4476:1;4535:2;:13;;;;:::i;:::-;4519;:29;;;;:::i;:::-;5938:14;;5865:95;:::o;6590:313::-;6688:4;6705:36;6715:6;6723:9;6734:6;6705:9;:36::i;:::-;6752:121;6761:6;6769:12;:10;:12::i;:::-;6783:89;6821:6;6783:89;;;;;;;;;;;;;;;;;:11;:19;6795:6;6783:19;;;;;;;;;;;;;;;:33;6803:12;:10;:12::i;:::-;6783:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6752:8;:121::i;:::-;6891:4;6884:11;;6590:313;;;;;:::o;5774:83::-;5815:5;4476:1;5833:16;;5774:83;:::o;10783:162::-;2647:12;:10;:12::i;:::-;2637:22;;:6;;;;;;;;;;:22;;;2629:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10856:6:::1;10851:87;10872:6;:13;10868:1;:17;10851:87;;;10923:5;10905:4;:15;10910:6;10917:1;10910:9;;;;;;;;:::i;:::-;;;;;;;;10905:15;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;10887:3;;;;;:::i;:::-;;;;10851:87;;;;10783:162:::0;:::o;10953:83::-;11000:4;11021;:7;11026:1;11021:7;;;;;;;;;;;;;;;;;;;;;;;;;11014:14;;10953:83;;;:::o;12168:348::-;12232:10;;;;;;;;;;;12218:24;;:12;:10;:12::i;:::-;:24;;;12210:33;;;;;;12254:20;12275:24;12293:4;12275:9;:24::i;:::-;12254:45;;12326:1;12313:12;:14;12310:73;;;12341:30;12358:12;12341:16;:30::i;:::-;12310:73;12393:18;12412:21;12393:40;;12458:1;12447:10;:12;12444:65;;;12473:24;12486:10;12473:12;:24::i;:::-;12444:65;12199:317;;12168:348::o;11955:168::-;2647:12;:10;:12::i;:::-;2637:22;;:6;;;;;;;;;;:22;;;2629:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12023:26:::1;12052:21;12023:50;;12084:2;:11;;:31;12096:18;12084:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;12012:111;11955:168:::0;:::o;5968:119::-;6034:7;6061:9;:18;6071:7;6061:18;;;;;;;;;;;;;;;;6054:25;;5968:119;;;:::o;2724:148::-;2647:12;:10;:12::i;:::-;2637:22;;:6;;;;;;;;;;:22;;;2629:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2831:1:::1;2794:40;;2815:6;::::0;::::1;;;;;;;;2794:40;;;;;;;;;;;;2862:1;2845:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2724:148::o:0;10307:196::-;2647:12;:10;:12::i;:::-;2637:22;;:6;;;;;;;;;;:22;;;2629:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4476:1:::1;4535:2;:13;;;;:::i;:::-;4519;:29;;;;:::i;:::-;10360:12;:22;;;;4476:1;4535:2;:13;;;;:::i;:::-;4519;:29;;;;:::i;:::-;10393:14;:22;;;;10447:5;10426:20;;:26;;;;;;;;;;;;;;;;;;10468:27;4476:1;4535:2;:13;;;;:::i;:::-;4519;:29;;;;:::i;:::-;10468:27;;;;;;:::i;:::-;;;;;;;;10307:196::o:0;4670:59::-;;;;:::o;2510:79::-;2548:7;2575:6;;;;;;;;;;;2568:13;;2510:79;:::o;4736:59::-;;;;:::o;5679:87::-;5718:13;5751:7;;;;;;;;;;;;;;;;;5744:14;;5679:87;:::o;6095:167::-;6173:4;6190:42;6200:12;:10;:12::i;:::-;6214:9;6225:6;6190:9;:42::i;:::-;6250:4;6243:11;;6095:167;;;;:::o;4802:56::-;;;;:::o;4034:39::-;;;;;;;;;;;;;:::o;11044:671::-;2647:12;:10;:12::i;:::-;2637:22;;:6;;;;;;;;;;:22;;;2629:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11108:11:::1;::::0;::::1;;;;;;;;11107:12;11099:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;11194:42;11157:15;;:80;;;;;;;;;;;;;;;;;;11248:58;11265:4;11280:15;;;;;;;;;;;4476:1;4535:2;:13;;;;:::i;:::-;4519;:29;;;;:::i;:::-;11248:8;:58::i;:::-;11351:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11333:55;;;11397:4;11404:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11333:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11317:13;;:110;;;;;;;;;;;;;;;;;;11438:15;;;;;;;;;;;:31;;;11477:21;11508:4;11514:24;11532:4;11514:9;:24::i;:::-;11539:1;11541::::0;11543:7:::1;:5;:7::i;:::-;11551:15;11438:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;11585:13;;;;;;;;;;;11578:29;;;11616:15;;;;;;;;;;;11634:14;11578:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11674:4;11660:11;;:18;;;;;;;;;;;;;;;;;;11703:4;11689:11;::::0;:18:::1;;;;;;;;;;;;;;;;;;11044:671::o:0;10611:164::-;2647:12;:10;:12::i;:::-;2637:22;;:6;;;;;;;;;;:22;;;2629:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10685:6:::1;10680:88;10701:5;:12;10697:1;:16;10680:88;;;10752:4;10735;:14;10740:5;10746:1;10740:8;;;;;;;;:::i;:::-;;;;;;;;10735:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;10715:3;;;;;:::i;:::-;;;;10680:88;;;;10611:164:::0;:::o;6270:143::-;6351:7;6378:11;:18;6390:5;6378:18;;;;;;;;;;;;;;;:27;6397:7;6378:27;;;;;;;;;;;;;;;;6371:34;;6270:143;;;;:::o;11729:218::-;11804:10;;;;;;;;;;;11790:24;;:12;:10;:12::i;:::-;:24;;;11782:33;;;;;;11841:12;;11832:7;:21;;:47;;;;;11866:13;;11857:7;:22;;11832:47;11824:56;;;;;;11902:7;11889:12;:20;;;;11932:7;11918:13;:21;;;;11729:218;:::o;265:98::-;318:7;345:10;338:17;;265:98;:::o;6911:335::-;7021:1;7004:19;;:5;:19;;;6996:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7102:1;7083:21;;:7;:21;;;7075:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7184:6;7154:11;:18;7166:5;7154:18;;;;;;;;;;;;;;;:27;7173:7;7154:27;;;;;;;;;;;;;;;:36;;;;7222:7;7206:32;;7215:5;7206:32;;;7231:6;7206:32;;;;;;:::i;:::-;;;;;;;;6911:335;;;:::o;7254:2446::-;7358:1;7342:18;;:4;:18;;;7334:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7435:1;7421:16;;:2;:16;;;7413:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7505:1;7496:6;:10;7488:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7563:17;7605:7;:5;:7::i;:::-;7597:15;;:4;:15;;;;:32;;;;;7622:7;:5;:7::i;:::-;7616:13;;:2;:13;;;;7597:32;7593:1751;;;7655:4;:10;7660:4;7655:10;;;;;;;;;;;;;;;;;;;;;;;;;7654:11;:24;;;;;7670:4;:8;7675:2;7670:8;;;;;;;;;;;;;;;;;;;;;;;;;7669:9;7654:24;7646:33;;;;;;7706:76;7778:3;7706:67;7728:15;;7718:9;;:25;7717:55;;7758:14;;7717:55;;;7745:12;;7717:55;7706:6;:10;;:67;;;;:::i;:::-;:71;;:76;;;;:::i;:::-;7694:88;;7803:20;;;;;;;;;;;7799:508;;;7864:15;;;;;;;;;;;7850:30;;:2;:30;;;;:62;;;;;7898:13;;;;;;;;;;;7884:28;;:2;:28;;;;7850:62;7846:444;;;8048:12;7975:28;:39;8004:9;7975:39;;;;;;;;;;;;;;;;:85;7939:250;;;;;;;;;;;;:::i;:::-;;;;;;;;;8256:12;8214:28;:39;8243:9;8214:39;;;;;;;;;;;;;;;:54;;;;7846:444;7799:508;8335:13;;;;;;;;;;;8327:21;;:4;:21;;;:55;;;;;8366:15;;;;;;;;;;;8352:30;;:2;:30;;;;8327:55;:83;;;;;8388:18;:22;8407:2;8388:22;;;;;;;;;;;;;;;;;;;;;;;;;8386:24;8327:83;8323:313;;;8450:12;;8440:6;:22;;8432:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;8545:14;;8535:6;8519:13;8529:2;8519:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8511:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8609:9;;:11;;;;;;;;;:::i;:::-;;;;;;8323:313;8661:13;;;;;;;;;;;8655:19;;:2;:19;;;:43;;;;;8693:4;8678:20;;:4;:20;;;;8655:43;8652:174;;;8731:79;8806:3;8731:70;8753:16;;8743:9;;:26;8742:58;;8785:15;;8742:58;;;8771:13;;8742:58;8731:6;:10;;:70;;;;:::i;:::-;:74;;:79;;;;:::i;:::-;8719:91;;8652:174;8842:28;8873:24;8891:4;8873:9;:24::i;:::-;8842:55;;8917:6;;;;;;;;;;;8916:7;:32;;;;;8935:13;;;;;;;;;;;8927:21;;:2;:21;;;8916:32;:47;;;;;8952:11;;;;;;;;;;;8916:47;:89;;;;;8988:17;;8967:20;:38;8916:89;:121;;;;;9019:18;;9009:9;;:28;8916:121;8912:421;;;9058:67;9075:49;9079:6;9086:37;9090:20;9111:11;;9086:3;:37::i;:::-;9075:3;:49::i;:::-;9058:16;:67::i;:::-;9144:26;9173:21;9144:50;;9237:1;9216:18;:22;9213:105;;;9263:35;9276:21;9263:12;:35::i;:::-;9213:105;9039:294;8912:421;7631:1713;7593:1751;9369:1;9359:9;:11;9356:161;;;9409:39;9438:9;9409;:24;9427:4;9409:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;9384:9;:24;9402:4;9384:24;;;;;;;;;;;;;;;:64;;;;9489:4;9466:39;;9475:4;9466:39;;;9495:9;9466:39;;;;;;:::i;:::-;;;;;;;;9356:161;9543:27;9563:6;9543:9;:15;9553:4;9543:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;9527:9;:15;9537:4;9527:15;;;;;;;;;;;;;;;:43;;;;9595:40;9613:21;9624:9;9613:6;:10;;:21;;;;:::i;:::-;9595:9;:13;9605:2;9595:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;9581:9;:13;9591:2;9581:13;;;;;;;;;;;;;;;:54;;;;9666:2;9651:41;;9660:4;9651:41;;;9670:21;9681:9;9670:6;:10;;:21;;;;:::i;:::-;9651:41;;;;;;:::i;:::-;;;;;;;;7323:2377;7254:2446;;;:::o;1402:190::-;1488:7;1521:1;1516;:6;;1524:12;1508:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1548:9;1564:1;1560;:5;;;;:::i;:::-;1548:17;;1583:1;1576:8;;;1402:190;;;;;:::o;9816:483::-;5206:4;5197:6;;:13;;;;;;;;;;;;;;;;;;9894:21:::1;9932:1;9918:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9894:40;;9963:4;9945;9950:1;9945:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;9989:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9979:4;9984:1;9979:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;10022:62;10039:4;10054:15;;;;;;;;;;;10072:11;10022:8;:62::i;:::-;10095:15;;;;;;;;;;;:66;;;10176:11;10202:1;10218:4;10245;10265:15;10095:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9883:416;5242:5:::0;5233:6;;:14;;;;;;;;;;;;;;;;;;9816:483;:::o;10511:92::-;10568:10;;;;;;;;;;;:19;;:27;10588:6;10568:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10511:92;:::o;1600:246::-;1658:7;1687:1;1682;:6;1678:47;;1712:1;1705:8;;;;1678:47;1735:9;1751:1;1747;:5;;;;:::i;:::-;1735:17;;1780:1;1775;1771;:5;;;;:::i;:::-;:10;1763:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1837:1;1830:8;;;1600:246;;;;;:::o;1854:132::-;1912:7;1939:39;1943:1;1946;1939:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1932:46;;1854:132;;;;:::o;9710:98::-;9767:7;9794:1;9792;:3;9791:9;;9799:1;9791:9;;;9797:1;9791:9;9784:16;;9710:98;;;;:::o;1071:179::-;1129:7;1149:9;1165:1;1161;:5;;;;:::i;:::-;1149:17;;1190:1;1185;:6;;1177:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1241:1;1234:8;;;1071:179;;;;:::o;1258:136::-;1316:7;1343:43;1347:1;1350;1343:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1336:50;;1258:136;;;;:::o;1994:189::-;2080:7;2112:1;2108;:5;2115:12;2100:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2139:9;2155:1;2151;:5;;;;:::i;:::-;2139:17;;2174:1;2167:8;;;1994:189;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1349:75::-;1382:6;1415:2;1409:9;1399:19;;1349:75;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:117::-;4962:1;4959;4952:12;4976:180;5024:77;5021:1;5014:88;5121:4;5118:1;5111:15;5145:4;5142:1;5135:15;5162:281;5245:27;5267:4;5245:27;:::i;:::-;5237:6;5233:40;5375:6;5363:10;5360:22;5339:18;5327:10;5324:34;5321:62;5318:88;;;5386:18;;:::i;:::-;5318:88;5426:10;5422:2;5415:22;5205:238;5162:281;;:::o;5449:129::-;5483:6;5510:20;;:::i;:::-;5500:30;;5539:33;5567:4;5559:6;5539:33;:::i;:::-;5449:129;;;:::o;5584:311::-;5661:4;5751:18;5743:6;5740:30;5737:56;;;5773:18;;:::i;:::-;5737:56;5823:4;5815:6;5811:17;5803:25;;5883:4;5877;5873:15;5865:23;;5584:311;;;:::o;5901:117::-;6010:1;6007;6000:12;6041:710;6137:5;6162:81;6178:64;6235:6;6178:64;:::i;:::-;6162:81;:::i;:::-;6153:90;;6263:5;6292:6;6285:5;6278:21;6326:4;6319:5;6315:16;6308:23;;6379:4;6371:6;6367:17;6359:6;6355:30;6408:3;6400:6;6397:15;6394:122;;;6427:79;;:::i;:::-;6394:122;6542:6;6525:220;6559:6;6554:3;6551:15;6525:220;;;6634:3;6663:37;6696:3;6684:10;6663:37;:::i;:::-;6658:3;6651:50;6730:4;6725:3;6721:14;6714:21;;6601:144;6585:4;6580:3;6576:14;6569:21;;6525:220;;;6529:21;6143:608;;6041:710;;;;;:::o;6774:370::-;6845:5;6894:3;6887:4;6879:6;6875:17;6871:27;6861:122;;6902:79;;:::i;:::-;6861:122;7019:6;7006:20;7044:94;7134:3;7126:6;7119:4;7111:6;7107:17;7044:94;:::i;:::-;7035:103;;6851:293;6774:370;;;;:::o;7150:539::-;7234:6;7283:2;7271:9;7262:7;7258:23;7254:32;7251:119;;;7289:79;;:::i;:::-;7251:119;7437:1;7426:9;7422:17;7409:31;7467:18;7459:6;7456:30;7453:117;;;7489:79;;:::i;:::-;7453:117;7594:78;7664:7;7655:6;7644:9;7640:22;7594:78;:::i;:::-;7584:88;;7380:302;7150:539;;;;:::o;7695:329::-;7754:6;7803:2;7791:9;7782:7;7778:23;7774:32;7771:119;;;7809:79;;:::i;:::-;7771:119;7929:1;7954:53;7999:7;7990:6;7979:9;7975:22;7954:53;:::i;:::-;7944:63;;7900:117;7695:329;;;;:::o;8030:104::-;8075:7;8104:24;8122:5;8104:24;:::i;:::-;8093:35;;8030:104;;;:::o;8140:138::-;8221:32;8247:5;8221:32;:::i;:::-;8214:5;8211:43;8201:71;;8268:1;8265;8258:12;8201:71;8140:138;:::o;8284:155::-;8338:5;8376:6;8363:20;8354:29;;8392:41;8427:5;8392:41;:::i;:::-;8284:155;;;;:::o;8445:345::-;8512:6;8561:2;8549:9;8540:7;8536:23;8532:32;8529:119;;;8567:79;;:::i;:::-;8529:119;8687:1;8712:61;8765:7;8756:6;8745:9;8741:22;8712:61;:::i;:::-;8702:71;;8658:125;8445:345;;;;:::o;8796:118::-;8883:24;8901:5;8883:24;:::i;:::-;8878:3;8871:37;8796:118;;:::o;8920:222::-;9013:4;9051:2;9040:9;9036:18;9028:26;;9064:71;9132:1;9121:9;9117:17;9108:6;9064:71;:::i;:::-;8920:222;;;;:::o;9148:474::-;9216:6;9224;9273:2;9261:9;9252:7;9248:23;9244:32;9241:119;;;9279:79;;:::i;:::-;9241:119;9399:1;9424:53;9469:7;9460:6;9449:9;9445:22;9424:53;:::i;:::-;9414:63;;9370:117;9526:2;9552:53;9597:7;9588:6;9577:9;9573:22;9552:53;:::i;:::-;9542:63;;9497:118;9148:474;;;;;:::o;9628:329::-;9687:6;9736:2;9724:9;9715:7;9711:23;9707:32;9704:119;;;9742:79;;:::i;:::-;9704:119;9862:1;9887:53;9932:7;9923:6;9912:9;9908:22;9887:53;:::i;:::-;9877:63;;9833:117;9628:329;;;;:::o;9963:180::-;10011:77;10008:1;10001:88;10108:4;10105:1;10098:15;10132:4;10129:1;10122:15;10149:102;10191:8;10238:5;10235:1;10231:13;10210:34;;10149:102;;;:::o;10257:848::-;10318:5;10325:4;10349:6;10340:15;;10373:5;10364:14;;10387:712;10408:1;10398:8;10395:15;10387:712;;;10503:4;10498:3;10494:14;10488:4;10485:24;10482:50;;;10512:18;;:::i;:::-;10482:50;10562:1;10552:8;10548:16;10545:451;;;10977:4;10970:5;10966:16;10957:25;;10545:451;11027:4;11021;11017:15;11009:23;;11057:32;11080:8;11057:32;:::i;:::-;11045:44;;10387:712;;;10257:848;;;;;;;:::o;11111:1073::-;11165:5;11356:8;11346:40;;11377:1;11368:10;;11379:5;;11346:40;11405:4;11395:36;;11422:1;11413:10;;11424:5;;11395:36;11491:4;11539:1;11534:27;;;;11575:1;11570:191;;;;11484:277;;11534:27;11552:1;11543:10;;11554:5;;;11570:191;11615:3;11605:8;11602:17;11599:43;;;11622:18;;:::i;:::-;11599:43;11671:8;11668:1;11664:16;11655:25;;11706:3;11699:5;11696:14;11693:40;;;11713:18;;:::i;:::-;11693:40;11746:5;;;11484:277;;11870:2;11860:8;11857:16;11851:3;11845:4;11842:13;11838:36;11820:2;11810:8;11807:16;11802:2;11796:4;11793:12;11789:35;11773:111;11770:246;;;11926:8;11920:4;11916:19;11907:28;;11961:3;11954:5;11951:14;11948:40;;;11968:18;;:::i;:::-;11948:40;12001:5;;11770:246;12041:42;12079:3;12069:8;12063:4;12060:1;12041:42;:::i;:::-;12026:57;;;;12115:4;12110:3;12106:14;12099:5;12096:25;12093:51;;;12124:18;;:::i;:::-;12093:51;12173:4;12166:5;12162:16;12153:25;;11111:1073;;;;;;:::o;12190:281::-;12248:5;12272:23;12290:4;12272:23;:::i;:::-;12264:31;;12316:25;12332:8;12316:25;:::i;:::-;12304:37;;12360:104;12397:66;12387:8;12381:4;12360:104;:::i;:::-;12351:113;;12190:281;;;;:::o;12477:410::-;12517:7;12540:20;12558:1;12540:20;:::i;:::-;12535:25;;12574:20;12592:1;12574:20;:::i;:::-;12569:25;;12629:1;12626;12622:9;12651:30;12669:11;12651:30;:::i;:::-;12640:41;;12830:1;12821:7;12817:15;12814:1;12811:22;12791:1;12784:9;12764:83;12741:139;;12860:18;;:::i;:::-;12741:139;12525:362;12477:410;;;;:::o;12893:182::-;13033:34;13029:1;13021:6;13017:14;13010:58;12893:182;:::o;13081:366::-;13223:3;13244:67;13308:2;13303:3;13244:67;:::i;:::-;13237:74;;13320:93;13409:3;13320:93;:::i;:::-;13438:2;13433:3;13429:12;13422:19;;13081:366;;;:::o;13453:419::-;13619:4;13657:2;13646:9;13642:18;13634:26;;13706:9;13700:4;13696:20;13692:1;13681:9;13677:17;13670:47;13734:131;13860:4;13734:131;:::i;:::-;13726:139;;13453:419;;;:::o;13878:180::-;13926:77;13923:1;13916:88;14023:4;14020:1;14013:15;14047:4;14044:1;14037:15;14064:233;14103:3;14126:24;14144:5;14126:24;:::i;:::-;14117:33;;14172:66;14165:5;14162:77;14159:103;;14242:18;;:::i;:::-;14159:103;14289:1;14282:5;14278:13;14271:20;;14064:233;;;:::o;14303:173::-;14443:25;14439:1;14431:6;14427:14;14420:49;14303:173;:::o;14482:366::-;14624:3;14645:67;14709:2;14704:3;14645:67;:::i;:::-;14638:74;;14721:93;14810:3;14721:93;:::i;:::-;14839:2;14834:3;14830:12;14823:19;;14482:366;;;:::o;14854:419::-;15020:4;15058:2;15047:9;15043:18;15035:26;;15107:9;15101:4;15097:20;15093:1;15082:9;15078:17;15071:47;15135:131;15261:4;15135:131;:::i;:::-;15127:139;;14854:419;;;:::o;15279:143::-;15336:5;15367:6;15361:13;15352:22;;15383:33;15410:5;15383:33;:::i;:::-;15279:143;;;;:::o;15428:351::-;15498:6;15547:2;15535:9;15526:7;15522:23;15518:32;15515:119;;;15553:79;;:::i;:::-;15515:119;15673:1;15698:64;15754:7;15745:6;15734:9;15730:22;15698:64;:::i;:::-;15688:74;;15644:128;15428:351;;;;:::o;15785:332::-;15906:4;15944:2;15933:9;15929:18;15921:26;;15957:71;16025:1;16014:9;16010:17;16001:6;15957:71;:::i;:::-;16038:72;16106:2;16095:9;16091:18;16082:6;16038:72;:::i;:::-;15785:332;;;;;:::o;16123:85::-;16168:7;16197:5;16186:16;;16123:85;;;:::o;16214:60::-;16242:3;16263:5;16256:12;;16214:60;;;:::o;16280:158::-;16338:9;16371:61;16389:42;16398:32;16424:5;16398:32;:::i;:::-;16389:42;:::i;:::-;16371:61;:::i;:::-;16358:74;;16280:158;;;:::o;16444:147::-;16539:45;16578:5;16539:45;:::i;:::-;16534:3;16527:58;16444:147;;:::o;16597:807::-;16846:4;16884:3;16873:9;16869:19;16861:27;;16898:71;16966:1;16955:9;16951:17;16942:6;16898:71;:::i;:::-;16979:72;17047:2;17036:9;17032:18;17023:6;16979:72;:::i;:::-;17061:80;17137:2;17126:9;17122:18;17113:6;17061:80;:::i;:::-;17151;17227:2;17216:9;17212:18;17203:6;17151:80;:::i;:::-;17241:73;17309:3;17298:9;17294:19;17285:6;17241:73;:::i;:::-;17324;17392:3;17381:9;17377:19;17368:6;17324:73;:::i;:::-;16597:807;;;;;;;;;:::o;17410:143::-;17467:5;17498:6;17492:13;17483:22;;17514:33;17541:5;17514:33;:::i;:::-;17410:143;;;;:::o;17559:663::-;17647:6;17655;17663;17712:2;17700:9;17691:7;17687:23;17683:32;17680:119;;;17718:79;;:::i;:::-;17680:119;17838:1;17863:64;17919:7;17910:6;17899:9;17895:22;17863:64;:::i;:::-;17853:74;;17809:128;17976:2;18002:64;18058:7;18049:6;18038:9;18034:22;18002:64;:::i;:::-;17992:74;;17947:129;18115:2;18141:64;18197:7;18188:6;18177:9;18173:22;18141:64;:::i;:::-;18131:74;;18086:129;17559:663;;;;;:::o;18228:332::-;18349:4;18387:2;18376:9;18372:18;18364:26;;18400:71;18468:1;18457:9;18453:17;18444:6;18400:71;:::i;:::-;18481:72;18549:2;18538:9;18534:18;18525:6;18481:72;:::i;:::-;18228:332;;;;;:::o;18566:116::-;18636:21;18651:5;18636:21;:::i;:::-;18629:5;18626:32;18616:60;;18672:1;18669;18662:12;18616:60;18566:116;:::o;18688:137::-;18742:5;18773:6;18767:13;18758:22;;18789:30;18813:5;18789:30;:::i;:::-;18688:137;;;;:::o;18831:345::-;18898:6;18947:2;18935:9;18926:7;18922:23;18918:32;18915:119;;;18953:79;;:::i;:::-;18915:119;19073:1;19098:61;19151:7;19142:6;19131:9;19127:22;19098:61;:::i;:::-;19088:71;;19044:125;18831:345;;;;:::o;19182:223::-;19322:34;19318:1;19310:6;19306:14;19299:58;19391:6;19386:2;19378:6;19374:15;19367:31;19182:223;:::o;19411:366::-;19553:3;19574:67;19638:2;19633:3;19574:67;:::i;:::-;19567:74;;19650:93;19739:3;19650:93;:::i;:::-;19768:2;19763:3;19759:12;19752:19;;19411:366;;;:::o;19783:419::-;19949:4;19987:2;19976:9;19972:18;19964:26;;20036:9;20030:4;20026:20;20022:1;20011:9;20007:17;20000:47;20064:131;20190:4;20064:131;:::i;:::-;20056:139;;19783:419;;;:::o;20208:221::-;20348:34;20344:1;20336:6;20332:14;20325:58;20417:4;20412:2;20404:6;20400:15;20393:29;20208:221;:::o;20435:366::-;20577:3;20598:67;20662:2;20657:3;20598:67;:::i;:::-;20591:74;;20674:93;20763:3;20674:93;:::i;:::-;20792:2;20787:3;20783:12;20776:19;;20435:366;;;:::o;20807:419::-;20973:4;21011:2;21000:9;20996:18;20988:26;;21060:9;21054:4;21050:20;21046:1;21035:9;21031:17;21024:47;21088:131;21214:4;21088:131;:::i;:::-;21080:139;;20807:419;;;:::o;21232:224::-;21372:34;21368:1;21360:6;21356:14;21349:58;21441:7;21436:2;21428:6;21424:15;21417:32;21232:224;:::o;21462:366::-;21604:3;21625:67;21689:2;21684:3;21625:67;:::i;:::-;21618:74;;21701:93;21790:3;21701:93;:::i;:::-;21819:2;21814:3;21810:12;21803:19;;21462:366;;;:::o;21834:419::-;22000:4;22038:2;22027:9;22023:18;22015:26;;22087:9;22081:4;22077:20;22073:1;22062:9;22058:17;22051:47;22115:131;22241:4;22115:131;:::i;:::-;22107:139;;21834:419;;;:::o;22259:222::-;22399:34;22395:1;22387:6;22383:14;22376:58;22468:5;22463:2;22455:6;22451:15;22444:30;22259:222;:::o;22487:366::-;22629:3;22650:67;22714:2;22709:3;22650:67;:::i;:::-;22643:74;;22726:93;22815:3;22726:93;:::i;:::-;22844:2;22839:3;22835:12;22828:19;;22487:366;;;:::o;22859:419::-;23025:4;23063:2;23052:9;23048:18;23040:26;;23112:9;23106:4;23102:20;23098:1;23087:9;23083:17;23076:47;23140:131;23266:4;23140:131;:::i;:::-;23132:139;;22859:419;;;:::o;23284:228::-;23424:34;23420:1;23412:6;23408:14;23401:58;23493:11;23488:2;23480:6;23476:15;23469:36;23284:228;:::o;23518:366::-;23660:3;23681:67;23745:2;23740:3;23681:67;:::i;:::-;23674:74;;23757:93;23846:3;23757:93;:::i;:::-;23875:2;23870:3;23866:12;23859:19;;23518:366;;;:::o;23890:419::-;24056:4;24094:2;24083:9;24079:18;24071:26;;24143:9;24137:4;24133:20;24129:1;24118:9;24114:17;24107:47;24171:131;24297:4;24171:131;:::i;:::-;24163:139;;23890:419;;;:::o;24315:297::-;24455:34;24451:1;24443:6;24439:14;24432:58;24524:34;24519:2;24511:6;24507:15;24500:59;24593:11;24588:2;24580:6;24576:15;24569:36;24315:297;:::o;24618:366::-;24760:3;24781:67;24845:2;24840:3;24781:67;:::i;:::-;24774:74;;24857:93;24946:3;24857:93;:::i;:::-;24975:2;24970:3;24966:12;24959:19;;24618:366;;;:::o;24990:419::-;25156:4;25194:2;25183:9;25179:18;25171:26;;25243:9;25237:4;25233:20;25229:1;25218:9;25214:17;25207:47;25271:131;25397:4;25271:131;:::i;:::-;25263:139;;24990:419;;;:::o;25415:175::-;25555:27;25551:1;25543:6;25539:14;25532:51;25415:175;:::o;25596:366::-;25738:3;25759:67;25823:2;25818:3;25759:67;:::i;:::-;25752:74;;25835:93;25924:3;25835:93;:::i;:::-;25953:2;25948:3;25944:12;25937:19;;25596:366;;;:::o;25968:419::-;26134:4;26172:2;26161:9;26157:18;26149:26;;26221:9;26215:4;26211:20;26207:1;26196:9;26192:17;26185:47;26249:131;26375:4;26249:131;:::i;:::-;26241:139;;25968:419;;;:::o;26393:191::-;26433:3;26452:20;26470:1;26452:20;:::i;:::-;26447:25;;26486:20;26504:1;26486:20;:::i;:::-;26481:25;;26529:1;26526;26522:9;26515:16;;26550:3;26547:1;26544:10;26541:36;;;26557:18;;:::i;:::-;26541:36;26393:191;;;;:::o;26590:176::-;26730:28;26726:1;26718:6;26714:14;26707:52;26590:176;:::o;26772:366::-;26914:3;26935:67;26999:2;26994:3;26935:67;:::i;:::-;26928:74;;27011:93;27100:3;27011:93;:::i;:::-;27129:2;27124:3;27120:12;27113:19;;26772:366;;;:::o;27144:419::-;27310:4;27348:2;27337:9;27333:18;27325:26;;27397:9;27391:4;27387:20;27383:1;27372:9;27368:17;27361:47;27425:131;27551:4;27425:131;:::i;:::-;27417:139;;27144:419;;;:::o;27569:194::-;27609:4;27629:20;27647:1;27629:20;:::i;:::-;27624:25;;27663:20;27681:1;27663:20;:::i;:::-;27658:25;;27707:1;27704;27700:9;27692:17;;27731:1;27725:4;27722:11;27719:37;;;27736:18;;:::i;:::-;27719:37;27569:194;;;;:::o;27769:114::-;27836:6;27870:5;27864:12;27854:22;;27769:114;;;:::o;27889:184::-;27988:11;28022:6;28017:3;28010:19;28062:4;28057:3;28053:14;28038:29;;27889:184;;;;:::o;28079:132::-;28146:4;28169:3;28161:11;;28199:4;28194:3;28190:14;28182:22;;28079:132;;;:::o;28217:108::-;28294:24;28312:5;28294:24;:::i;:::-;28289:3;28282:37;28217:108;;:::o;28331:179::-;28400:10;28421:46;28463:3;28455:6;28421:46;:::i;:::-;28499:4;28494:3;28490:14;28476:28;;28331:179;;;;:::o;28516:113::-;28586:4;28618;28613:3;28609:14;28601:22;;28516:113;;;:::o;28665:732::-;28784:3;28813:54;28861:5;28813:54;:::i;:::-;28883:86;28962:6;28957:3;28883:86;:::i;:::-;28876:93;;28993:56;29043:5;28993:56;:::i;:::-;29072:7;29103:1;29088:284;29113:6;29110:1;29107:13;29088:284;;;29189:6;29183:13;29216:63;29275:3;29260:13;29216:63;:::i;:::-;29209:70;;29302:60;29355:6;29302:60;:::i;:::-;29292:70;;29148:224;29135:1;29132;29128:9;29123:14;;29088:284;;;29092:14;29388:3;29381:10;;28789:608;;;28665:732;;;;:::o;29403:831::-;29666:4;29704:3;29693:9;29689:19;29681:27;;29718:71;29786:1;29775:9;29771:17;29762:6;29718:71;:::i;:::-;29799:80;29875:2;29864:9;29860:18;29851:6;29799:80;:::i;:::-;29926:9;29920:4;29916:20;29911:2;29900:9;29896:18;29889:48;29954:108;30057:4;30048:6;29954:108;:::i;:::-;29946:116;;30072:72;30140:2;30129:9;30125:18;30116:6;30072:72;:::i;:::-;30154:73;30222:3;30211:9;30207:19;30198:6;30154:73;:::i;:::-;29403:831;;;;;;;;:::o;30240:180::-;30288:77;30285:1;30278:88;30385:4;30382:1;30375:15;30409:4;30406:1;30399:15;30426:185;30466:1;30483:20;30501:1;30483:20;:::i;:::-;30478:25;;30517:20;30535:1;30517:20;:::i;:::-;30512:25;;30556:1;30546:35;;30561:18;;:::i;:::-;30546:35;30603:1;30600;30596:9;30591:14;;30426:185;;;;:::o;30617:220::-;30757:34;30753:1;30745:6;30741:14;30734:58;30826:3;30821:2;30813:6;30809:15;30802:28;30617:220;:::o;30843:366::-;30985:3;31006:67;31070:2;31065:3;31006:67;:::i;:::-;30999:74;;31082:93;31171:3;31082:93;:::i;:::-;31200:2;31195:3;31191:12;31184:19;;30843:366;;;:::o;31215:419::-;31381:4;31419:2;31408:9;31404:18;31396:26;;31468:9;31462:4;31458:20;31454:1;31443:9;31439:17;31432:47;31496:131;31622:4;31496:131;:::i;:::-;31488:139;;31215:419;;;:::o;31640:177::-;31780:29;31776:1;31768:6;31764:14;31757:53;31640:177;:::o;31823:366::-;31965:3;31986:67;32050:2;32045:3;31986:67;:::i;:::-;31979:74;;32062:93;32151:3;32062:93;:::i;:::-;32180:2;32175:3;32171:12;32164:19;;31823:366;;;:::o;32195:419::-;32361:4;32399:2;32388:9;32384:18;32376:26;;32448:9;32442:4;32438:20;32434:1;32423:9;32419:17;32412:47;32476:131;32602:4;32476:131;:::i;:::-;32468:139;;32195:419;;;:::o

Swarm Source

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